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

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: fixed stub, again 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 other resources are stored.
bartfab (slow) 2013/11/25 15:05:50 Nit: "Other resources" is extremely generic.
Joao da Silva 2013/11/25 16:44:11 Done.
24 const base::FilePath::CharType kPolicy[] = FILE_PATH_LITERAL("Policy");
25
26 // Directory under kPolicy, in the user's profile dir, where policy for
27 // components is cached.
28 const base::FilePath::CharType kComponentsDir[] =
29 FILE_PATH_LITERAL("Components");
30
31 } // namespace
32
20 // static 33 // static
21 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() { 34 UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() {
22 return Singleton<UserCloudPolicyManagerFactory>::get(); 35 return Singleton<UserCloudPolicyManagerFactory>::get();
23 } 36 }
24 37
25 // static 38 // static
26 UserCloudPolicyManager* UserCloudPolicyManagerFactory::GetForBrowserContext( 39 UserCloudPolicyManager* UserCloudPolicyManagerFactory::GetForBrowserContext(
27 content::BrowserContext* context) { 40 content::BrowserContext* context) {
28 return GetInstance()->GetManagerForBrowserContext(context); 41 return GetInstance()->GetManagerForBrowserContext(context);
29 } 42 }
30 43
31 // static 44 // static
32 scoped_ptr<UserCloudPolicyManager> 45 scoped_ptr<UserCloudPolicyManager>
33 UserCloudPolicyManagerFactory::CreateForOriginalBrowserContext( 46 UserCloudPolicyManagerFactory::CreateForOriginalBrowserContext(
34 content::BrowserContext* context, 47 content::BrowserContext* context,
35 bool force_immediate_load, 48 bool force_immediate_load,
36 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { 49 const scoped_refptr<base::SequencedTaskRunner>& background_task_runner,
50 const scoped_refptr<base::SequencedTaskRunner>& file_task_runner,
51 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) {
37 return GetInstance()->CreateManagerForOriginalBrowserContext( 52 return GetInstance()->CreateManagerForOriginalBrowserContext(
38 context, force_immediate_load, background_task_runner); 53 context,
54 force_immediate_load,
55 background_task_runner,
56 file_task_runner,
57 io_task_runner);
39 } 58 }
40 59
41 // static 60 // static
42 UserCloudPolicyManager* 61 UserCloudPolicyManager*
43 UserCloudPolicyManagerFactory::RegisterForOffTheRecordBrowserContext( 62 UserCloudPolicyManagerFactory::RegisterForOffTheRecordBrowserContext(
44 content::BrowserContext* original_context, 63 content::BrowserContext* original_context,
45 content::BrowserContext* off_the_record_context) { 64 content::BrowserContext* off_the_record_context) {
46 return GetInstance()->RegisterManagerForOffTheRecordBrowserContext( 65 return GetInstance()->RegisterManagerForOffTheRecordBrowserContext(
47 original_context, off_the_record_context); 66 original_context, off_the_record_context);
48 } 67 }
(...skipping 14 matching lines...) Expand all
63 // In case |context| is an incognito Profile/Context, |manager_| will have a 82 // In case |context| is an incognito Profile/Context, |manager_| will have a
64 // matching entry pointing to the PolicyService of the original context. 83 // matching entry pointing to the PolicyService of the original context.
65 ManagerMap::const_iterator it = managers_.find(context); 84 ManagerMap::const_iterator it = managers_.find(context);
66 return it != managers_.end() ? it->second : NULL; 85 return it != managers_.end() ? it->second : NULL;
67 } 86 }
68 87
69 scoped_ptr<UserCloudPolicyManager> 88 scoped_ptr<UserCloudPolicyManager>
70 UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext( 89 UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext(
71 content::BrowserContext* context, 90 content::BrowserContext* context,
72 bool force_immediate_load, 91 bool force_immediate_load,
73 scoped_refptr<base::SequencedTaskRunner> background_task_runner) { 92 const scoped_refptr<base::SequencedTaskRunner>& background_task_runner,
93 const scoped_refptr<base::SequencedTaskRunner>& file_task_runner,
94 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) {
74 DCHECK(!context->IsOffTheRecord()); 95 DCHECK(!context->IsOffTheRecord());
96
75 scoped_ptr<UserCloudPolicyStore> store( 97 scoped_ptr<UserCloudPolicyStore> store(
76 UserCloudPolicyStore::Create(context->GetPath(), background_task_runner)); 98 UserCloudPolicyStore::Create(context->GetPath(), background_task_runner));
77 if (force_immediate_load) 99 if (force_immediate_load)
78 store->LoadImmediately(); 100 store->LoadImmediately();
101
102 const base::FilePath component_policy_cache_dir =
103 context->GetPath().Append(kPolicy).Append(kComponentsDir);
104
79 scoped_ptr<UserCloudPolicyManager> manager( 105 scoped_ptr<UserCloudPolicyManager> manager(
80 new UserCloudPolicyManager(context, 106 new UserCloudPolicyManager(context,
81 store.Pass(), 107 store.Pass(),
108 component_policy_cache_dir,
82 scoped_ptr<CloudExternalDataManager>(), 109 scoped_ptr<CloudExternalDataManager>(),
83 base::MessageLoopProxy::current())); 110 base::MessageLoopProxy::current(),
111 file_task_runner,
112 io_task_runner));
84 manager->Init(SchemaRegistryServiceFactory::GetForContext(context)); 113 manager->Init(SchemaRegistryServiceFactory::GetForContext(context));
85 return manager.Pass(); 114 return manager.Pass();
86 } 115 }
87 116
88 UserCloudPolicyManager* 117 UserCloudPolicyManager*
89 UserCloudPolicyManagerFactory::RegisterManagerForOffTheRecordBrowserContext( 118 UserCloudPolicyManagerFactory::RegisterManagerForOffTheRecordBrowserContext(
90 content::BrowserContext* original_context, 119 content::BrowserContext* original_context,
91 content::BrowserContext* off_the_record_context) { 120 content::BrowserContext* off_the_record_context) {
92 // Register the PolicyService of the original context for the respective 121 // Register the PolicyService of the original context for the respective
93 // incognito context. See also GetManagerForBrowserContext. 122 // incognito context. See also GetManagerForBrowserContext.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 if (entry != managers_.end()) { 166 if (entry != managers_.end()) {
138 if (instance) 167 if (instance)
139 DCHECK_EQ(instance, entry->second); 168 DCHECK_EQ(instance, entry->second);
140 managers_.erase(entry); 169 managers_.erase(entry);
141 } else { 170 } else {
142 NOTREACHED(); 171 NOTREACHED();
143 } 172 }
144 } 173 }
145 174
146 } // namespace policy 175 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698