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

Unified Diff: chrome/browser/policy/cloud/cloud_policy_manager.h

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/cloud_policy_manager.h
diff --git a/chrome/browser/policy/cloud/cloud_policy_manager.h b/chrome/browser/policy/cloud/cloud_policy_manager.h
index 8f3c9ff2e855262a5502a8c9c07474ffae234b4f..02af206d4e9d51169d0b78e80798adcbdc80e093 100644
--- a/chrome/browser/policy/cloud/cloud_policy_manager.h
+++ b/chrome/browser/policy/cloud/cloud_policy_manager.h
@@ -10,19 +10,24 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
#include "base/prefs/pref_member.h"
#include "chrome/browser/policy/cloud/cloud_policy_constants.h"
#include "chrome/browser/policy/cloud/cloud_policy_core.h"
#include "chrome/browser/policy/cloud/cloud_policy_store.h"
+#include "chrome/browser/policy/cloud/component_cloud_policy_service.h"
#include "chrome/browser/policy/configuration_policy_provider.h"
namespace base {
+class FilePath;
class SequencedTaskRunner;
}
-namespace policy {
+namespace net {
+class URLRequestContextGetter;
+}
-class PolicyBundle;
+namespace policy {
// CloudPolicyManager is the main switching central between cloud policy and the
// upper layers of the policy stack. It wires up a CloudPolicyCore to the
@@ -32,13 +37,20 @@ class PolicyBundle;
// functionality specific to user-level and device-level cloud policy, such as
// blocking on initial user policy fetch or device enrollment.
class CloudPolicyManager : public ConfigurationPolicyProvider,
- public CloudPolicyStore::Observer {
+ public CloudPolicyStore::Observer,
+ public ComponentCloudPolicyService::Delegate {
public:
// |task_runner| is the runner for policy refresh tasks.
+ // |file_task_runner| is used for file operations. Currently this must be the
+ // FILE BrowserThread.
+ // |io_task_runner| is used for network IO. Currently this must be the IO
+ // BrowserThread.
CloudPolicyManager(
const PolicyNamespaceKey& policy_ns_key,
CloudPolicyStore* cloud_policy_store,
- const scoped_refptr<base::SequencedTaskRunner>& task_runner);
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& file_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& io_task_runner);
virtual ~CloudPolicyManager();
CloudPolicyCore* core() { return &core_; }
@@ -53,14 +65,17 @@ class CloudPolicyManager : public ConfigurationPolicyProvider,
virtual void OnStoreLoaded(CloudPolicyStore* cloud_policy_store) OVERRIDE;
virtual void OnStoreError(CloudPolicyStore* cloud_policy_store) OVERRIDE;
+ // ComponentCloudPolicyService::Delegate:
+ virtual void OnComponentCloudPolicyUpdated() OVERRIDE;
+
protected:
// Check whether fully initialized and if so, publish policy by calling
// ConfigurationPolicyStore::UpdatePolicy().
void CheckAndPublishPolicy();
- // Called by CheckAndPublishPolicy() to create a bundle with the current
- // policies.
- virtual scoped_ptr<PolicyBundle> CreatePolicyBundle();
+ void CreateComponentCloudPolicyService(
+ const base::FilePath& policy_cache_path,
+ const scoped_refptr<net::URLRequestContextGetter>& request_context);
// Convenience accessors to core() components.
CloudPolicyClient* client() { return core_.client(); }
@@ -69,17 +84,24 @@ class CloudPolicyManager : public ConfigurationPolicyProvider,
const CloudPolicyStore* store() const { return core_.store(); }
CloudPolicyService* service() { return core_.service(); }
const CloudPolicyService* service() const { return core_.service(); }
+ ComponentCloudPolicyService* component_policy_service() const {
+ return component_policy_service_.get();
+ }
private:
// Completion handler for policy refresh operations.
void OnRefreshComplete(bool success);
CloudPolicyCore core_;
+ scoped_ptr<ComponentCloudPolicyService> component_policy_service_;
// Whether there's a policy refresh operation pending, in which case all
// policy update notifications are deferred until after it completes.
bool waiting_for_policy_refresh_;
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
+ scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
+
DISALLOW_COPY_AND_ASSIGN(CloudPolicyManager);
};

Powered by Google App Engine
This is Rietveld 408576698