Chromium Code Reviews| Index: chrome/browser/chromeos/arc/arc_auth_context.h |
| diff --git a/chrome/browser/chromeos/arc/arc_auth_context.h b/chrome/browser/chromeos/arc/arc_auth_context.h |
| index d1f111525f88a203030462f00fdfe7467c932847..c391a6f06ca7d27dcc392e778508c7f821f5fc78 100644 |
| --- a/chrome/browser/chromeos/arc/arc_auth_context.h |
| +++ b/chrome/browser/chromeos/arc/arc_auth_context.h |
| @@ -10,7 +10,9 @@ |
| #include "base/macros.h" |
| #include "base/timer/timer.h" |
| +#include "google_apis/gaia/oauth2_token_service.h" |
| #include "google_apis/gaia/ubertoken_fetcher.h" |
| +#include "net/url_request/url_fetcher.h" |
| class Profile; |
| class ProfileOAuth2TokenService; |
| @@ -25,12 +27,15 @@ class ArcAuthContextDelegate; |
| class ArcAuthContext : public UbertokenConsumer, |
| public GaiaAuthConsumer, |
| - public OAuth2TokenService::Observer { |
| + public OAuth2TokenService::Observer, |
| + public OAuth2TokenService::Consumer, |
| + public net::URLFetcherDelegate { |
|
xiyuan
2016/09/07 21:07:55
Can we create a separate class and make it a membe
khmel
2016/09/07 23:08:53
+1
|
| public: |
| ArcAuthContext(ArcAuthContextDelegate* delegate, Profile* profile); |
| ~ArcAuthContext() override; |
| void PrepareContext(); |
| + void FetchAuthCode(const std::string& auth_endpoint); |
| // OAuth2TokenService::Observer: |
| void OnRefreshTokenAvailable(const std::string& account_id) override; |
| @@ -44,17 +49,31 @@ class ArcAuthContext : public UbertokenConsumer, |
| void OnMergeSessionSuccess(const std::string& data) override; |
| void OnMergeSessionFailure(const GoogleServiceAuthError& error) override; |
| + // OAuth2TokenService::Consumer: |
| + void OnGetTokenSuccess(const OAuth2TokenService::Request* request, |
| + const std::string& access_token, |
| + const base::Time& expiration_time) override; |
| + void OnGetTokenFailure(const OAuth2TokenService::Request* request, |
| + const GoogleServiceAuthError& error) override; |
| + |
| + // net::URLFetcherDelegate: |
| + void OnURLFetchComplete(const net::URLFetcher* source) override; |
| + |
| const std::string& account_id() const { return account_id_; } |
| ProfileOAuth2TokenService* token_service() { return token_service_; } |
| private: |
| void StartFetchers(); |
| + void ResetFetchers(); |
| void OnRefreshTokenTimeout(); |
| // Unowned pointers. |
| ArcAuthContextDelegate* const delegate_; |
| + Profile* const profile_; |
| ProfileOAuth2TokenService* token_service_; |
| + // URL to request auth code. |
| + std::string auth_endpoint_; |
| bool context_prepared_ = false; |
| @@ -65,6 +84,8 @@ class ArcAuthContext : public UbertokenConsumer, |
| std::string account_id_; |
| std::unique_ptr<GaiaAuthFetcher> merger_fetcher_; |
| std::unique_ptr<UbertokenFetcher> ubertoken_fetcher_; |
| + std::unique_ptr<OAuth2TokenService::Request> login_token_request_; |
| + std::unique_ptr<net::URLFetcher> auth_code_fetcher_; |
| base::OneShotTimer refresh_token_timeout_; |
| DISALLOW_COPY_AND_ASSIGN(ArcAuthContext); |