From 1708ad53c3669b72d20724e52301eecd35e86377 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Thu, 11 Nov 2010 15:56:16 +0000 Subject: Hide plugin views when we start playing HTML5 video Plugins like Flash draw directly to the screen on top of all other views - including the fullscreen HTML5 video view. This means that if you start an HTML5 video on a page also serving a flash clip then flash will obscure the video. This patch hides plugin views before start the video and shows them again when the VideoView is destroyed. Bug: 3183521 Change-Id: I9839c47e9d64b081651b952057e9283630362b29 --- core/java/android/webkit/HTML5VideoViewProxy.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'core/java/android/webkit/HTML5VideoViewProxy.java') diff --git a/core/java/android/webkit/HTML5VideoViewProxy.java b/core/java/android/webkit/HTML5VideoViewProxy.java index 6769563d4392..85bff4f01fe5 100644 --- a/core/java/android/webkit/HTML5VideoViewProxy.java +++ b/core/java/android/webkit/HTML5VideoViewProxy.java @@ -138,6 +138,10 @@ class HTML5VideoViewProxy extends Handler mCurrentProxy.dispatchOnEnded(); else mCurrentProxy.dispatchOnPaused(); + + // Re enable plugin views. + mCurrentProxy.getWebView().getViewManager().showAll(); + isVideoSelfEnded = false; mCurrentProxy = null; mLayout.removeView(mVideoView); @@ -199,6 +203,9 @@ class HTML5VideoViewProxy extends Handler mTimer = new Timer(); mVideoView.start(); client.onShowCustomView(mLayout, mCallback); + // Plugins like Flash will draw over the video so hide + // them while we're playing. + mCurrentProxy.getWebView().getViewManager().hideAll(); } public static boolean isPlaying(HTML5VideoViewProxy proxy) { @@ -599,6 +606,10 @@ class HTML5VideoViewProxy extends Handler return new HTML5VideoViewProxy(webViewCore.getWebView(), nativePtr); } + /* package */ WebView getWebView() { + return mWebView; + } + private native void nativeOnPrepared(int duration, int width, int height, int nativePointer); private native void nativeOnEnded(int nativePointer); private native void nativeOnPaused(int nativePointer); -- cgit v1.2.3