PaymentRequest: Implement PaymentResponse.payerdetailchange event

The event handler is triggered when the user changes payer information
such as payer name, payer email, or payer phone in the user interface.

Unlike other PaymentRequestUpdateEvent(e.g. shippingaddresschange), this
event can fire only after the website calls retry() with validation
errors in the payer contact information.

This feature is still behind runtime flag(PaymentRetry).

Intent to implement:
  https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/wayZGnuBkrI

Related spec change:
  https://github.com/w3c/payment-request/pull/724

Test:
  payment-request/payment-response/onpayerdetailchange-attribute.https.html
  payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html

Bug: 861704
Change-Id: Ia5d63f53874abd7c76014bf35379a71a0eead622
Reviewed-on: https://chromium-review.googlesource.com/1206750
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Rouslan Solomakhin <[email protected]>
Commit-Queue: Jinho Bang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#590961}
diff --git a/components/payments/content/payment_request.cc b/components/payments/content/payment_request.cc
index 7157a66..d348a9f 100644
--- a/components/payments/content/payment_request.cc
+++ b/components/payments/content/payment_request.cc
@@ -351,6 +351,10 @@
   client_->OnShippingAddressChange(std::move(address));
 }
 
+void PaymentRequest::OnPayerInfoSelected(mojom::PayerDetailPtr payer_info) {
+  client_->OnPayerDetailChange(std::move(payer_info));
+}
+
 void PaymentRequest::UserCancelled() {
   // If |client_| is not bound, then the object is already being destroyed as
   // a result of a renderer event.