Index: chrome/browser/prefs/pref_notifier_impl.cc |
diff --git a/chrome/browser/prefs/pref_notifier_impl.cc b/chrome/browser/prefs/pref_notifier_impl.cc |
index ec5352bcae54d5b63881271e6887991feafb589e..a01c89f3e525088a32cbff24fb79380b7cd8f69a 100644 |
--- a/chrome/browser/prefs/pref_notifier_impl.cc |
+++ b/chrome/browser/prefs/pref_notifier_impl.cc |
@@ -5,13 +5,15 @@ |
#include "chrome/browser/prefs/pref_notifier_impl.h" |
#include "base/stl_util.h" |
+#include "chrome/browser/prefs/pref_model_associator.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/common/chrome_notification_types.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_service.h" |
-PrefNotifierImpl::PrefNotifierImpl(PrefService* service) |
- : pref_service_(service) { |
+PrefNotifierImpl::PrefNotifierImpl() |
+ : pref_service_(NULL), |
+ pref_model_associator_(NULL) { |
} |
PrefNotifierImpl::~PrefNotifierImpl() { |
@@ -88,9 +90,12 @@ void PrefNotifierImpl::FireObservers(const std::string& path) { |
DCHECK(CalledOnValidThread()); |
// Only send notifications for registered preferences. |
- if (!pref_service_->FindPreference(path.c_str())) |
+ if (!pref_service_ || !pref_service_->FindPreference(path.c_str())) |
return; |
+ if (pref_model_associator_) |
+ pref_model_associator_->ProcessPrefChange(path); |
Mattias Nissler (ping if slow)
2011/11/16 12:08:04
Seems like this now duplicates the same thing in P
mnaganov (inactive)
2011/11/17 16:50:58
Right. I haven't understood that from your change.
|
+ |
const PrefObserverMap::iterator observer_iterator = |
pref_observers_.find(path); |
if (observer_iterator == pref_observers_.end()) |
@@ -104,3 +109,14 @@ void PrefNotifierImpl::FireObservers(const std::string& path) { |
content::Details<const std::string>(&path)); |
} |
} |
+ |
+void PrefNotifierImpl::SetPrefModelAssociator( |
+ PrefModelAssociator* pref_model_associator) { |
+ DCHECK(pref_model_associator_ == NULL); |
+ pref_model_associator_ = pref_model_associator; |
+} |
+ |
+void PrefNotifierImpl::SetPrefService(PrefService* pref_service) { |
+ DCHECK(pref_service_ == NULL); |
+ pref_service_ = pref_service; |
+} |