| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_CLIENT_H_ | 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_CLIENT_H_ |
| 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_CLIENT_H_ | 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_CLIENT_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 // on failure. | 37 // on failure. |
| 38 virtual void OnDidGetRealPan(AutofillClient::PaymentsRpcResult result, | 38 virtual void OnDidGetRealPan(AutofillClient::PaymentsRpcResult result, |
| 39 const std::string& real_pan) = 0; | 39 const std::string& real_pan) = 0; |
| 40 | 40 |
| 41 // Returns the legal message retrieved from Payments. On failure or not | 41 // Returns the legal message retrieved from Payments. On failure or not |
| 42 // meeting Payments's conditions for upload, |legal_message| will contain | 42 // meeting Payments's conditions for upload, |legal_message| will contain |
| 43 // nullptr. | 43 // nullptr. |
| 44 virtual void OnDidGetUploadDetails( | 44 virtual void OnDidGetUploadDetails( |
| 45 AutofillClient::PaymentsRpcResult result, | 45 AutofillClient::PaymentsRpcResult result, |
| 46 const base::string16& context_token, | 46 const base::string16& context_token, |
| 47 scoped_ptr<base::DictionaryValue> legal_message) = 0; | 47 std::unique_ptr<base::DictionaryValue> legal_message) = 0; |
| 48 | 48 |
| 49 // Returns the result of an upload request. | 49 // Returns the result of an upload request. |
| 50 virtual void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) = 0; | 50 virtual void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) = 0; |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 // PaymentsClient issues Payments RPCs and manages responses and failure | 53 // PaymentsClient issues Payments RPCs and manages responses and failure |
| 54 // conditions. Only one request may be active at a time. Initiating a new | 54 // conditions. Only one request may be active at a time. Initiating a new |
| 55 // request will cancel a pending request. | 55 // request will cancel a pending request. |
| 56 // Tests are located in | 56 // Tests are located in |
| 57 // src/components/autofill/content/browser/wallet/payments_client_unittest.cc. | 57 // src/components/autofill/content/browser/wallet/payments_client_unittest.cc. |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 // GetUploadDetails has not already been made. | 112 // GetUploadDetails has not already been made. |
| 113 virtual void UploadCard(const UploadRequestDetails& details); | 113 virtual void UploadCard(const UploadRequestDetails& details); |
| 114 | 114 |
| 115 // Cancels and clears the current |request_|. | 115 // Cancels and clears the current |request_|. |
| 116 void CancelRequest(); | 116 void CancelRequest(); |
| 117 | 117 |
| 118 private: | 118 private: |
| 119 // Initiates a Payments request using the state in |request|. If | 119 // Initiates a Payments request using the state in |request|. If |
| 120 // |authenticate| is true, ensures that an OAuth token is avialble first. | 120 // |authenticate| is true, ensures that an OAuth token is avialble first. |
| 121 // Takes ownership of |request|. | 121 // Takes ownership of |request|. |
| 122 void IssueRequest(scoped_ptr<PaymentsRequest> request, bool authenticate); | 122 void IssueRequest(std::unique_ptr<PaymentsRequest> request, |
| 123 bool authenticate); |
| 123 | 124 |
| 124 // net::URLFetcherDelegate: | 125 // net::URLFetcherDelegate: |
| 125 void OnURLFetchComplete(const net::URLFetcher* source) override; | 126 void OnURLFetchComplete(const net::URLFetcher* source) override; |
| 126 | 127 |
| 127 // OAuth2TokenService::Consumer implementation. | 128 // OAuth2TokenService::Consumer implementation. |
| 128 void OnGetTokenSuccess(const OAuth2TokenService::Request* request, | 129 void OnGetTokenSuccess(const OAuth2TokenService::Request* request, |
| 129 const std::string& access_token, | 130 const std::string& access_token, |
| 130 const base::Time& expiration_time) override; | 131 const base::Time& expiration_time) override; |
| 131 void OnGetTokenFailure(const OAuth2TokenService::Request* request, | 132 void OnGetTokenFailure(const OAuth2TokenService::Request* request, |
| 132 const GoogleServiceAuthError& error) override; | 133 const GoogleServiceAuthError& error) override; |
| 133 | 134 |
| 134 // Creates |url_fetcher_| based on the current state of |request_|. | 135 // Creates |url_fetcher_| based on the current state of |request_|. |
| 135 void InitializeUrlFetcher(); | 136 void InitializeUrlFetcher(); |
| 136 | 137 |
| 137 // Initiates a new OAuth2 token request. | 138 // Initiates a new OAuth2 token request. |
| 138 void StartTokenFetch(bool invalidate_old); | 139 void StartTokenFetch(bool invalidate_old); |
| 139 | 140 |
| 140 // Adds the token to |url_fetcher_| and starts the request. | 141 // Adds the token to |url_fetcher_| and starts the request. |
| 141 void SetOAuth2TokenAndStartRequest(); | 142 void SetOAuth2TokenAndStartRequest(); |
| 142 | 143 |
| 143 // The context for the request. | 144 // The context for the request. |
| 144 scoped_refptr<net::URLRequestContextGetter> context_getter_; | 145 scoped_refptr<net::URLRequestContextGetter> context_getter_; |
| 145 | 146 |
| 146 // Observer class that has its various On* methods called based on the results | 147 // Observer class that has its various On* methods called based on the results |
| 147 // of a Payments request. | 148 // of a Payments request. |
| 148 PaymentsClientDelegate* const delegate_; // must outlive |this|. | 149 PaymentsClientDelegate* const delegate_; // must outlive |this|. |
| 149 | 150 |
| 150 // The current request. | 151 // The current request. |
| 151 scoped_ptr<PaymentsRequest> request_; | 152 std::unique_ptr<PaymentsRequest> request_; |
| 152 | 153 |
| 153 // The fetcher being used to issue the current request. | 154 // The fetcher being used to issue the current request. |
| 154 scoped_ptr<net::URLFetcher> url_fetcher_; | 155 std::unique_ptr<net::URLFetcher> url_fetcher_; |
| 155 | 156 |
| 156 // The current OAuth2 token request object. | 157 // The current OAuth2 token request object. |
| 157 scoped_ptr<OAuth2TokenService::Request> access_token_request_; | 158 std::unique_ptr<OAuth2TokenService::Request> access_token_request_; |
| 158 | 159 |
| 159 // The OAuth2 token, or empty if not fetched. | 160 // The OAuth2 token, or empty if not fetched. |
| 160 std::string access_token_; | 161 std::string access_token_; |
| 161 | 162 |
| 162 // True if |request_| has already retried due to a 401 response from the | 163 // True if |request_| has already retried due to a 401 response from the |
| 163 // server. | 164 // server. |
| 164 bool has_retried_authorization_; | 165 bool has_retried_authorization_; |
| 165 | 166 |
| 166 base::WeakPtrFactory<PaymentsClient> weak_ptr_factory_; | 167 base::WeakPtrFactory<PaymentsClient> weak_ptr_factory_; |
| 167 | 168 |
| 168 DISALLOW_COPY_AND_ASSIGN(PaymentsClient); | 169 DISALLOW_COPY_AND_ASSIGN(PaymentsClient); |
| 169 }; | 170 }; |
| 170 | 171 |
| 171 } // namespace payments | 172 } // namespace payments |
| 172 } // namespace autofill | 173 } // namespace autofill |
| 173 | 174 |
| 174 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_CLIENT_H_ | 175 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_CLIENT_H_ |
| OLD | NEW |