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

Side by Side Diff: chrome/browser/signin/token_service.h

Issue 15734014: Split token-related methods from WebDataService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix DEPs again Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // The TokenService will supply authentication tokens for any service that 5 // The TokenService will supply authentication tokens for any service that
6 // needs it, such as sync. Whenever the user logs in, a controller watching 6 // needs it, such as sync. Whenever the user logs in, a controller watching
7 // the token service is expected either to call ClientLogin to derive a new 7 // the token service is expected either to call ClientLogin to derive a new
8 // SID and LSID, or to use GAIA OAuth requests to derive an OAuth1 access 8 // SID and LSID, or to use GAIA OAuth requests to derive an OAuth1 access
9 // token for the OAuthLogin scope. Whenever such credentials are available, 9 // token for the OAuthLogin scope. Whenever such credentials are available,
10 // the TokenService should be updated with new credentials. The controller 10 // the TokenService should be updated with new credentials. The controller
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #define CHROME_BROWSER_SIGNIN_TOKEN_SERVICE_H_ 45 #define CHROME_BROWSER_SIGNIN_TOKEN_SERVICE_H_
46 46
47 #include <map> 47 #include <map>
48 #include <string> 48 #include <string>
49 #include <vector> 49 #include <vector>
50 50
51 #include "base/gtest_prod_util.h" 51 #include "base/gtest_prod_util.h"
52 #include "base/memory/scoped_ptr.h" 52 #include "base/memory/scoped_ptr.h"
53 #include "base/observer_list.h" 53 #include "base/observer_list.h"
54 #include "chrome/browser/signin/signin_internals_util.h" 54 #include "chrome/browser/signin/signin_internals_util.h"
55 #include "chrome/browser/webdata/web_data_service.h"
56 #include "components/browser_context_keyed_service/browser_context_keyed_service .h" 55 #include "components/browser_context_keyed_service/browser_context_keyed_service .h"
56 #include "components/webdata/common/web_data_service_base.h"
57 #include "components/webdata/common/web_data_service_consumer.h"
57 #include "google_apis/gaia/gaia_auth_consumer.h" 58 #include "google_apis/gaia/gaia_auth_consumer.h"
58 #include "google_apis/gaia/gaia_auth_fetcher.h" 59 #include "google_apis/gaia/gaia_auth_fetcher.h"
59 #include "google_apis/gaia/google_service_auth_error.h" 60 #include "google_apis/gaia/google_service_auth_error.h"
60 61
61 class Profile; 62 class Profile;
62 class TokenServiceTest; 63 class TokenServiceTest;
64 class TokenWebData;
63 65
64 namespace net { 66 namespace net {
65 class URLRequestContextGetter; 67 class URLRequestContextGetter;
66 } 68 }
67 69
68 // The TokenService is a Profile member, so all calls are expected 70 // The TokenService is a Profile member, so all calls are expected
69 // from the UI thread. 71 // from the UI thread.
70 class TokenService : public GaiaAuthConsumer, 72 class TokenService : public GaiaAuthConsumer,
71 public BrowserContextKeyedService, 73 public BrowserContextKeyedService,
72 public WebDataServiceConsumer { 74 public WebDataServiceConsumer {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 const std::string& auth_token) OVERRIDE; 183 const std::string& auth_token) OVERRIDE;
182 virtual void OnIssueAuthTokenFailure( 184 virtual void OnIssueAuthTokenFailure(
183 const std::string& service, 185 const std::string& service,
184 const GoogleServiceAuthError& error) OVERRIDE; 186 const GoogleServiceAuthError& error) OVERRIDE;
185 virtual void OnClientOAuthSuccess(const ClientOAuthResult& result) OVERRIDE; 187 virtual void OnClientOAuthSuccess(const ClientOAuthResult& result) OVERRIDE;
186 virtual void OnClientOAuthFailure( 188 virtual void OnClientOAuthFailure(
187 const GoogleServiceAuthError& error) OVERRIDE; 189 const GoogleServiceAuthError& error) OVERRIDE;
188 190
189 // WebDataServiceConsumer implementation. 191 // WebDataServiceConsumer implementation.
190 virtual void OnWebDataServiceRequestDone( 192 virtual void OnWebDataServiceRequestDone(
191 WebDataService::Handle h, 193 WebDataServiceBase::Handle h,
192 const WDTypedResult* result) OVERRIDE; 194 const WDTypedResult* result) OVERRIDE;
193 195
194 // Gets the list of all service names for which tokens will be retrieved. 196 // Gets the list of all service names for which tokens will be retrieved.
195 static void GetServiceNames(std::vector<std::string>* names); 197 static void GetServiceNames(std::vector<std::string>* names);
196 198
197 protected: 199 protected:
198 // Saves OAuth2 credentials. 200 // Saves OAuth2 credentials.
199 void SaveOAuth2Credentials(const ClientOAuthResult& result); 201 void SaveOAuth2Credentials(const ClientOAuthResult& result);
200 202
201 void set_tokens_loaded(bool loaded) { 203 void set_tokens_loaded(bool loaded) {
(...skipping 18 matching lines...) Expand all
220 void SaveAuthTokenToDB(const std::string& service, 222 void SaveAuthTokenToDB(const std::string& service,
221 const std::string& auth_token); 223 const std::string& auth_token);
222 224
223 // Returns the index of the given service. 225 // Returns the index of the given service.
224 static int GetServiceIndex(const std::string& service); 226 static int GetServiceIndex(const std::string& service);
225 227
226 // The profile with which this instance was initialized, or NULL. 228 // The profile with which this instance was initialized, or NULL.
227 Profile* profile_; 229 Profile* profile_;
228 230
229 // Web data service to access tokens from. 231 // Web data service to access tokens from.
230 scoped_refptr<WebDataService> web_data_service_; 232 scoped_refptr<TokenWebData> token_web_data_;
231 // Getter to use for fetchers. 233 // Getter to use for fetchers.
232 scoped_refptr<net::URLRequestContextGetter> getter_; 234 scoped_refptr<net::URLRequestContextGetter> getter_;
233 // Request handle to load Gaia tokens from DB. 235 // Request handle to load Gaia tokens from DB.
234 WebDataService::Handle token_loading_query_; 236 WebDataServiceBase::Handle token_loading_query_;
235 // True if token loading has completed (regardless of success). 237 // True if token loading has completed (regardless of success).
236 bool tokens_loaded_; 238 bool tokens_loaded_;
237 239
238 // Gaia request source for Gaia accounting. 240 // Gaia request source for Gaia accounting.
239 std::string source_; 241 std::string source_;
240 // Credentials from ClientLogin for Issuing auth tokens. 242 // Credentials from ClientLogin for Issuing auth tokens.
241 GaiaAuthConsumer::ClientLoginResult credentials_; 243 GaiaAuthConsumer::ClientLoginResult credentials_;
242 244
243 // A bunch of fetchers suitable for ClientLogin token issuing. We don't care 245 // A bunch of fetchers suitable for ClientLogin token issuing. We don't care
244 // about the ordering, nor do we care which is for which service. The 246 // about the ordering, nor do we care which is for which service. The
(...skipping 11 matching lines...) Expand all
256 258
257 friend class TokenServiceTest; 259 friend class TokenServiceTest;
258 FRIEND_TEST_ALL_PREFIXES(TokenServiceTest, LoadTokensIntoMemoryBasic); 260 FRIEND_TEST_ALL_PREFIXES(TokenServiceTest, LoadTokensIntoMemoryBasic);
259 FRIEND_TEST_ALL_PREFIXES(TokenServiceTest, LoadTokensIntoMemoryAdvanced); 261 FRIEND_TEST_ALL_PREFIXES(TokenServiceTest, LoadTokensIntoMemoryAdvanced);
260 FRIEND_TEST_ALL_PREFIXES(TokenServiceTest, FullIntegrationNewServicesAdded); 262 FRIEND_TEST_ALL_PREFIXES(TokenServiceTest, FullIntegrationNewServicesAdded);
261 263
262 DISALLOW_COPY_AND_ASSIGN(TokenService); 264 DISALLOW_COPY_AND_ASSIGN(TokenService);
263 }; 265 };
264 266
265 #endif // CHROME_BROWSER_SIGNIN_TOKEN_SERVICE_H_ 267 #endif // CHROME_BROWSER_SIGNIN_TOKEN_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/signin/signin_manager_unittest.cc ('k') | chrome/browser/signin/token_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698