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 */ |