| 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);
|
| };
|
|
|
|
|