Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: chrome/browser/chromeos/policy/device_cloud_policy_invalidator.cc

Issue 822523003: Implement device-local account policy pushing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@f_2_442800_switch_device_cloud_policy_invalidator
Patch Set: Rebased. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/chromeos/policy/device_cloud_policy_invalidator.h"
6
7 #include "base/logging.h"
8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/time/clock.h"
10 #include "base/time/default_clock.h"
11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/browser_process_platform_part_chromeos.h"
13 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
14 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
15 #include "chrome/browser/policy/cloud/cloud_policy_invalidator.h"
16 #include "policy/proto/device_management_backend.pb.h"
17
18 namespace policy {
19
20 DeviceCloudPolicyInvalidator::DeviceCloudPolicyInvalidator(
21 AffiliatedInvalidationServiceProvider* invalidation_service_provider)
22 : invalidation_service_provider_(invalidation_service_provider),
23 highest_handled_invalidation_version_(0) {
24 invalidation_service_provider_->RegisterConsumer(this);
25 }
26
27 DeviceCloudPolicyInvalidator::~DeviceCloudPolicyInvalidator() {
28 DestroyInvalidator();
29 invalidation_service_provider_->UnregisterConsumer(this);
30 }
31
32 void DeviceCloudPolicyInvalidator::OnInvalidationServiceSet(
33 invalidation::InvalidationService* invalidation_service) {
34 DestroyInvalidator();
35 if (invalidation_service)
36 CreateInvalidator(invalidation_service);
37 }
38
39 CloudPolicyInvalidator*
40 DeviceCloudPolicyInvalidator::GetInvalidatorForTest() const {
41 return invalidator_.get();
42 }
43
44 void DeviceCloudPolicyInvalidator::CreateInvalidator(
45 invalidation::InvalidationService* invalidation_service) {
46 DCHECK(!invalidator_);
47 invalidator_.reset(new CloudPolicyInvalidator(
48 enterprise_management::DeviceRegisterRequest::DEVICE,
49 g_browser_process->platform_part()->browser_policy_connector_chromeos()->
50 GetDeviceCloudPolicyManager()->core(),
51 base::MessageLoopProxy::current(),
52 scoped_ptr<base::Clock>(new base::DefaultClock()),
53 highest_handled_invalidation_version_));
54 invalidator_->Initialize(invalidation_service);
55 }
56
57 void DeviceCloudPolicyInvalidator::DestroyInvalidator() {
58 if (!invalidator_)
59 return;
60
61 highest_handled_invalidation_version_ =
62 invalidator_->highest_handled_invalidation_version();
63 invalidator_->Shutdown();
64 invalidator_.reset();
65 }
66
67 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698