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