OLD | NEW |
---|---|
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 |
OLD | NEW |