webpreferences.cc revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
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      xss_auditor_enabled(true),
37      dns_prefetching_enabled(true),
38      local_storage_enabled(false),
39      databases_enabled(false),
40      application_cache_enabled(false),
41      tabs_to_links(true),
42      caret_browsing_enabled(false),
43      hyperlink_auditing_enabled(true),
44      is_online(true),
45      user_style_sheet_enabled(false),
46      author_and_user_styles_enabled(true),
47      allow_universal_access_from_file_urls(false),
48      allow_file_access_from_file_urls(false),
49      webaudio_enabled(false),
50      experimental_webgl_enabled(false),
51      flash_3d_enabled(true),
52      flash_stage3d_enabled(false),
53      flash_stage3d_baseline_enabled(false),
54      gl_multisampling_enabled(true),
55      privileged_webgl_extensions_enabled(false),
56      webgl_errors_to_console_enabled(true),
57      accelerated_compositing_for_overflow_scroll_enabled(false),
58      accelerated_compositing_for_scrollable_frames_enabled(false),
59      composited_scrolling_for_frames_enabled(false),
60      mock_scrollbars_enabled(false),
61      threaded_html_parser(true),
62      show_paint_rects(false),
63      asynchronous_spell_checking_enabled(true),
64      unified_textchecker_enabled(false),
65      accelerated_compositing_enabled(false),
66      force_compositing_mode(false),
67      accelerated_compositing_for_3d_transforms_enabled(false),
68      accelerated_compositing_for_animation_enabled(false),
69      accelerated_compositing_for_video_enabled(false),
70      accelerated_2d_canvas_enabled(false),
71      minimum_accelerated_2d_canvas_size(257 * 256),
72      antialiased_2d_canvas_disabled(false),
73      accelerated_filters_enabled(false),
74      gesture_tap_highlight_enabled(false),
75      accelerated_compositing_for_plugins_enabled(false),
76      memory_info_enabled(false),
77      fullscreen_enabled(false),
78      allow_displaying_insecure_content(true),
79      allow_running_insecure_content(false),
80      password_echo_enabled(false),
81      should_print_backgrounds(false),
82      enable_scroll_animator(false),
83      visual_word_movement_enabled(false),
84      css_sticky_position_enabled(false),
85      css_shaders_enabled(false),
86      lazy_layout_enabled(false),
87      region_based_columns_enabled(false),
88      touch_enabled(false),
89      device_supports_touch(false),
90      device_supports_mouse(true),
91      touch_adjustment_enabled(true),
92      fixed_position_creates_stacking_context(false),
93      sync_xhr_in_documents_enabled(true),
94      deferred_image_decoding_enabled(false),
95      should_respect_image_orientation(false),
96      number_of_cpu_cores(1),
97#if defined(OS_MACOSX)
98      editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
99#elif defined(OS_WIN)
100      editing_behavior(webkit_glue::EDITING_BEHAVIOR_WIN),
101#elif defined(OS_ANDROID)
102      editing_behavior(webkit_glue::EDITING_BEHAVIOR_ANDROID),
103#elif defined(OS_POSIX)
104      editing_behavior(webkit_glue::EDITING_BEHAVIOR_UNIX),
105#else
106      editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
107#endif
108      supports_multiple_windows(true),
109      viewport_enabled(false),
110      initialize_at_minimum_page_scale(true),
111#if defined(OS_MACOSX)
112      smart_insert_delete_enabled(true),
113#else
114      smart_insert_delete_enabled(false),
115#endif
116      spatial_navigation_enabled(false),
117      experimental_websocket_enabled(false),
118      pinch_virtual_viewport_enabled(false),
119      pinch_overlay_scrollbar_thickness(0),
120      cookie_enabled(true)
121#if defined(OS_ANDROID)
122      ,
123      text_autosizing_enabled(true),
124      font_scale_factor(1.0f),
125      force_enable_zoom(false),
126      double_tap_to_zoom_enabled(true),
127      user_gesture_required_for_media_playback(true),
128      support_deprecated_target_density_dpi(false),
129      use_wide_viewport(true)
130#endif
131{
132  standard_font_family_map[webkit_glue::kCommonScript] =
133      ASCIIToUTF16("Times New Roman");
134  fixed_font_family_map[webkit_glue::kCommonScript] =
135      ASCIIToUTF16("Courier New");
136  serif_font_family_map[webkit_glue::kCommonScript] =
137      ASCIIToUTF16("Times New Roman");
138  sans_serif_font_family_map[webkit_glue::kCommonScript] =
139      ASCIIToUTF16("Arial");
140  cursive_font_family_map[webkit_glue::kCommonScript] =
141      ASCIIToUTF16("Script");
142  fantasy_font_family_map[webkit_glue::kCommonScript] =
143      ASCIIToUTF16("Impact");
144  pictograph_font_family_map[webkit_glue::kCommonScript] =
145      ASCIIToUTF16("Times New Roman");
146}
147
148WebPreferences::~WebPreferences() {
149}
150
151namespace webkit_glue {
152
153// "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
154const char kCommonScript[] = "Zyyy";
155
156#define COMPILE_ASSERT_MATCHING_ENUMS(webkit_glue_name, webkit_name)         \
157    COMPILE_ASSERT(                                                          \
158        static_cast<int>(webkit_glue_name) == static_cast<int>(webkit_name), \
159        mismatching_enums)
160
161COMPILE_ASSERT_MATCHING_ENUMS(
162    webkit_glue::EDITING_BEHAVIOR_MAC, WebSettings::EditingBehaviorMac);
163COMPILE_ASSERT_MATCHING_ENUMS(
164    webkit_glue::EDITING_BEHAVIOR_WIN, WebSettings::EditingBehaviorWin);
165COMPILE_ASSERT_MATCHING_ENUMS(
166    webkit_glue::EDITING_BEHAVIOR_UNIX, WebSettings::EditingBehaviorUnix);
167COMPILE_ASSERT_MATCHING_ENUMS(
168    webkit_glue::EDITING_BEHAVIOR_ANDROID, WebSettings::EditingBehaviorAndroid);
169
170}  // namespace webkit_glue
171