[Payments] Have an observer for canMakePayment, for testing.

BUG=705271
TEST=browser_tests

Review-Url: https://codereview.chromium.org/2775193004
Cr-Commit-Position: refs/heads/master@{#459852}
diff --git a/components/payments/content/payment_request.h b/components/payments/content/payment_request.h
index b9753dbb4..fdfec34 100644
--- a/components/payments/content/payment_request.h
+++ b/components/payments/content/payment_request.h
@@ -34,10 +34,19 @@
                        public PaymentRequestSpec::Observer,
                        public PaymentRequestState::Delegate {
  public:
+  class ObserverForTest {
+   public:
+    virtual void OnCanMakePaymentCalled() = 0;
+
+   protected:
+    virtual ~ObserverForTest() {}
+  };
+
   PaymentRequest(content::WebContents* web_contents,
                  std::unique_ptr<PaymentRequestDelegate> delegate,
                  PaymentRequestWebContentsManager* manager,
-                 mojo::InterfaceRequest<mojom::PaymentRequest> request);
+                 mojo::InterfaceRequest<mojom::PaymentRequest> request,
+                 ObserverForTest* observer_for_testing);
   ~PaymentRequest() override;
 
   // mojom::PaymentRequest
@@ -87,6 +96,9 @@
   std::unique_ptr<PaymentRequestSpec> spec_;
   std::unique_ptr<PaymentRequestState> state_;
 
+  // May be null, must outlive this object.
+  ObserverForTest* observer_for_testing_;
+
   DISALLOW_COPY_AND_ASSIGN(PaymentRequest);
 };