Index: chrome/browser/chromeos/policy/device_cloud_policy_invalidator.cc |
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_invalidator.cc b/chrome/browser/chromeos/policy/device_cloud_policy_invalidator.cc |
index 32070c0da837aca279ee3605a8d50071f1025f4c..229908d1235b941c640b6fbd9ad1854124b2bb80 100644 |
--- a/chrome/browser/chromeos/policy/device_cloud_policy_invalidator.cc |
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_invalidator.cc |
@@ -118,7 +118,8 @@ std::string DeviceCloudPolicyInvalidator::InvalidationServiceObserver:: |
} |
DeviceCloudPolicyInvalidator::DeviceCloudPolicyInvalidator() |
- : invalidation_service_(NULL) { |
+ : invalidation_service_(NULL), |
+ highest_handled_invalidation_version_(0) { |
Joao da Silva
2014/08/13 13:01:38
I don't know if invalidation IDs can be negative..
bartfab (slow)
2014/08/13 13:37:47
Yes, they can be negative and negative values are
|
// The DeviceCloudPolicyInvalidator should be created before any user |
// Profiles. |
DCHECK(g_browser_process->profile_manager()->GetLoadedProfiles().empty()); |
@@ -251,18 +252,23 @@ void DeviceCloudPolicyInvalidator::TryToCreateInvalidator() { |
void DeviceCloudPolicyInvalidator::CreateInvalidator( |
invalidation::InvalidationService* invalidation_service) { |
invalidation_service_ = invalidation_service; |
+ DCHECK(!invalidator_); |
invalidator_.reset(new CloudPolicyInvalidator( |
enterprise_management::DeviceRegisterRequest::DEVICE, |
g_browser_process->platform_part()->browser_policy_connector_chromeos()-> |
GetDeviceCloudPolicyManager()->core(), |
base::MessageLoopProxy::current(), |
- scoped_ptr<base::Clock>(new base::DefaultClock()))); |
+ scoped_ptr<base::Clock>(new base::DefaultClock()), |
+ highest_handled_invalidation_version_)); |
invalidator_->Initialize(invalidation_service); |
} |
void DeviceCloudPolicyInvalidator::DestroyInvalidator() { |
- if (invalidator_) |
+ if (invalidator_) { |
+ highest_handled_invalidation_version_ = |
+ invalidator_->highest_handled_invalidation_version(); |
invalidator_->Shutdown(); |
+ } |
invalidator_.reset(); |
invalidation_service_ = NULL; |
} |