| Index: chrome/browser/extensions/api/font_settings/font_settings_api.cc
|
| diff --git a/chrome/browser/extensions/api/font_settings/font_settings_api.cc b/chrome/browser/extensions/api/font_settings/font_settings_api.cc
|
| index a3ec6519a431379c1b2e8828a5eec13a18deede2..b19867f2fe28bd78036fc868d0456fa0073ef344 100644
|
| --- a/chrome/browser/extensions/api/font_settings/font_settings_api.cc
|
| +++ b/chrome/browser/extensions/api/font_settings/font_settings_api.cc
|
| @@ -85,13 +85,14 @@ std::string MaybeGetLocalizedFontName(const std::string& font_name) {
|
| }
|
|
|
| // Registers |obs| to observe per-script font prefs under the path |map_name|.
|
| -void RegisterFontFamilyMapObserver(PrefChangeRegistrar* registrar,
|
| - const char* map_name,
|
| - PrefObserver* obs) {
|
| +void RegisterFontFamilyMapObserver(
|
| + PrefChangeRegistrar* registrar,
|
| + const char* map_name,
|
| + const PrefChangeRegistrar::NamedChangeCallback& callback) {
|
| for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) {
|
| const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i];
|
| std::string pref_name = base::StringPrintf("%s.%s", map_name, script);
|
| - registrar->Add(pref_name.c_str(), obs);
|
| + registrar->Add(pref_name.c_str(), callback);
|
| }
|
| }
|
|
|
| @@ -111,20 +112,24 @@ FontSettingsEventRouter::FontSettingsEventRouter(
|
| kOnMinimumFontSizeChanged,
|
| kPixelSizeKey);
|
|
|
| + PrefChangeRegistrar::NamedChangeCallback callback =
|
| + base::Bind(&FontSettingsEventRouter::OnFontFamilyPrefChanged,
|
| + base::Unretained(this));
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitStandardFontFamilyMap, this);
|
| + prefs::kWebKitStandardFontFamilyMap, callback);
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitSerifFontFamilyMap, this);
|
| + prefs::kWebKitSerifFontFamilyMap, callback);
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitSansSerifFontFamilyMap, this);
|
| + prefs::kWebKitSansSerifFontFamilyMap, callback);
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitFixedFontFamilyMap, this);
|
| + prefs::kWebKitFixedFontFamilyMap, callback);
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitCursiveFontFamilyMap, this);
|
| + prefs::kWebKitCursiveFontFamilyMap, callback);
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitFantasyFontFamilyMap, this);
|
| + prefs::kWebKitFantasyFontFamilyMap, callback);
|
| RegisterFontFamilyMapObserver(®istrar_,
|
| - prefs::kWebKitPictographFontFamilyMap, this);
|
| + prefs::kWebKitPictographFontFamilyMap,
|
| + callback);
|
| }
|
|
|
| FontSettingsEventRouter::~FontSettingsEventRouter() {}
|
| @@ -132,31 +137,19 @@ FontSettingsEventRouter::~FontSettingsEventRouter() {}
|
| void FontSettingsEventRouter::AddPrefToObserve(const char* pref_name,
|
| const char* event_name,
|
| const char* key) {
|
| - registrar_.Add(pref_name, this);
|
| - pref_event_map_[pref_name] = std::make_pair(event_name, key);
|
| + registrar_.Add(pref_name,
|
| + base::Bind(&FontSettingsEventRouter::OnFontPrefChanged,
|
| + base::Unretained(this),
|
| + event_name, key));
|
| }
|
|
|
| -void FontSettingsEventRouter::OnPreferenceChanged(
|
| - PrefServiceBase* pref_service,
|
| +void FontSettingsEventRouter::OnFontFamilyPrefChanged(
|
| const std::string& pref_name) {
|
| - bool incognito = (pref_service != profile_->GetPrefs());
|
| - // We're only observing pref changes on the regular profile.
|
| - DCHECK(!incognito);
|
| -
|
| - PrefEventMap::iterator iter = pref_event_map_.find(pref_name);
|
| - if (iter != pref_event_map_.end()) {
|
| - const std::string& event_name = iter->second.first;
|
| - const std::string& key = iter->second.second;
|
| - OnFontPrefChanged(pref_service, pref_name, event_name, key, incognito);
|
| - return;
|
| - }
|
| -
|
| std::string generic_family;
|
| std::string script;
|
| if (pref_names_util::ParseFontNamePrefPath(pref_name, &generic_family,
|
| &script)) {
|
| - OnFontNamePrefChanged(pref_service, pref_name, generic_family, script,
|
| - incognito);
|
| + OnFontNamePrefChanged(pref_name, generic_family, script);
|
| return;
|
| }
|
|
|
| @@ -164,12 +157,10 @@ void FontSettingsEventRouter::OnPreferenceChanged(
|
| }
|
|
|
| void FontSettingsEventRouter::OnFontNamePrefChanged(
|
| - PrefServiceBase* pref_service,
|
| const std::string& pref_name,
|
| const std::string& generic_family,
|
| - const std::string& script,
|
| - bool incognito) {
|
| - const PrefServiceBase::Preference* pref = pref_service->FindPreference(
|
| + const std::string& script) {
|
| + const PrefServiceBase::Preference* pref = registrar_.prefs()->FindPreference(
|
| pref_name.c_str());
|
| CHECK(pref);
|
|
|
| @@ -192,17 +183,15 @@ void FontSettingsEventRouter::OnFontNamePrefChanged(
|
| kOnFontChanged,
|
| &args,
|
| APIPermission::kFontSettings,
|
| - incognito,
|
| + false,
|
| pref_name);
|
| }
|
|
|
| void FontSettingsEventRouter::OnFontPrefChanged(
|
| - PrefServiceBase* pref_service,
|
| - const std::string& pref_name,
|
| const std::string& event_name,
|
| const std::string& key,
|
| - bool incognito) {
|
| - const PrefServiceBase::Preference* pref = pref_service->FindPreference(
|
| + const std::string& pref_name) {
|
| + const PrefServiceBase::Preference* pref = registrar_.prefs()->FindPreference(
|
| pref_name.c_str());
|
| CHECK(pref);
|
|
|
| @@ -216,7 +205,7 @@ void FontSettingsEventRouter::OnFontPrefChanged(
|
| event_name,
|
| &args,
|
| APIPermission::kFontSettings,
|
| - incognito,
|
| + false,
|
| pref_name);
|
| }
|
|
|
|
|