1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "content/public/renderer/web_preferences.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebString.h" 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebURL.h" 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebKit.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebNetworkStateNotifier.h" 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebRuntimeFeatures.h" 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebSettings.h" 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebView.h" 15ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "third_party/icu/source/common/unicode/uchar.h" 16ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "third_party/icu/source/common/unicode/uscript.h" 17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "webkit/common/webpreferences.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebNetworkStateNotifier; 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebRuntimeFeatures; 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebSettings; 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebString; 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebURL; 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebView; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace content { 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)typedef void (*SetFontFamilyWrapper)(blink::WebSettings*, 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const base::string16&, 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) UScriptCode); 33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setStandardFontFamilyWrapper(WebSettings* settings, 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& font, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode script) { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setStandardFontFamily(font, script); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setFixedFontFamilyWrapper(WebSettings* settings, 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& font, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode script) { 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setFixedFontFamily(font, script); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setSerifFontFamilyWrapper(WebSettings* settings, 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& font, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode script) { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setSerifFontFamily(font, script); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setSansSerifFontFamilyWrapper(WebSettings* settings, 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& font, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode script) { 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setSansSerifFontFamily(font, script); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setCursiveFontFamilyWrapper(WebSettings* settings, 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& font, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode script) { 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setCursiveFontFamily(font, script); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setFantasyFontFamilyWrapper(WebSettings* settings, 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& font, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode script) { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setFantasyFontFamily(font, script); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void setPictographFontFamilyWrapper(WebSettings* settings, 713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const base::string16& font, 723551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) UScriptCode script) { 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setPictographFontFamily(font, script); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If |scriptCode| is a member of a family of "similar" script codes, returns 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the script code in that family that is used by WebKit for font selection 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// purposes. For example, USCRIPT_KATAKANA_OR_HIRAGANA and USCRIPT_JAPANESE are 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// considered equivalent for the purposes of font selection. WebKit uses the 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// script code USCRIPT_KATAKANA_OR_HIRAGANA. So, if |scriptCode| is 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// USCRIPT_JAPANESE, the function returns USCRIPT_KATAKANA_OR_HIRAGANA. WebKit 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// uses different scripts than the ones in Chrome pref names because the version 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of ICU included on certain ports does not have some of the newer scripts. If 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |scriptCode| is not a member of such a family, returns |scriptCode|. 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UScriptCode GetScriptForWebSettings(UScriptCode scriptCode) { 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) switch (scriptCode) { 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case USCRIPT_HIRAGANA: 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case USCRIPT_KATAKANA: 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case USCRIPT_JAPANESE: 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return USCRIPT_KATAKANA_OR_HIRAGANA; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case USCRIPT_KOREAN: 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return USCRIPT_HANGUL; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default: 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return scriptCode; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void ApplyFontsFromMap(const webkit_glue::ScriptFontFamilyMap& map, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetFontFamilyWrapper setter, 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebSettings* settings) { 101c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) for (webkit_glue::ScriptFontFamilyMap::const_iterator it = map.begin(); 1023551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) it != map.end(); 1033551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ++it) { 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 script = u_getPropertyValueEnum(UCHAR_SCRIPT, (it->first).c_str()); 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (script >= 0 && script < USCRIPT_CODE_LIMIT) { 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UScriptCode code = static_cast<UScriptCode>(script); 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (*setter)(settings, it->second, GetScriptForWebSettings(code)); 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void ApplyWebPreferences(const WebPreferences& prefs, WebView* web_view) { 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebSettings* settings = web_view->settings(); 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.standard_font_family_map, 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setStandardFontFamilyWrapper, settings); 118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.fixed_font_family_map, 119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setFixedFontFamilyWrapper, settings); 120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.serif_font_family_map, 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setSerifFontFamilyWrapper, settings); 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.sans_serif_font_family_map, 123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setSansSerifFontFamilyWrapper, settings); 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.cursive_font_family_map, 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setCursiveFontFamilyWrapper, settings); 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.fantasy_font_family_map, 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setFantasyFontFamilyWrapper, settings); 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ApplyFontsFromMap(prefs.pictograph_font_family_map, 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) setPictographFontFamilyWrapper, settings); 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDefaultFontSize(prefs.default_font_size); 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDefaultFixedFontSize(prefs.default_fixed_font_size); 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setMinimumFontSize(prefs.minimum_font_size); 133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setMinimumLogicalFontSize(prefs.minimum_logical_font_size); 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDefaultTextEncodingName(ASCIIToUTF16(prefs.default_encoding)); 135c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setJavaScriptEnabled(prefs.javascript_enabled); 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setWebSecurityEnabled(prefs.web_security_enabled); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setJavaScriptCanOpenWindowsAutomatically( 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.javascript_can_open_windows_automatically); 139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setLoadsImagesAutomatically(prefs.loads_images_automatically); 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setImagesEnabled(prefs.images_enabled); 141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setPluginsEnabled(prefs.plugins_enabled); 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDOMPasteAllowed(prefs.dom_paste_enabled); 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setNeedsSiteSpecificQuirks(prefs.site_specific_quirks_enabled); 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setShrinksStandaloneImagesToFit( 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.shrinks_standalone_images_to_fit); 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setUsesEncodingDetector(prefs.uses_universal_detector); 147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setTextAreasAreResizable(prefs.text_areas_are_resizable); 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAllowScriptsToCloseWindows(prefs.allow_scripts_to_close_windows); 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDownloadableBinaryFontsEnabled(prefs.remote_fonts_enabled); 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setJavaScriptCanAccessClipboard( 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.javascript_can_access_clipboard); 1524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) WebRuntimeFeatures::enableXSLT(prefs.xslt_enabled); 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setXSSAuditorEnabled(prefs.xss_auditor_enabled); 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDNSPrefetchingEnabled(prefs.dns_prefetching_enabled); 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setLocalStorageEnabled(prefs.local_storage_enabled); 156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setSyncXHRInDocumentsEnabled(prefs.sync_xhr_in_documents_enabled); 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebRuntimeFeatures::enableDatabase(prefs.databases_enabled); 158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setOfflineWebApplicationCacheEnabled( 159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.application_cache_enabled); 160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setCaretBrowsingEnabled(prefs.caret_browsing_enabled); 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setHyperlinkAuditingEnabled(prefs.hyperlink_auditing_enabled); 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setCookieEnabled(prefs.cookie_enabled); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This setting affects the behavior of links in an editable region: 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // clicking the link should select it rather than navigate to it. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Safari uses the same default. It is unlikley an embedder would want to 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // change this, since it would break existing rich text editors. 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setEditableLinkBehaviorNeverLive(); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setJavaEnabled(prefs.java_enabled); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // By default, allow_universal_access_from_file_urls is set to false and thus 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // we mitigate attacks from local HTML files by not granting file:// URLs 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // universal access. Only test shell will enable this. 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAllowUniversalAccessFromFileURLs( 176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.allow_universal_access_from_file_urls); 177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAllowFileAccessFromFileURLs( 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.allow_file_access_from_file_urls); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable the web audio API if requested on the command line. 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setWebAudioEnabled(prefs.webaudio_enabled); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable experimental WebGL support if requested on command line 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and support is compiled in. 185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setExperimentalWebGLEnabled(prefs.experimental_webgl_enabled); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Disable GL multisampling if requested on command line. 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setOpenGLMultisamplingEnabled(prefs.gl_multisampling_enabled); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable privileged WebGL extensions for Chrome extensions or if requested 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // on command line. 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setPrivilegedWebGLExtensionsEnabled( 193c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.privileged_webgl_extensions_enabled); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable WebGL errors to the JS console if requested. 196c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setWebGLErrorsToConsoleEnabled( 197c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.webgl_errors_to_console_enabled); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enables accelerated compositing for overflow scroll. 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAcceleratedCompositingForOverflowScrollEnabled( 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_for_overflow_scroll_enabled); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Enables accelerated compositing for scrollable frames if requested on 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // command line. 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setAcceleratedCompositingForScrollableFramesEnabled( 206c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_for_scrollable_frames_enabled); 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Enables composited scrolling for frames if requested on command line. 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setCompositedScrollingForFramesEnabled( 210c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.composited_scrolling_for_frames_enabled); 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Uses the mock theme engine for scrollbars. 213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setMockScrollbarsEnabled(prefs.mock_scrollbars_enabled); 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 215f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) settings->setLayerSquashingEnabled(prefs.layer_squashing_enabled); 216f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setThreadedHTMLParser(prefs.threaded_html_parser); 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Display visualization of what has changed on the screen using an 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // overlay of rects, if requested on the command line. 221c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setShowPaintRects(prefs.show_paint_rects); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable gpu-accelerated compositing if requested on the command line. 224c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAcceleratedCompositingEnabled( 225c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_enabled); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable gpu-accelerated 2d canvas if requested on the command line. 228c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAccelerated2dCanvasEnabled(prefs.accelerated_2d_canvas_enabled); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setMinimumAccelerated2dCanvasSize( 231c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.minimum_accelerated_2d_canvas_size); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Disable antialiasing for 2d canvas if requested on the command line. 234c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAntialiased2dCanvasEnabled( 235c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) !prefs.antialiased_2d_canvas_disabled); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Set MSAA sample count for 2d canvas if requested on the command line (or 2381e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // default value if not). 2391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) settings->setAccelerated2dCanvasMSAASampleCount( 2401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) prefs.accelerated_2d_canvas_msaa_sample_count); 2411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable gpu-accelerated filters if requested on the command line. 243c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAcceleratedFiltersEnabled(prefs.accelerated_filters_enabled); 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable gesture tap highlight if requested on the command line. 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setGestureTapHighlightEnabled(prefs.gesture_tap_highlight_enabled); 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enabling accelerated layers from the command line enabled accelerated 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 3D CSS, Video, and Animations. 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAcceleratedCompositingFor3DTransformsEnabled( 251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_for_3d_transforms_enabled); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAcceleratedCompositingForVideoEnabled( 253c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_for_video_enabled); 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAcceleratedCompositingForAnimationEnabled( 255c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_for_animation_enabled); 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enabling accelerated plugins if specified from the command line. 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAcceleratedCompositingForPluginsEnabled( 259c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.accelerated_compositing_for_plugins_enabled); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebGL and accelerated 2D canvas are always gpu composited. 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAcceleratedCompositingForCanvasEnabled( 263c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.experimental_webgl_enabled || prefs.accelerated_2d_canvas_enabled); 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Enable memory info reporting to page if requested on the command line. 266c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setMemoryInfoEnabled(prefs.memory_info_enabled); 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAsynchronousSpellCheckingEnabled( 269c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.asynchronous_spell_checking_enabled); 270c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setUnifiedTextCheckerEnabled(prefs.unified_textchecker_enabled); 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 272c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) for (webkit_glue::WebInspectorPreferences::const_iterator it = 273c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.inspector_settings.begin(); 2743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) it != prefs.inspector_settings.end(); 2753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ++it) { 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) web_view->setInspectorSetting(WebString::fromUTF8(it->first), 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebString::fromUTF8(it->second)); 2783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Tabs to link is not part of the settings. WebCore calls 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ChromeClient::tabsToLinks which is part of the glue code. 282c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) web_view->setTabsToLinks(prefs.tabs_to_links); 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 284c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setFullScreenEnabled(prefs.fullscreen_enabled); 285c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAllowDisplayOfInsecureContent( 286c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.allow_displaying_insecure_content); 287c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setAllowRunningOfInsecureContent( 288c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.allow_running_insecure_content); 289c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setPasswordEchoEnabled(prefs.password_echo_enabled); 290c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setShouldPrintBackgrounds(prefs.should_print_backgrounds); 291d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) settings->setShouldClearDocumentBackground( 292d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) prefs.should_clear_document_background); 293c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setEnableScrollAnimator(prefs.enable_scroll_animator); 294c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setVisualWordMovementEnabled(prefs.visual_word_movement_enabled); 295c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2967d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) settings->setRegionBasedColumnsEnabled(prefs.region_based_columns_enabled); 297c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 298c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebRuntimeFeatures::enableLazyLayout(prefs.lazy_layout_enabled); 299c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebRuntimeFeatures::enableTouch(prefs.touch_enabled); 3001e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) settings->setMaxTouchPoints(prefs.pointer_events_max_touch_points); 301c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDeviceSupportsTouch(prefs.device_supports_touch); 302c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDeviceSupportsMouse(prefs.device_supports_mouse); 303c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setEnableTouchAdjustment(prefs.touch_adjustment_enabled); 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setFixedPositionCreatesStackingContext( 306c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.fixed_position_creates_stacking_context); 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 308c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDeferredImageDecodingEnabled( 309c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.deferred_image_decoding_enabled); 310c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setShouldRespectImageOrientation( 311c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.should_respect_image_orientation); 3122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setUnsafePluginPastingEnabled(false); 3142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setEditingBehavior( 315c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static_cast<WebSettings::EditingBehavior>(prefs.editing_behavior)); 3162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 317c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setSupportsMultipleWindows(prefs.supports_multiple_windows); 3182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 319c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setViewportEnabled(prefs.viewport_enabled); 3200f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) settings->setLoadWithOverviewMode(prefs.initialize_at_minimum_page_scale); 321f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) settings->setViewportMetaEnabled(prefs.viewport_meta_enabled); 322f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) settings->setMainFrameResizesAreOrientationChanges( 323f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) prefs.main_frame_resizes_are_orientation_changes); 3242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 325c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setSmartInsertDeleteEnabled(prefs.smart_insert_delete_enabled); 326c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 327c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setSpatialNavigationEnabled(prefs.spatial_navigation_enabled); 328c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 329c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setSelectionIncludesAltImageText(true); 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 3322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setAllowCustomScrollbarInMainFrame(false); 333c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setTextAutosizingEnabled(prefs.text_autosizing_enabled); 334f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) settings->setAccessibilityFontScaleFactor(prefs.font_scale_factor); 3350f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) settings->setDeviceScaleAdjustment(prefs.device_scale_adjustment); 336558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch web_view->setIgnoreViewportTagScaleLimits(prefs.force_enable_zoom); 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setAutoZoomFocusedNodeToLegibleScale(true); 338c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled); 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) settings->setMediaPlaybackRequiresUserGesture( 340c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.user_gesture_required_for_media_playback); 341d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) settings->setMediaFullscreenRequiresUserGesture( 342d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) prefs.user_gesture_required_for_media_fullscreen); 3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) settings->setDefaultVideoPosterURL( 344c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ASCIIToUTF16(prefs.default_video_poster_url.spec())); 345c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setSupportDeprecatedTargetDensityDPI( 346c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prefs.support_deprecated_target_density_dpi); 34758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) settings->setUseLegacyBackgroundSizeShorthandBehavior( 34858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) prefs.use_legacy_background_size_shorthand_behavior); 349d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) settings->setWideViewportQuirkEnabled(prefs.wide_viewport_quirk); 350c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) settings->setUseWideViewport(prefs.use_wide_viewport); 35158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) settings->setViewportMetaLayoutSizeQuirk( 35258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) prefs.viewport_meta_layout_size_quirk); 3531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) settings->setViewportMetaMergeContentQuirk( 3541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) prefs.viewport_meta_merge_content_quirk); 355f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) settings->setViewportMetaNonUserScalableQuirk( 356f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) prefs.viewport_meta_non_user_scalable_quirk); 35758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) settings->setViewportMetaZeroValuesQuirk( 35858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) prefs.viewport_meta_zero_values_quirk); 359f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) settings->setClobberUserAgentInitialScaleQuirk( 360f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) prefs.clobber_user_agent_initial_scale_quirk); 36168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) settings->setIgnoreMainFrameOverflowHiddenQuirk( 36268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) prefs.ignore_main_frame_overflow_hidden_quirk); 3638bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) settings->setReportScreenSizeInPhysicalPixelsQuirk( 3648bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs.report_screen_size_in_physical_pixels_quirk); 3654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) settings->setMainFrameClipsContent(false); 3664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) settings->setShrinksStandaloneImagesToFit(false); 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 369c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebNetworkStateNotifier::setOnLine(prefs.is_online); 37090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) settings->setExperimentalWebSocketEnabled( 37190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) prefs.experimental_websocket_enabled); 37290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) settings->setPinchVirtualViewportEnabled( 37390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) prefs.pinch_virtual_viewport_enabled); 374eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 375eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch settings->setPinchOverlayScrollbarThickness( 376eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch prefs.pinch_overlay_scrollbar_thickness); 37758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) settings->setUseSolidColorScrollbars(prefs.use_solid_color_scrollbars); 3784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) settings->setCompositorTouchHitTesting(prefs.compositor_touch_hit_testing); 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3813551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} // namespace content 382