| 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 903916affe82f49530b90550100a2d7e26ba8dcc..7dbf1040029ca1a19ffddb15a894b4637377effc 100644
|
| --- a/chrome/browser/policy/configuration_policy_provider.cc
|
| +++ b/chrome/browser/policy/configuration_policy_provider.cc
|
| @@ -10,7 +10,8 @@ namespace policy {
|
|
|
| ConfigurationPolicyProvider::Observer::~Observer() {}
|
|
|
| -void ConfigurationPolicyProvider::Observer::OnProviderGoingAway() {}
|
| +void ConfigurationPolicyProvider::Observer::OnProviderGoingAway(
|
| + ConfigurationPolicyProvider* provider) {}
|
|
|
| // Class ConfigurationPolicyProvider.
|
|
|
| @@ -22,7 +23,7 @@ ConfigurationPolicyProvider::ConfigurationPolicyProvider(
|
| ConfigurationPolicyProvider::~ConfigurationPolicyProvider() {
|
| FOR_EACH_OBSERVER(ConfigurationPolicyProvider::Observer,
|
| observer_list_,
|
| - OnProviderGoingAway());
|
| + OnProviderGoingAway(this));
|
| }
|
|
|
| bool ConfigurationPolicyProvider::Provide(PolicyMap* result) {
|
| @@ -51,7 +52,7 @@ void ConfigurationPolicyProvider::OverridePolicies(PolicyMap* policies) {
|
| void ConfigurationPolicyProvider::NotifyPolicyUpdated() {
|
| FOR_EACH_OBSERVER(ConfigurationPolicyProvider::Observer,
|
| observer_list_,
|
| - OnUpdatePolicy());
|
| + OnUpdatePolicy(this));
|
| }
|
|
|
| void ConfigurationPolicyProvider::AddObserver(Observer* observer) {
|
| @@ -81,12 +82,16 @@ void ConfigurationPolicyObserverRegistrar::Init(
|
| provider_->AddObserver(this);
|
| }
|
|
|
| -void ConfigurationPolicyObserverRegistrar::OnUpdatePolicy() {
|
| - observer_->OnUpdatePolicy();
|
| +void ConfigurationPolicyObserverRegistrar::OnUpdatePolicy(
|
| + ConfigurationPolicyProvider* provider) {
|
| + DCHECK_EQ(provider_, provider);
|
| + observer_->OnUpdatePolicy(provider_);
|
| }
|
|
|
| -void ConfigurationPolicyObserverRegistrar::OnProviderGoingAway() {
|
| - observer_->OnProviderGoingAway();
|
| +void ConfigurationPolicyObserverRegistrar::OnProviderGoingAway(
|
| + ConfigurationPolicyProvider* provider) {
|
| + DCHECK_EQ(provider_, provider);
|
| + observer_->OnProviderGoingAway(provider_);
|
| provider_->RemoveObserver(this);
|
| provider_ = NULL;
|
| }
|
|
|