| 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..0deeaca89d1876996343c6acc1c2c3b46af70e1f 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,19 @@
|
|
|
| namespace policy {
|
|
|
| +namespace {
|
| +
|
| +// Directory inside the profile directory where policy-related resources are
|
| +// stored.
|
| +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 +47,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 +90,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();
|
| }
|
|
|