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

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

Issue 1731673002: Add tab reparenting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove test 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/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);

Powered by Google App Engine
This is Rietveld 408576698