Upstream version 7.36.149.0
[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 base::ASCIIToWide;
14 using blink::WebSettings;
15
16 WebPreferences::WebPreferences()
17     : default_font_size(16),
18       default_fixed_font_size(13),
19       minimum_font_size(0),
20       minimum_logical_font_size(6),
21       default_encoding("ISO-8859-1"),
22       javascript_enabled(true),
23       web_security_enabled(true),
24       javascript_can_open_windows_automatically(true),
25       loads_images_automatically(true),
26       images_enabled(true),
27       plugins_enabled(true),
28       dom_paste_enabled(false),  // enables execCommand("paste")
29       site_specific_quirks_enabled(false),
30       shrinks_standalone_images_to_fit(true),
31       uses_universal_detector(false),  // Disabled: page cycler regression
32       text_areas_are_resizable(true),
33       java_enabled(true),
34       allow_scripts_to_close_windows(false),
35       remote_fonts_enabled(true),
36       javascript_can_access_clipboard(false),
37       xslt_enabled(true),
38       xss_auditor_enabled(true),
39       dns_prefetching_enabled(true),
40       local_storage_enabled(false),
41       databases_enabled(false),
42       application_cache_enabled(false),
43       tabs_to_links(true),
44       caret_browsing_enabled(false),
45       hyperlink_auditing_enabled(true),
46       is_online(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       pepper_3d_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       mock_scrollbars_enabled(false),
59       layer_squashing_enabled(true),
60       threaded_html_parser(true),
61       asynchronous_spell_checking_enabled(true),
62       unified_textchecker_enabled(false),
63       force_compositing_mode(true),
64       accelerated_compositing_for_video_enabled(true),
65       accelerated_2d_canvas_enabled(false),
66       minimum_accelerated_2d_canvas_size(257 * 256),
67       antialiased_2d_canvas_disabled(false),
68       accelerated_2d_canvas_msaa_sample_count(0),
69       accelerated_filters_enabled(false),
70       deferred_filters_enabled(false),
71       container_culling_enabled(false),
72       gesture_tap_highlight_enabled(false),
73       allow_displaying_insecure_content(true),
74       allow_running_insecure_content(false),
75       password_echo_enabled(false),
76       should_print_backgrounds(false),
77       should_clear_document_background(true),
78       enable_scroll_animator(false),
79       lazy_layout_enabled(false),
80       region_based_columns_enabled(false),
81       touch_enabled(false),
82       device_supports_touch(false),
83       device_supports_mouse(true),
84       touch_adjustment_enabled(true),
85       pointer_events_max_touch_points(0),
86       fixed_position_creates_stacking_context(false),
87       sync_xhr_in_documents_enabled(true),
88       deferred_image_decoding_enabled(false),
89       should_respect_image_orientation(false),
90       number_of_cpu_cores(1),
91 #if defined(OS_MACOSX)
92       editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
93 #elif defined(OS_WIN)
94       editing_behavior(webkit_glue::EDITING_BEHAVIOR_WIN),
95 #elif defined(OS_ANDROID)
96       editing_behavior(webkit_glue::EDITING_BEHAVIOR_ANDROID),
97 #elif defined(OS_POSIX)
98       editing_behavior(webkit_glue::EDITING_BEHAVIOR_UNIX),
99 #else
100       editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
101 #endif
102       supports_multiple_windows(true),
103       viewport_enabled(false),
104       viewport_meta_enabled(false),
105       main_frame_resizes_are_orientation_changes(false),
106       initialize_at_minimum_page_scale(true),
107 #if defined(OS_MACOSX)
108       smart_insert_delete_enabled(true),
109 #else
110       smart_insert_delete_enabled(false),
111 #endif
112       spatial_navigation_enabled(false),
113       pinch_virtual_viewport_enabled(false),
114       pinch_overlay_scrollbar_thickness(0),
115       use_solid_color_scrollbars(false),
116       compositor_touch_hit_testing(true),
117       navigate_on_drag_drop(true),
118       cookie_enabled(true),
119       pepper_accelerated_video_decode_enabled(false)
120 #if defined(OS_ANDROID)
121       ,
122       text_autosizing_enabled(true),
123       font_scale_factor(1.0f),
124       device_scale_adjustment(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_legacy_background_size_shorthand_behavior(false),
130       wide_viewport_quirk(false),
131       use_wide_viewport(true),
132       viewport_meta_layout_size_quirk(false),
133       viewport_meta_merge_content_quirk(false),
134       viewport_meta_non_user_scalable_quirk(false),
135       viewport_meta_zero_values_quirk(false),
136       clobber_user_agent_initial_scale_quirk(false),
137       ignore_main_frame_overflow_hidden_quirk(false),
138       report_screen_size_in_physical_pixels_quirk(false)
139 #endif
140 {
141   standard_font_family_map[webkit_glue::kCommonScript] =
142       base::ASCIIToUTF16("Times New Roman");
143   fixed_font_family_map[webkit_glue::kCommonScript] =
144       base::ASCIIToUTF16("Courier New");
145   serif_font_family_map[webkit_glue::kCommonScript] =
146       base::ASCIIToUTF16("Times New Roman");
147   sans_serif_font_family_map[webkit_glue::kCommonScript] =
148       base::ASCIIToUTF16("Arial");
149   cursive_font_family_map[webkit_glue::kCommonScript] =
150       base::ASCIIToUTF16("Script");
151   fantasy_font_family_map[webkit_glue::kCommonScript] =
152       base::ASCIIToUTF16("Impact");
153   pictograph_font_family_map[webkit_glue::kCommonScript] =
154       base::ASCIIToUTF16("Times New Roman");
155 }
156
157 WebPreferences::~WebPreferences() {
158 }
159
160 namespace webkit_glue {
161
162 // "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
163 const char kCommonScript[] = "Zyyy";
164
165 #define COMPILE_ASSERT_MATCHING_ENUMS(webkit_glue_name, webkit_name)         \
166     COMPILE_ASSERT(                                                          \
167         static_cast<int>(webkit_glue_name) == static_cast<int>(webkit_name), \
168         mismatching_enums)
169
170 COMPILE_ASSERT_MATCHING_ENUMS(
171     webkit_glue::EDITING_BEHAVIOR_MAC, WebSettings::EditingBehaviorMac);
172 COMPILE_ASSERT_MATCHING_ENUMS(
173     webkit_glue::EDITING_BEHAVIOR_WIN, WebSettings::EditingBehaviorWin);
174 COMPILE_ASSERT_MATCHING_ENUMS(
175     webkit_glue::EDITING_BEHAVIOR_UNIX, WebSettings::EditingBehaviorUnix);
176 COMPILE_ASSERT_MATCHING_ENUMS(
177     webkit_glue::EDITING_BEHAVIOR_ANDROID, WebSettings::EditingBehaviorAndroid);
178
179 }  // namespace webkit_glue