OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |