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 |