| 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
|
|
|