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" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
13 #include "base/values.h" | 13 #include "base/values.h" |
14 #include "chrome/browser/chrome_notification_types.h" | 14 #include "chrome/browser/chrome_notification_types.h" |
15 #include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidati on_handler.h" | 15 #include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidati on_handler.h" |
16 #include "chrome/browser/extensions/extension_service.h" | 16 #include "chrome/browser/extensions/extension_service.h" |
17 #include "chrome/browser/extensions/extension_system_factory.h" | 17 #include "chrome/browser/extensions/extension_system_factory.h" |
18 #include "chrome/browser/extensions/token_cache/token_cache_service.h" | 18 #include "chrome/browser/extensions/token_cache/token_cache_service.h" |
19 #include "chrome/browser/extensions/token_cache/token_cache_service_factory.h" | 19 #include "chrome/browser/extensions/token_cache/token_cache_service_factory.h" |
20 #include "chrome/browser/invalidation/invalidation_service.h" | 20 #include "chrome/browser/invalidation/invalidation_service.h" |
21 #include "chrome/browser/invalidation/invalidation_service_factory.h" | 21 #include "chrome/browser/invalidation/invalidation_service_factory.h" |
22 #include "chrome/browser/profiles/profile.h" | 22 #include "chrome/browser/profiles/profile.h" |
23 #include "chrome/browser/signin/profile_oauth2_token_service.h" | 23 #include "chrome/browser/signin/profile_oauth2_token_service.h" |
24 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | 24 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
25 #include "chrome/browser/signin/signin_manager.h" | |
26 #include "chrome/browser/signin/signin_manager_factory.h" | |
25 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" | 27 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
26 #include "chrome/common/extensions/api/push_messaging.h" | 28 #include "chrome/common/extensions/api/push_messaging.h" |
27 #include "content/public/browser/browser_thread.h" | 29 #include "content/public/browser/browser_thread.h" |
28 #include "content/public/browser/notification_details.h" | 30 #include "content/public/browser/notification_details.h" |
29 #include "content/public/browser/notification_source.h" | 31 #include "content/public/browser/notification_source.h" |
30 #include "extensions/browser/event_router.h" | 32 #include "extensions/browser/event_router.h" |
31 #include "extensions/browser/extension_system.h" | 33 #include "extensions/browser/extension_system.h" |
32 #include "extensions/common/extension.h" | 34 #include "extensions/common/extension.h" |
33 #include "extensions/common/permissions/api_permission.h" | 35 #include "extensions/common/permissions/api_permission.h" |
34 #include "google_apis/gaia/gaia_constants.h" | 36 #include "google_apis/gaia/gaia_constants.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
117 StartAccessTokenFetch(); | 119 StartAccessTokenFetch(); |
118 return true; | 120 return true; |
119 } | 121 } |
120 | 122 |
121 void PushMessagingGetChannelIdFunction::StartAccessTokenFetch() { | 123 void PushMessagingGetChannelIdFunction::StartAccessTokenFetch() { |
122 std::vector<std::string> scope_vector = | 124 std::vector<std::string> scope_vector = |
123 extensions::ObfuscatedGaiaIdFetcher::GetScopes(); | 125 extensions::ObfuscatedGaiaIdFetcher::GetScopes(); |
124 OAuth2TokenService::ScopeSet scopes(scope_vector.begin(), scope_vector.end()); | 126 OAuth2TokenService::ScopeSet scopes(scope_vector.begin(), scope_vector.end()); |
125 ProfileOAuth2TokenService* token_service = | 127 ProfileOAuth2TokenService* token_service = |
126 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()); | 128 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()); |
129 SigninManagerBase* signin_manager = | |
130 SigninManagerFactory::GetForProfile(GetProfile()); | |
127 fetcher_access_token_request_ = token_service->StartRequest( | 131 fetcher_access_token_request_ = token_service->StartRequest( |
128 token_service->GetPrimaryAccountId(), scopes, this); | 132 signin_manager->GetAuthenticatedAccountId(), scopes, this); |
129 } | 133 } |
130 | 134 |
131 void PushMessagingGetChannelIdFunction::OnRefreshTokenAvailable( | 135 void PushMessagingGetChannelIdFunction::OnRefreshTokenAvailable( |
132 const std::string& account_id) { | 136 const std::string& account_id) { |
133 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()) | 137 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()) |
134 ->RemoveObserver(this); | 138 ->RemoveObserver(this); |
135 DVLOG(2) << "Newly logged in: " << GetProfile()->GetProfileName(); | 139 DVLOG(2) << "Newly logged in: " << GetProfile()->GetProfileName(); |
136 StartAccessTokenFetch(); | 140 StartAccessTokenFetch(); |
137 } | 141 } |
138 | 142 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
180 ReportResult(gaia_id, std::string()); | 184 ReportResult(gaia_id, std::string()); |
181 return; | 185 return; |
182 } | 186 } |
183 | 187 |
184 fetcher_->Start(); | 188 fetcher_->Start(); |
185 } | 189 } |
186 | 190 |
187 // Check if the user is logged in. | 191 // Check if the user is logged in. |
188 bool PushMessagingGetChannelIdFunction::IsUserLoggedIn() const { | 192 bool PushMessagingGetChannelIdFunction::IsUserLoggedIn() const { |
189 ProfileOAuth2TokenService* token_service = | 193 ProfileOAuth2TokenService* token_service = |
190 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()); | 194 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile()); |
dcheng
2014/02/04 22:37:21
Can all references to POA2TSF be deleted from this
Roger Tawa OOO till Jul 10th
2014/02/05 01:00:49
Nope. You can see that the token service is still
| |
195 SigninManagerBase* signin_manager = | |
196 SigninManagerFactory::GetForProfile(GetProfile()); | |
191 return token_service->RefreshTokenIsAvailable( | 197 return token_service->RefreshTokenIsAvailable( |
192 token_service->GetPrimaryAccountId()); | 198 signin_manager->GetAuthenticatedAccountId()); |
193 } | 199 } |
194 | 200 |
195 void PushMessagingGetChannelIdFunction::ReportResult( | 201 void PushMessagingGetChannelIdFunction::ReportResult( |
196 const std::string& gaia_id, const std::string& error_string) { | 202 const std::string& gaia_id, const std::string& error_string) { |
197 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 203 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
198 | 204 |
199 BuildAndSendResult(gaia_id, error_string); | 205 BuildAndSendResult(gaia_id, error_string); |
200 | 206 |
201 // Cache the obfuscated ID locally. It never changes for this user, | 207 // Cache the obfuscated ID locally. It never changes for this user, |
202 // and if we call the web API too often, we get errors due to rate limiting. | 208 // 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... | |
355 handler_ = mapper.Pass(); | 361 handler_ = mapper.Pass(); |
356 } | 362 } |
357 | 363 |
358 template <> | 364 template <> |
359 void ProfileKeyedAPIFactory<PushMessagingAPI>::DeclareFactoryDependencies() { | 365 void ProfileKeyedAPIFactory<PushMessagingAPI>::DeclareFactoryDependencies() { |
360 DependsOn(ExtensionSystemFactory::GetInstance()); | 366 DependsOn(ExtensionSystemFactory::GetInstance()); |
361 DependsOn(invalidation::InvalidationServiceFactory::GetInstance()); | 367 DependsOn(invalidation::InvalidationServiceFactory::GetInstance()); |
362 } | 368 } |
363 | 369 |
364 } // namespace extensions | 370 } // namespace extensions |
OLD | NEW |