1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "webkit/glue/webpreferences.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/string_util.h" 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/utf_string_conversions.h" 972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h" 1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h" 1172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebSettings.h" 1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" 1372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" 1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "webkit/glue/webkit_glue.h" 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing WebKit::WebRuntimeFeatures; 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing WebKit::WebSettings; 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing WebKit::WebString; 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing WebKit::WebURL; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing WebKit::WebView; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 23731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickWebPreferences::WebPreferences() 2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : standard_font_family(ASCIIToUTF16("Times New Roman")), 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen fixed_font_family(ASCIIToUTF16("Courier New")), 2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen serif_font_family(ASCIIToUTF16("Times New Roman")), 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen sans_serif_font_family(ASCIIToUTF16("Arial")), 2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen cursive_font_family(ASCIIToUTF16("Script")), 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick fantasy_font_family(), // Not sure what to use on Windows. 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick default_font_size(16), 31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick default_fixed_font_size(13), 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch minimum_font_size(0), 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick minimum_logical_font_size(6), 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick default_encoding("ISO-8859-1"), 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick javascript_enabled(true), 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick web_security_enabled(true), 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick javascript_can_open_windows_automatically(true), 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick loads_images_automatically(true), 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick plugins_enabled(true), 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick dom_paste_enabled(false), // enables execCommand("paste") 41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick developer_extras_enabled(false), // Requires extra work by embedder 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick site_specific_quirks_enabled(false), 43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick shrinks_standalone_images_to_fit(true), 44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick uses_universal_detector(false), // Disabled: page cycler regression 45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick text_areas_are_resizable(true), 46731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick java_enabled(true), 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick allow_scripts_to_close_windows(false), 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick uses_page_cache(false), 49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick remote_fonts_enabled(true), 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick javascript_can_access_clipboard(false), 51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick xss_auditor_enabled(false), 52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick local_storage_enabled(false), 53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick databases_enabled(false), 54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick application_cache_enabled(false), 55731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick tabs_to_links(true), 56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick caret_browsing_enabled(false), 57731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick hyperlink_auditing_enabled(true), 58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick user_style_sheet_enabled(false), 59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick author_and_user_styles_enabled(true), 60201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch frame_flattening_enabled(false), 61731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick allow_universal_access_from_file_urls(false), 62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick allow_file_access_from_file_urls(false), 6372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen webaudio_enabled(false), 64731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick experimental_webgl_enabled(false), 6572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen gl_multisampling_enabled(true), 66731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick show_composited_layer_borders(false), 67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen show_composited_layer_tree(false), 68dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen show_fps_counter(false), 69dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen asynchronous_spell_checking_enabled(true), 70731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick accelerated_compositing_enabled(false), 71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen force_compositing_mode(false), 72dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen composite_to_texture_enabled(false), 73201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch accelerated_layers_enabled(false), 743f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen accelerated_video_enabled(false), 75731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick accelerated_2d_canvas_enabled(false), 76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen accelerated_drawing_enabled(false), 7772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen accelerated_plugins_enabled(false), 7872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen memory_info_enabled(false), 79dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen interactive_form_validation_enabled(true), 80dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen fullscreen_enabled(false) { 81731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 82731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 83731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickWebPreferences::~WebPreferences() { 84731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 85731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid WebPreferences::Apply(WebView* web_view) const { 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebSettings* settings = web_view->settings(); 8821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setStandardFontFamily(standard_font_family); 8921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setFixedFontFamily(fixed_font_family); 9021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setSerifFontFamily(serif_font_family); 9121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setSansSerifFontFamily(sans_serif_font_family); 9221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setCursiveFontFamily(cursive_font_family); 9321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setFantasyFontFamily(fantasy_font_family); 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDefaultFontSize(default_font_size); 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDefaultFixedFontSize(default_fixed_font_size); 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setMinimumFontSize(minimum_font_size); 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setMinimumLogicalFontSize(minimum_logical_font_size); 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDefaultTextEncodingName(ASCIIToUTF16(default_encoding)); 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaScriptEnabled(javascript_enabled); 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setWebSecurityEnabled(web_security_enabled); 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaScriptCanOpenWindowsAutomatically( 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch javascript_can_open_windows_automatically); 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setLoadsImagesAutomatically(loads_images_automatically); 104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setPluginsEnabled(plugins_enabled); 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDOMPasteAllowed(dom_paste_enabled); 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDeveloperExtrasEnabled(developer_extras_enabled); 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setNeedsSiteSpecificQuirks(site_specific_quirks_enabled); 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setShrinksStandaloneImagesToFit(shrinks_standalone_images_to_fit); 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUsesEncodingDetector(uses_universal_detector); 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setTextAreasAreResizable(text_areas_are_resizable); 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAllowScriptsToCloseWindows(allow_scripts_to_close_windows); 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (user_style_sheet_enabled) 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUserStyleSheetLocation(user_style_sheet_location); 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch else 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUserStyleSheetLocation(WebURL()); 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAuthorAndUserStylesEnabled(author_and_user_styles_enabled); 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUsesPageCache(uses_page_cache); 118c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDownloadableBinaryFontsEnabled(remote_fonts_enabled); 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaScriptCanAccessClipboard(javascript_can_access_clipboard); 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setXSSAuditorEnabled(xss_auditor_enabled); 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setLocalStorageEnabled(local_storage_enabled); 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebRuntimeFeatures::enableDatabase( 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebRuntimeFeatures::isDatabaseEnabled() || databases_enabled); 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setOfflineWebApplicationCacheEnabled(application_cache_enabled); 1253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick settings->setCaretBrowsingEnabled(caret_browsing_enabled); 1263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick settings->setHyperlinkAuditingEnabled(hyperlink_auditing_enabled); 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // This setting affects the behavior of links in an editable region: 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // clicking the link should select it rather than navigate to it. 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Safari uses the same default. It is unlikley an embedder would want to 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // change this, since it would break existing rich text editors. 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setEditableLinkBehaviorNeverLive(); 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 134201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setFrameFlatteningEnabled(frame_flattening_enabled); 135201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 136c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setFontRenderingModeNormal(); 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaEnabled(java_enabled); 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Turn this on to cause WebCore to paint the resize corner for us. 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setShouldPaintCustomScrollbars(true); 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // By default, allow_universal_access_from_file_urls is set to false and thus 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we mitigate attacks from local HTML files by not granting file:// URLs 144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // universal access. Only test shell will enable this. 145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAllowUniversalAccessFromFileURLs( 146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch allow_universal_access_from_file_urls); 147c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAllowFileAccessFromFileURLs(allow_file_access_from_file_urls); 148c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // We prevent WebKit from checking if it needs to add a "text direction" 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // submenu to a context menu. it is not only because we don't need the result 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // but also because it cause a possible crash in Editor::hasBidiSelection(). 152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setTextDirectionSubmenuInclusionBehaviorNeverIncluded(); 153c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Enable the web audio API if requested on the command line. 15572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setWebAudioEnabled(webaudio_enabled); 15672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 157c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable experimental WebGL support if requested on command line 158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // and support is compiled in. 159ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen settings->setExperimentalWebGLEnabled(experimental_webgl_enabled); 160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 16172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Disable GL multisampling if requested on command line. 16272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setOpenGLMultisamplingEnabled(gl_multisampling_enabled); 16372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Display colored borders around composited render layers if requested 165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // on command line. 166c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setShowDebugBorders(show_composited_layer_borders); 167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 168dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Display an FPS indicator if requested on the command line. 169dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen settings->setShowFPSCounter(show_fps_counter); 170dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 171dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Display the current compositor tree as overlay if requested on 172dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // the command line 173dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen settings->setShowPlatformLayerTree(show_composited_layer_tree); 174dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable gpu-accelerated compositing if requested on the command line. 176c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAcceleratedCompositingEnabled(accelerated_compositing_enabled); 177c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 178ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Always enter compositing if requested on the command line. 179ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen settings->setForceCompositingMode(force_compositing_mode); 180ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 181dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Enable composite to offscreen texture if requested on the command line. 182dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen settings->setCompositeToTextureEnabled(composite_to_texture_enabled); 183dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 1843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // Enable gpu-accelerated 2d canvas if requested on the command line. 1853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick settings->setAccelerated2dCanvasEnabled(accelerated_2d_canvas_enabled); 1863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 187ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Enable gpu-accelerated drawing if requested on the command line. 188ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen settings->setAcceleratedDrawingEnabled(accelerated_drawing_enabled); 189ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 190201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // Enabling accelerated layers from the command line enabled accelerated 19172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // 3D CSS, Video, and Animations. 192201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingFor3DTransformsEnabled( 193201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch accelerated_layers_enabled); 194201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingForVideoEnabled( 1953f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen accelerated_video_enabled); 196201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingForAnimationEnabled( 197201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch accelerated_layers_enabled); 198201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 19972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Enabling accelerated plugins if specified from the command line. 20072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setAcceleratedCompositingForPluginsEnabled( 20172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen accelerated_plugins_enabled); 20272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 203201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // WebGL and accelerated 2D canvas are always gpu composited. 204201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingForCanvasEnabled( 205ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen experimental_webgl_enabled || accelerated_2d_canvas_enabled); 206201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 207c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable memory info reporting to page if requested on the command line. 208c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setMemoryInfoEnabled(memory_info_enabled); 209c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 210dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen settings->setAsynchronousSpellCheckingEnabled( 211dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen asynchronous_spell_checking_enabled); 212dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 213c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch for (WebInspectorPreferences::const_iterator it = inspector_settings.begin(); 214c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch it != inspector_settings.end(); ++it) 215c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch web_view->setInspectorSetting(WebString::fromUTF8(it->first), 216c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebString::fromUTF8(it->second)); 217c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 218c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Tabs to link is not part of the settings. WebCore calls 219c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // ChromeClient::tabsToLinks which is part of the glue code. 220c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch web_view->setTabsToLinks(tabs_to_links); 22172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 22272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setInteractiveFormValidationEnabled( 22372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen interactive_form_validation_enabled); 224dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 225dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen settings->setFullScreenEnabled(fullscreen_enabled); 226c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 227