diff --git a/core/java/android/webkit/HTML5VideoViewProxy.java b/core/java/android/webkit/HTML5VideoViewProxy.java
index 6769563d4392e..85bff4f01fe52 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);
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index bcd03328d9bd4..191542529a367 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -7845,6 +7845,10 @@ public class WebView extends AbsoluteLayout
nativeUpdateCachedTextfield(updatedText, mTextGeneration);
}
+ /* package */ ViewManager getViewManager() {
+ return mViewManager;
+ }
+
private native int nativeCacheHitFramePointer();
private native Rect nativeCacheHitNodeBounds();
private native int nativeCacheHitNodePointer();