Chromium Code Reviews| 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 |