[Payments] Record events checkout UKM for invoked payment app's scope.

This cl introduces a new type of ukm source id called PAYMENT_APP_ID.
This source id is generated using the scope of service worker based
payment apps and used to record UKM payment app checkout events when a
payment app is invoked to handle the payment request and when a modal
payment handler window is shown.

On Android UKM is only recorded for expandable PH UI code path.

UKM Privacy Review Approval:
https://docs.google.com/document/d/1xF0dFyMqbe70WTGvo3WWCWxKeXttV8Tbe2RdmPKLB4Q/edit?usp=sharing

Bug: 1047816
Change-Id: Iafb02ee9dab5fda6367c9db9d3d2104f1897d06d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2033754
Reviewed-by: Steven Holte <[email protected]>
Reviewed-by: Martin Šrámek <[email protected]>
Reviewed-by: Robert Kaplow <[email protected]>
Reviewed-by: Avi Drissman <[email protected]>
Reviewed-by: Rouslan Solomakhin <[email protected]>
Commit-Queue: Sahel Sharify <[email protected]>
Cr-Commit-Position: refs/heads/master@{#753739}
diff --git a/components/payments/content/payment_request.h b/components/payments/content/payment_request.h
index 18ec889..8444bd9e 100644
--- a/components/payments/content/payment_request.h
+++ b/components/payments/content/payment_request.h
@@ -126,6 +126,9 @@
 
   bool IsIncognito() const;
 
+  // Called when the payment handler requests to open a payment handler window.
+  void OnPaymentHandlerOpenWindowCalled();
+
   content::WebContents* web_contents() { return web_contents_; }
 
   bool skipped_payment_request_ui() { return skipped_payment_request_ui_; }