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 da056d4650efb6427badcb11cbfb3048ce45f310..2acbb9e8ef30a694f537b16cc3d630e2715dc518 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 |
@@ -12,7 +12,6 @@ import org.chromium.base.TraceEvent; |
import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.IntentHandler; |
import org.chromium.chrome.browser.TabState; |
-import org.chromium.chrome.browser.WarmupManager; |
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.tab.TabDelegateFactory; |
@@ -110,14 +109,22 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
intent, IntentHandler.EXTRA_TAB_ID, Tab.INVALID_TAB_ID); |
AsyncTabParams asyncParams = |
AsyncTabParamsManager.remove(assignedTabId); |
- WebContents webContents = asyncParams == null ? null : asyncParams.getWebContents(); |
- boolean openInForeground = mOrderController.willOpenInForeground(type, mIncognito) |
- || webContents != null; |
+ boolean openInForeground = mOrderController.willOpenInForeground(type, mIncognito); |
TabDelegateFactory delegateFactory = parent == null ? new TabDelegateFactory() |
: parent.getDelegateFactory(); |
Tab tab; |
- if (webContents != null) { |
+ if (asyncParams != null && asyncParams.getTabToReparent() != null) { |
+ type = TabLaunchType.FROM_REPARENTING; |
+ openInForeground = true; |
+ |
+ TabReparentingParams params = (TabReparentingParams) asyncParams; |
+ tab = params.getTabToReparent(); |
+ tab.reparentToActivity(mActivity, new TabDelegateFactory()); |
+ params.finalizeTabReparenting(); |
+ } else if (asyncParams != null && asyncParams.getWebContents() != null) { |
+ openInForeground = true; |
+ WebContents webContents = asyncParams.getWebContents(); |
// A WebContents was passed through the Intent. Create a new Tab to hold it. |
Intent parentIntent = IntentUtils.safeGetParcelableExtra( |
intent, IntentHandler.EXTRA_PARENT_INTENT); |
@@ -144,14 +151,9 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { |
tab.initialize(null, mTabContentManager, delegateFactory, !openInForeground, false); |
mTabSaver.addTabToSaveQueue(tab); |
} else { |
- webContents = |
- WarmupManager.getInstance().hasPrerenderedUrl(loadUrlParams.getUrl()) |
- ? WarmupManager.getInstance().takePrerenderedWebContents() : null; |
- |
tab = Tab.createLiveTab(Tab.INVALID_TAB_ID, mActivity, mIncognito, |
mNativeWindow, type, parentId, !openInForeground); |
- tab.initialize( |
- webContents, mTabContentManager, delegateFactory, !openInForeground, false); |
+ tab.initialize(null, mTabContentManager, delegateFactory, !openInForeground, false); |
tab.loadUrl(loadUrlParams); |
} |
tab.getTabRedirectHandler().updateIntent(intent); |