Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java |
index 66e42207d2b4c0c07a7f30b08f6ee3574cc5cdd2..5f092e3cf2149faa828d63ff33eae65a0a6a5706 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java |
@@ -158,19 +158,27 @@ public class TabWindowManager implements ActivityStateListener { |
* @return Whether the given tab exists in any currently loaded selector. |
*/ |
public boolean tabExistsInAnySelector(int tabId) { |
+ return getTabById(tabId) != null; |
+ } |
+ |
+ /** |
+ * @param tabId The ID of the tab in question. |
+ * @return Specified {@link Tab} or {@code null} if the {@link Tab} is not found. |
+ */ |
+ public Tab getTabById(int tabId) { |
for (int i = 0; i < mSelectors.size(); i++) { |
TabModelSelector selector = mSelectors.get(i); |
if (selector != null) { |
- if (TabModelUtils.getTabById(selector.getModel(false), tabId) != null |
- || TabModelUtils.getTabById(selector.getModel(true), tabId) != null) { |
- return true; |
- } |
+ final Tab tab = selector.getTabById(tabId); |
+ if (tab != null) return tab; |
} |
} |
- // Account for tabs that were recently reparented and haven't been attached to new |
- // activities yet. |
- return AsyncTabParamsManager.hasParamsForTabId(tabId); |
+ if (AsyncTabParamsManager.hasParamsForTabId(tabId)) { |
+ return AsyncTabParamsManager.getAsyncTabParams().get(tabId).getTabToReparent(); |
+ } |
+ |
+ return null; |
} |
@Override |