| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_CRYPTAUTH_CRYPTAUTH_CLIENT_IMPL_H_ | 5 #ifndef COMPONENTS_CRYPTAUTH_CRYPTAUTH_CLIENT_IMPL_H_ |
| 6 #define COMPONENTS_CRYPTAUTH_CRYPTAUTH_CLIENT_IMPL_H_ | 6 #define COMPONENTS_CRYPTAUTH_CRYPTAUTH_CLIENT_IMPL_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "components/cryptauth/cryptauth_access_token_fetcher.h" | 10 #include "components/cryptauth/cryptauth_access_token_fetcher.h" |
| 11 #include "components/cryptauth/cryptauth_api_call_flow.h" | 11 #include "components/cryptauth/cryptauth_api_call_flow.h" |
| 12 #include "components/cryptauth/cryptauth_client.h" | 12 #include "components/cryptauth/cryptauth_client.h" |
| 13 #include "components/cryptauth/proto/cryptauth_api.pb.h" | 13 #include "components/cryptauth/proto/cryptauth_api.pb.h" |
| 14 #include "net/traffic_annotation/network_traffic_annotation.h" |
| 14 #include "net/url_request/url_request_context_getter.h" | 15 #include "net/url_request/url_request_context_getter.h" |
| 15 | 16 |
| 16 class OAuth2TokenService; | 17 class OAuth2TokenService; |
| 17 | 18 |
| 18 namespace cryptauth { | 19 namespace cryptauth { |
| 19 | 20 |
| 20 // Implementation of CryptAuthClient. | 21 // Implementation of CryptAuthClient. |
| 21 // Note: There is no need to set the |device_classifier| field in request | 22 // Note: There is no need to set the |device_classifier| field in request |
| 22 // messages. CryptAuthClient will fill this field for all requests. | 23 // messages. CryptAuthClient will fill this field for all requests. |
| 23 class CryptAuthClientImpl : public CryptAuthClient { | 24 class CryptAuthClientImpl : public CryptAuthClient { |
| 24 public: | 25 public: |
| 25 typedef base::Callback<void(const std::string&)> ErrorCallback; | 26 typedef base::Callback<void(const std::string&)> ErrorCallback; |
| 26 | 27 |
| 27 // Creates the client using |url_request_context| to make the HTTP request | 28 // Creates the client using |url_request_context| to make the HTTP request |
| 28 // through |api_call_flow|. CryptAuthClientImpl takes ownership of | 29 // through |api_call_flow|. CryptAuthClientImpl takes ownership of |
| 29 // |access_token_fetcher|, which provides the access token authorizing | 30 // |access_token_fetcher|, which provides the access token authorizing |
| 30 // CryptAuth requests. The |device_classifier| argument contains basic device | 31 // CryptAuth requests. The |device_classifier| argument contains basic device |
| 31 // information of the caller (e.g. version and device type). | 32 // information of the caller (e.g. version and device type). |
| 32 CryptAuthClientImpl( | 33 CryptAuthClientImpl( |
| 33 std::unique_ptr<CryptAuthApiCallFlow> api_call_flow, | 34 std::unique_ptr<CryptAuthApiCallFlow> api_call_flow, |
| 34 std::unique_ptr<CryptAuthAccessTokenFetcher> access_token_fetcher, | 35 std::unique_ptr<CryptAuthAccessTokenFetcher> access_token_fetcher, |
| 35 scoped_refptr<net::URLRequestContextGetter> url_request_context, | 36 scoped_refptr<net::URLRequestContextGetter> url_request_context, |
| 36 const DeviceClassifier& device_classifier); | 37 const DeviceClassifier& device_classifier); |
| 37 ~CryptAuthClientImpl() override; | 38 ~CryptAuthClientImpl() override; |
| 38 | 39 |
| 39 // CryptAuthClient: | 40 // CryptAuthClient: |
| 40 void GetMyDevices(const GetMyDevicesRequest& request, | 41 void GetMyDevices(const GetMyDevicesRequest& request, |
| 41 const GetMyDevicesCallback& callback, | 42 const GetMyDevicesCallback& callback, |
| 42 const ErrorCallback& error_callback) override; | 43 const ErrorCallback& error_callback, |
| 44 const net::PartialNetworkTrafficAnnotationTag& |
| 45 partial_traffic_annotation) override; |
| 43 void FindEligibleUnlockDevices( | 46 void FindEligibleUnlockDevices( |
| 44 const FindEligibleUnlockDevicesRequest& request, | 47 const FindEligibleUnlockDevicesRequest& request, |
| 45 const FindEligibleUnlockDevicesCallback& callback, | 48 const FindEligibleUnlockDevicesCallback& callback, |
| 46 const ErrorCallback& error_callback) override; | 49 const ErrorCallback& error_callback) override; |
| 47 void SendDeviceSyncTickle( | 50 void SendDeviceSyncTickle(const SendDeviceSyncTickleRequest& request, |
| 48 const SendDeviceSyncTickleRequest& request, | 51 const SendDeviceSyncTickleCallback& callback, |
| 49 const SendDeviceSyncTickleCallback& callback, | 52 const ErrorCallback& error_callback, |
| 50 const ErrorCallback& error_callback) override; | 53 const net::PartialNetworkTrafficAnnotationTag& |
| 54 partial_traffic_annotation) override; |
| 51 void ToggleEasyUnlock(const ToggleEasyUnlockRequest& request, | 55 void ToggleEasyUnlock(const ToggleEasyUnlockRequest& request, |
| 52 const ToggleEasyUnlockCallback& callback, | 56 const ToggleEasyUnlockCallback& callback, |
| 53 const ErrorCallback& error_callback) override; | 57 const ErrorCallback& error_callback) override; |
| 54 void SetupEnrollment(const SetupEnrollmentRequest& request, | 58 void SetupEnrollment(const SetupEnrollmentRequest& request, |
| 55 const SetupEnrollmentCallback& callback, | 59 const SetupEnrollmentCallback& callback, |
| 56 const ErrorCallback& error_callback) override; | 60 const ErrorCallback& error_callback) override; |
| 57 void FinishEnrollment(const FinishEnrollmentRequest& request, | 61 void FinishEnrollment(const FinishEnrollmentRequest& request, |
| 58 const FinishEnrollmentCallback& callback, | 62 const FinishEnrollmentCallback& callback, |
| 59 const ErrorCallback& error_callback) override; | 63 const ErrorCallback& error_callback) override; |
| 60 std::string GetAccessTokenUsed() override; | 64 std::string GetAccessTokenUsed() override; |
| 61 | 65 |
| 62 private: | 66 private: |
| 63 // Starts a call to the API given by |request_path|, with the templated | 67 // Starts a call to the API given by |request_path|, with the templated |
| 64 // request and response types. The client first fetches the access token and | 68 // request and response types. The client first fetches the access token and |
| 65 // then makes the HTTP request. | 69 // then makes the HTTP request. |
| 66 template <class RequestProto, class ResponseProto> | 70 template <class RequestProto, class ResponseProto> |
| 67 void MakeApiCall( | 71 void MakeApiCall( |
| 68 const std::string& request_path, | 72 const std::string& request_path, |
| 69 const RequestProto& request_proto, | 73 const RequestProto& request_proto, |
| 70 const base::Callback<void(const ResponseProto&)>& response_callback, | 74 const base::Callback<void(const ResponseProto&)>& response_callback, |
| 71 const ErrorCallback& error_callback); | 75 const ErrorCallback& error_callback, |
| 76 const net::PartialNetworkTrafficAnnotationTag& |
| 77 partial_traffic_annotation); |
| 72 | 78 |
| 73 // Called when the access token is obtained so the API request can be made. | 79 // Called when the access token is obtained so the API request can be made. |
| 74 template <class ResponseProto> | 80 template <class ResponseProto> |
| 75 void OnAccessTokenFetched( | 81 void OnAccessTokenFetched( |
| 76 const std::string& serialized_request, | 82 const std::string& serialized_request, |
| 77 const base::Callback<void(const ResponseProto&)>& response_callback, | 83 const base::Callback<void(const ResponseProto&)>& response_callback, |
| 78 const std::string& access_token); | 84 const std::string& access_token); |
| 79 | 85 |
| 80 // Called with CryptAuthApiCallFlow completes successfully to deserialize and | 86 // Called with CryptAuthApiCallFlow completes successfully to deserialize and |
| 81 // return the result. | 87 // return the result. |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 const std::string account_id_; | 147 const std::string account_id_; |
| 142 const scoped_refptr<net::URLRequestContextGetter> url_request_context_; | 148 const scoped_refptr<net::URLRequestContextGetter> url_request_context_; |
| 143 const DeviceClassifier device_classifier_; | 149 const DeviceClassifier device_classifier_; |
| 144 | 150 |
| 145 DISALLOW_COPY_AND_ASSIGN(CryptAuthClientFactoryImpl); | 151 DISALLOW_COPY_AND_ASSIGN(CryptAuthClientFactoryImpl); |
| 146 }; | 152 }; |
| 147 | 153 |
| 148 } // namespace cryptauth | 154 } // namespace cryptauth |
| 149 | 155 |
| 150 #endif // COMPONENTS_CRYPTAUTH_CRYPTAUTH_CLIENT_IMPL_H_ | 156 #endif // COMPONENTS_CRYPTAUTH_CRYPTAUTH_CLIENT_IMPL_H_ |
| OLD | NEW |