Chromium Code Reviews| Index: chrome/browser/policy/cloud/user_cloud_policy_manager_factory.cc |
| diff --git a/chrome/browser/policy/cloud/user_cloud_policy_manager_factory.cc b/chrome/browser/policy/cloud/user_cloud_policy_manager_factory.cc |
| index 5e6248c56782cfc04eef2e0ffa60c5ef03783bd5..9946e86c1e0087f114e61f83e879f988c36e046c 100644 |
| --- a/chrome/browser/policy/cloud/user_cloud_policy_manager_factory.cc |
| +++ b/chrome/browser/policy/cloud/user_cloud_policy_manager_factory.cc |
| @@ -4,6 +4,7 @@ |
| #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" |
| +#include "base/files/file_path.h" |
| #include "base/logging.h" |
| #include "base/message_loop/message_loop_proxy.h" |
| #include "base/sequenced_task_runner.h" |
| @@ -17,6 +18,18 @@ |
| namespace policy { |
| +namespace { |
| + |
| +// 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.
|
| +const base::FilePath::CharType kPolicy[] = FILE_PATH_LITERAL("Policy"); |
| + |
| +// Directory under kPolicy, in the user's profile dir, where policy for |
| +// components is cached. |
| +const base::FilePath::CharType kComponentsDir[] = |
| + FILE_PATH_LITERAL("Components"); |
| + |
| +} // namespace |
| + |
| // static |
| UserCloudPolicyManagerFactory* UserCloudPolicyManagerFactory::GetInstance() { |
| return Singleton<UserCloudPolicyManagerFactory>::get(); |
| @@ -33,9 +46,15 @@ scoped_ptr<UserCloudPolicyManager> |
| UserCloudPolicyManagerFactory::CreateForOriginalBrowserContext( |
| content::BrowserContext* context, |
| bool force_immediate_load, |
| - scoped_refptr<base::SequencedTaskRunner> background_task_runner) { |
| + const scoped_refptr<base::SequencedTaskRunner>& background_task_runner, |
| + const scoped_refptr<base::SequencedTaskRunner>& file_task_runner, |
| + const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) { |
| return GetInstance()->CreateManagerForOriginalBrowserContext( |
| - context, force_immediate_load, background_task_runner); |
| + context, |
| + force_immediate_load, |
| + background_task_runner, |
| + file_task_runner, |
| + io_task_runner); |
| } |
| // static |
| @@ -70,17 +89,27 @@ scoped_ptr<UserCloudPolicyManager> |
| UserCloudPolicyManagerFactory::CreateManagerForOriginalBrowserContext( |
| content::BrowserContext* context, |
| bool force_immediate_load, |
| - scoped_refptr<base::SequencedTaskRunner> background_task_runner) { |
| + const scoped_refptr<base::SequencedTaskRunner>& background_task_runner, |
| + const scoped_refptr<base::SequencedTaskRunner>& file_task_runner, |
| + const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) { |
| DCHECK(!context->IsOffTheRecord()); |
| + |
| scoped_ptr<UserCloudPolicyStore> store( |
| UserCloudPolicyStore::Create(context->GetPath(), background_task_runner)); |
| if (force_immediate_load) |
| store->LoadImmediately(); |
| + |
| + const base::FilePath component_policy_cache_dir = |
| + context->GetPath().Append(kPolicy).Append(kComponentsDir); |
| + |
| scoped_ptr<UserCloudPolicyManager> manager( |
| new UserCloudPolicyManager(context, |
| store.Pass(), |
| + component_policy_cache_dir, |
| scoped_ptr<CloudExternalDataManager>(), |
| - base::MessageLoopProxy::current())); |
| + base::MessageLoopProxy::current(), |
| + file_task_runner, |
| + io_task_runner)); |
| manager->Init(SchemaRegistryServiceFactory::GetForContext(context)); |
| return manager.Pass(); |
| } |