Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5334)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java

Issue 1731673002: Add tab reparenting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added visible for testing to externalPrerenderHandler method Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java
index e5f91d690bf390801b4228411fd356ab1590078e..4f3b1f95a03c8208ebb0afb2ef535a5a300dfb3b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java
@@ -13,6 +13,7 @@ import android.util.SparseArray;
public class AsyncTabParamsManager {
/** A map of tab IDs to AsyncTabParams consumed by Activities started asynchronously. */
private static final SparseArray<AsyncTabParams> sAsyncTabParams = new SparseArray<>();
+ private static int sNumOfParamsWithTabToReparent;
/**
* Stores AsyncTabParams used when the tab with the given ID is launched via intent.
@@ -21,20 +22,31 @@ public class AsyncTabParamsManager {
*/
public static void add(int tabId, AsyncTabParams params) {
sAsyncTabParams.put(tabId, params);
+ if (params != null && params.getTabToReparent() != null) sNumOfParamsWithTabToReparent++;
}
/**
- * @return Whether there are any saved {@link AsyncTabParams} with the given tab id.
+ * @return Whether there is already an {@link AsyncTabParams} added for the given ID.
*/
public static boolean hasParamsForTabId(int tabId) {
return sAsyncTabParams.get(tabId) != null;
}
/**
+ * @return Whether there are any saved {@link AsyncTabParams} with a tab to reparent. All
+ * implementations of this are keyed off of a user gesture so the likelihood of having
+ * more than one is zero.
+ */
+ public static boolean hasParamsWithTabToReparent() {
+ return sNumOfParamsWithTabToReparent > 0;
Ted C 2016/02/26 18:46:29 if you think the number of pending tabs will be at
Yusuf 2016/02/26 19:39:52 Done.
+ }
+
+ /**
* @return Retrieves and removes AsyncTabCreationParams for a particular tab id.
*/
public static AsyncTabParams remove(int tabId) {
AsyncTabParams data = sAsyncTabParams.get(tabId);
+ if (data != null && data.getTabToReparent() != null) sNumOfParamsWithTabToReparent--;
sAsyncTabParams.remove(tabId);
return data;
}

Powered by Google App Engine
This is Rietveld 408576698