| Index: chrome/browser/policy/configuration_policy_pref_store.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_pref_store.cc b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| index 3abdf8fc5418f1062a7be279fc85cfd5ad3dd052..3bb715ff721f7517a37a276015bb8daf5da94570 100644
|
| --- a/chrome/browser/policy/configuration_policy_pref_store.cc
|
| +++ b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| @@ -18,9 +18,8 @@
|
| #include "base/utf_string_conversions.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/policy/browser_policy_context.h"
|
| #include "chrome/browser/policy/configuration_policy_provider.h"
|
| -#include "chrome/browser/policy/configuration_policy_provider_keeper.h"
|
| -#include "chrome/browser/policy/device_management_policy_provider.h"
|
| #include "chrome/browser/policy/profile_policy_context.h"
|
| #include "chrome/browser/prefs/pref_value_map.h"
|
| #include "chrome/browser/prefs/proxy_prefs.h"
|
| @@ -226,7 +225,7 @@ const ConfigurationPolicyPrefKeeper::PolicyToPreferenceMapEntry
|
| { Value::TYPE_BOOLEAN, kPolicyDisable3DAPIs,
|
| prefs::kDisable3DAPIs },
|
| { Value::TYPE_INTEGER, kPolicyPolicyRefreshRate,
|
| - prefs::kPolicyRefreshRate },
|
| + prefs::kPolicyUserPolicyRefreshRate },
|
| { Value::TYPE_BOOLEAN, kPolicyInstantEnabled, prefs::kInstantEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyDefaultBrowserSettingEnabled,
|
| prefs::kDefaultBrowserSettingEnabled },
|
| @@ -683,11 +682,15 @@ bool ConfigurationPolicyPrefKeeper::HasProxyPolicy(
|
| ConfigurationPolicyPrefStore::ConfigurationPolicyPrefStore(
|
| ConfigurationPolicyProvider* provider)
|
| : provider_(provider),
|
| - initialization_complete_(provider->IsInitializationComplete()) {
|
| - // Read initial policy.
|
| - policy_keeper_.reset(new ConfigurationPolicyPrefKeeper(provider));
|
| -
|
| - registrar_.Init(provider_, this);
|
| + initialization_complete_(false) {
|
| + if (provider_) {
|
| + // Read initial policy.
|
| + policy_keeper_.reset(new ConfigurationPolicyPrefKeeper(provider));
|
| + registrar_.Init(provider_, this);
|
| + initialization_complete_ = provider->IsInitializationComplete();
|
| + } else {
|
| + initialization_complete_ = true;
|
| + }
|
| }
|
|
|
| ConfigurationPolicyPrefStore::~ConfigurationPolicyPrefStore() {
|
| @@ -709,7 +712,10 @@ bool ConfigurationPolicyPrefStore::IsInitializationComplete() const {
|
| PrefStore::ReadResult
|
| ConfigurationPolicyPrefStore::GetValue(const std::string& key,
|
| Value** value) const {
|
| - return policy_keeper_->GetValue(key, value);
|
| + if (policy_keeper_.get())
|
| + return policy_keeper_->GetValue(key, value);
|
| +
|
| + return PrefStore::READ_NO_VALUE;
|
| }
|
|
|
| void ConfigurationPolicyPrefStore::OnUpdatePolicy() {
|
| @@ -723,31 +729,45 @@ void ConfigurationPolicyPrefStore::OnProviderGoingAway() {
|
| // static
|
| ConfigurationPolicyPrefStore*
|
| ConfigurationPolicyPrefStore::CreateManagedPlatformPolicyPrefStore() {
|
| - ConfigurationPolicyProviderKeeper* keeper =
|
| - g_browser_process->configuration_policy_provider_keeper();
|
| - return new ConfigurationPolicyPrefStore(keeper->managed_platform_provider());
|
| + BrowserPolicyContext* context = g_browser_process->browser_policy_context();
|
| + return new ConfigurationPolicyPrefStore(
|
| + context->GetManagedPlatformProvider());
|
| }
|
|
|
| // static
|
| ConfigurationPolicyPrefStore*
|
| -ConfigurationPolicyPrefStore::CreateDeviceManagementPolicyPrefStore(
|
| +ConfigurationPolicyPrefStore::CreateManagedCloudPolicyPrefStore(
|
| Profile* profile) {
|
| - ConfigurationPolicyProviderKeeper* keeper =
|
| - g_browser_process->configuration_policy_provider_keeper();
|
| ConfigurationPolicyProvider* provider = NULL;
|
| if (profile)
|
| - provider = profile->GetPolicyContext()->GetDeviceManagementPolicyProvider();
|
| - if (!provider)
|
| - provider = keeper->device_management_provider();
|
| + provider = profile->GetPolicyContext()->GetManagedPolicyProvider();
|
| + if (!provider) {
|
| + BrowserPolicyContext* context = g_browser_process->browser_policy_context();
|
| + provider = context->GetManagedCloudProvider();
|
| + }
|
| return new ConfigurationPolicyPrefStore(provider);
|
| }
|
|
|
| // static
|
| ConfigurationPolicyPrefStore*
|
| -ConfigurationPolicyPrefStore::CreateRecommendedPolicyPrefStore() {
|
| - ConfigurationPolicyProviderKeeper* keeper =
|
| - g_browser_process->configuration_policy_provider_keeper();
|
| - return new ConfigurationPolicyPrefStore(keeper->recommended_provider());
|
| +ConfigurationPolicyPrefStore::CreateRecommendedPlatformPolicyPrefStore() {
|
| + BrowserPolicyContext* context = g_browser_process->browser_policy_context();
|
| + return new ConfigurationPolicyPrefStore(
|
| + context->GetRecommendedPlatformProvider());
|
| +}
|
| +
|
| +// static
|
| +ConfigurationPolicyPrefStore*
|
| +ConfigurationPolicyPrefStore::CreateRecommendedCloudPolicyPrefStore(
|
| + Profile* profile) {
|
| + ConfigurationPolicyProvider* provider = NULL;
|
| + if (profile)
|
| + provider = profile->GetPolicyContext()->GetRecommendedPolicyProvider();
|
| + if (!provider) {
|
| + BrowserPolicyContext* context = g_browser_process->browser_policy_context();
|
| + provider = context->GetRecommendedCloudProvider();
|
| + }
|
| + return new ConfigurationPolicyPrefStore(provider);
|
| }
|
|
|
| /* static */
|
|
|