Chromium Code Reviews| 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; |
| } |