webpreferences.cc revision 72a454cd3513ac24fbdd0e0cb9ad70b86a99b801
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2009 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), 67731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick accelerated_compositing_enabled(false), 68201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch accelerated_layers_enabled(false), 693f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen accelerated_video_enabled(false), 70731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick accelerated_2d_canvas_enabled(false), 7172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen accelerated_plugins_enabled(false), 7272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen memory_info_enabled(false), 7372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen interactive_form_validation_enabled(true) { 74731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 75731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 76731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickWebPreferences::~WebPreferences() { 77731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 78731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid WebPreferences::Apply(WebView* web_view) const { 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebSettings* settings = web_view->settings(); 8121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setStandardFontFamily(standard_font_family); 8221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setFixedFontFamily(fixed_font_family); 8321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setSerifFontFamily(serif_font_family); 8421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setSansSerifFontFamily(sans_serif_font_family); 8521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setCursiveFontFamily(cursive_font_family); 8621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen settings->setFantasyFontFamily(fantasy_font_family); 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDefaultFontSize(default_font_size); 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDefaultFixedFontSize(default_fixed_font_size); 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setMinimumFontSize(minimum_font_size); 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setMinimumLogicalFontSize(minimum_logical_font_size); 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDefaultTextEncodingName(ASCIIToUTF16(default_encoding)); 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaScriptEnabled(javascript_enabled); 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setWebSecurityEnabled(web_security_enabled); 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaScriptCanOpenWindowsAutomatically( 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch javascript_can_open_windows_automatically); 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setLoadsImagesAutomatically(loads_images_automatically); 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setPluginsEnabled(plugins_enabled); 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDOMPasteAllowed(dom_paste_enabled); 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDeveloperExtrasEnabled(developer_extras_enabled); 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setNeedsSiteSpecificQuirks(site_specific_quirks_enabled); 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setShrinksStandaloneImagesToFit(shrinks_standalone_images_to_fit); 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUsesEncodingDetector(uses_universal_detector); 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setTextAreasAreResizable(text_areas_are_resizable); 104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAllowScriptsToCloseWindows(allow_scripts_to_close_windows); 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (user_style_sheet_enabled) 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUserStyleSheetLocation(user_style_sheet_location); 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch else 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUserStyleSheetLocation(WebURL()); 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAuthorAndUserStylesEnabled(author_and_user_styles_enabled); 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setUsesPageCache(uses_page_cache); 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setDownloadableBinaryFontsEnabled(remote_fonts_enabled); 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaScriptCanAccessClipboard(javascript_can_access_clipboard); 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setXSSAuditorEnabled(xss_auditor_enabled); 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setLocalStorageEnabled(local_storage_enabled); 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebRuntimeFeatures::enableDatabase( 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebRuntimeFeatures::isDatabaseEnabled() || databases_enabled); 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setOfflineWebApplicationCacheEnabled(application_cache_enabled); 1183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick settings->setCaretBrowsingEnabled(caret_browsing_enabled); 1193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick settings->setHyperlinkAuditingEnabled(hyperlink_auditing_enabled); 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // This setting affects the behavior of links in an editable region: 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // clicking the link should select it rather than navigate to it. 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Safari uses the same default. It is unlikley an embedder would want to 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // change this, since it would break existing rich text editors. 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setEditableLinkBehaviorNeverLive(); 126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 127201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setFrameFlatteningEnabled(frame_flattening_enabled); 128201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setFontRenderingModeNormal(); 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setJavaEnabled(java_enabled); 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Turn this on to cause WebCore to paint the resize corner for us. 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setShouldPaintCustomScrollbars(true); 134c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 135c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // By default, allow_universal_access_from_file_urls is set to false and thus 136c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we mitigate attacks from local HTML files by not granting file:// URLs 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // universal access. Only test shell will enable this. 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAllowUniversalAccessFromFileURLs( 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch allow_universal_access_from_file_urls); 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAllowFileAccessFromFileURLs(allow_file_access_from_file_urls); 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // We prevent WebKit from checking if it needs to add a "text direction" 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // submenu to a context menu. it is not only because we don't need the result 144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // but also because it cause a possible crash in Editor::hasBidiSelection(). 145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setTextDirectionSubmenuInclusionBehaviorNeverIncluded(); 146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Enable the web audio API if requested on the command line. 14872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setWebAudioEnabled(webaudio_enabled); 14972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable experimental WebGL support if requested on command line 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // and support is compiled in. 152201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch bool enable_webgl = 15321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen WebRuntimeFeatures::isWebGLEnabled() && experimental_webgl_enabled; 154201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setExperimentalWebGLEnabled(enable_webgl); 155c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Disable GL multisampling if requested on command line. 15772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setOpenGLMultisamplingEnabled(gl_multisampling_enabled); 15872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 159c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Display colored borders around composited render layers if requested 160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // on command line. 161c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setShowDebugBorders(show_composited_layer_borders); 162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable gpu-accelerated compositing if requested on the command line. 164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setAcceleratedCompositingEnabled(accelerated_compositing_enabled); 165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 1663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // Enable gpu-accelerated 2d canvas if requested on the command line. 1673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick settings->setAccelerated2dCanvasEnabled(accelerated_2d_canvas_enabled); 1683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 169201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // Enabling accelerated layers from the command line enabled accelerated 17072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // 3D CSS, Video, and Animations. 171201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingFor3DTransformsEnabled( 172201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch accelerated_layers_enabled); 173201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingForVideoEnabled( 1743f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen accelerated_video_enabled); 175201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingForAnimationEnabled( 176201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch accelerated_layers_enabled); 177201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 17872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Enabling accelerated plugins if specified from the command line. 17972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setAcceleratedCompositingForPluginsEnabled( 18072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen accelerated_plugins_enabled); 18172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 182201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // WebGL and accelerated 2D canvas are always gpu composited. 183201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch settings->setAcceleratedCompositingForCanvasEnabled( 184201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch enable_webgl || accelerated_2d_canvas_enabled); 185201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 186c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable memory info reporting to page if requested on the command line. 187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch settings->setMemoryInfoEnabled(memory_info_enabled); 188c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 189c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch for (WebInspectorPreferences::const_iterator it = inspector_settings.begin(); 190c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch it != inspector_settings.end(); ++it) 191c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch web_view->setInspectorSetting(WebString::fromUTF8(it->first), 192c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch WebString::fromUTF8(it->second)); 193c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 194c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Tabs to link is not part of the settings. WebCore calls 195c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // ChromeClient::tabsToLinks which is part of the glue code. 196c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch web_view->setTabsToLinks(tabs_to_links); 19772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 19872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen settings->setInteractiveFormValidationEnabled( 19972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen interactive_form_validation_enabled); 200c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 201