diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-fullscreen-FullscreenHtmlApiHandlerBase.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-fullscreen-FullscreenHtmlApiHandlerBase.java.patch new file mode 100644 index 000000000000..c043efde44f6 --- /dev/null +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-fullscreen-FullscreenHtmlApiHandlerBase.java.patch @@ -0,0 +1,28 @@ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandlerBase.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandlerBase.java +index 65490bf6514e2..42fc2883b01ba 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandlerBase.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandlerBase.java +@@ -113,6 +113,7 @@ public abstract class FullscreenHtmlApiHandlerBase + @Nullable private Tab mTab; + + private boolean mNotifyOnNextExit; ++ private boolean mTabHiddenByChangedTabs; + + // Current ContentView. Updates when active tab is switched or WebContents is swapped + // in the current Tab. +@@ -275,6 +276,7 @@ public abstract class FullscreenHtmlApiHandlerBase + + @Override + public void onHidden(Tab tab, @TabHidingType int reason) { ++ mTabHiddenByChangedTabs = reason == TabHidingType.CHANGED_TABS; + // Clean up any fullscreen state that might impact other tabs. + exitPersistentFullscreenMode(); + } +@@ -443,6 +445,7 @@ public abstract class FullscreenHtmlApiHandlerBase + + @Override + public void exitPersistentFullscreenMode() { ++ if (mActivity.isInPictureInPictureMode() && !mTabHiddenByChangedTabs) return; + if (getPersistentFullscreenMode()) { + getToast().onExitPersistentFullscreen(); + mPersistentModeSupplier.set(false); diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-media-FullscreenVideoPictureInPictureController.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-media-FullscreenVideoPictureInPictureController.java.patch new file mode 100644 index 000000000000..655c21527999 --- /dev/null +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-media-FullscreenVideoPictureInPictureController.java.patch @@ -0,0 +1,12 @@ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/FullscreenVideoPictureInPictureController.java b/chrome/android/java/src/org/chromium/chrome/browser/media/FullscreenVideoPictureInPictureController.java +index 2c3e387f09b7b..fad6ca49cb622 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/media/FullscreenVideoPictureInPictureController.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/media/FullscreenVideoPictureInPictureController.java +@@ -560,6 +560,7 @@ public class FullscreenVideoPictureInPictureController { + Log.i(TAG, "Dismiss activity with reason " + reason); + updateAutoPictureInPictureStatusIfNeeded(); + mDismissPending = false; ++ if (reason == MetricsEndReason.START || reason == MetricsEndReason.RESUME) return; + + if (!isPipSessionActive()) { + return;