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