| Index: chrome/browser/signin/oauth2_token_service.h
|
| diff --git a/chrome/browser/signin/oauth2_token_service.h b/chrome/browser/signin/oauth2_token_service.h
|
| index 1d335ccd801488af56bf3c4ae6a1f21be7ca5618..ac993de001916063142bee3387969c2109114ab1 100644
|
| --- a/chrome/browser/signin/oauth2_token_service.h
|
| +++ b/chrome/browser/signin/oauth2_token_service.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/observer_list.h"
|
| +#include "base/threading/non_thread_safe.h"
|
| #include "base/time/time.h"
|
| #include "google_apis/gaia/google_service_auth_error.h"
|
|
|
| @@ -49,7 +50,7 @@ class GoogleServiceAuthError;
|
| //
|
| // The caller of StartRequest() owns the returned request and is responsible to
|
| // delete the request even once the callback has been invoked.
|
| -class OAuth2TokenService {
|
| +class OAuth2TokenService : public base::NonThreadSafe {
|
| public:
|
| // Class representing a request that fetches an OAuth2 access token.
|
| class Request {
|
| @@ -113,13 +114,15 @@ class OAuth2TokenService {
|
| // |scopes| is the set of scopes to get an access token for, |consumer| is
|
| // the object that will be called back with results if the returned request
|
| // is not deleted.
|
| + // TODO(atwilson): Make this non-virtual when we change
|
| + // ProfileOAuth2TokenServiceRequestTest to use FakeProfileOAuth2TokenService.
|
| virtual scoped_ptr<Request> StartRequest(const ScopeSet& scopes,
|
| Consumer* consumer);
|
|
|
| // This method does the same as |StartRequest| except it uses |client_id| and
|
| // |client_secret| to identify OAuth client app instead of using
|
| // Chrome's default values.
|
| - virtual scoped_ptr<Request> StartRequestForClient(
|
| + scoped_ptr<Request> StartRequestForClient(
|
| const std::string& client_id,
|
| const std::string& client_secret,
|
| const ScopeSet& scopes,
|
| @@ -128,7 +131,7 @@ class OAuth2TokenService {
|
| // This method does the same as |StartRequest| except it uses the request
|
| // context given by |getter| instead of using the one returned by
|
| // |GetRequestContext| implemented by derived classes.
|
| - virtual scoped_ptr<Request> StartRequestWithContext(
|
| + scoped_ptr<Request> StartRequestWithContext(
|
| net::URLRequestContextGetter* getter,
|
| const ScopeSet& scopes,
|
| Consumer* consumer);
|
| @@ -190,8 +193,9 @@ class OAuth2TokenService {
|
|
|
| // Posts a task to fire the Consumer callback with the cached token. Must
|
| // Must only be called if HasCacheEntry() returns true.
|
| - scoped_ptr<Request> StartCacheLookupRequest(const ScopeSet& scopes,
|
| - Consumer* consumer);
|
| + void StartCacheLookupRequest(RequestImpl* request,
|
| + const ScopeSet& scopes,
|
| + Consumer* consumer);
|
|
|
| // Clears the internal token cache.
|
| void ClearCache();
|
| @@ -208,11 +212,19 @@ class OAuth2TokenService {
|
| void FireRefreshTokensLoaded();
|
| void FireRefreshTokensCleared();
|
|
|
| - private:
|
| // Derived classes must provide a request context used for fetching access
|
| // tokens with the |StartRequest| method.
|
| virtual net::URLRequestContextGetter* GetRequestContext() = 0;
|
|
|
| + // Fetches an OAuth token for the specified client/scopes. Virtual so it can
|
| + // be overridden for tests and for platform-specific behavior on Android.
|
| + virtual void FetchOAuth2Token(RequestImpl* request,
|
| + net::URLRequestContextGetter* getter,
|
| + const std::string& client_id,
|
| + const std::string& client_secret,
|
| + const ScopeSet& scopes);
|
| +
|
| + private:
|
| // Class that fetches an OAuth2 access token for a given set of scopes and
|
| // OAuth2 refresh token.
|
| class Fetcher;
|
|
|