Index: android_webview/java/src/org/chromium/android_webview/ExternalVideoSurfaceContainer.java |
diff --git a/android_webview/java/src/org/chromium/android_webview/ExternalVideoSurfaceContainer.java b/android_webview/java/src/org/chromium/android_webview/ExternalVideoSurfaceContainer.java |
index 86f75808ac68715b2b2459232553c2a65cd86df6..957dd60c0016e18996f31ebdbac118ad6d14c81a 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/ExternalVideoSurfaceContainer.java |
+++ b/android_webview/java/src/org/chromium/android_webview/ExternalVideoSurfaceContainer.java |
@@ -40,6 +40,7 @@ import java.lang.ref.WeakReference; |
@JNINamespace("android_webview") |
public class ExternalVideoSurfaceContainer implements SurfaceHolder.Callback { |
protected static final int INVALID_PLAYER_ID = -1; |
+ protected static final int ANY_PLAYER_ID = -2; |
// Because WebView does hole-punching by itself, instead, the hole-punching logic |
// in SurfaceView can clear out some web elements like media control or subtitle. |
@@ -134,11 +135,12 @@ public class ExternalVideoSurfaceContainer implements SurfaceHolder.Callback { |
*/ |
@CalledByNative |
protected void releaseExternalVideoSurface(int playerId) { |
- if (mPlayerId != playerId) return; |
+ if (playerId == ANY_PLAYER_ID || mPlayerId == playerId) { |
- releaseIfActiveContainer(this); |
+ releaseIfActiveContainer(this); |
- mPlayerId = INVALID_PLAYER_ID; |
+ mPlayerId = INVALID_PLAYER_ID; |
+ } |
} |
@CalledByNative |