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

Side by Side Diff: chrome/browser/policy/profile_policy_connector_factory.cc

Issue 24153012: Fix cyclic dependency between ProfilePolicyConnector and PrefService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use callback_list in PolicyCertVerifier. Created 7 years, 2 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/policy/profile_policy_connector_factory.h" 5 #include "chrome/browser/policy/profile_policy_connector_factory.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/policy/profile_policy_connector.h" 8 #include "chrome/browser/policy/profile_policy_connector.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.h"
11 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h" 11 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h"
12 #include "components/user_prefs/pref_registry_syncable.h" 12 #include "components/user_prefs/pref_registry_syncable.h"
13 13
14 #if defined(ENABLE_CONFIGURATION_POLICY) 14 #if defined(ENABLE_CONFIGURATION_POLICY)
15 #if defined(OS_CHROMEOS) 15 #if defined(OS_CHROMEOS)
16 #include "chrome/browser/chromeos/login/user.h"
16 #include "chrome/browser/chromeos/login/user_manager.h" 17 #include "chrome/browser/chromeos/login/user_manager.h"
18 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
17 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h" 19 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h"
18 #else 20 #else
21 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
19 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" 22 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
20 #endif 23 #endif
21 #endif 24 #endif
22 25
23 namespace policy { 26 namespace policy {
24 27
25 // static 28 // static
26 ProfilePolicyConnectorFactory* ProfilePolicyConnectorFactory::GetInstance() { 29 ProfilePolicyConnectorFactory* ProfilePolicyConnectorFactory::GetInstance() {
27 return Singleton<ProfilePolicyConnectorFactory>::get(); 30 return Singleton<ProfilePolicyConnectorFactory>::get();
28 } 31 }
29 32
30 // static 33 // static
31 ProfilePolicyConnector* ProfilePolicyConnectorFactory::GetForProfile( 34 ProfilePolicyConnector* ProfilePolicyConnectorFactory::GetForProfile(
32 Profile* profile) { 35 Profile* profile) {
33 return GetInstance()->GetForProfileInternal(profile); 36 return GetInstance()->GetForProfileInternal(profile);
34 } 37 }
35 38
36 // static 39 // static
37 scoped_ptr<ProfilePolicyConnector> 40 scoped_ptr<ProfilePolicyConnector>
38 ProfilePolicyConnectorFactory::CreateForProfile( 41 ProfilePolicyConnectorFactory::CreateForProfile(
39 Profile* profile, 42 Profile* profile,
40 bool force_immediate_load, 43 bool force_immediate_load,
41 base::SequencedTaskRunner* sequenced_task_runner) { 44 base::SequencedTaskRunner* sequenced_task_runner) {
42 return GetInstance()->CreateForProfileInternal( 45 return GetInstance()->CreateForProfileInternal(profile,
43 profile, force_immediate_load, sequenced_task_runner); 46 force_immediate_load,
47 sequenced_task_runner);
44 } 48 }
45 49
46 void ProfilePolicyConnectorFactory::SetServiceForTesting( 50 void ProfilePolicyConnectorFactory::SetServiceForTesting(
47 Profile* profile, 51 Profile* profile,
48 ProfilePolicyConnector* connector) { 52 ProfilePolicyConnector* connector) {
49 ProfilePolicyConnector*& map_entry = connectors_[profile]; 53 ProfilePolicyConnector*& map_entry = connectors_[profile];
50 CHECK(!map_entry); 54 CHECK(!map_entry);
51 map_entry = connector; 55 map_entry = connector;
52 } 56 }
53 57
(...skipping 23 matching lines...) Expand all
77 CHECK(it != connectors_.end()); 81 CHECK(it != connectors_.end());
78 return it->second; 82 return it->second;
79 } 83 }
80 84
81 scoped_ptr<ProfilePolicyConnector> 85 scoped_ptr<ProfilePolicyConnector>
82 ProfilePolicyConnectorFactory::CreateForProfileInternal( 86 ProfilePolicyConnectorFactory::CreateForProfileInternal(
83 Profile* profile, 87 Profile* profile,
84 bool force_immediate_load, 88 bool force_immediate_load,
85 base::SequencedTaskRunner* sequenced_task_runner) { 89 base::SequencedTaskRunner* sequenced_task_runner) {
86 DCHECK(connectors_.find(profile) == connectors_.end()); 90 DCHECK(connectors_.find(profile) == connectors_.end());
87 ProfilePolicyConnector* connector = new ProfilePolicyConnector(profile); 91 #if defined(ENABLE_CONFIGURATION_POLICY) && defined(OS_CHROMEOS)
88 connector->Init(force_immediate_load, sequenced_task_runner); 92 chromeos::User* user = NULL;
93 if (!profile->IsLoginProfile()) {
94 chromeos::UserManager* user_manager = chromeos::UserManager::Get();
95 user = user_manager->GetUserByProfile(profile);
96 CHECK(user);
97 }
98 CloudPolicyManager* user_cloud_policy_manager =
99 UserCloudPolicyManagerFactoryChromeOS::GetForProfile(profile);
100 #else
101 CloudPolicyManager* user_cloud_policy_manager =
102 UserCloudPolicyManagerFactory::GetForProfile(profile);
103 #endif
104 ProfilePolicyConnector* connector = new ProfilePolicyConnector();
105 connector->Init(force_immediate_load,
106 #if defined(ENABLE_CONFIGURATION_POLICY) && defined(OS_CHROMEOS)
107 user,
108 #endif
109 user_cloud_policy_manager,
110 sequenced_task_runner);
89 connectors_[profile] = connector; 111 connectors_[profile] = connector;
90 return scoped_ptr<ProfilePolicyConnector>(connector); 112 return make_scoped_ptr(connector);
91 } 113 }
92 114
93 void ProfilePolicyConnectorFactory::BrowserContextShutdown( 115 void ProfilePolicyConnectorFactory::BrowserContextShutdown(
94 content::BrowserContext* context) { 116 content::BrowserContext* context) {
95 Profile* profile = static_cast<Profile*>(context); 117 Profile* profile = static_cast<Profile*>(context);
96 if (profile->IsOffTheRecord()) 118 if (profile->IsOffTheRecord())
97 return; 119 return;
98 ConnectorMap::iterator it = connectors_.find(profile); 120 ConnectorMap::iterator it = connectors_.find(profile);
99 if (it != connectors_.end()) 121 if (it != connectors_.end())
100 it->second->Shutdown(); 122 it->second->Shutdown();
101 } 123 }
102 124
103 void ProfilePolicyConnectorFactory::BrowserContextDestroyed( 125 void ProfilePolicyConnectorFactory::BrowserContextDestroyed(
104 content::BrowserContext* context) { 126 content::BrowserContext* context) {
105 ConnectorMap::iterator it = connectors_.find(static_cast<Profile*>(context)); 127 ConnectorMap::iterator it = connectors_.find(static_cast<Profile*>(context));
106 if (it != connectors_.end()) 128 if (it != connectors_.end())
107 connectors_.erase(it); 129 connectors_.erase(it);
108 BrowserContextKeyedBaseFactory::BrowserContextDestroyed(context); 130 BrowserContextKeyedBaseFactory::BrowserContextDestroyed(context);
109 } 131 }
110 132
111 void ProfilePolicyConnectorFactory::RegisterProfilePrefs( 133 void ProfilePolicyConnectorFactory::RegisterProfilePrefs(
112 user_prefs::PrefRegistrySyncable* registry) { 134 user_prefs::PrefRegistrySyncable* registry) {
113 #if defined(OS_CHROMEOS) 135 #if defined(OS_CHROMEOS)
114 registry->RegisterBooleanPref( 136 registry->RegisterBooleanPref(
115 prefs::kUsedPolicyCertificatesOnce, 137 prefs::kUsedPolicyCertificatesOnce,
116 false, 138 false,
117 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 139 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
Joao da Silva 2013/10/16 12:44:58 This registration should move to network_policy_se
pneubeck (no reviews) 2013/10/22 18:47:41 Done.
118 #endif 140 #endif
119 #if defined(OS_ANDROID) 141 #if defined(OS_ANDROID)
120 registry->RegisterListPref( 142 registry->RegisterListPref(
121 prefs::kManagedBookmarks, 143 prefs::kManagedBookmarks,
122 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 144 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
123 #endif 145 #endif
124 } 146 }
125 147
126 void ProfilePolicyConnectorFactory::SetEmptyTestingFactory( 148 void ProfilePolicyConnectorFactory::SetEmptyTestingFactory(
127 content::BrowserContext* context) {} 149 content::BrowserContext* context) {}
128 150
129 void ProfilePolicyConnectorFactory::CreateServiceNow( 151 void ProfilePolicyConnectorFactory::CreateServiceNow(
130 content::BrowserContext* context) {} 152 content::BrowserContext* context) {}
131 153
132 } // namespace policy 154 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698