Chromium Code Reviews| 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 |