OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/policy/device_cloud_policy_invalidator.h" | 5 #include "chrome/browser/chromeos/policy/device_cloud_policy_invalidator.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 OnIncomingInvalidation( | 111 OnIncomingInvalidation( |
112 const syncer::ObjectIdInvalidationMap& invalidation_map) { | 112 const syncer::ObjectIdInvalidationMap& invalidation_map) { |
113 } | 113 } |
114 | 114 |
115 std::string DeviceCloudPolicyInvalidator::InvalidationServiceObserver:: | 115 std::string DeviceCloudPolicyInvalidator::InvalidationServiceObserver:: |
116 GetOwnerName() const { | 116 GetOwnerName() const { |
117 return "DevicePolicy"; | 117 return "DevicePolicy"; |
118 } | 118 } |
119 | 119 |
120 DeviceCloudPolicyInvalidator::DeviceCloudPolicyInvalidator() | 120 DeviceCloudPolicyInvalidator::DeviceCloudPolicyInvalidator() |
121 : invalidation_service_(NULL) { | 121 : invalidation_service_(NULL), |
| 122 highest_handled_invalidation_version_(0) { |
122 // The DeviceCloudPolicyInvalidator should be created before any user | 123 // The DeviceCloudPolicyInvalidator should be created before any user |
123 // Profiles. | 124 // Profiles. |
124 DCHECK(g_browser_process->profile_manager()->GetLoadedProfiles().empty()); | 125 DCHECK(g_browser_process->profile_manager()->GetLoadedProfiles().empty()); |
125 | 126 |
126 // Subscribe to notification about new user profiles becoming available. | 127 // Subscribe to notification about new user profiles becoming available. |
127 registrar_.Add(this, | 128 registrar_.Add(this, |
128 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, | 129 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, |
129 content::NotificationService::AllSources()); | 130 content::NotificationService::AllSources()); |
130 | 131 |
131 TryToCreateInvalidator(); | 132 TryToCreateInvalidator(); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 // |CloudPolicyInvalidator| backed by it. Otherwise, a | 245 // |CloudPolicyInvalidator| backed by it. Otherwise, a |
245 // |CloudPolicyInvalidator| will be created later when a connected service | 246 // |CloudPolicyInvalidator| will be created later when a connected service |
246 // becomes available. | 247 // becomes available. |
247 CreateInvalidator(device_invalidation_service_.get()); | 248 CreateInvalidator(device_invalidation_service_.get()); |
248 } | 249 } |
249 } | 250 } |
250 | 251 |
251 void DeviceCloudPolicyInvalidator::CreateInvalidator( | 252 void DeviceCloudPolicyInvalidator::CreateInvalidator( |
252 invalidation::InvalidationService* invalidation_service) { | 253 invalidation::InvalidationService* invalidation_service) { |
253 invalidation_service_ = invalidation_service; | 254 invalidation_service_ = invalidation_service; |
| 255 DCHECK(!invalidator_); |
254 invalidator_.reset(new CloudPolicyInvalidator( | 256 invalidator_.reset(new CloudPolicyInvalidator( |
255 enterprise_management::DeviceRegisterRequest::DEVICE, | 257 enterprise_management::DeviceRegisterRequest::DEVICE, |
256 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> | 258 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> |
257 GetDeviceCloudPolicyManager()->core(), | 259 GetDeviceCloudPolicyManager()->core(), |
258 base::MessageLoopProxy::current(), | 260 base::MessageLoopProxy::current(), |
259 scoped_ptr<base::Clock>(new base::DefaultClock()))); | 261 scoped_ptr<base::Clock>(new base::DefaultClock()), |
| 262 highest_handled_invalidation_version_)); |
260 invalidator_->Initialize(invalidation_service); | 263 invalidator_->Initialize(invalidation_service); |
261 } | 264 } |
262 | 265 |
263 void DeviceCloudPolicyInvalidator::DestroyInvalidator() { | 266 void DeviceCloudPolicyInvalidator::DestroyInvalidator() { |
264 if (invalidator_) | 267 if (invalidator_) { |
| 268 highest_handled_invalidation_version_ = |
| 269 invalidator_->highest_handled_invalidation_version(); |
265 invalidator_->Shutdown(); | 270 invalidator_->Shutdown(); |
| 271 } |
266 invalidator_.reset(); | 272 invalidator_.reset(); |
267 invalidation_service_ = NULL; | 273 invalidation_service_ = NULL; |
268 } | 274 } |
269 | 275 |
270 void DeviceCloudPolicyInvalidator::DestroyDeviceInvalidationService() { | 276 void DeviceCloudPolicyInvalidator::DestroyDeviceInvalidationService() { |
271 device_invalidation_service_observer_.reset(); | 277 device_invalidation_service_observer_.reset(); |
272 device_invalidation_service_.reset(); | 278 device_invalidation_service_.reset(); |
273 } | 279 } |
274 | 280 |
275 } // namespace policy | 281 } // namespace policy |
OLD | NEW |