| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/browser/prefs/pref_notifier_impl.h" | 5 #include "chrome/browser/prefs/pref_notifier_impl.h" | 
| 6 | 6 | 
| 7 #include "base/stl_util-inl.h" | 7 #include "base/stl_util-inl.h" | 
| 8 #include "chrome/browser/prefs/pref_service.h" | 8 #include "chrome/browser/prefs/pref_service.h" | 
|  | 9 #include "chrome/common/chrome_notification_types.h" | 
| 9 #include "content/common/notification_observer.h" | 10 #include "content/common/notification_observer.h" | 
| 10 #include "content/common/notification_service.h" | 11 #include "content/common/notification_service.h" | 
| 11 | 12 | 
| 12 PrefNotifierImpl::PrefNotifierImpl(PrefService* service) | 13 PrefNotifierImpl::PrefNotifierImpl(PrefService* service) | 
| 13     : pref_service_(service) { | 14     : pref_service_(service) { | 
| 14 } | 15 } | 
| 15 | 16 | 
| 16 PrefNotifierImpl::~PrefNotifierImpl() { | 17 PrefNotifierImpl::~PrefNotifierImpl() { | 
| 17   DCHECK(CalledOnValidThread()); | 18   DCHECK(CalledOnValidThread()); | 
| 18 | 19 | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 71 } | 72 } | 
| 72 | 73 | 
| 73 void PrefNotifierImpl::OnPreferenceChanged(const std::string& path) { | 74 void PrefNotifierImpl::OnPreferenceChanged(const std::string& path) { | 
| 74   FireObservers(path); | 75   FireObservers(path); | 
| 75 } | 76 } | 
| 76 | 77 | 
| 77 void PrefNotifierImpl::OnInitializationCompleted(bool succeeded) { | 78 void PrefNotifierImpl::OnInitializationCompleted(bool succeeded) { | 
| 78   DCHECK(CalledOnValidThread()); | 79   DCHECK(CalledOnValidThread()); | 
| 79 | 80 | 
| 80   NotificationService::current()->Notify( | 81   NotificationService::current()->Notify( | 
| 81       NotificationType::PREF_INITIALIZATION_COMPLETED, | 82       chrome::NOTIFICATION_PREF_INITIALIZATION_COMPLETED, | 
| 82       Source<PrefService>(pref_service_), | 83       Source<PrefService>(pref_service_), | 
| 83       Details<bool>(&succeeded)); | 84       Details<bool>(&succeeded)); | 
| 84 } | 85 } | 
| 85 | 86 | 
| 86 void PrefNotifierImpl::FireObservers(const std::string& path) { | 87 void PrefNotifierImpl::FireObservers(const std::string& path) { | 
| 87   DCHECK(CalledOnValidThread()); | 88   DCHECK(CalledOnValidThread()); | 
| 88 | 89 | 
| 89   // Only send notifications for registered preferences. | 90   // Only send notifications for registered preferences. | 
| 90   if (!pref_service_->FindPreference(path.c_str())) | 91   if (!pref_service_->FindPreference(path.c_str())) | 
| 91     return; | 92     return; | 
| 92 | 93 | 
| 93   const PrefObserverMap::iterator observer_iterator = | 94   const PrefObserverMap::iterator observer_iterator = | 
| 94       pref_observers_.find(path); | 95       pref_observers_.find(path); | 
| 95   if (observer_iterator == pref_observers_.end()) | 96   if (observer_iterator == pref_observers_.end()) | 
| 96     return; | 97     return; | 
| 97 | 98 | 
| 98   NotificationObserverList::Iterator it(*(observer_iterator->second)); | 99   NotificationObserverList::Iterator it(*(observer_iterator->second)); | 
| 99   NotificationObserver* observer; | 100   NotificationObserver* observer; | 
| 100   while ((observer = it.GetNext()) != NULL) { | 101   while ((observer = it.GetNext()) != NULL) { | 
| 101     observer->Observe(NotificationType::PREF_CHANGED, | 102     observer->Observe(chrome::NOTIFICATION_PREF_CHANGED, | 
| 102                       Source<PrefService>(pref_service_), | 103                       Source<PrefService>(pref_service_), | 
| 103                       Details<const std::string>(&path)); | 104                       Details<const std::string>(&path)); | 
| 104   } | 105   } | 
| 105 } | 106 } | 
| OLD | NEW | 
|---|