Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java |
index 6433e534c279cc5644105a66ffe504c5e926c73b..5737a77a46620802b58114b566c5e5f7369791cf 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java |
@@ -37,20 +37,16 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
private final ChromeActivity mActivity; |
private final WindowAndroid mNativeWindow; |
- private final TabModelOrderController mOrderController; |
- private final TabPersistentStore mTabSaver; |
private final boolean mIncognito; |
private TabModel mTabModel; |
private TabContentManager mTabContentManager; |
+ private TabModelOrderController mOrderController; |
- public ChromeTabCreator(ChromeActivity activity, WindowAndroid nativeWindow, |
- TabModelOrderController orderController, TabPersistentStore tabSaver, |
- boolean incognito) { |
+ public ChromeTabCreator( |
+ ChromeActivity activity, WindowAndroid nativeWindow, boolean incognito) { |
mActivity = activity; |
mNativeWindow = nativeWindow; |
- mOrderController = orderController; |
- mTabSaver = tabSaver; |
mIncognito = incognito; |
} |
@@ -116,7 +112,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
AsyncTabParamsManager.remove(assignedTabId); |
boolean openInForeground = mOrderController.willOpenInForeground(type, mIncognito); |
- TabDelegateFactory delegateFactory = parent == null ? new TabDelegateFactory() |
+ TabDelegateFactory delegateFactory = parent == null ? createDefaultTabDelegateFactory() |
: parent.getDelegateFactory(); |
Tab tab; |
if (asyncParams != null && asyncParams.getTabToReparent() != null) { |
@@ -125,7 +121,8 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
TabReparentingParams params = (TabReparentingParams) asyncParams; |
tab = params.getTabToReparent(); |
- tab.attachAndFinishReparenting(mActivity, new TabDelegateFactory(), params); |
+ tab.attachAndFinishReparenting( |
+ mActivity, createDefaultTabDelegateFactory(), params); |
} else if (asyncParams != null && asyncParams.getWebContents() != null) { |
openInForeground = true; |
WebContents webContents = asyncParams.getWebContents(); |
@@ -150,7 +147,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
tab = Tab.createTabForLazyLoad(mActivity, mIncognito, mNativeWindow, type, |
parentId, loadUrlParams); |
tab.initialize(null, mTabContentManager, delegateFactory, !openInForeground, false); |
- mTabSaver.addTabToSaveQueue(tab); |
} else { |
tab = Tab.createLiveTab(Tab.INVALID_TAB_ID, mActivity, mIncognito, |
mNativeWindow, type, parentId, !openInForeground); |
@@ -198,7 +194,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
if (index != TabModel.INVALID_TAB_INDEX) position = index + 1; |
boolean openInForeground = mOrderController.willOpenInForeground(type, mIncognito); |
- TabDelegateFactory delegateFactory = parent == null ? new TabDelegateFactory() |
+ TabDelegateFactory delegateFactory = parent == null ? createDefaultTabDelegateFactory() |
: parent.getDelegateFactory(); |
Tab tab = Tab.createLiveTab(Tab.INVALID_TAB_ID, mActivity, mIncognito, |
mNativeWindow, type, parentId, !openInForeground); |
@@ -302,7 +298,8 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
id, mActivity, state.isIncognito(), mNativeWindow, state.parentId, state); |
boolean selectTab = mOrderController.willOpenInForeground(TabLaunchType.FROM_RESTORE, |
state.isIncognito()); |
- tab.initialize(null, mTabContentManager, new TabDelegateFactory(), !selectTab, false); |
+ tab.initialize( |
+ null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false); |
assert state.isIncognito() == mIncognito; |
mTabModel.addTab(tab, index, TabLaunchType.FROM_RESTORE); |
return tab; |
@@ -337,12 +334,22 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
/** |
* Sets the tab model and tab content manager to use. |
- * @param model The new {@link TabModel} to use. |
- * @param manager The new {@link TabContentManager} to use. |
+ * @param model The new {@link TabModel} to use. |
+ * @param orderController The controller for determining the order of tabs. |
+ * @param manager The new {@link TabContentManager} to use. |
*/ |
- public void setTabModel(TabModel model, TabContentManager manager) { |
+ public void setTabModel( |
+ TabModel model, TabModelOrderController orderController, TabContentManager manager) { |
mTabModel = model; |
+ mOrderController = orderController; |
mTabContentManager = manager; |
} |
+ /** |
+ * @return The default tab delegate factory to be used if creating new tabs w/o parents. |
+ */ |
+ public TabDelegateFactory createDefaultTabDelegateFactory() { |
+ return new TabDelegateFactory(); |
+ } |
+ |
} |