web_preferences.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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 13using blink::WebSettings; 14 15namespace content { 16 17// "Zyyy" is the ISO 15924 script code for undetermined script aka Common. 18const 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 25COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_MAC, 26 WebSettings::EditingBehaviorMac); 27COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_WIN, 28 WebSettings::EditingBehaviorWin); 29COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_UNIX, 30 WebSettings::EditingBehaviorUnix); 31COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_ANDROID, 32 WebSettings::EditingBehaviorAndroid); 33 34COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_OFF, 35 WebSettings::V8CacheOptionsOff); 36COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_PARSE, 37 WebSettings::V8CacheOptionsParse); 38COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_CODE, 39 WebSettings::V8CacheOptionsCode); 40COMPILE_ASSERT_MATCHING_ENUMS(V8_CACHE_OPTIONS_LAST, 41 WebSettings::V8CacheOptionsCode); 42 43WebPreferences::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 main_frame_resizes_are_orientation_changes(false), 127 initialize_at_minimum_page_scale(true), 128#if defined(OS_MACOSX) 129 smart_insert_delete_enabled(true), 130#else 131 smart_insert_delete_enabled(false), 132#endif 133 spatial_navigation_enabled(false), 134 pinch_virtual_viewport_enabled(false), 135 pinch_overlay_scrollbar_thickness(0), 136 use_solid_color_scrollbars(false), 137 navigate_on_drag_drop(true), 138 v8_cache_options(V8_CACHE_OPTIONS_OFF), 139 v8_script_streaming_enabled(false), 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 177WebPreferences::~WebPreferences() { 178} 179 180} // namespace content 181