a953f4a99aa1376ec2ac619806780a1e155bb4bd
[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       connection_type(net::NetworkChangeNotifier::CONNECTION_NONE),
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       pepper_3d_enabled(false),
53       flash_3d_enabled(true),
54       flash_stage3d_enabled(false),
55       flash_stage3d_baseline_enabled(false),
56       gl_multisampling_enabled(true),
57       privileged_webgl_extensions_enabled(false),
58       webgl_errors_to_console_enabled(true),
59       mock_scrollbars_enabled(false),
60       layer_squashing_enabled(true),
61       asynchronous_spell_checking_enabled(true),
62       unified_textchecker_enabled(false),
63       accelerated_compositing_for_video_enabled(true),
64       accelerated_2d_canvas_enabled(false),
65       minimum_accelerated_2d_canvas_size(257 * 256),
66       antialiased_2d_canvas_disabled(false),
67       accelerated_2d_canvas_msaa_sample_count(0),
68       accelerated_filters_enabled(false),
69       deferred_filters_enabled(false),
70       container_culling_enabled(false),
71       gesture_tap_highlight_enabled(false),
72       allow_displaying_insecure_content(true),
73       allow_running_insecure_content(false),
74       password_echo_enabled(false),
75       should_print_backgrounds(false),
76       should_clear_document_background(true),
77       enable_scroll_animator(false),
78       region_based_columns_enabled(false),
79       touch_enabled(false),
80       device_supports_touch(false),
81       device_supports_mouse(true),
82       touch_adjustment_enabled(true),
83       pointer_events_max_touch_points(0),
84       sync_xhr_in_documents_enabled(true),
85       deferred_image_decoding_enabled(false),
86       should_respect_image_orientation(false),
87       number_of_cpu_cores(1),
88 #if defined(OS_MACOSX)
89       editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
90 #elif defined(OS_WIN)
91       editing_behavior(webkit_glue::EDITING_BEHAVIOR_WIN),
92 #elif defined(OS_ANDROID)
93       editing_behavior(webkit_glue::EDITING_BEHAVIOR_ANDROID),
94 #elif defined(OS_POSIX)
95       editing_behavior(webkit_glue::EDITING_BEHAVIOR_UNIX),
96 #else
97       editing_behavior(webkit_glue::EDITING_BEHAVIOR_MAC),
98 #endif
99       supports_multiple_windows(true),
100       viewport_enabled(false),
101       viewport_meta_enabled(false),
102       main_frame_resizes_are_orientation_changes(false),
103       initialize_at_minimum_page_scale(true),
104 #if defined(OS_MACOSX)
105       smart_insert_delete_enabled(true),
106 #else
107       smart_insert_delete_enabled(false),
108 #endif
109       spatial_navigation_enabled(false),
110       pinch_virtual_viewport_enabled(false),
111       pinch_overlay_scrollbar_thickness(0),
112       use_solid_color_scrollbars(false),
113       compositor_touch_hit_testing(true),
114       navigate_on_drag_drop(true),
115       cookie_enabled(true),
116       pepper_accelerated_video_decode_enabled(false)
117 #if defined(OS_ANDROID)
118       ,
119       text_autosizing_enabled(true),
120       font_scale_factor(1.0f),
121       device_scale_adjustment(1.0f),
122       force_enable_zoom(false),
123       double_tap_to_zoom_enabled(true),
124       user_gesture_required_for_media_playback(true),
125       support_deprecated_target_density_dpi(false),
126       use_legacy_background_size_shorthand_behavior(false),
127       wide_viewport_quirk(false),
128       use_wide_viewport(true),
129       viewport_meta_layout_size_quirk(false),
130       viewport_meta_merge_content_quirk(false),
131       viewport_meta_non_user_scalable_quirk(false),
132       viewport_meta_zero_values_quirk(false),
133       clobber_user_agent_initial_scale_quirk(false),
134       ignore_main_frame_overflow_hidden_quirk(false),
135       report_screen_size_in_physical_pixels_quirk(false)
136 #endif
137 {
138   standard_font_family_map[webkit_glue::kCommonScript] =
139       base::ASCIIToUTF16("Times New Roman");
140   fixed_font_family_map[webkit_glue::kCommonScript] =
141       base::ASCIIToUTF16("Courier New");
142   serif_font_family_map[webkit_glue::kCommonScript] =
143       base::ASCIIToUTF16("Times New Roman");
144   sans_serif_font_family_map[webkit_glue::kCommonScript] =
145       base::ASCIIToUTF16("Arial");
146   cursive_font_family_map[webkit_glue::kCommonScript] =
147       base::ASCIIToUTF16("Script");
148   fantasy_font_family_map[webkit_glue::kCommonScript] =
149       base::ASCIIToUTF16("Impact");
150   pictograph_font_family_map[webkit_glue::kCommonScript] =
151       base::ASCIIToUTF16("Times New Roman");
152 }
153
154 WebPreferences::~WebPreferences() {
155 }
156
157 namespace webkit_glue {
158
159 // "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
160 const char kCommonScript[] = "Zyyy";
161
162 #define COMPILE_ASSERT_MATCHING_ENUMS(webkit_glue_name, webkit_name)         \
163     COMPILE_ASSERT(                                                          \
164         static_cast<int>(webkit_glue_name) == static_cast<int>(webkit_name), \
165         mismatching_enums)
166
167 COMPILE_ASSERT_MATCHING_ENUMS(
168     webkit_glue::EDITING_BEHAVIOR_MAC, WebSettings::EditingBehaviorMac);
169 COMPILE_ASSERT_MATCHING_ENUMS(
170     webkit_glue::EDITING_BEHAVIOR_WIN, WebSettings::EditingBehaviorWin);
171 COMPILE_ASSERT_MATCHING_ENUMS(
172     webkit_glue::EDITING_BEHAVIOR_UNIX, WebSettings::EditingBehaviorUnix);
173 COMPILE_ASSERT_MATCHING_ENUMS(
174     webkit_glue::EDITING_BEHAVIOR_ANDROID, WebSettings::EditingBehaviorAndroid);
175
176 }  // namespace webkit_glue