Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(716)

Unified Diff: google_apis/gaia/oauth2_token_service.h

Issue 23382008: Making OAuth2TokenService multi-login aware, updating callers, minor fixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing a unit test, addressing comments from courage@ Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: google_apis/gaia/oauth2_token_service.h
diff --git a/google_apis/gaia/oauth2_token_service.h b/google_apis/gaia/oauth2_token_service.h
index 967dc93ee35955d714c93e4a0dc16337307aa7b3..6c24fb358dbbbb9c324068dfadbf381a3595c779 100644
--- a/google_apis/gaia/oauth2_token_service.h
+++ b/google_apis/gaia/oauth2_token_service.h
@@ -72,8 +72,6 @@ class OAuth2TokenService : public base::NonThreadSafe {
// Classes that want to listen for token availability should implement this
// interface and register with the AddObserver() call.
- // TODO(rogerta): may get rid of |error| argument for OnRefreshTokenRevoked()
- // once we stop supporting ClientLogin. Need to evaluate if its still useful.
class Observer {
public:
// Called whenever a new login-scoped refresh token is available for
@@ -87,8 +85,6 @@ class OAuth2TokenService : public base::NonThreadSafe {
// Called after all refresh tokens are loaded during OAuth2TokenService
// startup.
virtual void OnRefreshTokensLoaded() {}
- // Called after all refresh tokens are removed from OAuth2TokenService.
- virtual void OnRefreshTokensCleared() {}
protected:
virtual ~Observer() {}
};
@@ -111,13 +107,15 @@ class OAuth2TokenService : public base::NonThreadSafe {
// is not deleted.
// TODO(atwilson): Make this non-virtual when we change
// ProfileOAuth2TokenServiceRequestTest to use FakeProfileOAuth2TokenService.
- virtual scoped_ptr<Request> StartRequest(const ScopeSet& scopes,
+ virtual scoped_ptr<Request> StartRequest(const std::string& account_id,
Mattias Nissler (ping if slow) 2013/09/06 09:34:48 It'd be helpful to explain how account_id affects
fgorski 2013/09/12 23:46:24 Done. I've updated the documentation in the class
+ 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.
scoped_ptr<Request> StartRequestForClient(
+ const std::string& account_id,
const std::string& client_id,
const std::string& client_secret,
const ScopeSet& scopes,
@@ -127,13 +125,17 @@ class OAuth2TokenService : public base::NonThreadSafe {
// context given by |getter| instead of using the one returned by
// |GetRequestContext| implemented by derived classes.
scoped_ptr<Request> StartRequestWithContext(
+ const std::string& account_id,
net::URLRequestContextGetter* getter,
const ScopeSet& scopes,
Consumer* consumer);
+ // Lists account IDs of all accounts with a refresh token.
+ virtual std::vector<std::string> GetAccounts();
+
// Returns true if a refresh token exists. If false, calls to
// |StartRequest| will result in a Consumer::OnGetTokenFailure callback.
- virtual bool RefreshTokenIsAvailable();
+ virtual bool RefreshTokenIsAvailable(const std::string& account_id);
// Mark an OAuth2 access token as invalid. This should be done if the token
// was received from this class, but was not accepted by the server (e.g.,
@@ -170,10 +172,12 @@ class OAuth2TokenService : public base::NonThreadSafe {
// Subclasses should return the refresh token maintained.
// If no token is available, return an empty string.
- virtual std::string GetRefreshToken() = 0;
+ virtual std::string GetRefreshToken(const std::string& account_id) = 0;
// Subclasses can override if they want to report errors to the user.
- virtual void UpdateAuthError(const GoogleServiceAuthError& error);
+ virtual void UpdateAuthError(
+ const std::string& account_id,
+ const GoogleServiceAuthError& error);
// Add a new entry to the cache.
// Subclasses can override if there are implementation-specific reasons
@@ -206,7 +210,6 @@ class OAuth2TokenService : public base::NonThreadSafe {
void FireRefreshTokenAvailable(const std::string& account_id);
void FireRefreshTokenRevoked(const std::string& account_id);
void FireRefreshTokensLoaded();
- void FireRefreshTokensCleared();
// Derived classes must provide a request context used for fetching access
// tokens with the |StartRequest| method.
@@ -215,6 +218,7 @@ class OAuth2TokenService : public base::NonThreadSafe {
// 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,
+ const std::string& account_id,
net::URLRequestContextGetter* getter,
const std::string& client_id,
const std::string& client_secret,
@@ -236,6 +240,7 @@ class OAuth2TokenService : public base::NonThreadSafe {
// uses |client_id| and |client_secret| to identify OAuth
// client app instead of using Chrome's default values.
scoped_ptr<Request> StartRequestForClientWithContext(
+ const std::string& account_id,
net::URLRequestContextGetter* getter,
const std::string& client_id,
const std::string& client_secret,

Powered by Google App Engine
This is Rietveld 408576698