Index: chrome/common/net/gaia/oauth2_api_call_flow.h |
diff --git a/chrome/common/net/gaia/oauth2_api_call_flow.h b/chrome/common/net/gaia/oauth2_api_call_flow.h |
deleted file mode 100644 |
index c53aa4573769b9ec2d8ff4f984f6489c135fbfbd..0000000000000000000000000000000000000000 |
--- a/chrome/common/net/gaia/oauth2_api_call_flow.h |
+++ /dev/null |
@@ -1,128 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_COMMON_NET_GAIA_OAUTH2_API_CALL_FLOW_H_ |
-#define CHROME_COMMON_NET_GAIA_OAUTH2_API_CALL_FLOW_H_ |
- |
-#include <string> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "chrome/common/net/gaia/oauth2_access_token_consumer.h" |
-#include "chrome/common/net/gaia/oauth2_access_token_fetcher.h" |
-#include "chrome/common/net/gaia/oauth2_mint_token_consumer.h" |
-#include "chrome/common/net/gaia/oauth2_mint_token_fetcher.h" |
-#include "net/url_request/url_fetcher_delegate.h" |
- |
-class GoogleServiceAuthError; |
-class OAuth2MintTokenFlowTest; |
- |
-namespace net { |
-class URLFetcher; |
-class URLRequestContextGetter; |
-} |
- |
-// Base class for all classes that implement a flow to call OAuth2 |
-// enabled APIs. |
-// |
-// Given a refresh token, an access token, and a list of scopes an OAuth2 |
-// enabled API is called in the following way: |
-// 1. Try the given access token to call the API. |
-// 2. If that does not work, use the refresh token and scopes to generate |
-// a new access token. |
-// 3. Try the new access token to call the API. |
-// |
-// This class abstracts the basic steps and exposes template methods |
-// for sub-classes to implement for API specific details. |
-class OAuth2ApiCallFlow |
- : public net::URLFetcherDelegate, |
- public OAuth2AccessTokenConsumer { |
- public: |
- // Creates an instance that works with the given data. |
- // Note that |access_token| can be empty. In that case, the flow will skip |
- // the first step (of trying an existing access token). |
- OAuth2ApiCallFlow( |
- net::URLRequestContextGetter* context, |
- const std::string& refresh_token, |
- const std::string& access_token, |
- const std::vector<std::string>& scopes); |
- |
- virtual ~OAuth2ApiCallFlow(); |
- |
- // Start the flow. |
- virtual void Start(); |
- |
- // OAuth2AccessTokenFetcher implementation. |
- virtual void OnGetTokenSuccess(const std::string& access_token, |
- const base::Time& expiration_time) OVERRIDE; |
- virtual void OnGetTokenFailure(const GoogleServiceAuthError& error) OVERRIDE; |
- |
- // net::URLFetcherDelegate implementation. |
- virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; |
- |
- protected: |
- // Template methods for sub-classes. |
- |
- // Methods to help create HTTP request. |
- virtual GURL CreateApiCallUrl() = 0; |
- virtual std::string CreateApiCallBody() = 0; |
- |
- // Sub-classes can expose an appropriate observer interface by implementing |
- // these template methods. |
- // Called when the API call finished successfully. |
- virtual void ProcessApiCallSuccess(const net::URLFetcher* source) = 0; |
- // Called when the API call failed. |
- virtual void ProcessApiCallFailure(const net::URLFetcher* source) = 0; |
- // Called when a new access token is generated. |
- virtual void ProcessNewAccessToken(const std::string& access_token) = 0; |
- virtual void ProcessMintAccessTokenFailure( |
- const GoogleServiceAuthError& error) = 0; |
- |
- private: |
- enum State { |
- INITIAL, |
- API_CALL_STARTED, |
- API_CALL_DONE, |
- MINT_ACCESS_TOKEN_STARTED, |
- MINT_ACCESS_TOKEN_DONE, |
- ERROR_STATE |
- }; |
- |
- friend class OAuth2ApiCallFlowTest; |
- FRIEND_TEST_ALL_PREFIXES(OAuth2ApiCallFlowTest, CreateURLFetcher); |
- |
- // Helper to create an instance of access token fetcher. |
- // Caller owns the returned instance. |
- // Note that this is virtual since it is mocked during unit testing. |
- virtual OAuth2AccessTokenFetcher* CreateAccessTokenFetcher(); |
- |
- // Creates an instance of URLFetcher that does not send or save cookies. |
- // Template method CreateApiCallUrl is used to get the URL. |
- // Template method CreateApiCallBody is used to get the body. |
- // The URLFether's method will be GET if body is empty, POST otherwise. |
- // Caller owns the returned instance. |
- // Note that this is virtual since it is mocked during unit testing. |
- virtual net::URLFetcher* CreateURLFetcher(); |
- |
- // Helper methods to implement the state machine for the flow. |
- void BeginApiCall(); |
- void EndApiCall(const net::URLFetcher* source); |
- void BeginMintAccessToken(); |
- void EndMintAccessToken(const GoogleServiceAuthError* error); |
- |
- net::URLRequestContextGetter* context_; |
- std::string refresh_token_; |
- std::string access_token_; |
- std::vector<std::string> scopes_; |
- |
- State state_; |
- // Whether we have already tried minting an access token once. |
- bool tried_mint_access_token_; |
- |
- scoped_ptr<net::URLFetcher> url_fetcher_; |
- scoped_ptr<OAuth2AccessTokenFetcher> oauth2_access_token_fetcher_; |
- |
- DISALLOW_COPY_AND_ASSIGN(OAuth2ApiCallFlow); |
-}; |
- |
-#endif // CHROME_COMMON_NET_GAIA_OAUTH2_API_CALL_FLOW_H_ |