Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Side by Side Diff: webkit/glue/webpreferences.cc

Issue 7606028: Pass per-script fonts to WebKit settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: patch to commit Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« chrome/common/pref_names.h ('K') | « webkit/glue/webpreferences.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "webkit/glue/webpreferences.h" 5 #include "webkit/glue/webpreferences.h"
6 6
7 #include <unicode/uchar.h>
8
7 #include "base/string_util.h" 9 #include "base/string_util.h"
8 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNetworkStateNotifi er.h" 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNetworkStateNotifi er.h"
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h" 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h" 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h"
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSettings.h" 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSettings.h"
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
16 #include "webkit/glue/webkit_glue.h" 18 #include "webkit/glue/webkit_glue.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 allow_displaying_insecure_content(true), 87 allow_displaying_insecure_content(true),
86 allow_running_insecure_content(false), 88 allow_running_insecure_content(false),
87 should_print_backgrounds(false), 89 should_print_backgrounds(false),
88 enable_scroll_animator(false), 90 enable_scroll_animator(false),
89 hixie76_websocket_protocol_enabled(false) { 91 hixie76_websocket_protocol_enabled(false) {
90 } 92 }
91 93
92 WebPreferences::~WebPreferences() { 94 WebPreferences::~WebPreferences() {
93 } 95 }
94 96
97 namespace {
98
99 void setStandardFontFamilyWrapper(WebSettings* settings,
100 const string16& font,
101 UScriptCode script) {
102 settings->setStandardFontFamily(font, script);
103 }
104
105 void setFixedFontFamilyWrapper(WebSettings* settings,
106 const string16& font,
107 UScriptCode script) {
108 settings->setFixedFontFamily(font, script);
109 }
110
111 void setSerifFontFamilyWrapper(WebSettings* settings,
112 const string16& font,
113 UScriptCode script) {
114 settings->setSerifFontFamily(font, script);
115 }
116
117 void setSansSerifFontFamilyWrapper(WebSettings* settings,
118 const string16& font,
119 UScriptCode script) {
120 settings->setSansSerifFontFamily(font, script);
121 }
122
123 void setCursiveFontFamilyWrapper(WebSettings* settings,
124 const string16& font,
125 UScriptCode script) {
126 settings->setCursiveFontFamily(font, script);
127 }
128
129 void setFantasyFontFamilyWrapper(WebSettings* settings,
130 const string16& font,
131 UScriptCode script) {
132 settings->setFantasyFontFamily(font, script);
133 }
134
135 typedef void (*SetFontFamilyWrapper)(
136 WebKit::WebSettings*, const string16&, UScriptCode);
137
138 void ApplyFontsFromMap(const WebPreferences::ScriptFontFamilyMap& map,
139 SetFontFamilyWrapper setter,
140 WebSettings* settings) {
141 for (WebPreferences::ScriptFontFamilyMap::const_iterator it = map.begin();
142 it != map.end(); ++it) {
143 int32 script = u_getPropertyValueEnum(UCHAR_SCRIPT, (it->first).c_str());
144 if (script >= 0 && script < USCRIPT_CODE_LIMIT)
145 (*setter)(settings, it->second, (UScriptCode) script);
146 }
147 }
148
149 } // namespace
150
95 void WebPreferences::Apply(WebView* web_view) const { 151 void WebPreferences::Apply(WebView* web_view) const {
96 WebSettings* settings = web_view->settings(); 152 WebSettings* settings = web_view->settings();
97 settings->setStandardFontFamily(standard_font_family); 153 settings->setStandardFontFamily(standard_font_family);
98 settings->setFixedFontFamily(fixed_font_family); 154 settings->setFixedFontFamily(fixed_font_family);
99 settings->setSerifFontFamily(serif_font_family); 155 settings->setSerifFontFamily(serif_font_family);
100 settings->setSansSerifFontFamily(sans_serif_font_family); 156 settings->setSansSerifFontFamily(sans_serif_font_family);
101 settings->setCursiveFontFamily(cursive_font_family); 157 settings->setCursiveFontFamily(cursive_font_family);
102 settings->setFantasyFontFamily(fantasy_font_family); 158 settings->setFantasyFontFamily(fantasy_font_family);
159 ApplyFontsFromMap(standard_font_family_map, setStandardFontFamilyWrapper,
160 settings);
161 ApplyFontsFromMap(fixed_font_family_map, setFixedFontFamilyWrapper, settings);
162 ApplyFontsFromMap(serif_font_family_map, setSerifFontFamilyWrapper, settings);
163 ApplyFontsFromMap(sans_serif_font_family_map, setSansSerifFontFamilyWrapper,
164 settings);
165 ApplyFontsFromMap(cursive_font_family_map, setCursiveFontFamilyWrapper,
166 settings);
167 ApplyFontsFromMap(fantasy_font_family_map, setFantasyFontFamilyWrapper,
168 settings);
103 settings->setDefaultFontSize(default_font_size); 169 settings->setDefaultFontSize(default_font_size);
104 settings->setDefaultFixedFontSize(default_fixed_font_size); 170 settings->setDefaultFixedFontSize(default_fixed_font_size);
105 settings->setMinimumFontSize(minimum_font_size); 171 settings->setMinimumFontSize(minimum_font_size);
106 settings->setMinimumLogicalFontSize(minimum_logical_font_size); 172 settings->setMinimumLogicalFontSize(minimum_logical_font_size);
107 settings->setDefaultTextEncodingName(ASCIIToUTF16(default_encoding)); 173 settings->setDefaultTextEncodingName(ASCIIToUTF16(default_encoding));
108 settings->setJavaScriptEnabled(javascript_enabled); 174 settings->setJavaScriptEnabled(javascript_enabled);
109 settings->setWebSecurityEnabled(web_security_enabled); 175 settings->setWebSecurityEnabled(web_security_enabled);
110 settings->setJavaScriptCanOpenWindowsAutomatically( 176 settings->setJavaScriptCanOpenWindowsAutomatically(
111 javascript_can_open_windows_automatically); 177 javascript_can_open_windows_automatically);
112 settings->setLoadsImagesAutomatically(loads_images_automatically); 178 settings->setLoadsImagesAutomatically(loads_images_automatically);
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 settings->setFullScreenEnabled(fullscreen_enabled); 301 settings->setFullScreenEnabled(fullscreen_enabled);
236 settings->setAllowDisplayOfInsecureContent(allow_displaying_insecure_content); 302 settings->setAllowDisplayOfInsecureContent(allow_displaying_insecure_content);
237 settings->setAllowRunningOfInsecureContent(allow_running_insecure_content); 303 settings->setAllowRunningOfInsecureContent(allow_running_insecure_content);
238 settings->setShouldPrintBackgrounds(should_print_backgrounds); 304 settings->setShouldPrintBackgrounds(should_print_backgrounds);
239 settings->setEnableScrollAnimator(enable_scroll_animator); 305 settings->setEnableScrollAnimator(enable_scroll_animator);
240 settings->setHixie76WebSocketProtocolEnabled( 306 settings->setHixie76WebSocketProtocolEnabled(
241 hixie76_websocket_protocol_enabled); 307 hixie76_websocket_protocol_enabled);
242 308
243 WebNetworkStateNotifier::setOnLine(is_online); 309 WebNetworkStateNotifier::setOnLine(is_online);
244 } 310 }
OLDNEW
« chrome/common/pref_names.h ('K') | « webkit/glue/webpreferences.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698