Index: chrome/browser/chromeos/policy/device_local_account_policy_service.h |
diff --git a/chrome/browser/chromeos/policy/device_local_account_policy_service.h b/chrome/browser/chromeos/policy/device_local_account_policy_service.h |
index 3230a64e0cfccdc21b9f3bd0bc535c0a086e29e8..6849eb35accf76b7740b7d897160e3d99f3be27d 100644 |
--- a/chrome/browser/chromeos/policy/device_local_account_policy_service.h |
+++ b/chrome/browser/chromeos/policy/device_local_account_policy_service.h |
@@ -18,6 +18,7 @@ |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
#include "chrome/browser/chromeos/extensions/device_local_account_external_policy_loader.h" |
+#include "chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h" |
#include "chrome/browser/chromeos/policy/device_local_account_extension_tracker.h" |
#include "chrome/browser/chromeos/policy/device_local_account_external_data_manager.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
@@ -35,12 +36,17 @@ class DeviceSettingsService; |
class SessionManagerClient; |
} |
+namespace invalidation { |
+class InvalidationService; |
+} |
+ |
namespace net { |
class URLRequestContextGetter; |
} |
namespace policy { |
+class CloudPolicyInvalidator; |
struct DeviceLocalAccount; |
class DeviceLocalAccountExternalDataService; |
class DeviceLocalAccountPolicyStore; |
@@ -50,12 +56,15 @@ class DeviceManagementService; |
// a single device-local account. |
class DeviceLocalAccountPolicyBroker |
: public CloudPolicyStore::Observer, |
- public ComponentCloudPolicyService::Delegate { |
+ public ComponentCloudPolicyService::Delegate, |
+ public AffiliatedInvalidationServiceProvider::Consumer { |
public: |
+ // |invalidation_service_provider| must outlive |this|. |
// |policy_update_callback| will be invoked to notify observers that the |
// policy for |account| has been updated. |
// |task_runner| is the runner for policy refresh tasks. |
DeviceLocalAccountPolicyBroker( |
+ AffiliatedInvalidationServiceProvider* invalidation_service_provider, |
pneubeck (no reviews)
2015/01/30 14:23:58
nitty:
non const& arguments tend to be add the e
bartfab (slow)
2015/02/03 18:31:06
Done.
|
const DeviceLocalAccount& account, |
const base::FilePath& component_policy_cache_path, |
scoped_ptr<DeviceLocalAccountPolicyStore> store, |
@@ -110,11 +119,26 @@ class DeviceLocalAccountPolicyBroker |
// ComponentCloudPolicyService::Delegate: |
void OnComponentCloudPolicyUpdated() override; |
+ // AffiliatedInvalidationServiceProvider::Consumer: |
+ void OnInvalidationServiceSet( |
+ invalidation::InvalidationService* invalidation_service) override; |
+ |
+ CloudPolicyInvalidator* GetInvalidatorForTest() const; |
+ |
private: |
+ bool IsConnected(); |
pneubeck (no reviews)
2015/01/30 14:23:58
could have a comment
bartfab (slow)
2015/02/03 18:31:06
Added comment. Also, renamed this to HasClient().
|
+ |
void CreateComponentCloudPolicyService( |
const scoped_refptr<net::URLRequestContextGetter>& request_context, |
CloudPolicyClient* client); |
+ // Creates an |invalidator_| if an |invalidation_service_| is available and |
+ // the |core_| is connected. |
+ void CreateInvalidatorIfPossible(); |
+ |
+ void DestroyInvalidator(); |
+ |
+ AffiliatedInvalidationServiceProvider* invalidation_service_provider_; |
const std::string account_id_; |
const std::string user_id_; |
const base::FilePath component_policy_cache_path_; |
@@ -128,6 +152,10 @@ class DeviceLocalAccountPolicyBroker |
scoped_ptr<ComponentCloudPolicyService> component_policy_service_; |
base::Closure policy_update_callback_; |
+ int64 highest_handled_invalidation_version_; |
+ invalidation::InvalidationService* invalidation_service_; |
+ scoped_ptr<CloudPolicyInvalidator> invalidator_; |
+ |
DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyBroker); |
}; |
@@ -153,6 +181,7 @@ class DeviceLocalAccountPolicyService { |
chromeos::SessionManagerClient* session_manager_client, |
chromeos::DeviceSettingsService* device_settings_service, |
chromeos::CrosSettings* cros_settings, |
+ AffiliatedInvalidationServiceProvider* invalidation_service_provider, |
scoped_refptr<base::SequencedTaskRunner> store_background_task_runner, |
scoped_refptr<base::SequencedTaskRunner> extension_cache_task_runner, |
scoped_refptr<base::SequencedTaskRunner> |
@@ -227,6 +256,7 @@ class DeviceLocalAccountPolicyService { |
chromeos::SessionManagerClient* session_manager_client_; |
chromeos::DeviceSettingsService* device_settings_service_; |
chromeos::CrosSettings* cros_settings_; |
+ AffiliatedInvalidationServiceProvider* invalidation_service_provider_; |
DeviceManagementService* device_management_service_; |