Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index c7f9a0eb92b9993838a58f96540c8f57065f679e..3cfbf9b8bdbf7a81335ff574f286aec7a84cf812 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1413,6 +1413,7 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { |
OnUndoScrollFocusedEditableNodeIntoRect) |
IPC_MESSAGE_HANDLER(ViewMsg_UpdateTopControlsState, |
OnUpdateTopControlsState) |
+ IPC_MESSAGE_HANDLER(ViewMsg_PauseVideo, OnPauseVideo) |
#elif defined(OS_MACOSX) |
IPC_MESSAGE_HANDLER(InputMsg_CopyToFindPboard, OnCopyToFindPboard) |
IPC_MESSAGE_HANDLER(ViewMsg_PluginImeCompositionCompleted, |
@@ -1922,6 +1923,14 @@ void RenderViewImpl::OnUndoScrollFocusedEditableNodeIntoRect() { |
if (!node.isNull() && IsEditableNode(node)) |
webview()->restoreScrollAndScaleState(); |
} |
+ |
+void RenderViewImpl::OnPauseVideo() { |
+ // Inform RendererMediaPlayerManager to release all video player resources. |
+ // If something is in progress the resource will not be freed, it will |
+ // only be freed once the tab is destroyed or if the user navigates away |
+ // via WebMediaPlayerAndroid::Destroy. |
+ media_player_manager_->ReleaseVideoResources(); |
+} |
#endif |
/////////////////////////////////////////////////////////////////////////////// |
@@ -5697,19 +5706,10 @@ bool RenderViewImpl::HasTouchEventHandlersAt(const gfx::Point& point) const { |
void RenderViewImpl::OnWasHidden() { |
RenderWidget::OnWasHidden(); |
-#if defined(OS_ANDROID) |
- // Inform RendererMediaPlayerManager to release all media player resources. |
- // unless some audio is playing. |
- // If something is in progress the resource will not be freed, it will |
- // only be freed once the tab is destroyed or if the user navigates away |
- // via WebMediaPlayerAndroid::Destroy |
- media_player_manager_->ReleaseMediaResources(); |
- |
-#if defined(ENABLE_WEBRTC) |
+#if defined(OS_ANDROID) && defined(ENABLE_WEBRTC) |
RenderThreadImpl::current()->video_capture_impl_manager()-> |
SuspendDevices(true); |
#endif |
-#endif |
if (webview()) |
webview()->setVisibilityState(visibilityState(), false); |