webpreferences.cc revision 0f1bc08d4cfcc34181b0b5cbf065c40f687bf740
1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "webkit/common/webpreferences.h"
6
7#include "base/basictypes.h"
8#include "base/strings/string_util.h"
9#include "base/strings/utf_string_conversions.h"
10#include "third_party/WebKit/public/web/WebSettings.h"
11#include "third_party/icu/source/common/unicode/uchar.h"
12
13using WebKit::WebSettings;
14
15WebPreferences::WebPreferences()
16    : default_font_size(16),
17      default_fixed_font_size(13),
18      minimum_font_size(0),
19      minimum_logical_font_size(6),
20      default_encoding("ISO-8859-1"),
21      javascript_enabled(true),
22      web_security_enabled(true),
23      javascript_can_open_windows_automatically(true),
24      loads_images_automatically(true),
25      images_enabled(true),
26      plugins_enabled(true),
27      dom_paste_enabled(false),  // enables execCommand("paste")
28      site_specific_quirks_enabled(false),
29      shrinks_standalone_images_to_fit(true),
30      uses_universal_detector(false),  // Disabled: page cycler regression
31      text_areas_are_resizable(true),
32      java_enabled(true),
33      allow_scripts_to_close_windows(false),
34      remote_fonts_enabled(true),
35      javascript_can_access_clipboard(false),
36      xslt_enabled(true),
37      xss_auditor_enabled(true),
38      dns_prefetching_enabled(true),
39      local_storage_enabled(false),
40      databases_enabled(false),
41      application_cache_enabled(false),
42      tabs_to_links(true),
43      caret_browsing_enabled(false),
44      hyperlink_auditing_enabled(true),
45      is_online(true),
46      user_style_sheet_enabled(false),
47      author_and_user_styles_enabled(true),
48      allow_universal_access_from_file_urls(false),
49      allow_file_access_from_file_urls(false),
50      webaudio_enabled(false),
51      experimental_webgl_enabled(false),
52      flash_3d_enabled(true),
53      flash_stage3d_enabled(false),
54      flash_stage3d_baseline_enabled(false),
55      gl_multisampling_enabled(true),
56      privileged_webgl_extensions_enabled(false),
57      webgl_errors_to_console_enabled(true),
58      accelerated_compositing_for_overflow_scroll_enabled(false),
59      universal_accelerated_compositing_for_overflow_scroll_enabled(false),
60      accelerated_compositing_for_scrollable_frames_enabled(false),
61      composited_scrolling_for_frames_enabled(false),
62      mock_scrollbars_enabled(false),
63      threaded_html_parser(true),
64      show_paint_rects(false),
65      asynchronous_spell_checking_enabled(true),
66      unified_textchecker_enabled(false),
67      accelerated_compositing_enabled(false),
68      force_compositing_mode(false),
69      accelerated_compositing_for_3d_transforms_enabled(false),
70      accelerated_compositing_for_animation_enabled(false),
71      accelerated_compositing_for_video_enabled(false),
72      accelerated_2d_canvas_enabled(false),
73      minimum_accelerated_2d_canvas_size(257 * 256),
74      antialiased_2d_canvas_disabled(false),
75      accelerated_2d_canvas_msaa_sample_count(0),
76      accelerated_filters_enabled(false),
77      gesture_tap_highlight_enabled(false),
78      accelerated_compositing_for_plugins_enabled(false),
79      memory_info_enabled(false),
80      fullscreen_enabled(false),
81      allow_displaying_insecure_content(true),
82      allow_running_insecure_content(false),
83      password_echo_enabled(false),
84      should_print_backgrounds(false),
85      enable_scroll_animator(false),
86      visual_word_movement_enabled(false),
87      lazy_layout_enabled(false),
88      region_based_columns_enabled(false),
89      touch_enabled(false),
90      device_supports_touch(false),
91      device_supports_mouse(true),
92      touch_adjustment_enabled(true),
93      pointer_events_max_touch_points(0),
94      fixed_position_creates_stacking_context(false),
95      sync_xhr_in_documents_enabled(true),
96      deferred_image_decoding_enabled(false),
97      should_respect_image_orientation(false),
98      number_of_cpu_cores(1),
99#if defined(OS_MACOSX)
100      editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
101#elif defined(OS_WIN)
102      editing_behavior(webkit_glue::EDITING_BEHAVIOR_WIN),
103#elif defined(OS_ANDROID)
104      editing_behavior(webkit_glue::EDITING_BEHAVIOR_ANDROID),
105#elif defined(OS_POSIX)
106      editing_behavior(webkit_glue::EDITING_BEHAVIOR_UNIX),
107#else
108      editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
109#endif
110      supports_multiple_windows(true),
111      viewport_enabled(false),
112      initialize_at_minimum_page_scale(true),
113#if defined(OS_MACOSX)
114      smart_insert_delete_enabled(true),
115#else
116      smart_insert_delete_enabled(false),
117#endif
118      spatial_navigation_enabled(false),
119      experimental_websocket_enabled(false),
120      pinch_virtual_viewport_enabled(false),
121      pinch_overlay_scrollbar_thickness(0),
122      use_solid_color_scrollbars(false),
123      compositor_touch_hit_testing(true),
124      cookie_enabled(true)
125#if defined(OS_ANDROID)
126      ,
127      text_autosizing_enabled(true),
128      font_scale_factor(1.0f),
129      device_scale_adjustment(1.0f),
130      force_enable_zoom(false),
131      double_tap_to_zoom_enabled(true),
132      user_gesture_required_for_media_playback(true),
133      user_gesture_required_for_media_fullscreen(true),
134      support_deprecated_target_density_dpi(false),
135      use_legacy_background_size_shorthand_behavior(false),
136      wide_viewport_quirk(false),
137      use_wide_viewport(true),
138      viewport_meta_layout_size_quirk(false),
139      viewport_meta_merge_content_quirk(false),
140      viewport_meta_zero_values_quirk(false),
141      ignore_main_frame_overflow_hidden_quirk(false),
142      report_screen_size_in_physical_pixels_quirk(false)
143#endif
144{
145  standard_font_family_map[webkit_glue::kCommonScript] =
146      ASCIIToUTF16("Times New Roman");
147  fixed_font_family_map[webkit_glue::kCommonScript] =
148      ASCIIToUTF16("Courier New");
149  serif_font_family_map[webkit_glue::kCommonScript] =
150      ASCIIToUTF16("Times New Roman");
151  sans_serif_font_family_map[webkit_glue::kCommonScript] =
152      ASCIIToUTF16("Arial");
153  cursive_font_family_map[webkit_glue::kCommonScript] =
154      ASCIIToUTF16("Script");
155  fantasy_font_family_map[webkit_glue::kCommonScript] =
156      ASCIIToUTF16("Impact");
157  pictograph_font_family_map[webkit_glue::kCommonScript] =
158      ASCIIToUTF16("Times New Roman");
159}
160
161WebPreferences::~WebPreferences() {
162}
163
164namespace webkit_glue {
165
166// "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
167const char kCommonScript[] = "Zyyy";
168
169#define COMPILE_ASSERT_MATCHING_ENUMS(webkit_glue_name, webkit_name)         \
170    COMPILE_ASSERT(                                                          \
171        static_cast<int>(webkit_glue_name) == static_cast<int>(webkit_name), \
172        mismatching_enums)
173
174COMPILE_ASSERT_MATCHING_ENUMS(
175    webkit_glue::EDITING_BEHAVIOR_MAC, WebSettings::EditingBehaviorMac);
176COMPILE_ASSERT_MATCHING_ENUMS(
177    webkit_glue::EDITING_BEHAVIOR_WIN, WebSettings::EditingBehaviorWin);
178COMPILE_ASSERT_MATCHING_ENUMS(
179    webkit_glue::EDITING_BEHAVIOR_UNIX, WebSettings::EditingBehaviorUnix);
180COMPILE_ASSERT_MATCHING_ENUMS(
181    webkit_glue::EDITING_BEHAVIOR_ANDROID, WebSettings::EditingBehaviorAndroid);
182
183}  // namespace webkit_glue
184