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/ui/tab_contents/tab_contents_wrapper.h" | 5 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) { | 111 void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) { |
112 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { | 112 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { |
113 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; | 113 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; |
114 std::string pref_name_str = base::StringPrintf("%s.%s", map_name, script); | 114 std::string pref_name_str = base::StringPrintf("%s.%s", map_name, script); |
115 const char* pref_name = pref_name_str.c_str(); | 115 const char* pref_name = pref_name_str.c_str(); |
116 if (!prefs->FindPreference(pref_name)) | 116 if (!prefs->FindPreference(pref_name)) |
117 prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF); | 117 prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF); |
118 } | 118 } |
119 } | 119 } |
120 | 120 |
121 struct PrefResource { | |
122 const char* pref_name; | |
123 int resource_id; | |
124 }; | |
125 | |
126 // Per-script font pref defaults. The prefs that have defaults vary by | |
127 // platform, since not all platforms have fonts for all scripts for all generic | |
128 // families. | |
129 // TODO(falken): add proper defaults when possible for all | |
130 // platforms/scripts/generic families. | |
131 const PrefResource kPerScriptFontDefaults[] = { | |
132 #if defined(OS_CHROMEOS) | |
133 { prefs::kWebKitStandardFontFamilyArabic, IDS_STANDARD_FONT_FAMILY_ARABIC }, | |
134 { prefs::kWebKitSerifFontFamilyArabic, IDS_SERIF_FONT_FAMILY_ARABIC }, | |
135 { prefs::kWebKitSansSerifFontFamilyArabic, | |
136 IDS_SANS_SERIF_FONT_FAMILY_ARABIC }, | |
137 { prefs::kWebKitStandardFontFamilyJapanese, | |
138 IDS_STANDARD_FONT_FAMILY_JAPANESE }, | |
139 { prefs::kWebKitFixedFontFamilyJapanese, IDS_FIXED_FONT_FAMILY_JAPANESE }, | |
140 { prefs::kWebKitSerifFontFamilyJapanese, IDS_SERIF_FONT_FAMILY_JAPANESE }, | |
141 { prefs::kWebKitSansSerifFontFamilyJapanese, | |
142 IDS_SANS_SERIF_FONT_FAMILY_JAPANESE }, | |
143 { prefs::kWebKitStandardFontFamilyKorean, IDS_STANDARD_FONT_FAMILY_KOREAN }, | |
144 { prefs::kWebKitFixedFontFamilyKorean, IDS_FIXED_FONT_FAMILY_KOREAN }, | |
145 { prefs::kWebKitSerifFontFamilyKorean, IDS_SERIF_FONT_FAMILY_KOREAN }, | |
146 { prefs::kWebKitSansSerifFontFamilyKorean, | |
147 IDS_SANS_SERIF_FONT_FAMILY_KOREAN }, | |
148 { prefs::kWebKitStandardFontFamilySimplifiedHan, | |
149 IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN }, | |
150 { prefs::kWebKitFixedFontFamilySimplifiedHan, | |
151 IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN }, | |
152 { prefs::kWebKitSerifFontFamilySimplifiedHan, | |
153 IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN }, | |
154 { prefs::kWebKitSansSerifFontFamilySimplifiedHan, | |
155 IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN }, | |
156 { prefs::kWebKitStandardFontFamilyTraditionalHan, | |
157 IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN }, | |
158 { prefs::kWebKitFixedFontFamilyTraditionalHan, | |
159 IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN }, | |
160 { prefs::kWebKitSerifFontFamilyTraditionalHan, | |
161 IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN }, | |
162 { prefs::kWebKitSansSerifFontFamilyTraditionalHan, | |
163 IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN } | |
164 #elif defined(OS_WIN) | |
165 { prefs::kWebKitStandardFontFamilyJapanese, | |
166 IDS_STANDARD_FONT_FAMILY_JAPANESE }, | |
167 { prefs::kWebKitFixedFontFamilyJapanese, IDS_FIXED_FONT_FAMILY_JAPANESE }, | |
168 { prefs::kWebKitSerifFontFamilyJapanese, IDS_SERIF_FONT_FAMILY_JAPANESE }, | |
169 { prefs::kWebKitSansSerifFontFamilyJapanese, | |
170 IDS_SANS_SERIF_FONT_FAMILY_JAPANESE }, | |
171 { prefs::kWebKitStandardFontFamilyKorean, IDS_STANDARD_FONT_FAMILY_KOREAN }, | |
172 { prefs::kWebKitFixedFontFamilyKorean, IDS_FIXED_FONT_FAMILY_KOREAN }, | |
173 { prefs::kWebKitSerifFontFamilyKorean, IDS_SERIF_FONT_FAMILY_KOREAN }, | |
174 { prefs::kWebKitSansSerifFontFamilyKorean, | |
175 IDS_SANS_SERIF_FONT_FAMILY_KOREAN }, | |
176 { prefs::kWebKitCursiveFontFamilyKorean, IDS_CURSIVE_FONT_FAMILY_KOREAN }, | |
177 { prefs::kWebKitStandardFontFamilySimplifiedHan, | |
178 IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN }, | |
179 { prefs::kWebKitFixedFontFamilySimplifiedHan, | |
180 IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN }, | |
181 { prefs::kWebKitSerifFontFamilySimplifiedHan, | |
182 IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN }, | |
183 { prefs::kWebKitSansSerifFontFamilySimplifiedHan, | |
184 IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN }, | |
185 { prefs::kWebKitStandardFontFamilyTraditionalHan, | |
186 IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN }, | |
187 { prefs::kWebKitFixedFontFamilyTraditionalHan, | |
188 IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN }, | |
189 { prefs::kWebKitSerifFontFamilyTraditionalHan, | |
190 IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN }, | |
191 { prefs::kWebKitSansSerifFontFamilyTraditionalHan, | |
192 IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN } | |
193 #endif | |
194 }; | |
195 | |
196 #if defined(OS_CHROMEOS) || defined(OS_WIN) | |
197 const size_t kPerScriptFontDefaultsLength = arraysize(kPerScriptFontDefaults); | |
198 #else | |
199 // Avoid compile error for arraysize on an empty array. | |
200 const size_t kPerScriptFontDefaultsLength = 0; | |
201 #endif | |
202 | |
203 } // namespace | 121 } // namespace |
204 | 122 |
205 //////////////////////////////////////////////////////////////////////////////// | 123 //////////////////////////////////////////////////////////////////////////////// |
206 // TabContentsWrapper, public: | 124 // TabContentsWrapper, public: |
207 | 125 |
208 TabContentsWrapper::TabContentsWrapper(TabContents* contents) | 126 TabContentsWrapper::TabContentsWrapper(TabContents* contents) |
209 : TabContentsObserver(contents), | 127 : TabContentsObserver(contents), |
210 delegate_(NULL), | 128 delegate_(NULL), |
211 infobars_enabled_(true), | 129 infobars_enabled_(true), |
212 ALLOW_THIS_IN_INITIALIZER_LIST( | 130 ALLOW_THIS_IN_INITIALIZER_LIST( |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily, | 294 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily, |
377 IDS_SANS_SERIF_FONT_FAMILY, | 295 IDS_SANS_SERIF_FONT_FAMILY, |
378 PrefService::UNSYNCABLE_PREF); | 296 PrefService::UNSYNCABLE_PREF); |
379 prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily, | 297 prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily, |
380 IDS_CURSIVE_FONT_FAMILY, | 298 IDS_CURSIVE_FONT_FAMILY, |
381 PrefService::UNSYNCABLE_PREF); | 299 PrefService::UNSYNCABLE_PREF); |
382 prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily, | 300 prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily, |
383 IDS_FANTASY_FONT_FAMILY, | 301 IDS_FANTASY_FONT_FAMILY, |
384 PrefService::UNSYNCABLE_PREF); | 302 PrefService::UNSYNCABLE_PREF); |
385 | 303 |
386 // Register per-script font prefs that have defaults. | 304 // Register per-script font prefs that have defaults. Currently defaults are |
387 for (size_t i = 0; i < kPerScriptFontDefaultsLength; ++i) { | 305 // defined only for some scripts and only on Chrome OS to begin with (it is |
388 prefs->RegisterLocalizedStringPref(kPerScriptFontDefaults[i].pref_name, | 306 // the easiest since we readily know what fonts are available there). |
389 kPerScriptFontDefaults[i].resource_id, | 307 // TODO(falken): add defaults for all platforms and for scripts that should |
390 PrefService::UNSYNCABLE_PREF); | 308 // have defaults. |
391 } | 309 #if defined(OS_CHROMEOS) |
392 // Register the rest of the per-script font prefs. | 310 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamilyArabic, |
| 311 IDS_STANDARD_FONT_FAMILY_ARABIC, PrefService::UNSYNCABLE_PREF); |
| 312 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilyArabic, |
| 313 IDS_SERIF_FONT_FAMILY_ARABIC, PrefService::UNSYNCABLE_PREF); |
| 314 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamilyArabic, |
| 315 IDS_SANS_SERIF_FONT_FAMILY_ARABIC, PrefService::UNSYNCABLE_PREF); |
| 316 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamilyJapanese, |
| 317 IDS_STANDARD_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF); |
| 318 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamilyJapanese, |
| 319 IDS_FIXED_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF); |
| 320 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilyJapanese, |
| 321 IDS_SERIF_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF); |
| 322 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamilyJapanese, |
| 323 IDS_SANS_SERIF_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF); |
| 324 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamilyKorean, |
| 325 IDS_STANDARD_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF); |
| 326 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamilyKorean, |
| 327 IDS_FIXED_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF); |
| 328 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilyKorean, |
| 329 IDS_SERIF_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF); |
| 330 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamilyKorean, |
| 331 IDS_SANS_SERIF_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF); |
| 332 prefs->RegisterLocalizedStringPref( |
| 333 prefs::kWebKitStandardFontFamilySimplifiedHan, |
| 334 IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF); |
| 335 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamilySimplifiedHan, |
| 336 IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF); |
| 337 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilySimplifiedHan, |
| 338 IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF); |
| 339 prefs->RegisterLocalizedStringPref( |
| 340 prefs::kWebKitSansSerifFontFamilySimplifiedHan, |
| 341 IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF); |
| 342 prefs->RegisterLocalizedStringPref( |
| 343 prefs::kWebKitStandardFontFamilyTraditionalHan, |
| 344 IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF); |
| 345 prefs->RegisterLocalizedStringPref( |
| 346 prefs::kWebKitFixedFontFamilyTraditionalHan, |
| 347 IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF); |
| 348 prefs->RegisterLocalizedStringPref( |
| 349 prefs::kWebKitSerifFontFamilyTraditionalHan, |
| 350 IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF); |
| 351 prefs->RegisterLocalizedStringPref( |
| 352 prefs::kWebKitSansSerifFontFamilyTraditionalHan, |
| 353 IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF); |
| 354 #endif |
| 355 |
393 RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap); | 356 RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap); |
394 RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap); | 357 RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap); |
395 RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap); | 358 RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap); |
396 RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap); | 359 RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap); |
397 RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap); | 360 RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap); |
398 RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap); | 361 RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap); |
399 | 362 |
400 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize, | 363 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize, |
401 IDS_DEFAULT_FONT_SIZE, | 364 IDS_DEFAULT_FONT_SIZE, |
402 PrefService::UNSYNCABLE_PREF); | 365 PrefService::UNSYNCABLE_PREF); |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 } | 754 } |
792 | 755 |
793 void TabContentsWrapper::RemoveAllInfoBars(bool animate) { | 756 void TabContentsWrapper::RemoveAllInfoBars(bool animate) { |
794 while (!infobars_.empty()) | 757 while (!infobars_.empty()) |
795 RemoveInfoBarInternal(GetInfoBarDelegateAt(infobar_count() - 1), animate); | 758 RemoveInfoBarInternal(GetInfoBarDelegateAt(infobar_count() - 1), animate); |
796 } | 759 } |
797 | 760 |
798 void TabContentsWrapper::ExitFullscreenMode() { | 761 void TabContentsWrapper::ExitFullscreenMode() { |
799 Send(new ViewMsg_ExitFullscreen(routing_id())); | 762 Send(new ViewMsg_ExitFullscreen(routing_id())); |
800 } | 763 } |
OLD | NEW |