OLD | NEW |
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 #include "chrome/browser/extensions/api/push_messaging/push_messaging_api.h" | 5 #include "chrome/browser/extensions/api/push_messaging/push_messaging_api.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 DVLOG(2) << "Logged in profile name: " << profile()->GetProfileName(); | 119 DVLOG(2) << "Logged in profile name: " << profile()->GetProfileName(); |
120 | 120 |
121 StartAccessTokenFetch(); | 121 StartAccessTokenFetch(); |
122 return true; | 122 return true; |
123 } | 123 } |
124 | 124 |
125 void PushMessagingGetChannelIdFunction::StartAccessTokenFetch() { | 125 void PushMessagingGetChannelIdFunction::StartAccessTokenFetch() { |
126 std::vector<std::string> scope_vector = | 126 std::vector<std::string> scope_vector = |
127 extensions::ObfuscatedGaiaIdFetcher::GetScopes(); | 127 extensions::ObfuscatedGaiaIdFetcher::GetScopes(); |
128 OAuth2TokenService::ScopeSet scopes(scope_vector.begin(), scope_vector.end()); | 128 OAuth2TokenService::ScopeSet scopes(scope_vector.begin(), scope_vector.end()); |
129 fetcher_access_token_request_ = | 129 ProfileOAuth2TokenService* token_service = |
130 ProfileOAuth2TokenServiceFactory::GetForProfile(profile()) | 130 ProfileOAuth2TokenServiceFactory::GetForProfile(profile()); |
131 ->StartRequest(scopes, this); | 131 fetcher_access_token_request_ = token_service->StartRequest( |
| 132 token_service->GetPrimaryAccountId(), scopes, this); |
132 } | 133 } |
133 | 134 |
134 void PushMessagingGetChannelIdFunction::OnRefreshTokenAvailable( | 135 void PushMessagingGetChannelIdFunction::OnRefreshTokenAvailable( |
135 const std::string& account_id) { | 136 const std::string& account_id) { |
136 ProfileOAuth2TokenServiceFactory::GetForProfile(profile()) | 137 ProfileOAuth2TokenServiceFactory::GetForProfile(profile()) |
137 ->RemoveObserver(this); | 138 ->RemoveObserver(this); |
138 DVLOG(2) << "Newly logged in: " << profile()->GetProfileName(); | 139 DVLOG(2) << "Newly logged in: " << profile()->GetProfileName(); |
139 StartAccessTokenFetch(); | 140 StartAccessTokenFetch(); |
140 } | 141 } |
141 | 142 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 if (!gaia_id.empty()) { | 183 if (!gaia_id.empty()) { |
183 ReportResult(gaia_id, std::string()); | 184 ReportResult(gaia_id, std::string()); |
184 return; | 185 return; |
185 } | 186 } |
186 | 187 |
187 fetcher_->Start(); | 188 fetcher_->Start(); |
188 } | 189 } |
189 | 190 |
190 // Check if the user is logged in. | 191 // Check if the user is logged in. |
191 bool PushMessagingGetChannelIdFunction::IsUserLoggedIn() const { | 192 bool PushMessagingGetChannelIdFunction::IsUserLoggedIn() const { |
192 return ProfileOAuth2TokenServiceFactory::GetForProfile(profile()) | 193 ProfileOAuth2TokenService* token_service = |
193 ->RefreshTokenIsAvailable(); | 194 ProfileOAuth2TokenServiceFactory::GetForProfile(profile()); |
| 195 return token_service->RefreshTokenIsAvailable( |
| 196 token_service->GetPrimaryAccountId()); |
194 } | 197 } |
195 | 198 |
196 void PushMessagingGetChannelIdFunction::ReportResult( | 199 void PushMessagingGetChannelIdFunction::ReportResult( |
197 const std::string& gaia_id, const std::string& error_string) { | 200 const std::string& gaia_id, const std::string& error_string) { |
198 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 201 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
199 | 202 |
200 BuildAndSendResult(gaia_id, error_string); | 203 BuildAndSendResult(gaia_id, error_string); |
201 | 204 |
202 // Cache the obfuscated ID locally. It never changes for this user, | 205 // Cache the obfuscated ID locally. It never changes for this user, |
203 // and if we call the web API too often, we get errors due to rate limiting. | 206 // and if we call the web API too often, we get errors due to rate limiting. |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 handler_ = mapper.Pass(); | 359 handler_ = mapper.Pass(); |
357 } | 360 } |
358 | 361 |
359 template <> | 362 template <> |
360 void ProfileKeyedAPIFactory<PushMessagingAPI>::DeclareFactoryDependencies() { | 363 void ProfileKeyedAPIFactory<PushMessagingAPI>::DeclareFactoryDependencies() { |
361 DependsOn(ExtensionSystemFactory::GetInstance()); | 364 DependsOn(ExtensionSystemFactory::GetInstance()); |
362 DependsOn(invalidation::InvalidationServiceFactory::GetInstance()); | 365 DependsOn(invalidation::InvalidationServiceFactory::GetInstance()); |
363 } | 366 } |
364 | 367 |
365 } // namespace extensions | 368 } // namespace extensions |
OLD | NEW |