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

Unified 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: rebase Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698