| Index: components/policy/core/common/configuration_policy_provider.cc
|
| diff --git a/components/policy/core/common/configuration_policy_provider.cc b/components/policy/core/common/configuration_policy_provider.cc
|
| index 03fd8d7dd2accc22da17dec26372dcc034bebed8..55b3d2440648e1cfbaaefd8910cb3272bb18fb8a 100644
|
| --- a/components/policy/core/common/configuration_policy_provider.cc
|
| +++ b/components/policy/core/common/configuration_policy_provider.cc
|
| @@ -13,7 +13,8 @@ namespace policy {
|
| ConfigurationPolicyProvider::Observer::~Observer() {}
|
|
|
| ConfigurationPolicyProvider::ConfigurationPolicyProvider()
|
| - : initialized_(false),
|
| + : source_(POLICY_SOURCE_UNKNOWN),
|
| + initialized_(false),
|
| schema_registry_(NULL) {}
|
|
|
| ConfigurationPolicyProvider::~ConfigurationPolicyProvider() {
|
| @@ -43,15 +44,23 @@ bool ConfigurationPolicyProvider::IsInitializationComplete(
|
|
|
| void ConfigurationPolicyProvider::UpdatePolicy(
|
| scoped_ptr<PolicyBundle> bundle) {
|
| - if (bundle.get())
|
| + if (bundle.get()) {
|
| policy_bundle_.Swap(bundle.get());
|
| - else
|
| + SetPolicySources();
|
| + } else {
|
| policy_bundle_.Clear();
|
| + }
|
| FOR_EACH_OBSERVER(ConfigurationPolicyProvider::Observer,
|
| observer_list_,
|
| OnUpdatePolicy(this));
|
| }
|
|
|
| +void ConfigurationPolicyProvider::SetPolicySources() {
|
| + for (auto& entry : policy_bundle_) {
|
| + entry.second->ApplySourceToEntries(source_);
|
| + }
|
| +}
|
| +
|
| SchemaRegistry* ConfigurationPolicyProvider::schema_registry() const {
|
| return schema_registry_;
|
| }
|
|
|