Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java |
index db60b93a1013ae26419b3764d0a8b4bcb93041c6..9a144443c3aeefc1974a1fef69d5bb4acb3d5972 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java |
@@ -10,6 +10,7 @@ import org.chromium.base.TraceEvent; |
import org.chromium.chrome.browser.Tab; |
import org.chromium.chrome.browser.profiles.Profile; |
import org.chromium.chrome.browser.util.MathUtils; |
+import org.chromium.content_public.browser.WebContents; |
import java.util.ArrayList; |
import java.util.List; |
@@ -436,6 +437,13 @@ public abstract class TabModelBase implements TabModel { |
// TODO(dtrainor): Update the list of undoable tabs instead of committing it. |
if (!canUndo) commitAllTabClosures(); |
+ |
+ // Cancel any media currently playing. |
+ if (canUndo) { |
+ WebContents webContents = tab.getWebContents(); |
+ if (webContents != null) webContents.releaseMediaPlayers(); |
+ } |
+ |
mTabs.remove(tab); |
boolean nextIsIncognito = nextTab == null ? false : nextTab.isIncognito(); |