- add sources.
[platform/framework/web/crosswalk.git] / src / webkit / common / webpreferences.cc
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
13 using WebKit::WebSettings;
14
15 WebPreferences::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
161 WebPreferences::~WebPreferences() {
162 }
163
164 namespace webkit_glue {
165
166 // "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
167 const 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
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);
182
183 }  // namespace webkit_glue