web_preferences.cc revision 116680a4aac90f2aa7413d9095a592090648e557
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2014 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)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/common/web_preferences.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/basictypes.h"
8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/strings/string_util.h"
9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/WebKit/public/web/WebSettings.h"
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "third_party/icu/source/common/unicode/uchar.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using blink::WebSettings;
14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace content {
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCommonScript[] = "Zyyy";
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define COMPILE_ASSERT_MATCHING_ENUMS(content_name, blink_name)         \
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    COMPILE_ASSERT(                                                     \
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        static_cast<int>(content_name) == static_cast<int>(blink_name), \
239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch        mismatching_enums)
249ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_MAC,
261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                              WebSettings::EditingBehaviorMac);
271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_WIN,
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                              WebSettings::EditingBehaviorWin);
291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_UNIX,
301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                              WebSettings::EditingBehaviorUnix);
311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_ANDROID,
321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                              WebSettings::EditingBehaviorAndroid);
33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
34effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochWebPreferences::WebPreferences()
35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    : default_font_size(16),
36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      default_fixed_font_size(13),
37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      minimum_font_size(0),
38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      minimum_logical_font_size(6),
39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      default_encoding("ISO-8859-1"),
40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      javascript_enabled(true),
41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      web_security_enabled(true),
42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      javascript_can_open_windows_automatically(true),
43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      loads_images_automatically(true),
44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      images_enabled(true),
45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      plugins_enabled(true),
46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      dom_paste_enabled(false),  // enables execCommand("paste")
47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      site_specific_quirks_enabled(false),
48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      shrinks_standalone_images_to_fit(true),
49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      uses_universal_detector(false),  // Disabled: page cycler regression
50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      text_areas_are_resizable(true),
51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      java_enabled(true),
52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      allow_scripts_to_close_windows(false),
531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      remote_fonts_enabled(true),
541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      javascript_can_access_clipboard(false),
55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      xslt_enabled(true),
56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      xss_auditor_enabled(true),
57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      dns_prefetching_enabled(true),
581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      local_storage_enabled(false),
591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      databases_enabled(false),
601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      application_cache_enabled(false),
611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      tabs_to_links(true),
621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      caret_browsing_enabled(false),
631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      hyperlink_auditing_enabled(true),
64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      is_online(true),
651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      connection_type(net::NetworkChangeNotifier::CONNECTION_NONE),
661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      allow_universal_access_from_file_urls(false),
671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      allow_file_access_from_file_urls(false),
681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      webaudio_enabled(false),
69f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      experimental_webgl_enabled(false),
70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      pepper_3d_enabled(false),
711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      flash_3d_enabled(true),
721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      flash_stage3d_enabled(false),
731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      flash_stage3d_baseline_enabled(false),
741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      gl_multisampling_enabled(true),
75f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      privileged_webgl_extensions_enabled(false),
761e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      webgl_errors_to_console_enabled(true),
771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      mock_scrollbars_enabled(false),
781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      layer_squashing_enabled(true),
791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      asynchronous_spell_checking_enabled(true),
801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      unified_textchecker_enabled(false),
811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      accelerated_compositing_for_video_enabled(true),
821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      accelerated_2d_canvas_enabled(false),
831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      minimum_accelerated_2d_canvas_size(257 * 256),
84effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      antialiased_2d_canvas_disabled(false),
851e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      accelerated_2d_canvas_msaa_sample_count(0),
861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      accelerated_filters_enabled(false),
871e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      deferred_filters_enabled(false),
881e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      container_culling_enabled(false),
89f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      allow_displaying_insecure_content(true),
90f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      allow_running_insecure_content(false),
911e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      password_echo_enabled(false),
921e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      should_print_backgrounds(false),
931e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      should_clear_document_background(true),
941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      enable_scroll_animator(false),
95f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      region_based_columns_enabled(false),
961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      touch_enabled(false),
971e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      device_supports_touch(false),
981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      device_supports_mouse(true),
991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      touch_adjustment_enabled(true),
100a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      pointer_events_max_touch_points(0),
101a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      sync_xhr_in_documents_enabled(true),
102a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      deferred_image_decoding_enabled(false),
103a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      should_respect_image_orientation(false),
104a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      number_of_cpu_cores(1),
105a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_MACOSX)
106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      editing_behavior(EDITING_BEHAVIOR_MAC),
107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#elif defined(OS_WIN)
108a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      editing_behavior(EDITING_BEHAVIOR_WIN),
109a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#elif defined(OS_ANDROID)
110a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      editing_behavior(EDITING_BEHAVIOR_ANDROID),
111a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#elif defined(OS_POSIX)
112a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      editing_behavior(EDITING_BEHAVIOR_UNIX),
113a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#else
114a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      editing_behavior(EDITING_BEHAVIOR_MAC),
115a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif
116a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      supports_multiple_windows(true),
117a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      viewport_enabled(false),
118a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      viewport_meta_enabled(false),
119a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      main_frame_resizes_are_orientation_changes(false),
120a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      initialize_at_minimum_page_scale(true),
121a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_MACOSX)
122a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      smart_insert_delete_enabled(true),
123a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#else
124a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      smart_insert_delete_enabled(false),
125a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif
126a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      spatial_navigation_enabled(false),
127a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      pinch_virtual_viewport_enabled(false),
128a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      pinch_overlay_scrollbar_thickness(0),
129a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      use_solid_color_scrollbars(false),
130a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      compositor_touch_hit_testing(true),
131a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      navigate_on_drag_drop(true),
132a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      cookie_enabled(true),
133a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      pepper_accelerated_video_decode_enabled(false)
134a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_ANDROID)
135a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      ,
136a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      text_autosizing_enabled(true),
137a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      font_scale_factor(1.0f),
138a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      device_scale_adjustment(1.0f),
139a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      force_enable_zoom(false),
140a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      disallow_fullscreen_for_non_media_elements(false),
141a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      double_tap_to_zoom_enabled(true),
142a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      user_gesture_required_for_media_playback(true),
143a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      support_deprecated_target_density_dpi(false),
144a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      use_legacy_background_size_shorthand_behavior(false),
145a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      wide_viewport_quirk(false),
146a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      use_wide_viewport(true),
147a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      viewport_meta_layout_size_quirk(false),
148a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      viewport_meta_merge_content_quirk(false),
149a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      viewport_meta_non_user_scalable_quirk(false),
150a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      viewport_meta_zero_values_quirk(false),
151a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      clobber_user_agent_initial_scale_quirk(false),
152a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      ignore_main_frame_overflow_hidden_quirk(false),
153a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      report_screen_size_in_physical_pixels_quirk(false)
154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif
155a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles){
156a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  standard_font_family_map[kCommonScript] =
157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      base::ASCIIToUTF16("Times New Roman");
158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  fixed_font_family_map[kCommonScript] = base::ASCIIToUTF16("Courier New");
159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Times New Roman");
160a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  sans_serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Arial");
161a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  cursive_font_family_map[kCommonScript] = base::ASCIIToUTF16("Script");
162a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  fantasy_font_family_map[kCommonScript] = base::ASCIIToUTF16("Impact");
163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  pictograph_font_family_map[kCommonScript] =
164a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      base::ASCIIToUTF16("Times New Roman");
165a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
166a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
167a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)WebPreferences::~WebPreferences() {
168a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
169a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
170a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}  // namespace content
171a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)