web_preferences.cc revision 116680a4aac90f2aa7413d9095a592090648e557
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/common/web_preferences.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/basictypes.h" 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/strings/string_util.h" 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/WebKit/public/web/WebSettings.h" 111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "third_party/icu/source/common/unicode/uchar.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using blink::WebSettings; 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace content { 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// "Zyyy" is the ISO 15924 script code for undetermined script aka Common. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCommonScript[] = "Zyyy"; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define COMPILE_ASSERT_MATCHING_ENUMS(content_name, blink_name) \ 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) COMPILE_ASSERT( \ 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static_cast<int>(content_name) == static_cast<int>(blink_name), \ 239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch mismatching_enums) 249ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_MAC, 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) WebSettings::EditingBehaviorMac); 271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_WIN, 281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) WebSettings::EditingBehaviorWin); 291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_UNIX, 301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) WebSettings::EditingBehaviorUnix); 311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)COMPILE_ASSERT_MATCHING_ENUMS(EDITING_BEHAVIOR_ANDROID, 321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) WebSettings::EditingBehaviorAndroid); 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 34effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochWebPreferences::WebPreferences() 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : default_font_size(16), 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch default_fixed_font_size(13), 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch minimum_font_size(0), 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch minimum_logical_font_size(6), 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch default_encoding("ISO-8859-1"), 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch javascript_enabled(true), 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch web_security_enabled(true), 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch javascript_can_open_windows_automatically(true), 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loads_images_automatically(true), 44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch images_enabled(true), 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch plugins_enabled(true), 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch dom_paste_enabled(false), // enables execCommand("paste") 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch site_specific_quirks_enabled(false), 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch shrinks_standalone_images_to_fit(true), 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch uses_universal_detector(false), // Disabled: page cycler regression 50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch text_areas_are_resizable(true), 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch java_enabled(true), 52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch allow_scripts_to_close_windows(false), 531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) remote_fonts_enabled(true), 541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) javascript_can_access_clipboard(false), 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) xslt_enabled(true), 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) xss_auditor_enabled(true), 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) dns_prefetching_enabled(true), 581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) local_storage_enabled(false), 591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) databases_enabled(false), 601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) application_cache_enabled(false), 611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) tabs_to_links(true), 621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) caret_browsing_enabled(false), 631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) hyperlink_auditing_enabled(true), 64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch is_online(true), 651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) connection_type(net::NetworkChangeNotifier::CONNECTION_NONE), 661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) allow_universal_access_from_file_urls(false), 671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) allow_file_access_from_file_urls(false), 681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) webaudio_enabled(false), 69f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) experimental_webgl_enabled(false), 70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) pepper_3d_enabled(false), 711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) flash_3d_enabled(true), 721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) flash_stage3d_enabled(false), 731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) flash_stage3d_baseline_enabled(false), 741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) gl_multisampling_enabled(true), 75f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) privileged_webgl_extensions_enabled(false), 761e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) webgl_errors_to_console_enabled(true), 771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) mock_scrollbars_enabled(false), 781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) layer_squashing_enabled(true), 791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) asynchronous_spell_checking_enabled(true), 801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) unified_textchecker_enabled(false), 811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) accelerated_compositing_for_video_enabled(true), 821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) accelerated_2d_canvas_enabled(false), 831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) minimum_accelerated_2d_canvas_size(257 * 256), 84effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch antialiased_2d_canvas_disabled(false), 851e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) accelerated_2d_canvas_msaa_sample_count(0), 861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) accelerated_filters_enabled(false), 871e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) deferred_filters_enabled(false), 881e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) container_culling_enabled(false), 89f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) allow_displaying_insecure_content(true), 90f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) allow_running_insecure_content(false), 911e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) password_echo_enabled(false), 921e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) should_print_backgrounds(false), 931e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) should_clear_document_background(true), 941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) enable_scroll_animator(false), 95f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) region_based_columns_enabled(false), 961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) touch_enabled(false), 971e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) device_supports_touch(false), 981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) device_supports_mouse(true), 991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) touch_adjustment_enabled(true), 100a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) pointer_events_max_touch_points(0), 101a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) sync_xhr_in_documents_enabled(true), 102a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) deferred_image_decoding_enabled(false), 103a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) should_respect_image_orientation(false), 104a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) number_of_cpu_cores(1), 105a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_MACOSX) 106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) editing_behavior(EDITING_BEHAVIOR_MAC), 107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#elif defined(OS_WIN) 108a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) editing_behavior(EDITING_BEHAVIOR_WIN), 109a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#elif defined(OS_ANDROID) 110a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) editing_behavior(EDITING_BEHAVIOR_ANDROID), 111a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#elif defined(OS_POSIX) 112a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) editing_behavior(EDITING_BEHAVIOR_UNIX), 113a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#else 114a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) editing_behavior(EDITING_BEHAVIOR_MAC), 115a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif 116a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) supports_multiple_windows(true), 117a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) viewport_enabled(false), 118a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) viewport_meta_enabled(false), 119a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) main_frame_resizes_are_orientation_changes(false), 120a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) initialize_at_minimum_page_scale(true), 121a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_MACOSX) 122a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) smart_insert_delete_enabled(true), 123a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#else 124a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) smart_insert_delete_enabled(false), 125a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif 126a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) spatial_navigation_enabled(false), 127a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) pinch_virtual_viewport_enabled(false), 128a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) pinch_overlay_scrollbar_thickness(0), 129a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) use_solid_color_scrollbars(false), 130a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) compositor_touch_hit_testing(true), 131a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) navigate_on_drag_drop(true), 132a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) cookie_enabled(true), 133a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) pepper_accelerated_video_decode_enabled(false) 134a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_ANDROID) 135a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) , 136a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) text_autosizing_enabled(true), 137a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) font_scale_factor(1.0f), 138a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) device_scale_adjustment(1.0f), 139a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) force_enable_zoom(false), 140a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) disallow_fullscreen_for_non_media_elements(false), 141a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) double_tap_to_zoom_enabled(true), 142a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) user_gesture_required_for_media_playback(true), 143a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) support_deprecated_target_density_dpi(false), 144a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) use_legacy_background_size_shorthand_behavior(false), 145a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) wide_viewport_quirk(false), 146a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) use_wide_viewport(true), 147a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) viewport_meta_layout_size_quirk(false), 148a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) viewport_meta_merge_content_quirk(false), 149a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) viewport_meta_non_user_scalable_quirk(false), 150a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) viewport_meta_zero_values_quirk(false), 151a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) clobber_user_agent_initial_scale_quirk(false), 152a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ignore_main_frame_overflow_hidden_quirk(false), 153a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) report_screen_size_in_physical_pixels_quirk(false) 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif 155a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles){ 156a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) standard_font_family_map[kCommonScript] = 157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::ASCIIToUTF16("Times New Roman"); 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) fixed_font_family_map[kCommonScript] = base::ASCIIToUTF16("Courier New"); 159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Times New Roman"); 160a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) sans_serif_font_family_map[kCommonScript] = base::ASCIIToUTF16("Arial"); 161a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) cursive_font_family_map[kCommonScript] = base::ASCIIToUTF16("Script"); 162a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) fantasy_font_family_map[kCommonScript] = base::ASCIIToUTF16("Impact"); 163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) pictograph_font_family_map[kCommonScript] = 164a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::ASCIIToUTF16("Times New Roman"); 165a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 166a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 167a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)WebPreferences::~WebPreferences() { 168a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 169a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 170a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} // namespace content 171a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)