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

Side by Side Diff: chrome/browser/policy/cloud/user_cloud_policy_manager_factory.cc

Issue 56623005: Policy providers all get a SchemaRegistry to work with. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chrome-policy-schema-9-purge-with-callback
Patch Set: rebase Created 7 years, 1 month 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
OLDNEW
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/policy/cloud/user_cloud_policy_manager_factory.h" 5 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/sequenced_task_runner.h" 9 #include "base/sequenced_task_runner.h"
10 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h" 10 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h"
11 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h" 11 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
12 #include "chrome/browser/policy/cloud/user_cloud_policy_store.h" 12 #include "chrome/browser/policy/cloud/user_cloud_policy_store.h"
13 #include "chrome/browser/policy/schema_registry_service.h"
14 #include "chrome/browser/policy/schema_registry_service_factory.h"
13 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h" 15 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h"
14 #include "content/public/browser/browser_context.h" 16 #include "content/public/browser/browser_context.h"
15 17
16 namespace policy { 18 namespace policy {
17 19
18 // static 20 // static
19 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() { 21 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() {
20 return Singleton<UserCloudPolicyManagerFactory>::get(); 22 return Singleton<UserCloudPolicyManagerFactory>::get();
21 } 23 }
22 24
(...skipping 19 matching lines...) Expand all
42 content::BrowserContext* original_context, 44 content::BrowserContext* original_context,
43 content::BrowserContext* off_the_record_context) { 45 content::BrowserContext* off_the_record_context) {
44 return GetInstance()->RegisterManagerForOffTheRecordBrowserContext( 46 return GetInstance()->RegisterManagerForOffTheRecordBrowserContext(
45 original_context, off_the_record_context); 47 original_context, off_the_record_context);
46 } 48 }
47 49
48 50
49 UserCloudPolicyManagerFactory::UserCloudPolicyManagerFactory() 51 UserCloudPolicyManagerFactory::UserCloudPolicyManagerFactory()
50 : BrowserContextKeyedBaseFactory( 52 : BrowserContextKeyedBaseFactory(
51 "UserCloudPolicyManager", 53 "UserCloudPolicyManager",
52 BrowserContextDependencyManager::GetInstance()) {} 54 BrowserContextDependencyManager::GetInstance()) {
55 DependsOn(SchemaRegistryServiceFactory::GetInstance());
56 }
53 57
54 UserCloudPolicyManagerFactory::~UserCloudPolicyManagerFactory() {} 58 UserCloudPolicyManagerFactory::~UserCloudPolicyManagerFactory() {}
55 59
56 UserCloudPolicyManager* 60 UserCloudPolicyManager*
57 UserCloudPolicyManagerFactory::GetManagerForBrowserContext( 61 UserCloudPolicyManagerFactory::GetManagerForBrowserContext(
58 content::BrowserContext* context) { 62 content::BrowserContext* context) {
59 // In case |context| is an incognito Profile/Context, |manager_| will have a 63 // In case |context| is an incognito Profile/Context, |manager_| will have a
60 // matching entry pointing to the PolicyService of the original context. 64 // matching entry pointing to the PolicyService of the original context.
61 ManagerMap::const_iterator it = managers_.find(context); 65 ManagerMap::const_iterator it = managers_.find(context);
62 return it != managers_.end() ? it->second : NULL; 66 return it != managers_.end() ? it->second : NULL;
63 } 67 }
64 68
65 scoped_ptr<UserCloudPolicyManager> 69 scoped_ptr<UserCloudPolicyManager>
66 UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext( 70 UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext(
67 content::BrowserContext* context, 71 content::BrowserContext* context,
68 bool force_immediate_load, 72 bool force_immediate_load,
69 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { 73 scoped_refptr<base::SequencedTaskRunner> background_task_runner) {
70 DCHECK(!context->IsOffTheRecord()); 74 DCHECK(!context->IsOffTheRecord());
71 scoped_ptr<UserCloudPolicyStore> store( 75 scoped_ptr<UserCloudPolicyStore> store(
72 UserCloudPolicyStore::Create(context->GetPath(), background_task_runner)); 76 UserCloudPolicyStore::Create(context->GetPath(), background_task_runner));
73 if (force_immediate_load) 77 if (force_immediate_load)
74 store->LoadImmediately(); 78 store->LoadImmediately();
75 scoped_ptr<UserCloudPolicyManager> manager( 79 scoped_ptr<UserCloudPolicyManager> manager(
76 new UserCloudPolicyManager(context, 80 new UserCloudPolicyManager(context,
77 store.Pass(), 81 store.Pass(),
78 scoped_ptr<CloudExternalDataManager>(), 82 scoped_ptr<CloudExternalDataManager>(),
79 base::MessageLoopProxy::current())); 83 base::MessageLoopProxy::current()));
80 manager->Init(); 84 manager->Init(SchemaRegistryServiceFactory::GetForContext(context));
81 return manager.Pass(); 85 return manager.Pass();
82 } 86 }
83 87
84 UserCloudPolicyManager* 88 UserCloudPolicyManager*
85 UserCloudPolicyManagerFactory::RegisterManagerForOffTheRecordBrowserContext( 89 UserCloudPolicyManagerFactory::RegisterManagerForOffTheRecordBrowserContext(
86 content::BrowserContext* original_context, 90 content::BrowserContext* original_context,
87 content::BrowserContext* off_the_record_context) { 91 content::BrowserContext* off_the_record_context) {
88 // Register the PolicyService of the original context for the respective 92 // Register the PolicyService of the original context for the respective
89 // incognito context. See also GetManagerForBrowserContext. 93 // incognito context. See also GetManagerForBrowserContext.
90 UserCloudPolicyManager* manager = 94 UserCloudPolicyManager* manager =
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 if (entry != managers_.end()) { 137 if (entry != managers_.end()) {
134 if (instance) 138 if (instance)
135 DCHECK_EQ(instance, entry->second); 139 DCHECK_EQ(instance, entry->second);
136 managers_.erase(entry); 140 managers_.erase(entry);
137 } else { 141 } else {
138 NOTREACHED(); 142 NOTREACHED();
139 } 143 }
140 } 144 }
141 145
142 } // namespace policy 146 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698