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

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

Issue 2394373002: Refactor ChromeActivity references out of TabModelSelectorImpl (Closed)
Patch Set: rebase Created 4 years, 2 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/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 e4fc20789e646a62d7cf1ac5ff17ce83bf3a937e..b56beeaf031b07db333c3f0a20c341a8951bd911 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
@@ -12,8 +12,8 @@ import org.chromium.base.ApplicationStatus;
import org.chromium.base.ApplicationStatus.ActivityStateListener;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
-import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeTabbedActivity;
+import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.ui.base.WindowAndroid;
@@ -28,7 +28,7 @@ import java.util.Map;
*/
public class TabWindowManager implements ActivityStateListener {
/**
- * An index that represents the invalid state (i.e. when the window wasn't found in the list.
+ * An index that represents the invalid state (i.e. when the window wasn't found in the list).
*/
public static final int INVALID_WINDOW_INDEX = -1;
@@ -41,11 +41,14 @@ public class TabWindowManager implements ActivityStateListener {
public interface TabModelSelectorFactory {
/**
* Builds a {@link TabModelSelector}.
- * @param activity A {@link ChromeActivity} instance.
+ *
+ * @param activity An {@link Activity} instance.
+ * @param tabCreatorManager A {@link TabCreatorManager} instance.
* @param selectorIndex The index of the {@link TabModelSelector}.
- * @return A new {@link TabModelSelector} instance.
+ * @return A new {@link TabModelSelector} instance.
*/
- TabModelSelector buildSelector(ChromeActivity activity, int selectorIndex);
+ TabModelSelector buildSelector(Activity activity, TabCreatorManager tabCreatorManager,
+ FullscreenManager fullscreenManager, int selectorIndex);
}
/** The singleton reference. */
@@ -67,17 +70,18 @@ public class TabWindowManager implements ActivityStateListener {
}
/**
- * Called to request a {@link TabModelSelector} based on {@code index}. Note that the
- * {@link TabModelSelector} returned might not actually be the one related to {@code index}
- * and {@link #getIndexForWindow(Activity)} should be called to grab the actual index if
- * required.
- * @param activity An instance of {@link ChromeActivity}.
- * @param index The index of the requested {@link TabModelSelector}. Not guaranteed to be
- * the index of the {@link TabModelSelector} returned.
- * @return A {@link TabModelSelector} index, or {@code null} if there are too many
- * {@link TabModelSelector}s already built.
+ * Called to request a {@link TabModelSelector} based on {@code index}. Note that the
+ * {@link TabModelSelector} returned might not actually be the one related to {@code index} and
+ * {@link #getIndexForWindow(Activity)} should be called to grab the actual index if required.
+ *
+ * @param tabCreatorManager An instance of {@link TabCreatorManager}.
+ * @param index The index of the requested {@link TabModelSelector}. Not guaranteed to be the
+ * index of the {@link TabModelSelector} returned.
+ * @return A {@link TabModelSelector} index, or {@code null} if there are too many
+ * {@link TabModelSelector}s already built.
*/
- public TabModelSelector requestSelector(ChromeActivity activity, int index) {
+ public TabModelSelector requestSelector(Activity activity, TabCreatorManager tabCreatorManager,
+ FullscreenManager fullscreenManager, int index) {
if (mAssignments.get(activity) != null) {
return mAssignments.get(activity);
}
@@ -96,7 +100,8 @@ public class TabWindowManager implements ActivityStateListener {
// Too many activities going at once.
if (mSelectors.get(index) != null) return null;
- TabModelSelector selector = mSelectorFactory.buildSelector(activity, index);
+ TabModelSelector selector = mSelectorFactory.buildSelector(activity, tabCreatorManager,
+ fullscreenManager, index);
mSelectors.set(index, selector);
mAssignments.put(activity, selector);
@@ -202,7 +207,9 @@ public class TabWindowManager implements ActivityStateListener {
private static class DefaultTabModelSelectorFactory implements TabModelSelectorFactory {
@Override
- public TabModelSelector buildSelector(ChromeActivity activity, int selectorIndex) {
+ public TabModelSelector buildSelector(Activity activity,
+ TabCreatorManager tabCreatorManager, FullscreenManager fullscreenManager,
+ int selectorIndex) {
// Merge tabs if this is the TabModelSelector for ChromeTabbedActivity and there are no
// other instances running. This indicates that it is a complete cold start of
// ChromeTabbedActivity. Tabs should only be merged during a cold start of
@@ -210,10 +217,10 @@ public class TabWindowManager implements ActivityStateListener {
boolean mergeTabs = FeatureUtilities.isTabModelMergingEnabled()
&& activity.getClass().equals(ChromeTabbedActivity.class)
&& getInstance().getNumberOfAssignedTabModelSelectors() == 0;
-
TabPersistencePolicy persistencePolicy = new TabbedModeTabPersistencePolicy(
selectorIndex, mergeTabs);
- return new TabModelSelectorImpl(activity, persistencePolicy, true);
+ return new TabModelSelectorImpl(activity, tabCreatorManager, fullscreenManager,
+ persistencePolicy, true);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698