Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3142)

Unified Diff: chrome/browser/policy/configuration_policy_pref_store.cc

Issue 6312121: Add initial device policy infrastructure. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix race condition and tests. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 */

Powered by Google App Engine
This is Rietveld 408576698