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

Side by Side Diff: chrome/browser/invalidation/invalidation_service_factory.cc

Issue 179843002: Make invalidations work for Chrome OS Kiosk Apps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/invalidation/invalidation_service_factory.h" 5 #include "chrome/browser/invalidation/invalidation_service_factory.h"
6 6
7 #include "base/prefs/pref_registry.h" 7 #include "base/prefs/pref_registry.h"
8 #include "chrome/browser/browser_process.h"
8 #include "chrome/browser/invalidation/fake_invalidation_service.h" 9 #include "chrome/browser/invalidation/fake_invalidation_service.h"
9 #include "chrome/browser/invalidation/invalidation_service.h" 10 #include "chrome/browser/invalidation/invalidation_service.h"
10 #include "chrome/browser/invalidation/invalidation_service_android.h" 11 #include "chrome/browser/invalidation/invalidation_service_android.h"
11 #include "chrome/browser/invalidation/invalidator_storage.h" 12 #include "chrome/browser/invalidation/invalidator_storage.h"
12 #include "chrome/browser/invalidation/p2p_invalidation_service.h" 13 #include "chrome/browser/invalidation/p2p_invalidation_service.h"
14 #include "chrome/browser/invalidation/profile_invalidation_auth_provider.h"
13 #include "chrome/browser/invalidation/ticl_invalidation_service.h" 15 #include "chrome/browser/invalidation/ticl_invalidation_service.h"
14 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/browser/signin/profile_oauth2_token_service.h" 17 #include "chrome/browser/signin/profile_oauth2_token_service.h"
16 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 18 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
17 #include "chrome/browser/signin/signin_manager.h" 19 #include "chrome/browser/signin/signin_manager.h"
18 #include "chrome/browser/signin/signin_manager_factory.h" 20 #include "chrome/browser/signin/signin_manager_factory.h"
21 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
19 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h" 22 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h"
20 23
21 #if defined(OS_ANDROID) 24 #if defined(OS_ANDROID)
22 #include "chrome/browser/invalidation/invalidation_controller_android.h" 25 #include "chrome/browser/invalidation/invalidation_controller_android.h"
23 #endif // defined(OS_ANDROID) 26 #endif // defined(OS_ANDROID)
24 27
28 #if defined(OS_CHROMEOS)
29 #include "chrome/browser/chromeos/login/user_manager.h"
30 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
31 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h "
32 #include "chrome/browser/invalidation/device_invalidation_auth_provider_chromeos .h"
33 #endif
34
25 namespace invalidation { 35 namespace invalidation {
26 36
27 // static 37 // static
28 InvalidationService* InvalidationServiceFactory::GetForProfile( 38 InvalidationService* InvalidationServiceFactory::GetForProfile(
29 Profile* profile) { 39 Profile* profile) {
30 return static_cast<InvalidationService*>( 40 return static_cast<InvalidationService*>(
31 GetInstance()->GetServiceForBrowserContext(profile, true)); 41 GetInstance()->GetServiceForBrowserContext(profile, true));
32 } 42 }
33 43
34 // static 44 // static
35 InvalidationServiceFactory* InvalidationServiceFactory::GetInstance() { 45 InvalidationServiceFactory* InvalidationServiceFactory::GetInstance() {
36 return Singleton<InvalidationServiceFactory>::get(); 46 return Singleton<InvalidationServiceFactory>::get();
37 } 47 }
38 48
39 InvalidationServiceFactory::InvalidationServiceFactory() 49 InvalidationServiceFactory::InvalidationServiceFactory()
40 : BrowserContextKeyedServiceFactory( 50 : BrowserContextKeyedServiceFactory(
41 "InvalidationService", 51 "InvalidationService",
42 BrowserContextDependencyManager::GetInstance()), 52 BrowserContextDependencyManager::GetInstance()),
43 build_fake_invalidators_(false) { 53 build_fake_invalidators_(false) {
44 #if !defined(OS_ANDROID) 54 #if !defined(OS_ANDROID)
45 DependsOn(SigninManagerFactory::GetInstance()); 55 DependsOn(SigninManagerFactory::GetInstance());
46 DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance()); 56 DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance());
57 DependsOn(LoginUIServiceFactory::GetInstance());
47 #endif 58 #endif
48 } 59 }
49 60
50 InvalidationServiceFactory::~InvalidationServiceFactory() {} 61 InvalidationServiceFactory::~InvalidationServiceFactory() {}
51 62
52 namespace { 63 namespace {
53 64
54 BrowserContextKeyedService* BuildP2PInvalidationService( 65 BrowserContextKeyedService* BuildP2PInvalidationService(
55 content::BrowserContext* context) { 66 content::BrowserContext* context) {
56 Profile* profile = static_cast<Profile*>(context); 67 Profile* profile = static_cast<Profile*>(context);
57 return new P2PInvalidationService(profile); 68 return new P2PInvalidationService(
69 profile,
70 make_scoped_ptr<InvalidationAuthProvider>(
71 new ProfileInvalidationAuthProvider(
72 SigninManagerFactory::GetForProfile(profile),
73 ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
74 LoginUIServiceFactory::GetForProfile(profile),
75 profile)));
58 } 76 }
59 77
60 BrowserContextKeyedService* BuildFakeInvalidationService( 78 BrowserContextKeyedService* BuildFakeInvalidationService(
61 content::BrowserContext* context) { 79 content::BrowserContext* context) {
62 return new FakeInvalidationService(); 80 return new FakeInvalidationService();
63 } 81 }
64 82
65 } // namespace 83 } // namespace
66 84
67 void InvalidationServiceFactory::SetBuildOnlyFakeInvalidatorsForTest( 85 void InvalidationServiceFactory::SetBuildOnlyFakeInvalidatorsForTest(
(...skipping 16 matching lines...) Expand all
84 if (build_fake_invalidators_) { 102 if (build_fake_invalidators_) {
85 return BuildFakeInvalidationService(context); 103 return BuildFakeInvalidationService(context);
86 } 104 }
87 105
88 #if defined(OS_ANDROID) 106 #if defined(OS_ANDROID)
89 InvalidationServiceAndroid* service = new InvalidationServiceAndroid( 107 InvalidationServiceAndroid* service = new InvalidationServiceAndroid(
90 profile, 108 profile,
91 new InvalidationControllerAndroid()); 109 new InvalidationControllerAndroid());
92 return service; 110 return service;
93 #else 111 #else
94 SigninManagerBase* signin_manager = 112 scoped_ptr<InvalidationAuthProvider> auth_provider;
95 SigninManagerFactory::GetForProfile(profile);
96 ProfileOAuth2TokenService* oauth2_token_service =
97 ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
98 113
99 TiclInvalidationService* service = new TiclInvalidationService( 114 #if defined(OS_CHROMEOS)
100 signin_manager, 115 policy::BrowserPolicyConnectorChromeOS* connector =
101 oauth2_token_service, 116 g_browser_process->platform_part()->browser_policy_connector_chromeos();
102 profile); 117 if (chromeos::UserManager::Get()->IsLoggedInAsKioskApp() &&
118 connector->IsEnterpriseManaged()) {
119 auth_provider.reset(new DeviceInvalidationAuthProvider(
120 chromeos::DeviceOAuth2TokenServiceFactory::Get()));
121 }
122 #endif
123
124 if (!auth_provider) {
125 auth_provider.reset(new ProfileInvalidationAuthProvider(
126 SigninManagerFactory::GetForProfile(profile),
127 ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
128 LoginUIServiceFactory::GetForProfile(profile),
129 profile));
130 }
131
132 TiclInvalidationService* service =
133 new TiclInvalidationService(auth_provider.Pass(), profile);
103 service->Init(); 134 service->Init();
104 return service; 135 return service;
105 #endif 136 #endif
106 } 137 }
107 138
108 void InvalidationServiceFactory::RegisterProfilePrefs( 139 void InvalidationServiceFactory::RegisterProfilePrefs(
109 user_prefs::PrefRegistrySyncable* registry) { 140 user_prefs::PrefRegistrySyncable* registry) {
110 InvalidatorStorage::RegisterProfilePrefs(registry); 141 InvalidatorStorage::RegisterProfilePrefs(registry);
111 } 142 }
112 143
113 } // namespace invalidation 144 } // namespace invalidation
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698