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.
5 #include "webkit/common/webpreferences.h"
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"
13 using WebKit::WebSettings;
15 WebPreferences::WebPreferences()
16 : default_font_size(16),
17 default_fixed_font_size(13),
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),
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),
33 allow_scripts_to_close_windows(false),
34 remote_fonts_enabled(true),
35 javascript_can_access_clipboard(false),
37 xss_auditor_enabled(true),
38 dns_prefetching_enabled(true),
39 local_storage_enabled(false),
40 databases_enabled(false),
41 application_cache_enabled(false),
43 caret_browsing_enabled(false),
44 hyperlink_auditing_enabled(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),
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),
108 editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
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),
116 smart_insert_delete_enabled(false),
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),
125 #if defined(OS_ANDROID)
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)
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");
161 WebPreferences::~WebPreferences() {
164 namespace webkit_glue {
166 // "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
167 const char kCommonScript[] = "Zyyy";
169 #define COMPILE_ASSERT_MATCHING_ENUMS(webkit_glue_name, webkit_name) \
171 static_cast<int>(webkit_glue_name) == static_cast<int>(webkit_name), \
174 COMPILE_ASSERT_MATCHING_ENUMS(
175 webkit_glue::EDITING_BEHAVIOR_MAC, WebSettings::EditingBehaviorMac);
176 COMPILE_ASSERT_MATCHING_ENUMS(
177 webkit_glue::EDITING_BEHAVIOR_WIN, WebSettings::EditingBehaviorWin);
178 COMPILE_ASSERT_MATCHING_ENUMS(
179 webkit_glue::EDITING_BEHAVIOR_UNIX, WebSettings::EditingBehaviorUnix);
180 COMPILE_ASSERT_MATCHING_ENUMS(
181 webkit_glue::EDITING_BEHAVIOR_ANDROID, WebSettings::EditingBehaviorAndroid);
183 } // namespace webkit_glue