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

Side by Side Diff: chrome/browser/chromeos/policy/affiliated_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
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/affiliated_cloud_policy_invalidator.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop_proxy.h" 8 #include "base/thread_task_runner_handle.h"
9 #include "base/time/clock.h" 9 #include "base/time/clock.h"
10 #include "base/time/default_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" 11 #include "chrome/browser/policy/cloud/cloud_policy_invalidator.h"
16 #include "policy/proto/device_management_backend.pb.h"
17 12
18 namespace policy { 13 namespace policy {
19 14
20 DeviceCloudPolicyInvalidator::DeviceCloudPolicyInvalidator( 15 AffiliatedCloudPolicyInvalidator::AffiliatedCloudPolicyInvalidator(
16 enterprise_management::DeviceRegisterRequest::Type type,
17 CloudPolicyCore* core,
21 AffiliatedInvalidationServiceProvider* invalidation_service_provider) 18 AffiliatedInvalidationServiceProvider* invalidation_service_provider)
22 : invalidation_service_provider_(invalidation_service_provider), 19 : type_(type),
20 core_(core),
21 invalidation_service_provider_(invalidation_service_provider),
23 highest_handled_invalidation_version_(0) { 22 highest_handled_invalidation_version_(0) {
24 invalidation_service_provider_->RegisterConsumer(this); 23 invalidation_service_provider_->RegisterConsumer(this);
25 } 24 }
26 25
27 DeviceCloudPolicyInvalidator::~DeviceCloudPolicyInvalidator() { 26 AffiliatedCloudPolicyInvalidator::~AffiliatedCloudPolicyInvalidator() {
28 DestroyInvalidator(); 27 DestroyInvalidator();
29 invalidation_service_provider_->UnregisterConsumer(this); 28 invalidation_service_provider_->UnregisterConsumer(this);
30 } 29 }
31 30
32 void DeviceCloudPolicyInvalidator::OnInvalidationServiceSet( 31 void AffiliatedCloudPolicyInvalidator::OnInvalidationServiceSet(
33 invalidation::InvalidationService* invalidation_service) { 32 invalidation::InvalidationService* invalidation_service) {
34 DestroyInvalidator(); 33 DestroyInvalidator();
35 if (invalidation_service) 34 if (invalidation_service)
36 CreateInvalidator(invalidation_service); 35 CreateInvalidator(invalidation_service);
37 } 36 }
38 37
39 CloudPolicyInvalidator* 38 CloudPolicyInvalidator*
40 DeviceCloudPolicyInvalidator::GetInvalidatorForTest() const { 39 AffiliatedCloudPolicyInvalidator::GetInvalidatorForTest() const {
41 return invalidator_.get(); 40 return invalidator_.get();
42 } 41 }
43 42
44 void DeviceCloudPolicyInvalidator::CreateInvalidator( 43 void AffiliatedCloudPolicyInvalidator::CreateInvalidator(
45 invalidation::InvalidationService* invalidation_service) { 44 invalidation::InvalidationService* invalidation_service) {
46 DCHECK(!invalidator_); 45 DCHECK(!invalidator_);
47 invalidator_.reset(new CloudPolicyInvalidator( 46 invalidator_.reset(new CloudPolicyInvalidator(
48 enterprise_management::DeviceRegisterRequest::DEVICE, 47 type_,
49 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> 48 core_,
50 GetDeviceCloudPolicyManager()->core(), 49 base::ThreadTaskRunnerHandle::Get(),
51 base::MessageLoopProxy::current(),
52 scoped_ptr<base::Clock>(new base::DefaultClock()), 50 scoped_ptr<base::Clock>(new base::DefaultClock()),
53 highest_handled_invalidation_version_)); 51 highest_handled_invalidation_version_));
54 invalidator_->Initialize(invalidation_service); 52 invalidator_->Initialize(invalidation_service);
55 } 53 }
56 54
57 void DeviceCloudPolicyInvalidator::DestroyInvalidator() { 55 void AffiliatedCloudPolicyInvalidator::DestroyInvalidator() {
58 if (!invalidator_) 56 if (!invalidator_)
59 return; 57 return;
60 58
61 highest_handled_invalidation_version_ = 59 highest_handled_invalidation_version_ =
62 invalidator_->highest_handled_invalidation_version(); 60 invalidator_->highest_handled_invalidation_version();
63 invalidator_->Shutdown(); 61 invalidator_->Shutdown();
64 invalidator_.reset(); 62 invalidator_.reset();
65 } 63 }
66 64
67 } // namespace policy 65 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698