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

Side by Side Diff: chrome/browser/policy/cloud/user_cloud_policy_manager.cc

Issue 19733003: Implement cloud policy invalidations using the invalidation service framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/policy/cloud/user_cloud_policy_manager.h" 5 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h"
10 #include "chrome/browser/invalidation/invalidation_service_factory.h"
9 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" 11 #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
10 #include "chrome/browser/policy/cloud/cloud_policy_service.h" 12 #include "chrome/browser/policy/cloud/cloud_policy_service.h"
11 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" 13 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
12 #include "chrome/browser/policy/cloud/user_cloud_policy_store.h" 14 #include "chrome/browser/policy/cloud/user_cloud_policy_store.h"
13 #include "chrome/browser/policy/policy_types.h" 15 #include "chrome/browser/policy/policy_types.h"
16 #include "chrome/common/chrome_switches.h"
14 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
15 18
16 namespace em = enterprise_management; 19 namespace em = enterprise_management;
17 20
18 namespace policy { 21 namespace policy {
19 22
20 UserCloudPolicyManager::UserCloudPolicyManager( 23 UserCloudPolicyManager::UserCloudPolicyManager(
21 Profile* profile, 24 Profile* profile,
22 scoped_ptr<UserCloudPolicyStore> store) 25 scoped_ptr<UserCloudPolicyStore> store)
23 : CloudPolicyManager( 26 : CloudPolicyManager(
24 PolicyNamespaceKey(GetChromeUserPolicyType(), std::string()), 27 PolicyNamespaceKey(GetChromeUserPolicyType(), std::string()),
25 store.get()), 28 store.get()),
26 profile_(profile), 29 profile_(profile),
27 store_(store.Pass()) { 30 store_(store.Pass()) {
28 UserCloudPolicyManagerFactory::GetInstance()->Register(profile_, this); 31 UserCloudPolicyManagerFactory::GetInstance()->Register(profile_, this);
29 } 32 }
30 33
31 UserCloudPolicyManager::~UserCloudPolicyManager() { 34 UserCloudPolicyManager::~UserCloudPolicyManager() {
32 UserCloudPolicyManagerFactory::GetInstance()->Unregister(profile_, this); 35 UserCloudPolicyManagerFactory::GetInstance()->Unregister(profile_, this);
33 } 36 }
34 37
35 void UserCloudPolicyManager::Connect( 38 void UserCloudPolicyManager::Connect(
36 PrefService* local_state, scoped_ptr<CloudPolicyClient> client) { 39 PrefService* local_state, scoped_ptr<CloudPolicyClient> client) {
37 core()->Connect(client.Pass()); 40 core()->Connect(client.Pass());
38 core()->StartRefreshScheduler(); 41 core()->StartRefreshScheduler();
39 core()->TrackRefreshDelayPref(local_state, prefs::kUserPolicyRefreshRate); 42 core()->TrackRefreshDelayPref(local_state, prefs::kUserPolicyRefreshRate);
43 if (CommandLine::ForCurrentProcess()->HasSwitch(
44 switches::kEnableCloudPolicyPush)) {
Joao da Silva 2013/07/23 20:44:47 Move the flag check to CreateInvalidator
Steve Condie 2013/07/24 01:42:04 Done.
45 CreateInvalidator(
46 invalidation::InvalidationServiceFactory::GetForProfile(profile_));
47 }
40 } 48 }
41 49
42 // static 50 // static
43 scoped_ptr<CloudPolicyClient> 51 scoped_ptr<CloudPolicyClient>
44 UserCloudPolicyManager::CreateCloudPolicyClient( 52 UserCloudPolicyManager::CreateCloudPolicyClient(
45 DeviceManagementService* device_management_service) { 53 DeviceManagementService* device_management_service) {
46 return make_scoped_ptr( 54 return make_scoped_ptr(
47 new CloudPolicyClient(std::string(), std::string(), 55 new CloudPolicyClient(std::string(), std::string(),
48 USER_AFFILIATION_NONE, 56 USER_AFFILIATION_NONE,
49 NULL, device_management_service)).Pass(); 57 NULL, device_management_service)).Pass();
50 } 58 }
51 59
52 void UserCloudPolicyManager::DisconnectAndRemovePolicy() { 60 void UserCloudPolicyManager::DisconnectAndRemovePolicy() {
61 UnregisterInvalidator();
53 core()->Disconnect(); 62 core()->Disconnect();
54 store_->Clear(); 63 store_->Clear();
55 } 64 }
56 65
57 bool UserCloudPolicyManager::IsClientRegistered() const { 66 bool UserCloudPolicyManager::IsClientRegistered() const {
58 return client() && client()->is_registered(); 67 return client() && client()->is_registered();
59 } 68 }
60 69
61 } // namespace policy 70 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698