| Index: google_apis/gaia/oauth2_access_token_fetcher.h | 
| diff --git a/google_apis/gaia/oauth2_access_token_fetcher.h b/google_apis/gaia/oauth2_access_token_fetcher.h | 
| index 90805c0996353a28d5c118e1403ec6071946c657..eecf89d8f035ec15e691766690ad2d869f6eacb9 100644 | 
| --- a/google_apis/gaia/oauth2_access_token_fetcher.h | 
| +++ b/google_apis/gaia/oauth2_access_token_fetcher.h | 
| @@ -8,47 +8,24 @@ | 
| #include <string> | 
| #include <vector> | 
|  | 
| -#include "base/gtest_prod_util.h" | 
| -#include "base/memory/scoped_ptr.h" | 
| #include "google_apis/gaia/oauth2_access_token_consumer.h" | 
| #include "net/url_request/url_fetcher_delegate.h" | 
| -#include "url/gurl.h" | 
|  | 
| -class OAuth2AccessTokenFetcherTest; | 
| +class OAuth2AccessTokenConsumer; | 
|  | 
| -namespace base { | 
| -class Time; | 
| -} | 
| - | 
| -namespace net { | 
| -class URLFetcher; | 
| -class URLRequestContextGetter; | 
| -class URLRequestStatus; | 
| -} | 
| - | 
| -// Abstracts the details to get OAuth2 access token token from | 
| -// OAuth2 refresh token. | 
| -// See "Using the Refresh Token" section in: | 
| -// http://code.google.com/apis/accounts/docs/OAuth2WebServer.html | 
| -// | 
| -// This class should be used on a single thread, but it can be whichever thread | 
| -// that you like. | 
| -// Also, do not reuse the same instance. Once Start() is called, the instance | 
| -// should not be reused. | 
| +// Interface of a OAuth2 access token token. | 
| // | 
| // Usage: | 
| // * Create an instance with a consumer. | 
| // * Call Start() | 
| -// * The consumer passed in the constructor will be called on the same | 
| -//   thread Start was called with the results. | 
| +// * The consumer will be called on the same thread Start was called with the | 
| +// * results. | 
| // | 
| // This class can handle one request at a time. To parallelize requests, | 
| // create multiple instances. | 
| -class OAuth2AccessTokenFetcher : public net::URLFetcherDelegate { | 
| +class OAuth2AccessTokenFetcher { | 
| public: | 
| -  OAuth2AccessTokenFetcher(OAuth2AccessTokenConsumer* consumer, | 
| -                           net::URLRequestContextGetter* getter); | 
| -  virtual ~OAuth2AccessTokenFetcher(); | 
| +  virtual ~OAuth2AccessTokenFetcher() {}; | 
|  | 
| // Starts the flow with the given parameters. | 
| // |scopes| can be empty. If it is empty then the access token will have the | 
| @@ -59,66 +36,11 @@ class OAuth2AccessTokenFetcher : public net::URLFetcherDelegate { | 
| virtual void Start(const std::string& client_id, | 
| const std::string& client_secret, | 
| const std::string& refresh_token, | 
| -                     const std::vector<std::string>& scopes); | 
| - | 
| -  void CancelRequest(); | 
| - | 
| -  // Implementation of net::URLFetcherDelegate | 
| -  virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; | 
| - | 
| - private: | 
| -  enum State { | 
| -    INITIAL, | 
| -    GET_ACCESS_TOKEN_STARTED, | 
| -    GET_ACCESS_TOKEN_DONE, | 
| -    ERROR_STATE, | 
| -  }; | 
| - | 
| -  // Helper methods for the flow. | 
| -  void StartGetAccessToken(); | 
| -  void EndGetAccessToken(const net::URLFetcher* source); | 
| - | 
| -  // Helper mehtods for reporting back results. | 
| -  void OnGetTokenSuccess(const std::string& access_token, | 
| -                         const base::Time& expiration_time); | 
| -  void OnGetTokenFailure(const GoogleServiceAuthError& error); | 
| - | 
| -  // Other helpers. | 
| -  static GURL MakeGetAccessTokenUrl(); | 
| -  static std::string MakeGetAccessTokenBody( | 
| -      const std::string& client_id, | 
| -      const std::string& client_secret, | 
| -      const std::string& refresh_token, | 
| -      const std::vector<std::string>& scopes); | 
| - | 
| -  static bool ParseGetAccessTokenSuccessResponse( | 
| -      const net::URLFetcher* source, | 
| -      std::string* access_token, | 
| -      int* expires_in); | 
| - | 
| -  static bool ParseGetAccessTokenFailureResponse( | 
| -      const net::URLFetcher* source, | 
| -      std::string* error); | 
| - | 
| -  // State that is set during construction. | 
| -  OAuth2AccessTokenConsumer* const consumer_; | 
| -  net::URLRequestContextGetter* const getter_; | 
| -  State state_; | 
| - | 
| -  // While a fetch is in progress. | 
| -  scoped_ptr<net::URLFetcher> fetcher_; | 
| -  std::string client_id_; | 
| -  std::string client_secret_; | 
| -  std::string refresh_token_; | 
| -  std::vector<std::string> scopes_; | 
| - | 
| -  friend class OAuth2AccessTokenFetcherTest; | 
| -  FRIEND_TEST_ALL_PREFIXES(OAuth2AccessTokenFetcherTest, | 
| -                           ParseGetAccessTokenResponse); | 
| -  FRIEND_TEST_ALL_PREFIXES(OAuth2AccessTokenFetcherTest, | 
| -                           MakeGetAccessTokenBody); | 
| +                     const std::vector<std::string>& scopes, | 
| +                     OAuth2AccessTokenConsumer* consumer) = 0; | 
|  | 
| -  DISALLOW_COPY_AND_ASSIGN(OAuth2AccessTokenFetcher); | 
| +  // Cancels the current request and informs the consumer. | 
| +  virtual void CancelRequest() = 0; | 
| }; | 
|  | 
| #endif  // GOOGLE_APIS_GAIA_OAUTH2_ACCESS_TOKEN_FETCHER_H_ | 
|  |