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

Side by Side Diff: content/renderer/web_preferences.cc

Issue 28053002: Add font_scale_factor_quirk pref. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master.pinned
Patch Set: Created 7 years, 2 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/public/renderer/web_preferences.h" 5 #include "content/public/renderer/web_preferences.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "third_party/WebKit/public/platform/WebString.h" 8 #include "third_party/WebKit/public/platform/WebString.h"
9 #include "third_party/WebKit/public/platform/WebURL.h" 9 #include "third_party/WebKit/public/platform/WebURL.h"
10 #include "third_party/WebKit/public/web/WebKit.h" 10 #include "third_party/WebKit/public/web/WebKit.h"
11 #include "third_party/WebKit/public/web/WebNetworkStateNotifier.h" 11 #include "third_party/WebKit/public/web/WebNetworkStateNotifier.h"
12 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" 12 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
13 #include "third_party/WebKit/public/web/WebSettings.h" 13 #include "third_party/WebKit/public/web/WebSettings.h"
14 #include "third_party/WebKit/public/web/WebView.h" 14 #include "third_party/WebKit/public/web/WebView.h"
15 #include "third_party/icu/source/common/unicode/uchar.h" 15 #include "third_party/icu/source/common/unicode/uchar.h"
16 #include "third_party/icu/source/common/unicode/uscript.h" 16 #include "third_party/icu/source/common/unicode/uscript.h"
17 #include "webkit/common/webpreferences.h" 17 #include "webkit/common/webpreferences.h"
18 18
19 #if defined(OS_ANDROID)
20 #include "ui/gfx/android/device_display_info.h"
21 #endif
22
19 using WebKit::WebNetworkStateNotifier; 23 using WebKit::WebNetworkStateNotifier;
20 using WebKit::WebRuntimeFeatures; 24 using WebKit::WebRuntimeFeatures;
21 using WebKit::WebSettings; 25 using WebKit::WebSettings;
22 using WebKit::WebString; 26 using WebKit::WebString;
23 using WebKit::WebURL; 27 using WebKit::WebURL;
24 using WebKit::WebView; 28 using WebKit::WebView;
25 29
26 namespace content { 30 namespace content {
27 31
28 namespace { 32 namespace {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 it != map.end(); 106 it != map.end();
103 ++it) { 107 ++it) {
104 int32 script = u_getPropertyValueEnum(UCHAR_SCRIPT, (it->first).c_str()); 108 int32 script = u_getPropertyValueEnum(UCHAR_SCRIPT, (it->first).c_str());
105 if (script >= 0 && script < USCRIPT_CODE_LIMIT) { 109 if (script >= 0 && script < USCRIPT_CODE_LIMIT) {
106 UScriptCode code = static_cast<UScriptCode>(script); 110 UScriptCode code = static_cast<UScriptCode>(script);
107 (*setter)(settings, it->second, GetScriptForWebSettings(code)); 111 (*setter)(settings, it->second, GetScriptForWebSettings(code));
108 } 112 }
109 } 113 }
110 } 114 }
111 115
116 #if defined(OS_ANDROID)
117
118 const float kMinFSM = 1.05f;
119 const int kWidthForMinFSM = 320;
120 const float kMaxFSM = 1.3f;
121 const int kWidthForMaxFSM = 800;
122
123 float GetFontScaleMultiplier(const WebPreferences& prefs) {
124 if (prefs.font_scale_factor_quirk) {
125 // The pref value passed by Clank already includes the multiplier.
126 return 1.0;
127 }
128 gfx::DeviceDisplayInfo info;
129 int minWidth = info.GetSmallestDIPWidth();
130
131 if (minWidth <= kWidthForMinFSM) return kMinFSM;
aelias_OOO_until_Jul13 2013/10/19 03:27:43 nit: return should be on another line
aelias_OOO_until_Jul13 2013/10/19 03:27:43 nit: return should be on newline
skobes 2013/10/21 17:49:30 Done.
skobes 2013/10/21 17:49:30 Done.
132 if (minWidth >= kWidthForMaxFSM) return kMaxFSM;
133
134 // The font scale multiplier varies linearly between kMinFSM and kMaxFSM.
135 float ratio = ((float)(minWidth - kWidthForMinFSM)) /
aelias_OOO_until_Jul13 2013/10/19 03:27:43 nit: use static_cast<float>(), and no need for the
skobes 2013/10/21 17:49:30 Done.
136 ((float)(kWidthForMaxFSM - kWidthForMinFSM));
137 return ratio * (kMaxFSM - kMinFSM) + kMinFSM;
138 }
139
140 #endif // defined(OS_ANDROID)
141
112 } // namespace 142 } // namespace
113 143
114 void ApplyWebPreferences(const WebPreferences& prefs, WebView* web_view) { 144 void ApplyWebPreferences(const WebPreferences& prefs, WebView* web_view) {
115 WebSettings* settings = web_view->settings(); 145 WebSettings* settings = web_view->settings();
116 ApplyFontsFromMap(prefs.standard_font_family_map, 146 ApplyFontsFromMap(prefs.standard_font_family_map,
117 setStandardFontFamilyWrapper, settings); 147 setStandardFontFamilyWrapper, settings);
118 ApplyFontsFromMap(prefs.fixed_font_family_map, 148 ApplyFontsFromMap(prefs.fixed_font_family_map,
119 setFixedFontFamilyWrapper, settings); 149 setFixedFontFamilyWrapper, settings);
120 ApplyFontsFromMap(prefs.serif_font_family_map, 150 ApplyFontsFromMap(prefs.serif_font_family_map,
121 setSerifFontFamilyWrapper, settings); 151 setSerifFontFamilyWrapper, settings);
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 347
318 settings->setSmartInsertDeleteEnabled(prefs.smart_insert_delete_enabled); 348 settings->setSmartInsertDeleteEnabled(prefs.smart_insert_delete_enabled);
319 349
320 settings->setSpatialNavigationEnabled(prefs.spatial_navigation_enabled); 350 settings->setSpatialNavigationEnabled(prefs.spatial_navigation_enabled);
321 351
322 settings->setSelectionIncludesAltImageText(true); 352 settings->setSelectionIncludesAltImageText(true);
323 353
324 #if defined(OS_ANDROID) 354 #if defined(OS_ANDROID)
325 settings->setAllowCustomScrollbarInMainFrame(false); 355 settings->setAllowCustomScrollbarInMainFrame(false);
326 settings->setTextAutosizingEnabled(prefs.text_autosizing_enabled); 356 settings->setTextAutosizingEnabled(prefs.text_autosizing_enabled);
327 settings->setTextAutosizingFontScaleFactor(prefs.font_scale_factor); 357 settings->setTextAutosizingFontScaleFactor(
358 prefs.font_scale_factor * GetFontScaleMultiplier(prefs));
328 web_view->setIgnoreViewportTagScaleLimits(prefs.force_enable_zoom); 359 web_view->setIgnoreViewportTagScaleLimits(prefs.force_enable_zoom);
329 settings->setAutoZoomFocusedNodeToLegibleScale(true); 360 settings->setAutoZoomFocusedNodeToLegibleScale(true);
330 settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled); 361 settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled);
331 settings->setMediaPlaybackRequiresUserGesture( 362 settings->setMediaPlaybackRequiresUserGesture(
332 prefs.user_gesture_required_for_media_playback); 363 prefs.user_gesture_required_for_media_playback);
333 settings->setMediaFullscreenRequiresUserGesture( 364 settings->setMediaFullscreenRequiresUserGesture(
334 prefs.user_gesture_required_for_media_fullscreen); 365 prefs.user_gesture_required_for_media_fullscreen);
335 settings->setDefaultVideoPosterURL( 366 settings->setDefaultVideoPosterURL(
336 ASCIIToUTF16(prefs.default_video_poster_url.spec())); 367 ASCIIToUTF16(prefs.default_video_poster_url.spec()));
337 settings->setSupportDeprecatedTargetDensityDPI( 368 settings->setSupportDeprecatedTargetDensityDPI(
(...skipping 18 matching lines...) Expand all
356 settings->setPinchVirtualViewportEnabled( 387 settings->setPinchVirtualViewportEnabled(
357 prefs.pinch_virtual_viewport_enabled); 388 prefs.pinch_virtual_viewport_enabled);
358 389
359 settings->setPinchOverlayScrollbarThickness( 390 settings->setPinchOverlayScrollbarThickness(
360 prefs.pinch_overlay_scrollbar_thickness); 391 prefs.pinch_overlay_scrollbar_thickness);
361 settings->setUseSolidColorScrollbars(prefs.use_solid_color_scrollbars); 392 settings->setUseSolidColorScrollbars(prefs.use_solid_color_scrollbars);
362 settings->setCompositorTouchHitTesting(prefs.compositor_touch_hit_testing); 393 settings->setCompositorTouchHitTesting(prefs.compositor_touch_hit_testing);
363 } 394 }
364 395
365 } // namespace content 396 } // namespace content
OLDNEW
« no previous file with comments | « content/public/common/common_param_traits_macros.h ('k') | ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698