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

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

Issue 56623005: Policy providers all get a SchemaRegistry to work with. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chrome-policy-schema-9-purge-with-callback
Patch Set: rebase Created 7 years, 1 month 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_provider.cc
diff --git a/chrome/browser/policy/configuration_policy_provider.cc b/chrome/browser/policy/configuration_policy_provider.cc
index 18f849ce4f471b43f2df56b1d6e41a28c25054c4..2803451fefc9ac038b3cf16345b466285ca5392d 100644
--- a/chrome/browser/policy/configuration_policy_provider.cc
+++ b/chrome/browser/policy/configuration_policy_provider.cc
@@ -6,7 +6,6 @@
#include "base/callback.h"
#include "chrome/browser/policy/external_data_fetcher.h"
-#include "chrome/browser/policy/policy_domain_descriptor.h"
#include "chrome/browser/policy/policy_map.h"
#include "policy/policy_constants.h"
@@ -68,16 +67,26 @@ void FixDeprecatedPolicies(PolicyMap* policies) {
ConfigurationPolicyProvider::Observer::~Observer() {}
ConfigurationPolicyProvider::ConfigurationPolicyProvider()
- : did_shutdown_(false) {}
+ : did_shutdown_(false),
+ schema_registry_(NULL) {}
ConfigurationPolicyProvider::~ConfigurationPolicyProvider() {
DCHECK(did_shutdown_);
}
-void ConfigurationPolicyProvider::Init() {}
+void ConfigurationPolicyProvider::Init(SchemaRegistry* registry) {
+ schema_registry_ = registry;
+ schema_registry_->AddObserver(this);
+}
void ConfigurationPolicyProvider::Shutdown() {
did_shutdown_ = true;
+ if (schema_registry_) {
+ // Unit tests don't initialize the BrowserPolicyConnector but call
+ // shutdown; handle that.
+ schema_registry_->RemoveObserver(this);
+ schema_registry_ = NULL;
+ }
}
bool ConfigurationPolicyProvider::IsInitializationComplete(
@@ -85,6 +94,12 @@ bool ConfigurationPolicyProvider::IsInitializationComplete(
return true;
}
+void ConfigurationPolicyProvider::OnSchemaRegistryUpdated(
+ bool has_new_schemas) {
+ if (has_new_schemas)
+ RefreshPolicies();
+}
+
void ConfigurationPolicyProvider::UpdatePolicy(
scoped_ptr<PolicyBundle> bundle) {
if (bundle.get())
@@ -98,6 +113,11 @@ void ConfigurationPolicyProvider::UpdatePolicy(
OnUpdatePolicy(this));
}
+const scoped_refptr<SchemaMap>&
+ConfigurationPolicyProvider::schema_map() const {
+ return schema_registry_->schema_map();
+}
+
void ConfigurationPolicyProvider::AddObserver(Observer* observer) {
observer_list_.AddObserver(observer);
}
@@ -106,7 +126,4 @@ void ConfigurationPolicyProvider::RemoveObserver(Observer* observer) {
observer_list_.RemoveObserver(observer);
}
-void ConfigurationPolicyProvider::RegisterPolicyDomain(
- scoped_refptr<const PolicyDomainDescriptor> descriptor) {}
-
} // namespace policy
« no previous file with comments | « chrome/browser/policy/configuration_policy_provider.h ('k') | chrome/browser/policy/configuration_policy_provider_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698