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

Side by Side Diff: chrome/browser/signin/mutable_profile_oauth2_token_service.cc

Issue 130813003: Create signin component and componentize TokenWebData. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "chrome/browser/signin/mutable_profile_oauth2_token_service.h" 5 #include "chrome/browser/signin/mutable_profile_oauth2_token_service.h"
6 6
7 #include "chrome/browser/profiles/profile.h" 7 #include "chrome/browser/profiles/profile.h"
8 #include "chrome/browser/webdata/token_web_data.h" 8 #include "chrome/browser/webdata/web_data_service_factory.h"
9 #include "components/signin/core/webdata/token_web_data.h"
9 #include "components/webdata/common/web_data_service_base.h" 10 #include "components/webdata/common/web_data_service_base.h"
10 #include "google_apis/gaia/gaia_auth_fetcher.h" 11 #include "google_apis/gaia/gaia_auth_fetcher.h"
11 #include "google_apis/gaia/gaia_constants.h" 12 #include "google_apis/gaia/gaia_constants.h"
12 #include "google_apis/gaia/google_service_auth_error.h" 13 #include "google_apis/gaia/google_service_auth_error.h"
13 #include "net/url_request/url_request_context_getter.h" 14 #include "net/url_request/url_request_context_getter.h"
14 15
15 #if defined(ENABLE_MANAGED_USERS) 16 #if defined(ENABLE_MANAGED_USERS)
16 #include "chrome/browser/managed_mode/managed_user_constants.h" 17 #include "chrome/browser/managed_mode/managed_user_constants.h"
17 #endif 18 #endif
18 19
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 MutableProfileOAuth2TokenService::MutableProfileOAuth2TokenService() 76 MutableProfileOAuth2TokenService::MutableProfileOAuth2TokenService()
76 : web_data_service_request_(0) { 77 : web_data_service_request_(0) {
77 } 78 }
78 79
79 MutableProfileOAuth2TokenService::~MutableProfileOAuth2TokenService() { 80 MutableProfileOAuth2TokenService::~MutableProfileOAuth2TokenService() {
80 } 81 }
81 82
82 void MutableProfileOAuth2TokenService::Shutdown() { 83 void MutableProfileOAuth2TokenService::Shutdown() {
83 if (web_data_service_request_ != 0) { 84 if (web_data_service_request_ != 0) {
84 scoped_refptr<TokenWebData> token_web_data = 85 scoped_refptr<TokenWebData> token_web_data =
85 TokenWebData::FromBrowserContext(profile()); 86 WebDataServiceFactory::GetTokenWebDataForProfile(
87 profile(), Profile::EXPLICIT_ACCESS);
86 DCHECK(token_web_data.get()); 88 DCHECK(token_web_data.get());
87 token_web_data->CancelRequest(web_data_service_request_); 89 token_web_data->CancelRequest(web_data_service_request_);
88 web_data_service_request_ = 0; 90 web_data_service_request_ = 0;
89 } 91 }
90 ProfileOAuth2TokenService::Shutdown(); 92 ProfileOAuth2TokenService::Shutdown();
91 } 93 }
92 94
93 net::URLRequestContextGetter* 95 net::URLRequestContextGetter*
94 MutableProfileOAuth2TokenService::GetRequestContext() { 96 MutableProfileOAuth2TokenService::GetRequestContext() {
95 return profile()->GetRequestContext(); 97 return profile()->GetRequestContext();
96 } 98 }
97 99
98 void MutableProfileOAuth2TokenService::LoadCredentials() { 100 void MutableProfileOAuth2TokenService::LoadCredentials() {
99 DCHECK_EQ(0, web_data_service_request_); 101 DCHECK_EQ(0, web_data_service_request_);
100 102
101 CancelAllRequests(); 103 CancelAllRequests();
102 refresh_tokens().clear(); 104 refresh_tokens().clear();
103 scoped_refptr<TokenWebData> token_web_data = 105 scoped_refptr<TokenWebData> token_web_data =
104 TokenWebData::FromBrowserContext(profile()); 106 WebDataServiceFactory::GetTokenWebDataForProfile(
107 profile(), Profile::EXPLICIT_ACCESS);
105 if (token_web_data.get()) 108 if (token_web_data.get())
106 web_data_service_request_ = token_web_data->GetAllTokens(this); 109 web_data_service_request_ = token_web_data->GetAllTokens(this);
107 } 110 }
108 111
109 void MutableProfileOAuth2TokenService::OnWebDataServiceRequestDone( 112 void MutableProfileOAuth2TokenService::OnWebDataServiceRequestDone(
110 WebDataServiceBase::Handle handle, 113 WebDataServiceBase::Handle handle,
111 const WDTypedResult* result) { 114 const WDTypedResult* result) {
112 DCHECK_EQ(web_data_service_request_, handle); 115 DCHECK_EQ(web_data_service_request_, handle);
113 web_data_service_request_ = 0; 116 web_data_service_request_ = 0;
114 117
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 iter != db_tokens.end(); 152 iter != db_tokens.end();
150 ++iter) { 153 ++iter) {
151 std::string prefixed_account_id = iter->first; 154 std::string prefixed_account_id = iter->first;
152 std::string refresh_token = iter->second; 155 std::string refresh_token = iter->second;
153 156
154 if (IsLegacyRefreshTokenId(prefixed_account_id) && !refresh_token.empty()) 157 if (IsLegacyRefreshTokenId(prefixed_account_id) && !refresh_token.empty())
155 old_login_token = refresh_token; 158 old_login_token = refresh_token;
156 159
157 if (IsLegacyServiceId(prefixed_account_id)) { 160 if (IsLegacyServiceId(prefixed_account_id)) {
158 scoped_refptr<TokenWebData> token_web_data = 161 scoped_refptr<TokenWebData> token_web_data =
159 TokenWebData::FromBrowserContext(profile()); 162 WebDataServiceFactory::GetTokenWebDataForProfile(
163 profile(), Profile::EXPLICIT_ACCESS);
160 if (token_web_data.get()) 164 if (token_web_data.get())
161 token_web_data->RemoveTokenForService(prefixed_account_id); 165 token_web_data->RemoveTokenForService(prefixed_account_id);
162 } else { 166 } else {
163 DCHECK(!refresh_token.empty()); 167 DCHECK(!refresh_token.empty());
164 std::string account_id = RemoveAccountIdPrefix(prefixed_account_id); 168 std::string account_id = RemoveAccountIdPrefix(prefixed_account_id);
165 refresh_tokens()[account_id].reset( 169 refresh_tokens()[account_id].reset(
166 new AccountInfo(this, account_id, refresh_token)); 170 new AccountInfo(this, account_id, refresh_token));
167 FireRefreshTokenAvailable(account_id); 171 FireRefreshTokenAvailable(account_id);
168 // TODO(fgorski): Notify diagnostic observers. 172 // TODO(fgorski): Notify diagnostic observers.
169 } 173 }
170 } 174 }
171 175
172 if (!old_login_token.empty()) { 176 if (!old_login_token.empty()) {
173 std::string account_id = GetAccountIdForMigratingRefreshToken(); 177 std::string account_id = GetAccountIdForMigratingRefreshToken();
174 178
175 if (refresh_tokens().count(account_id) == 0) 179 if (refresh_tokens().count(account_id) == 0)
176 UpdateCredentials(account_id, old_login_token); 180 UpdateCredentials(account_id, old_login_token);
177 } 181 }
178 182
179 FireRefreshTokensLoaded(); 183 FireRefreshTokensLoaded();
180 } 184 }
181 185
182 void MutableProfileOAuth2TokenService::PersistCredentials( 186 void MutableProfileOAuth2TokenService::PersistCredentials(
183 const std::string& account_id, 187 const std::string& account_id,
184 const std::string& refresh_token) { 188 const std::string& refresh_token) {
185 scoped_refptr<TokenWebData> token_web_data = 189 scoped_refptr<TokenWebData> token_web_data =
186 TokenWebData::FromBrowserContext(profile()); 190 WebDataServiceFactory::GetTokenWebDataForProfile(
191 profile(), Profile::EXPLICIT_ACCESS);
187 if (token_web_data.get()) { 192 if (token_web_data.get()) {
188 token_web_data->SetTokenForService(ApplyAccountIdPrefix(account_id), 193 token_web_data->SetTokenForService(ApplyAccountIdPrefix(account_id),
189 refresh_token); 194 refresh_token);
190 } 195 }
191 } 196 }
192 197
193 void MutableProfileOAuth2TokenService::ClearPersistedCredentials( 198 void MutableProfileOAuth2TokenService::ClearPersistedCredentials(
194 const std::string& account_id) { 199 const std::string& account_id) {
195 scoped_refptr<TokenWebData> token_web_data = 200 scoped_refptr<TokenWebData> token_web_data =
196 TokenWebData::FromBrowserContext(profile()); 201 WebDataServiceFactory::GetTokenWebDataForProfile(
202 profile(), Profile::EXPLICIT_ACCESS);
197 if (token_web_data.get()) 203 if (token_web_data.get())
198 token_web_data->RemoveTokenForService(ApplyAccountIdPrefix(account_id)); 204 token_web_data->RemoveTokenForService(ApplyAccountIdPrefix(account_id));
199 } 205 }
200 206
201 std::string 207 std::string
202 MutableProfileOAuth2TokenService::GetAccountIdForMigratingRefreshToken() { 208 MutableProfileOAuth2TokenService::GetAccountIdForMigratingRefreshToken() {
203 #if defined(ENABLE_MANAGED_USERS) 209 #if defined(ENABLE_MANAGED_USERS)
204 // TODO(bauerb): Make sure that only services that can deal with supervised 210 // TODO(bauerb): Make sure that only services that can deal with supervised
205 // users see the supervised user token. 211 // users see the supervised user token.
206 if (profile()->IsManaged()) 212 if (profile()->IsManaged())
207 return managed_users::kManagedUserPseudoEmail; 213 return managed_users::kManagedUserPseudoEmail;
208 #endif 214 #endif
209 215
210 return GetPrimaryAccountId(); 216 return GetPrimaryAccountId();
211 } 217 }
212 218
213 void MutableProfileOAuth2TokenService::RevokeCredentialsOnServer( 219 void MutableProfileOAuth2TokenService::RevokeCredentialsOnServer(
214 const std::string& refresh_token) { 220 const std::string& refresh_token) {
215 // RevokeServerRefreshToken deletes itself when done. 221 // RevokeServerRefreshToken deletes itself when done.
216 new RevokeServerRefreshToken(refresh_token, GetRequestContext()); 222 new RevokeServerRefreshToken(refresh_token, GetRequestContext());
217 } 223 }
OLDNEW
« no previous file with comments | « chrome/browser/DEPS ('k') | chrome/browser/signin/mutable_profile_oauth2_token_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698