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

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

Issue 79023002: Support cloud policy for extensions on the desktop platforms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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) 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/files/file_path.h"
7 #include "base/logging.h" 8 #include "base/logging.h"
8 #include "base/message_loop/message_loop_proxy.h" 9 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/sequenced_task_runner.h" 10 #include "base/sequenced_task_runner.h"
10 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h" 11 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h"
11 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h" 12 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
12 #include "chrome/browser/policy/cloud/user_cloud_policy_store.h" 13 #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.h"
14 #include "chrome/browser/policy/schema_registry_service_factory.h" 15 #include "chrome/browser/policy/schema_registry_service_factory.h"
15 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h" 16 #include "components/browser_context_keyed_service/browser_context_dependency_ma nager.h"
16 #include "content/public/browser/browser_context.h" 17 #include "content/public/browser/browser_context.h"
17 18
18 namespace policy { 19 namespace policy {
19 20
21 namespace {
22
23 // Directory inside the profile directory where policy-related resources are
24 // stored.
25 const base::FilePath::CharType kPolicy[] = FILE_PATH_LITERAL("Policy");
26
27 // Directory under kPolicy, in the user's profile dir, where policy for
28 // components is cached.
29 const base::FilePath::CharType kComponentsDir[] =
30 FILE_PATH_LITERAL("Components");
31
32 } // namespace
33
20 // static 34 // static
21 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() { 35 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() {
22 return Singleton<UserCloudPolicyManagerFactory>::get(); 36 return Singleton<UserCloudPolicyManagerFactory>::get();
23 } 37 }
24 38
25 // static 39 // static
26 UserCloudPolicyManager* UserCloudPolicyManagerFactory::GetForBrowserContext( 40 UserCloudPolicyManager* UserCloudPolicyManagerFactory::GetForBrowserContext(
27 content::BrowserContext* context) { 41 content::BrowserContext* context) {
28 return GetInstance()->GetManagerForBrowserContext(context); 42 return GetInstance()->GetManagerForBrowserContext(context);
29 } 43 }
30 44
31 // static 45 // static
32 scoped_ptr<UserCloudPolicyManager> 46 scoped_ptr<UserCloudPolicyManager>
33 UserCloudPolicyManagerFactory::CreateForOriginalBrowserContext( 47 UserCloudPolicyManagerFactory::CreateForOriginalBrowserContext(
34 content::BrowserContext* context, 48 content::BrowserContext* context,
35 bool force_immediate_load, 49 bool force_immediate_load,
36 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { 50 const scoped_refptr<base::SequencedTaskRunner>& background_task_runner,
51 const scoped_refptr<base::SequencedTaskRunner>& file_task_runner,
52 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) {
37 return GetInstance()->CreateManagerForOriginalBrowserContext( 53 return GetInstance()->CreateManagerForOriginalBrowserContext(
38 context, force_immediate_load, background_task_runner); 54 context,
55 force_immediate_load,
56 background_task_runner,
57 file_task_runner,
58 io_task_runner);
39 } 59 }
40 60
41 // static 61 // static
42 UserCloudPolicyManager* 62 UserCloudPolicyManager*
43 UserCloudPolicyManagerFactory::RegisterForOffTheRecordBrowserContext( 63 UserCloudPolicyManagerFactory::RegisterForOffTheRecordBrowserContext(
44 content::BrowserContext* original_context, 64 content::BrowserContext* original_context,
45 content::BrowserContext* off_the_record_context) { 65 content::BrowserContext* off_the_record_context) {
46 return GetInstance()->RegisterManagerForOffTheRecordBrowserContext( 66 return GetInstance()->RegisterManagerForOffTheRecordBrowserContext(
47 original_context, off_the_record_context); 67 original_context, off_the_record_context);
48 } 68 }
(...skipping 14 matching lines...) Expand all
63 // In case |context| is an incognito Profile/Context, |manager_| will have a 83 // In case |context| is an incognito Profile/Context, |manager_| will have a
64 // matching entry pointing to the PolicyService of the original context. 84 // matching entry pointing to the PolicyService of the original context.
65 ManagerMap::const_iterator it = managers_.find(context); 85 ManagerMap::const_iterator it = managers_.find(context);
66 return it != managers_.end() ? it->second : NULL; 86 return it != managers_.end() ? it->second : NULL;
67 } 87 }
68 88
69 scoped_ptr<UserCloudPolicyManager> 89 scoped_ptr<UserCloudPolicyManager>
70 UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext( 90 UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext(
71 content::BrowserContext* context, 91 content::BrowserContext* context,
72 bool force_immediate_load, 92 bool force_immediate_load,
73 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { 93 const scoped_refptr<base::SequencedTaskRunner>& background_task_runner,
94 const scoped_refptr<base::SequencedTaskRunner>& file_task_runner,
95 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) {
74 DCHECK(!context->IsOffTheRecord()); 96 DCHECK(!context->IsOffTheRecord());
97
75 scoped_ptr<UserCloudPolicyStore> store( 98 scoped_ptr<UserCloudPolicyStore> store(
76 UserCloudPolicyStore::Create(context->GetPath(), background_task_runner)); 99 UserCloudPolicyStore::Create(context->GetPath(), background_task_runner));
77 if (force_immediate_load) 100 if (force_immediate_load)
78 store->LoadImmediately(); 101 store->LoadImmediately();
102
103 const base::FilePath component_policy_cache_dir =
104 context->GetPath().Append(kPolicy).Append(kComponentsDir);
105
79 scoped_ptr<UserCloudPolicyManager> manager( 106 scoped_ptr<UserCloudPolicyManager> manager(
80 new UserCloudPolicyManager(context, 107 new UserCloudPolicyManager(context,
81 store.Pass(), 108 store.Pass(),
109 component_policy_cache_dir,
82 scoped_ptr<CloudExternalDataManager>(), 110 scoped_ptr<CloudExternalDataManager>(),
83 base::MessageLoopProxy::current())); 111 base::MessageLoopProxy::current(),
112 file_task_runner,
113 io_task_runner));
84 manager->Init(SchemaRegistryServiceFactory::GetForContext(context)); 114 manager->Init(SchemaRegistryServiceFactory::GetForContext(context));
85 return manager.Pass(); 115 return manager.Pass();
86 } 116 }
87 117
88 UserCloudPolicyManager* 118 UserCloudPolicyManager*
89 UserCloudPolicyManagerFactory::RegisterManagerForOffTheRecordBrowserContext( 119 UserCloudPolicyManagerFactory::RegisterManagerForOffTheRecordBrowserContext(
90 content::BrowserContext* original_context, 120 content::BrowserContext* original_context,
91 content::BrowserContext* off_the_record_context) { 121 content::BrowserContext* off_the_record_context) {
92 // Register the PolicyService of the original context for the respective 122 // Register the PolicyService of the original context for the respective
93 // incognito context. See also GetManagerForBrowserContext. 123 // incognito context. See also GetManagerForBrowserContext.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 if (entry != managers_.end()) { 167 if (entry != managers_.end()) {
138 if (instance) 168 if (instance)
139 DCHECK_EQ(instance, entry->second); 169 DCHECK_EQ(instance, entry->second);
140 managers_.erase(entry); 170 managers_.erase(entry);
141 } else { 171 } else {
142 NOTREACHED(); 172 NOTREACHED();
143 } 173 }
144 } 174 }
145 175
146 } // namespace policy 176 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698