OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/render_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 14 matching lines...) Expand all Loading... | |
25 #include "base/metrics/histogram_macros.h" | 25 #include "base/metrics/histogram_macros.h" |
26 #include "base/process/kill.h" | 26 #include "base/process/kill.h" |
27 #include "base/process/process.h" | 27 #include "base/process/process.h" |
28 #include "base/single_thread_task_runner.h" | 28 #include "base/single_thread_task_runner.h" |
29 #include "base/strings/string_number_conversions.h" | 29 #include "base/strings/string_number_conversions.h" |
30 #include "base/strings/string_piece.h" | 30 #include "base/strings/string_piece.h" |
31 #include "base/strings/string_split.h" | 31 #include "base/strings/string_split.h" |
32 #include "base/strings/string_util.h" | 32 #include "base/strings/string_util.h" |
33 #include "base/strings/sys_string_conversions.h" | 33 #include "base/strings/sys_string_conversions.h" |
34 #include "base/strings/utf_string_conversions.h" | 34 #include "base/strings/utf_string_conversions.h" |
35 #include "base/sys_info.h" | |
35 #include "base/threading/thread_task_runner_handle.h" | 36 #include "base/threading/thread_task_runner_handle.h" |
36 #include "base/time/time.h" | 37 #include "base/time/time.h" |
37 #include "base/trace_event/trace_event.h" | 38 #include "base/trace_event/trace_event.h" |
38 #include "build/build_config.h" | 39 #include "build/build_config.h" |
39 #include "cc/base/switches.h" | 40 #include "cc/base/switches.h" |
40 #include "content/child/appcache/appcache_dispatcher.h" | 41 #include "content/child/appcache/appcache_dispatcher.h" |
41 #include "content/child/appcache/web_application_cache_host_impl.h" | 42 #include "content/child/appcache/web_application_cache_host_impl.h" |
42 #include "content/child/child_shared_bitmap_manager.h" | 43 #include "content/child/child_shared_bitmap_manager.h" |
43 #include "content/child/request_extra_data.h" | 44 #include "content/child/request_extra_data.h" |
44 #include "content/child/v8_value_converter_impl.h" | 45 #include "content/child/v8_value_converter_impl.h" |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
168 #include "ui/gfx/geometry/rect.h" | 169 #include "ui/gfx/geometry/rect.h" |
169 #include "ui/gfx/geometry/rect_conversions.h" | 170 #include "ui/gfx/geometry/rect_conversions.h" |
170 #include "ui/gfx/geometry/size_conversions.h" | 171 #include "ui/gfx/geometry/size_conversions.h" |
171 #include "ui/gfx/native_widget_types.h" | 172 #include "ui/gfx/native_widget_types.h" |
172 #include "url/url_constants.h" | 173 #include "url/url_constants.h" |
173 #include "v8/include/v8.h" | 174 #include "v8/include/v8.h" |
174 | 175 |
175 #if defined(OS_ANDROID) | 176 #if defined(OS_ANDROID) |
176 #include <cpu-features.h> | 177 #include <cpu-features.h> |
177 | 178 |
179 #include "base/android/build_info.h" | |
178 #include "content/renderer/android/address_detector.h" | 180 #include "content/renderer/android/address_detector.h" |
179 #include "content/renderer/android/content_detector.h" | 181 #include "content/renderer/android/content_detector.h" |
180 #include "content/renderer/android/disambiguation_popup_helper.h" | 182 #include "content/renderer/android/disambiguation_popup_helper.h" |
181 #include "content/renderer/android/email_detector.h" | 183 #include "content/renderer/android/email_detector.h" |
182 #include "content/renderer/android/phone_number_detector.h" | 184 #include "content/renderer/android/phone_number_detector.h" |
183 #include "ui/gfx/geometry/rect_f.h" | 185 #include "ui/gfx/geometry/rect_f.h" |
184 | 186 |
185 #elif defined(OS_MACOSX) | 187 #elif defined(OS_MACOSX) |
186 #include "skia/ext/skia_utils_mac.h" | 188 #include "skia/ext/skia_utils_mac.h" |
187 #endif | 189 #endif |
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1107 settings->setAccessibilityFontScaleFactor(prefs.font_scale_factor); | 1109 settings->setAccessibilityFontScaleFactor(prefs.font_scale_factor); |
1108 settings->setDeviceScaleAdjustment(prefs.device_scale_adjustment); | 1110 settings->setDeviceScaleAdjustment(prefs.device_scale_adjustment); |
1109 settings->setFullscreenSupported(prefs.fullscreen_supported); | 1111 settings->setFullscreenSupported(prefs.fullscreen_supported); |
1110 web_view->setIgnoreViewportTagScaleLimits(prefs.force_enable_zoom); | 1112 web_view->setIgnoreViewportTagScaleLimits(prefs.force_enable_zoom); |
1111 settings->setAutoZoomFocusedNodeToLegibleScale(true); | 1113 settings->setAutoZoomFocusedNodeToLegibleScale(true); |
1112 settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled); | 1114 settings->setDoubleTapToZoomEnabled(prefs.double_tap_to_zoom_enabled); |
1113 settings->setMediaControlsOverlayPlayButtonEnabled(true); | 1115 settings->setMediaControlsOverlayPlayButtonEnabled(true); |
1114 settings->setMediaPlaybackRequiresUserGesture( | 1116 settings->setMediaPlaybackRequiresUserGesture( |
1115 prefs.user_gesture_required_for_media_playback); | 1117 prefs.user_gesture_required_for_media_playback); |
1116 settings->setDefaultVideoPosterURL( | 1118 settings->setDefaultVideoPosterURL( |
1117 base::ASCIIToUTF16(prefs.default_video_poster_url.spec())); | 1119 base::ASCIIToUTF16(prefs.default_video_poster_url.spec())); |
1118 settings->setSupportDeprecatedTargetDensityDPI( | 1120 settings->setSupportDeprecatedTargetDensityDPI( |
1119 prefs.support_deprecated_target_density_dpi); | 1121 prefs.support_deprecated_target_density_dpi); |
1120 settings->setUseLegacyBackgroundSizeShorthandBehavior( | 1122 settings->setUseLegacyBackgroundSizeShorthandBehavior( |
1121 prefs.use_legacy_background_size_shorthand_behavior); | 1123 prefs.use_legacy_background_size_shorthand_behavior); |
1122 settings->setWideViewportQuirkEnabled(prefs.wide_viewport_quirk); | 1124 settings->setWideViewportQuirkEnabled(prefs.wide_viewport_quirk); |
1123 settings->setUseWideViewport(prefs.use_wide_viewport); | 1125 settings->setUseWideViewport(prefs.use_wide_viewport); |
1124 settings->setForceZeroLayoutHeight(prefs.force_zero_layout_height); | 1126 settings->setForceZeroLayoutHeight(prefs.force_zero_layout_height); |
1125 settings->setViewportMetaLayoutSizeQuirk( | 1127 settings->setViewportMetaLayoutSizeQuirk( |
1126 prefs.viewport_meta_layout_size_quirk); | 1128 prefs.viewport_meta_layout_size_quirk); |
1127 settings->setViewportMetaMergeContentQuirk( | 1129 settings->setViewportMetaMergeContentQuirk( |
1128 prefs.viewport_meta_merge_content_quirk); | 1130 prefs.viewport_meta_merge_content_quirk); |
1129 settings->setViewportMetaNonUserScalableQuirk( | 1131 settings->setViewportMetaNonUserScalableQuirk( |
1130 prefs.viewport_meta_non_user_scalable_quirk); | 1132 prefs.viewport_meta_non_user_scalable_quirk); |
1131 settings->setViewportMetaZeroValuesQuirk( | 1133 settings->setViewportMetaZeroValuesQuirk( |
1132 prefs.viewport_meta_zero_values_quirk); | 1134 prefs.viewport_meta_zero_values_quirk); |
1133 settings->setClobberUserAgentInitialScaleQuirk( | 1135 settings->setClobberUserAgentInitialScaleQuirk( |
1134 prefs.clobber_user_agent_initial_scale_quirk); | 1136 prefs.clobber_user_agent_initial_scale_quirk); |
1135 settings->setIgnoreMainFrameOverflowHiddenQuirk( | 1137 settings->setIgnoreMainFrameOverflowHiddenQuirk( |
1136 prefs.ignore_main_frame_overflow_hidden_quirk); | 1138 prefs.ignore_main_frame_overflow_hidden_quirk); |
1137 settings->setReportScreenSizeInPhysicalPixelsQuirk( | 1139 settings->setReportScreenSizeInPhysicalPixelsQuirk( |
1138 prefs.report_screen_size_in_physical_pixels_quirk); | 1140 prefs.report_screen_size_in_physical_pixels_quirk); |
1139 settings->setShouldReuseGlobalForUnownedMainFrame( | 1141 settings->setShouldReuseGlobalForUnownedMainFrame( |
1140 prefs.resue_global_for_unowned_main_frame); | 1142 prefs.resue_global_for_unowned_main_frame); |
1141 settings->setProgressBarCompletion( | 1143 settings->setProgressBarCompletion( |
1142 static_cast<WebSettings::ProgressBarCompletion>( | 1144 static_cast<WebSettings::ProgressBarCompletion>( |
1143 prefs.progress_bar_completion)); | 1145 prefs.progress_bar_completion)); |
1144 settings->setPreferHiddenVolumeControls(true); | 1146 settings->setPreferHiddenVolumeControls(true); |
1147 | |
1148 // Force preload=none and disable autoplay on older or low end Android | |
1149 // platforms because their media pipelines are not stable enough to handle | |
1150 // concurrent elements. See http://crbug.com/612909, http://crbug.com/622826. | |
1151 const bool is_low_end_device = | |
1152 base::android::BuildInfo::GetInstance()->sdk_int() <= 18 || | |
Srirama
2016/09/17 08:45:04
how about using "SDK_VERSION_JELLY_BEAN_MR2" inste
DaleCurtis
2016/09/19 21:04:46
Done.
| |
1153 base::SysInfo::IsLowEndDevice(); | |
1154 settings->setForcePreloadNoneForMediaElements(is_low_end_device); | |
1145 WebRuntimeFeatures::enableAutoplayMutedVideos( | 1155 WebRuntimeFeatures::enableAutoplayMutedVideos( |
1146 prefs.autoplay_muted_videos_enabled); | 1156 prefs.autoplay_muted_videos_enabled && !is_low_end_device); |
1147 #endif | 1157 #endif |
1148 | 1158 |
1149 settings->setAutoplayExperimentMode( | 1159 settings->setAutoplayExperimentMode( |
1150 blink::WebString::fromUTF8(prefs.autoplay_experiment_mode)); | 1160 blink::WebString::fromUTF8(prefs.autoplay_experiment_mode)); |
1151 | 1161 |
1152 settings->setViewportEnabled(prefs.viewport_enabled); | 1162 settings->setViewportEnabled(prefs.viewport_enabled); |
1153 settings->setViewportMetaEnabled(prefs.viewport_meta_enabled); | 1163 settings->setViewportMetaEnabled(prefs.viewport_meta_enabled); |
1154 settings->setShrinksViewportContentToFit( | 1164 settings->setShrinksViewportContentToFit( |
1155 prefs.shrinks_viewport_contents_to_fit); | 1165 prefs.shrinks_viewport_contents_to_fit); |
1156 settings->setViewportStyle( | 1166 settings->setViewportStyle( |
(...skipping 1865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3022 return render_frame->focused_pepper_plugin(); | 3032 return render_frame->focused_pepper_plugin(); |
3023 } | 3033 } |
3024 frame = frame->traverseNext(false); | 3034 frame = frame->traverseNext(false); |
3025 } | 3035 } |
3026 | 3036 |
3027 return nullptr; | 3037 return nullptr; |
3028 } | 3038 } |
3029 #endif | 3039 #endif |
3030 | 3040 |
3031 } // namespace content | 3041 } // namespace content |
OLD | NEW |