| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/browser_policy_connector.h" | 5 #include "chrome/browser/policy/browser_policy_connector.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 const char* kMachineInfoSerialNumberKeys[] = { | 74 const char* kMachineInfoSerialNumberKeys[] = { |
| 75 "sn", // ZGB | 75 "sn", // ZGB |
| 76 "Product_S/N", // Alex | 76 "Product_S/N", // Alex |
| 77 "Product_SN", // Mario | 77 "Product_SN", // Mario |
| 78 "serial_number" // VPD v2+ devices | 78 "serial_number" // VPD v2+ devices |
| 79 }; | 79 }; |
| 80 #endif | 80 #endif |
| 81 | 81 |
| 82 } // namespace | 82 } // namespace |
| 83 | 83 |
| 84 // static | 84 BrowserPolicyConnector::BrowserPolicyConnector() |
| 85 BrowserPolicyConnector* BrowserPolicyConnector::Create() { | 85 : ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {} |
| 86 return new BrowserPolicyConnector(); | |
| 87 } | |
| 88 | 86 |
| 89 BrowserPolicyConnector::~BrowserPolicyConnector() { | 87 BrowserPolicyConnector::~BrowserPolicyConnector() { |
| 90 // Shutdown device cloud policy. | 88 // Shutdown device cloud policy. |
| 91 #if defined(OS_CHROMEOS) | 89 #if defined(OS_CHROMEOS) |
| 92 if (device_cloud_policy_subsystem_.get()) | 90 if (device_cloud_policy_subsystem_.get()) |
| 93 device_cloud_policy_subsystem_->Shutdown(); | 91 device_cloud_policy_subsystem_->Shutdown(); |
| 94 device_cloud_policy_subsystem_.reset(); | 92 device_cloud_policy_subsystem_.reset(); |
| 95 device_data_store_.reset(); | 93 device_data_store_.reset(); |
| 96 #endif | 94 #endif |
| 97 | 95 |
| 98 // Shutdown user cloud policy. | 96 // Shutdown user cloud policy. |
| 99 if (user_cloud_policy_subsystem_.get()) | 97 if (user_cloud_policy_subsystem_.get()) |
| 100 user_cloud_policy_subsystem_->Shutdown(); | 98 user_cloud_policy_subsystem_->Shutdown(); |
| 101 user_cloud_policy_subsystem_.reset(); | 99 user_cloud_policy_subsystem_.reset(); |
| 102 user_policy_token_cache_.reset(); | 100 user_policy_token_cache_.reset(); |
| 103 user_data_store_.reset(); | 101 user_data_store_.reset(); |
| 104 } | 102 } |
| 105 | 103 |
| 104 void BrowserPolicyConnector::Init() { |
| 105 managed_platform_provider_.reset(CreateManagedPlatformProvider()); |
| 106 recommended_platform_provider_.reset(CreateRecommendedPlatformProvider()); |
| 107 |
| 108 managed_cloud_provider_.reset(new CloudPolicyProviderImpl( |
| 109 this, |
| 110 GetChromePolicyDefinitionList(), |
| 111 CloudPolicyCacheBase::POLICY_LEVEL_MANDATORY)); |
| 112 recommended_cloud_provider_.reset(new CloudPolicyProviderImpl( |
| 113 this, |
| 114 GetChromePolicyDefinitionList(), |
| 115 CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED)); |
| 116 |
| 117 #if defined(OS_CHROMEOS) |
| 118 InitializeDevicePolicy(); |
| 119 |
| 120 network_configuration_updater_.reset( |
| 121 new NetworkConfigurationUpdater( |
| 122 managed_cloud_provider_.get(), |
| 123 chromeos::CrosLibrary::Get()->GetNetworkLibrary())); |
| 124 #endif |
| 125 } |
| 126 |
| 106 ConfigurationPolicyProvider* | 127 ConfigurationPolicyProvider* |
| 107 BrowserPolicyConnector::GetManagedPlatformProvider() const { | 128 BrowserPolicyConnector::GetManagedPlatformProvider() const { |
| 108 return managed_platform_provider_.get(); | 129 return managed_platform_provider_.get(); |
| 109 } | 130 } |
| 110 | 131 |
| 111 ConfigurationPolicyProvider* | 132 ConfigurationPolicyProvider* |
| 112 BrowserPolicyConnector::GetManagedCloudProvider() const { | 133 BrowserPolicyConnector::GetManagedCloudProvider() const { |
| 113 return managed_cloud_provider_.get(); | 134 return managed_cloud_provider_.get(); |
| 114 } | 135 } |
| 115 | 136 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 return std::string(); | 216 return std::string(); |
| 196 } | 217 } |
| 197 | 218 |
| 198 void BrowserPolicyConnector::ResetDevicePolicy() { | 219 void BrowserPolicyConnector::ResetDevicePolicy() { |
| 199 #if defined(OS_CHROMEOS) | 220 #if defined(OS_CHROMEOS) |
| 200 if (device_cloud_policy_subsystem_.get()) | 221 if (device_cloud_policy_subsystem_.get()) |
| 201 device_cloud_policy_subsystem_->Reset(); | 222 device_cloud_policy_subsystem_->Reset(); |
| 202 #endif | 223 #endif |
| 203 } | 224 } |
| 204 | 225 |
| 205 void BrowserPolicyConnector::FetchDevicePolicy() { | 226 void BrowserPolicyConnector::FetchCloudPolicy() { |
| 206 #if defined(OS_CHROMEOS) | 227 #if defined(OS_CHROMEOS) |
| 207 if (device_data_store_.get()) { | 228 if (device_data_store_.get()) |
| 208 device_data_store_->NotifyDeviceTokenChanged(); | 229 device_data_store_->NotifyDeviceTokenChanged(); |
| 209 } | 230 if (user_data_store_.get()) |
| 231 user_data_store_->NotifyDeviceTokenChanged(); |
| 210 #endif | 232 #endif |
| 211 } | 233 } |
| 212 | 234 |
| 213 void BrowserPolicyConnector::FetchUserPolicy() { | 235 void BrowserPolicyConnector::RefreshPolicies() { |
| 214 #if defined(OS_CHROMEOS) | 236 if (managed_platform_provider_.get()) |
| 215 if (user_data_store_.get()) { | 237 managed_platform_provider_->RefreshPolicies(); |
| 216 user_data_store_->NotifyDeviceTokenChanged(); | 238 if (recommended_platform_provider_.get()) |
| 217 } | 239 recommended_platform_provider_->RefreshPolicies(); |
| 218 #endif | 240 if (managed_cloud_provider_.get()) |
| 241 managed_cloud_provider_->RefreshPolicies(); |
| 242 if (recommended_cloud_provider_.get()) |
| 243 recommended_cloud_provider_->RefreshPolicies(); |
| 219 } | 244 } |
| 220 | 245 |
| 221 void BrowserPolicyConnector::ScheduleServiceInitialization( | 246 void BrowserPolicyConnector::ScheduleServiceInitialization( |
| 222 int64 delay_milliseconds) { | 247 int64 delay_milliseconds) { |
| 223 if (user_cloud_policy_subsystem_.get()) { | 248 if (user_cloud_policy_subsystem_.get()) { |
| 224 user_cloud_policy_subsystem_-> | 249 user_cloud_policy_subsystem_-> |
| 225 ScheduleServiceInitialization(delay_milliseconds); | 250 ScheduleServiceInitialization(delay_milliseconds); |
| 226 } | 251 } |
| 227 #if defined(OS_CHROMEOS) | 252 #if defined(OS_CHROMEOS) |
| 228 if (device_cloud_policy_subsystem_.get()) { | 253 if (device_cloud_policy_subsystem_.get()) { |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 if (pos != std::string::npos && | 365 if (pos != std::string::npos && |
| 341 user_name.substr(pos + 1) == install_attributes_->GetDomain()) { | 366 user_name.substr(pos + 1) == install_attributes_->GetDomain()) { |
| 342 return CloudPolicyDataStore::USER_AFFILIATION_MANAGED; | 367 return CloudPolicyDataStore::USER_AFFILIATION_MANAGED; |
| 343 } | 368 } |
| 344 } | 369 } |
| 345 #endif | 370 #endif |
| 346 | 371 |
| 347 return CloudPolicyDataStore::USER_AFFILIATION_NONE; | 372 return CloudPolicyDataStore::USER_AFFILIATION_NONE; |
| 348 } | 373 } |
| 349 | 374 |
| 350 BrowserPolicyConnector::BrowserPolicyConnector() | |
| 351 : ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { | |
| 352 managed_platform_provider_.reset(CreateManagedPlatformProvider()); | |
| 353 recommended_platform_provider_.reset(CreateRecommendedPlatformProvider()); | |
| 354 | |
| 355 managed_cloud_provider_.reset(new CloudPolicyProviderImpl( | |
| 356 GetChromePolicyDefinitionList(), | |
| 357 CloudPolicyCacheBase::POLICY_LEVEL_MANDATORY)); | |
| 358 recommended_cloud_provider_.reset(new CloudPolicyProviderImpl( | |
| 359 GetChromePolicyDefinitionList(), | |
| 360 CloudPolicyCacheBase::POLICY_LEVEL_RECOMMENDED)); | |
| 361 | |
| 362 #if defined(OS_CHROMEOS) | |
| 363 InitializeDevicePolicy(); | |
| 364 | |
| 365 network_configuration_updater_.reset( | |
| 366 new NetworkConfigurationUpdater( | |
| 367 managed_cloud_provider_.get(), | |
| 368 chromeos::CrosLibrary::Get()->GetNetworkLibrary())); | |
| 369 #endif | |
| 370 } | |
| 371 | |
| 372 BrowserPolicyConnector::BrowserPolicyConnector( | |
| 373 ConfigurationPolicyProvider* managed_platform_provider, | |
| 374 ConfigurationPolicyProvider* recommended_platform_provider, | |
| 375 CloudPolicyProvider* managed_cloud_provider, | |
| 376 CloudPolicyProvider* recommended_cloud_provider) | |
| 377 : managed_platform_provider_(managed_platform_provider), | |
| 378 recommended_platform_provider_(recommended_platform_provider), | |
| 379 managed_cloud_provider_(managed_cloud_provider), | |
| 380 recommended_cloud_provider_(recommended_cloud_provider), | |
| 381 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { | |
| 382 } | |
| 383 | |
| 384 void BrowserPolicyConnector::Observe( | 375 void BrowserPolicyConnector::Observe( |
| 385 int type, | 376 int type, |
| 386 const content::NotificationSource& source, | 377 const content::NotificationSource& source, |
| 387 const content::NotificationDetails& details) { | 378 const content::NotificationDetails& details) { |
| 388 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 379 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 389 if (type == chrome::NOTIFICATION_TOKEN_AVAILABLE) { | 380 if (type == chrome::NOTIFICATION_TOKEN_AVAILABLE) { |
| 390 const TokenService* token_source = | 381 const TokenService* token_source = |
| 391 content::Source<const TokenService>(source).ptr(); | 382 content::Source<const TokenService>(source).ptr(); |
| 392 DCHECK_EQ(token_service_, token_source); | 383 DCHECK_EQ(token_service_, token_source); |
| 393 const TokenService::TokenAvailableDetails* token_details = | 384 const TokenService::TokenAvailableDetails* token_details = |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 #if defined(OS_CHROMEOS) | 430 #if defined(OS_CHROMEOS) |
| 440 if (device_cloud_policy_subsystem_.get()) { | 431 if (device_cloud_policy_subsystem_.get()) { |
| 441 device_cloud_policy_subsystem_->CompleteInitialization( | 432 device_cloud_policy_subsystem_->CompleteInitialization( |
| 442 prefs::kDevicePolicyRefreshRate, | 433 prefs::kDevicePolicyRefreshRate, |
| 443 kServiceInitializationStartupDelay); | 434 kServiceInitializationStartupDelay); |
| 444 } | 435 } |
| 445 #endif | 436 #endif |
| 446 } | 437 } |
| 447 | 438 |
| 448 // static | 439 // static |
| 449 BrowserPolicyConnector* BrowserPolicyConnector::CreateForTests() { | |
| 450 return new BrowserPolicyConnector(NULL, NULL, NULL, NULL); | |
| 451 } | |
| 452 | |
| 453 // static | |
| 454 ConfigurationPolicyProvider* | 440 ConfigurationPolicyProvider* |
| 455 BrowserPolicyConnector::CreateManagedPlatformProvider() { | 441 BrowserPolicyConnector::CreateManagedPlatformProvider() { |
| 456 const PolicyDefinitionList* policy_list = GetChromePolicyDefinitionList(); | 442 const PolicyDefinitionList* policy_list = GetChromePolicyDefinitionList(); |
| 457 #if defined(OS_WIN) | 443 #if defined(OS_WIN) |
| 458 return new ConfigurationPolicyProviderWin(policy_list); | 444 return new ConfigurationPolicyProviderWin(policy_list); |
| 459 #elif defined(OS_MACOSX) | 445 #elif defined(OS_MACOSX) |
| 460 return new ConfigurationPolicyProviderMac(policy_list); | 446 return new ConfigurationPolicyProviderMac(policy_list); |
| 461 #elif defined(OS_POSIX) | 447 #elif defined(OS_POSIX) |
| 462 FilePath config_dir_path; | 448 FilePath config_dir_path; |
| 463 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) { | 449 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 484 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); | 470 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); |
| 485 } else { | 471 } else { |
| 486 return NULL; | 472 return NULL; |
| 487 } | 473 } |
| 488 #else | 474 #else |
| 489 return NULL; | 475 return NULL; |
| 490 #endif | 476 #endif |
| 491 } | 477 } |
| 492 | 478 |
| 493 } // namespace policy | 479 } // namespace policy |
| OLD | NEW |