Linux: Depend on liberation-fonts package for RPMs.
[chromium-blink-merge.git] / content / public / common / web_preferences.cc
blob6b599c096e09dcdfe6e9e2fd4157abace2567b8a
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.
5 #include "content/public/common/web_preferences.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 blink::WebSettings;
15 namespace content {
17 // "Zyyy" is the ISO 15924 script code for undetermined script aka Common.
18 const char kCommonScript[] = "Zyyy";
20 #define STATIC_ASSERT_MATCHING_ENUMS(content_name, blink_name) \
21 static_assert( \
22 static_cast<int>(content_name) == static_cast<int>(blink_name), \
23 "mismatching enums: " #content_name)
25 STATIC_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_MAC,
26 WebSettings::EditingBehaviorMac);
27 STATIC_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_WIN,
28 WebSettings::EditingBehaviorWin);
29 STATIC_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_UNIX,
30 WebSettings::EditingBehaviorUnix);
31 STATIC_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_ANDROID,
32 WebSettings::EditingBehaviorAndroid);
34 STATIC_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_DEFAULT,
35 WebSettings::V8CacheOptionsDefault);
36 STATIC_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_NONE,
37 WebSettings::V8CacheOptionsNone);
38 STATIC_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_PARSE,
39 WebSettings::V8CacheOptionsParse);
40 STATIC_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_CODE,
41 WebSettings::V8CacheOptionsCode);
42 STATIC_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_LAST,
43 WebSettings::V8CacheOptionsCode);
45 STATIC_ASSERT_MATCHING_ENUMS(IMAGE_ANIMATION_POLICY_ALLOWED,
46 WebSettings::ImageAnimationPolicyAllowed);
47 STATIC_ASSERT_MATCHING_ENUMS(IMAGE_ANIMATION_POLICY_ANIMATION_ONCE,
48 WebSettings::ImageAnimationPolicyAnimateOnce);
49 STATIC_ASSERT_MATCHING_ENUMS(IMAGE_ANIMATION_POLICY_NO_ANIMATION,
50 WebSettings::ImageAnimationPolicyNoAnimation);
52 STATIC_ASSERT_MATCHING_ENUMS(ui::POINTER_TYPE_NONE,
53 WebSettings::PointerTypeNone);
54 STATIC_ASSERT_MATCHING_ENUMS(ui::POINTER_TYPE_COARSE,
55 WebSettings::PointerTypeCoarse);
56 STATIC_ASSERT_MATCHING_ENUMS(ui::POINTER_TYPE_FINE,
57 WebSettings::PointerTypeFine);
59 STATIC_ASSERT_MATCHING_ENUMS(ui::HOVER_TYPE_NONE,
60 WebSettings::HoverTypeNone);
61 STATIC_ASSERT_MATCHING_ENUMS(ui::HOVER_TYPE_ON_DEMAND,
62 WebSettings::HoverTypeOnDemand);
63 STATIC_ASSERT_MATCHING_ENUMS(ui::HOVER_TYPE_HOVER,
64 WebSettings::HoverTypeHover);
66 WebPreferences::WebPreferences()
67 : default_font_size(16),
68 default_fixed_font_size(13),
69 minimum_font_size(0),
70 minimum_logical_font_size(6),
71 default_encoding("ISO-8859-1"),
72 #if defined(OS_WIN)
73 context_menu_on_mouse_up(true),
74 #else
75 context_menu_on_mouse_up(false),
76 #endif
77 javascript_enabled(true),
78 web_security_enabled(true),
79 javascript_can_open_windows_automatically(true),
80 loads_images_automatically(true),
81 images_enabled(true),
82 plugins_enabled(true),
83 dom_paste_enabled(false), // enables execCommand("paste")
84 shrinks_standalone_images_to_fit(true),
85 uses_universal_detector(false), // Disabled: page cycler regression
86 text_areas_are_resizable(true),
87 allow_scripts_to_close_windows(false),
88 remote_fonts_enabled(true),
89 javascript_can_access_clipboard(false),
90 xslt_enabled(true),
91 xss_auditor_enabled(true),
92 dns_prefetching_enabled(true),
93 local_storage_enabled(false),
94 databases_enabled(false),
95 application_cache_enabled(false),
96 tabs_to_links(true),
97 caret_browsing_enabled(false),
98 hyperlink_auditing_enabled(true),
99 is_online(true),
100 net_info_connection_type(net::NetworkChangeNotifier::CONNECTION_NONE),
101 net_info_max_bandwidth_mbps(
102 net::NetworkChangeNotifier::GetMaxBandwidthForConnectionSubtype(
103 net::NetworkChangeNotifier::SUBTYPE_NONE)),
104 allow_universal_access_from_file_urls(false),
105 allow_file_access_from_file_urls(false),
106 webaudio_enabled(false),
107 experimental_webgl_enabled(false),
108 pepper_3d_enabled(false),
109 flash_3d_enabled(true),
110 flash_stage3d_enabled(false),
111 flash_stage3d_baseline_enabled(false),
112 gl_multisampling_enabled(true),
113 privileged_webgl_extensions_enabled(false),
114 webgl_errors_to_console_enabled(true),
115 mock_scrollbars_enabled(false),
116 asynchronous_spell_checking_enabled(true),
117 unified_textchecker_enabled(false),
118 accelerated_2d_canvas_enabled(false),
119 minimum_accelerated_2d_canvas_size(257 * 256),
120 antialiased_2d_canvas_disabled(false),
121 antialiased_clips_2d_canvas_enabled(false),
122 accelerated_2d_canvas_msaa_sample_count(0),
123 accelerated_filters_enabled(false),
124 deferred_filters_enabled(false),
125 container_culling_enabled(false),
126 allow_displaying_insecure_content(true),
127 allow_running_insecure_content(false),
128 disable_reading_from_canvas(false),
129 strict_mixed_content_checking(false),
130 strict_powerful_feature_restrictions(false),
131 strictly_block_blockable_mixed_content(false),
132 block_mixed_plugin_content(false),
133 password_echo_enabled(false),
134 should_print_backgrounds(false),
135 should_clear_document_background(true),
136 enable_scroll_animator(false),
137 touch_enabled(false),
138 device_supports_touch(false),
139 device_supports_mouse(true),
140 touch_adjustment_enabled(true),
141 pointer_events_max_touch_points(0),
142 available_pointer_types(0),
143 primary_pointer_type(ui::POINTER_TYPE_NONE),
144 available_hover_types(0),
145 primary_hover_type(ui::HOVER_TYPE_NONE),
146 sync_xhr_in_documents_enabled(true),
147 image_color_profiles_enabled(false),
148 should_respect_image_orientation(false),
149 number_of_cpu_cores(1),
150 #if defined(OS_MACOSX)
151 editing_behavior(EDITING_BEHAVIOR_MAC),
152 #elif defined(OS_WIN)
153 editing_behavior(EDITING_BEHAVIOR_WIN),
154 #elif defined(OS_ANDROID)
155 editing_behavior(EDITING_BEHAVIOR_ANDROID),
156 #elif defined(OS_POSIX)
157 editing_behavior(EDITING_BEHAVIOR_UNIX),
158 #else
159 editing_behavior(EDITING_BEHAVIOR_MAC),
160 #endif
161 supports_multiple_windows(true),
162 viewport_enabled(false),
163 #if defined(OS_ANDROID)
164 viewport_meta_enabled(true),
165 #else
166 viewport_meta_enabled(false),
167 #endif
168 main_frame_resizes_are_orientation_changes(false),
169 initialize_at_minimum_page_scale(true),
170 #if defined(OS_MACOSX)
171 smart_insert_delete_enabled(true),
172 #else
173 smart_insert_delete_enabled(false),
174 #endif
175 spatial_navigation_enabled(false),
176 pinch_overlay_scrollbar_thickness(0),
177 use_solid_color_scrollbars(false),
178 navigate_on_drag_drop(true),
179 v8_cache_options(V8_CACHE_OPTIONS_DEFAULT),
180 slimming_paint_v2_enabled(false),
181 cookie_enabled(true),
182 pepper_accelerated_video_decode_enabled(false),
183 animation_policy(IMAGE_ANIMATION_POLICY_ALLOWED),
184 #if defined(OS_ANDROID)
185 text_autosizing_enabled(true),
186 font_scale_factor(1.0f),
187 device_scale_adjustment(1.0f),
188 force_enable_zoom(false),
189 fullscreen_supported(true),
190 double_tap_to_zoom_enabled(true),
191 user_gesture_required_for_media_playback(true),
192 support_deprecated_target_density_dpi(false),
193 use_legacy_background_size_shorthand_behavior(false),
194 wide_viewport_quirk(false),
195 use_wide_viewport(true),
196 force_zero_layout_height(false),
197 viewport_meta_layout_size_quirk(false),
198 viewport_meta_merge_content_quirk(false),
199 viewport_meta_non_user_scalable_quirk(false),
200 viewport_meta_zero_values_quirk(false),
201 clobber_user_agent_initial_scale_quirk(false),
202 ignore_main_frame_overflow_hidden_quirk(false),
203 report_screen_size_in_physical_pixels_quirk(false),
204 record_whole_document(false),
205 #endif
206 #if defined(OS_ANDROID)
207 default_minimum_page_scale_factor(0.25f),
208 default_maximum_page_scale_factor(5.f)
209 #elif defined(OS_MACOSX)
210 default_minimum_page_scale_factor(1.f),
211 default_maximum_page_scale_factor(3.f)
212 #else
213 default_minimum_page_scale_factor(1.f),
214 default_maximum_page_scale_factor(4.f)
215 #endif
217 standard_font_family_map[kCommonScript] =
218 base::ASCIIToUTF16("Times New Roman");
219 fixed_font_family_map[kCommonScript] = base::ASCIIToUTF16("Courier New");
220 serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Times New Roman");
221 sans_serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Arial");
222 cursive_font_family_map[kCommonScript] = base::ASCIIToUTF16("Script");
223 fantasy_font_family_map[kCommonScript] = base::ASCIIToUTF16("Impact");
224 pictograph_font_family_map[kCommonScript] =
225 base::ASCIIToUTF16("Times New Roman");
228 WebPreferences::~WebPreferences() {
231 } // namespace content