| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/prefs/prefs_tab_helper.h" | 5 #include "chrome/browser/ui/prefs/prefs_tab_helper.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <set> | 10 #include <set> |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 | 130 |
| 131 for (size_t i = 0; i < arraysize(kFontFamilyMap); ++i) { | 131 for (size_t i = 0; i < arraysize(kFontFamilyMap); ++i) { |
| 132 const char* pref_name = kFontFamilyMap[i]; | 132 const char* pref_name = kFontFamilyMap[i]; |
| 133 if (fonts_with_defaults.find(pref_name) == fonts_with_defaults.end()) { | 133 if (fonts_with_defaults.find(pref_name) == fonts_with_defaults.end()) { |
| 134 // We haven't already set a default value for this font preference, so set | 134 // We haven't already set a default value for this font preference, so set |
| 135 // an empty string as the default. | 135 // an empty string as the default. |
| 136 registry->RegisterStringPref(pref_name, std::string()); | 136 registry->RegisterStringPref(pref_name, std::string()); |
| 137 } | 137 } |
| 138 } | 138 } |
| 139 } | 139 } |
| 140 #endif // !defined(OS_ANDROID) | |
| 141 | 140 |
| 142 // Registers |obs| to observe per-script font prefs under the path |map_name|. | 141 // Registers |obs| to observe per-script font prefs under the path |map_name|. |
| 143 // On android, there's no exposed way to change these prefs, so we can save | 142 // On android, there's no exposed way to change these prefs, so we can save |
| 144 // ~715KB of heap and some startup cycles by avoiding observing these prefs | 143 // ~715KB of heap and some startup cycles by avoiding observing these prefs |
| 145 // since they will never change. | 144 // since they will never change. |
| 146 void RegisterFontFamilyMapObserver( | 145 void RegisterFontFamilyMapObserver( |
| 147 PrefChangeRegistrar* registrar, | 146 PrefChangeRegistrar* registrar, |
| 148 const char* map_name, | 147 const char* map_name, |
| 149 const PrefChangeRegistrar::NamedChangeCallback& obs) { | 148 const PrefChangeRegistrar::NamedChangeCallback& obs) { |
| 150 DCHECK(base::StartsWith(map_name, "webkit.webprefs.", | 149 DCHECK(base::StartsWith(map_name, "webkit.webprefs.", |
| 151 base::CompareCase::SENSITIVE)); | 150 base::CompareCase::SENSITIVE)); |
| 152 | 151 |
| 153 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { | 152 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { |
| 154 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; | 153 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; |
| 155 registrar->Add(base::StringPrintf("%s.%s", map_name, script), obs); | 154 registrar->Add(base::StringPrintf("%s.%s", map_name, script), obs); |
| 156 } | 155 } |
| 157 } | 156 } |
| 157 #endif // !defined(OS_ANDROID) |
| 158 | 158 |
| 159 #if defined(OS_WIN) | 159 #if defined(OS_WIN) |
| 160 // On Windows with antialising we want to use an alternate fixed font like | 160 // On Windows with antialising we want to use an alternate fixed font like |
| 161 // Consolas, which looks much better than Courier New. | 161 // Consolas, which looks much better than Courier New. |
| 162 bool ShouldUseAlternateDefaultFixedFont(const std::string& script) { | 162 bool ShouldUseAlternateDefaultFixedFont(const std::string& script) { |
| 163 if (!base::StartsWith(script, "courier", | 163 if (!base::StartsWith(script, "courier", |
| 164 base::CompareCase::INSENSITIVE_ASCII)) | 164 base::CompareCase::INSENSITIVE_ASCII)) |
| 165 return false; | 165 return false; |
| 166 UINT smooth_type = 0; | 166 UINT smooth_type = 0; |
| 167 SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE, 0, &smooth_type, 0); | 167 SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE, 0, &smooth_type, 0); |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 pref_change_registrar_.Add(prefs::kFullscreenAllowed, renderer_callback); | 366 pref_change_registrar_.Add(prefs::kFullscreenAllowed, renderer_callback); |
| 367 #endif | 367 #endif |
| 368 | 368 |
| 369 PrefChangeRegistrar::NamedChangeCallback webkit_callback = base::Bind( | 369 PrefChangeRegistrar::NamedChangeCallback webkit_callback = base::Bind( |
| 370 &PrefWatcher::OnWebPrefChanged, base::Unretained(this)); | 370 &PrefWatcher::OnWebPrefChanged, base::Unretained(this)); |
| 371 for (int i = 0; i < kPrefsToObserveLength; ++i) { | 371 for (int i = 0; i < kPrefsToObserveLength; ++i) { |
| 372 const char* pref_name = kPrefsToObserve[i]; | 372 const char* pref_name = kPrefsToObserve[i]; |
| 373 pref_change_registrar_.Add(pref_name, webkit_callback); | 373 pref_change_registrar_.Add(pref_name, webkit_callback); |
| 374 } | 374 } |
| 375 | 375 |
| 376 #if !defined(OS_ANDROID) |
| 376 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 377 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 377 prefs::kWebKitStandardFontFamilyMap, | 378 prefs::kWebKitStandardFontFamilyMap, |
| 378 webkit_callback); | 379 webkit_callback); |
| 379 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 380 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 380 prefs::kWebKitFixedFontFamilyMap, | 381 prefs::kWebKitFixedFontFamilyMap, |
| 381 webkit_callback); | 382 webkit_callback); |
| 382 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 383 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 383 prefs::kWebKitSerifFontFamilyMap, | 384 prefs::kWebKitSerifFontFamilyMap, |
| 384 webkit_callback); | 385 webkit_callback); |
| 385 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 386 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 386 prefs::kWebKitSansSerifFontFamilyMap, | 387 prefs::kWebKitSansSerifFontFamilyMap, |
| 387 webkit_callback); | 388 webkit_callback); |
| 388 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 389 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 389 prefs::kWebKitCursiveFontFamilyMap, | 390 prefs::kWebKitCursiveFontFamilyMap, |
| 390 webkit_callback); | 391 webkit_callback); |
| 391 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 392 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 392 prefs::kWebKitFantasyFontFamilyMap, | 393 prefs::kWebKitFantasyFontFamilyMap, |
| 393 webkit_callback); | 394 webkit_callback); |
| 394 RegisterFontFamilyMapObserver(&pref_change_registrar_, | 395 RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| 395 prefs::kWebKitPictographFontFamilyMap, | 396 prefs::kWebKitPictographFontFamilyMap, |
| 396 webkit_callback); | 397 webkit_callback); |
| 398 #endif // !defined(OS_ANDROID) |
| 397 } | 399 } |
| 398 | 400 |
| 399 static PrefWatcher* Get(Profile* profile); | 401 static PrefWatcher* Get(Profile* profile); |
| 400 | 402 |
| 401 void RegisterHelper(PrefsTabHelper* helper) { | 403 void RegisterHelper(PrefsTabHelper* helper) { |
| 402 helpers_.insert(helper); | 404 helpers_.insert(helper); |
| 403 } | 405 } |
| 404 | 406 |
| 405 void UnregisterHelper(PrefsTabHelper* helper) { | 407 void UnregisterHelper(PrefsTabHelper* helper) { |
| 406 helpers_.erase(helper); | 408 helpers_.erase(helper); |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 } | 681 } |
| 680 | 682 |
| 681 void PrefsTabHelper::NotifyWebkitPreferencesChanged( | 683 void PrefsTabHelper::NotifyWebkitPreferencesChanged( |
| 682 const std::string& pref_name) { | 684 const std::string& pref_name) { |
| 683 #if !defined(OS_ANDROID) | 685 #if !defined(OS_ANDROID) |
| 684 OnFontFamilyPrefChanged(pref_name); | 686 OnFontFamilyPrefChanged(pref_name); |
| 685 #endif | 687 #endif |
| 686 | 688 |
| 687 web_contents_->GetRenderViewHost()->OnWebkitPreferencesChanged(); | 689 web_contents_->GetRenderViewHost()->OnWebkitPreferencesChanged(); |
| 688 } | 690 } |
| OLD | NEW |