1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// found in the LICENSE file.
4868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/common/web_preferences.h"
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/basictypes.h"
85e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles)#include "base/strings/string_util.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebSettings.h"
11ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "third_party/icu/source/common/unicode/uchar.h"
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebSettings;
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace content {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kCommonScript[] = "Zyyy";
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define COMPILE_ASSERT_MATCHING_ENUMS(content_name, blink_name)         \
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    COMPILE_ASSERT(                                                     \
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        static_cast<int>(content_name) == static_cast<int>(blink_name), \
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        mismatching_enums)
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
25116680a4aac90f2aa7413d9095a592090648e557Ben MurdochCOMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_MAC,
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                              WebSettings::EditingBehaviorMac);
27116680a4aac90f2aa7413d9095a592090648e557Ben MurdochCOMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_WIN,
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                              WebSettings::EditingBehaviorWin);
29116680a4aac90f2aa7413d9095a592090648e557Ben MurdochCOMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_UNIX,
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                              WebSettings::EditingBehaviorUnix);
31116680a4aac90f2aa7413d9095a592090648e557Ben MurdochCOMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_ANDROID,
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                              WebSettings::EditingBehaviorAndroid);
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_OFF,
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                              WebSettings::V8CacheOptionsOff);
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_PARSE,
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                              WebSettings::V8CacheOptionsParse);
386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_CODE,
396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                              WebSettings::V8CacheOptionsCode);
406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_LAST,
416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                              WebSettings::V8CacheOptionsCode);
426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)WebPreferences::WebPreferences()
44868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    : default_font_size(16),
45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      default_fixed_font_size(13),
46868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      minimum_font_size(0),
47868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      minimum_logical_font_size(6),
48868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      default_encoding("ISO-8859-1"),
49868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      javascript_enabled(true),
50868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      web_security_enabled(true),
51868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      javascript_can_open_windows_automatically(true),
52868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      loads_images_automatically(true),
53868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      images_enabled(true),
54868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      plugins_enabled(true),
55868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      dom_paste_enabled(false),  // enables execCommand("paste")
56868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      shrinks_standalone_images_to_fit(true),
57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      uses_universal_detector(false),  // Disabled: page cycler regression
58868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      text_areas_are_resizable(true),
59868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      java_enabled(true),
60868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      allow_scripts_to_close_windows(false),
61868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      remote_fonts_enabled(true),
62868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      javascript_can_access_clipboard(false),
634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      xslt_enabled(true),
64868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      xss_auditor_enabled(true),
65868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      dns_prefetching_enabled(true),
66868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      local_storage_enabled(false),
67868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      databases_enabled(false),
68868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      application_cache_enabled(false),
69868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      tabs_to_links(true),
70868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      caret_browsing_enabled(false),
71868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      hyperlink_auditing_enabled(true),
72868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      is_online(true),
73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      connection_type(net::NetworkChangeNotifier::CONNECTION_NONE),
74868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      allow_universal_access_from_file_urls(false),
75868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      allow_file_access_from_file_urls(false),
76868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      webaudio_enabled(false),
77868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      experimental_webgl_enabled(false),
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      pepper_3d_enabled(false),
79868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      flash_3d_enabled(true),
80868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      flash_stage3d_enabled(false),
81868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      flash_stage3d_baseline_enabled(false),
82868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      gl_multisampling_enabled(true),
83868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      privileged_webgl_extensions_enabled(false),
84868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      webgl_errors_to_console_enabled(true),
85868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      mock_scrollbars_enabled(false),
860529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      layer_squashing_enabled(true),
87868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      asynchronous_spell_checking_enabled(true),
88868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      unified_textchecker_enabled(false),
89868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      accelerated_2d_canvas_enabled(false),
90868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      minimum_accelerated_2d_canvas_size(257 * 256),
91868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      antialiased_2d_canvas_disabled(false),
921e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      accelerated_2d_canvas_msaa_sample_count(0),
93868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      accelerated_filters_enabled(false),
945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      deferred_filters_enabled(false),
95a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      container_culling_enabled(false),
96868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      allow_displaying_insecure_content(true),
97868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      allow_running_insecure_content(false),
98868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      password_echo_enabled(false),
99868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      should_print_backgrounds(false),
1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      should_clear_document_background(true),
101868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      enable_scroll_animator(false),
1027d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)      region_based_columns_enabled(false),
103868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      touch_enabled(false),
104868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      device_supports_touch(false),
105868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      device_supports_mouse(true),
106868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      touch_adjustment_enabled(true),
1071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      pointer_events_max_touch_points(0),
108868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      sync_xhr_in_documents_enabled(true),
109868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      deferred_image_decoding_enabled(false),
110868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      should_respect_image_orientation(false),
111868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      number_of_cpu_cores(1),
112868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(OS_MACOSX)
113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      editing_behavior(EDITING_BEHAVIOR_MAC),
114868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#elif defined(OS_WIN)
115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      editing_behavior(EDITING_BEHAVIOR_WIN),
116868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#elif defined(OS_ANDROID)
117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      editing_behavior(EDITING_BEHAVIOR_ANDROID),
118868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#elif defined(OS_POSIX)
119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      editing_behavior(EDITING_BEHAVIOR_UNIX),
120868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#else
121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      editing_behavior(EDITING_BEHAVIOR_MAC),
122868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif
123868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      supports_multiple_windows(true),
124868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      viewport_enabled(false),
125f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      viewport_meta_enabled(false),
126f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      main_frame_resizes_are_orientation_changes(false),
127868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      initialize_at_minimum_page_scale(true),
128868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(OS_MACOSX)
129868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      smart_insert_delete_enabled(true),
130868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#else
131868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      smart_insert_delete_enabled(false),
132868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif
133868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      spatial_navigation_enabled(false),
134868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      pinch_virtual_viewport_enabled(false),
135eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      pinch_overlay_scrollbar_thickness(0),
13658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      use_solid_color_scrollbars(false),
137a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      navigate_on_drag_drop(true),
1386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      v8_cache_options(V8_CACHE_OPTIONS_OFF),
1391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      v8_script_streaming_enabled(false),
140a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      cookie_enabled(true),
141a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      pepper_accelerated_video_decode_enabled(false)
142868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(OS_ANDROID)
143868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      ,
144868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      text_autosizing_enabled(true),
1450f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)      font_scale_factor(1.0f),
1460f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)      device_scale_adjustment(1.0f),
147868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      force_enable_zoom(false),
148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      disallow_fullscreen_for_non_media_elements(false),
1496e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      fullscreen_supported(true),
150868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      double_tap_to_zoom_enabled(true),
151868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      user_gesture_required_for_media_playback(true),
152868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      support_deprecated_target_density_dpi(false),
15358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      use_legacy_background_size_shorthand_behavior(false),
154d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)      wide_viewport_quirk(false),
15558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      use_wide_viewport(true),
1566e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      force_zero_layout_height(false),
15758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      viewport_meta_layout_size_quirk(false),
1581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      viewport_meta_merge_content_quirk(false),
159f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      viewport_meta_non_user_scalable_quirk(false),
16068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      viewport_meta_zero_values_quirk(false),
161f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      clobber_user_agent_initial_scale_quirk(false),
1628bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)      ignore_main_frame_overflow_hidden_quirk(false),
1638bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)      report_screen_size_in_physical_pixels_quirk(false)
164868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif
165868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles){
166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  standard_font_family_map[kCommonScript] =
1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      base::ASCIIToUTF16("Times New Roman");
168116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  fixed_font_family_map[kCommonScript] = base::ASCIIToUTF16("Courier New");
169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Times New Roman");
170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  sans_serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Arial");
171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  cursive_font_family_map[kCommonScript] = base::ASCIIToUTF16("Script");
172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  fantasy_font_family_map[kCommonScript] = base::ASCIIToUTF16("Impact");
173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  pictograph_font_family_map[kCommonScript] =
1745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      base::ASCIIToUTF16("Times New Roman");
175868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
176868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
177868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)WebPreferences::~WebPreferences() {
178868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
179868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace content
181