Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
| index 2609171edc35962f998b7e0a8ae23b9c7b1031f8..f4395d6167d66b0821983d2e4a7f68027f054316 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
| @@ -351,6 +351,12 @@ public class Tab |
| */ |
| private boolean mIsDetached; |
| + /** |
| + * Indicates whether the history of this tab should be separated from Chrome history. |
| + * This is true only for startSpeculation in CCT. |
| + */ |
| + private boolean mIsHistoryDetached; |
| + |
| /** |
| * The UMA object used to report stats for this tab. Note that this may be null under certain |
| * conditions, such as incognito mode. |
| @@ -492,7 +498,11 @@ public class Tab |
| context.getApplicationContext(), ChromeActivity.getThemeId()) : null; |
| mWindowAndroid = window; |
| mLaunchType = type; |
| - if (mLaunchType == TabLaunchType.FROM_DETACHED) mIsDetached = true; |
| + if (mLaunchType == TabLaunchType.FROM_DETACHED_SPECULATE |
| + || mLaunchType == TabLaunchType.FROM_DETACHED_USER_ACTION) { |
| + mIsDetached = true; |
| + } |
| + if (mLaunchType == TabLaunchType.FROM_DETACHED_SPECULATE) mIsHistoryDetached = true; |
| if (mThemedApplicationContext != null) { |
| Resources resources = mThemedApplicationContext.getResources(); |
| mIdealFaviconSize = resources.getDimensionPixelSize(R.dimen.default_favicon_size); |
| @@ -1294,7 +1304,6 @@ public class Tab |
| } else { |
| setContentViewCore(contentViewCore); |
| } |
| - |
| mContentViewCore.addImeEventObserver(new ImeEventObserver() { |
| @Override |
| public void onImeEvent() { |
| @@ -1314,7 +1323,6 @@ public class Tab |
| if (!creatingWebContents && webContents.isLoadingToDifferentDocument()) { |
| didStartPageLoad(webContents.getUrl(), false); |
| } |
| - |
| getAppBannerManager().setIsEnabledForTab(mDelegateFactory.canShowAppBanners(this)); |
| } finally { |
| if (mTimestampMillis == INVALID_TIMESTAMP) { |
| @@ -1427,6 +1435,7 @@ public class Tab |
| reparentingParams.finalizeTabReparenting(); |
| mIsDetached = false; |
| + mIsHistoryDetached = false; |
| nativeAttachDetachedTab(mNativeTabAndroid); |
| // Reload the NativePage (if any), since the old NativePage has a reference to the old |
| @@ -1670,7 +1679,7 @@ public class Tab |
| mDownloadDelegate = new ChromeDownloadDelegate(mThemedApplicationContext, this); |
| assert mNativeTabAndroid != 0; |
| - nativeInitWebContents(mNativeTabAndroid, mIncognito, mIsDetached, |
| + nativeInitWebContents(mNativeTabAndroid, mIncognito, mIsHistoryDetached, |
|
Yusuf
2017/07/18 22:59:47
This param is for isBackgroundTab, right? Is that
ltian
2017/08/07 23:24:12
New design will open all tabs in lazy load mode so
|
| mContentViewCore.getWebContents(), mWebContentsDelegate, |
| new TabContextMenuPopulator( |
| mDelegateFactory.createContextMenuPopulator(this), this)); |
| @@ -2954,11 +2963,13 @@ public class Tab |
| * |
| * @return The newly created and initialized tab. |
| */ |
| - public static Tab createDetached(TabDelegateFactory delegateFactory) { |
| + public static Tab createDetached(TabDelegateFactory delegateFactory, boolean byUserAction) { |
| Context context = ContextUtils.getApplicationContext(); |
| WindowAndroid windowAndroid = new WindowAndroid(context); |
| - Tab tab = new Tab(INVALID_TAB_ID, INVALID_TAB_ID, false, context, windowAndroid, |
| - TabLaunchType.FROM_DETACHED, null, null); |
| + TabLaunchType launchType = byUserAction ? TabLaunchType.FROM_DETACHED_USER_ACTION |
| + : TabLaunchType.FROM_DETACHED_SPECULATE; |
| + Tab tab = new Tab(INVALID_TAB_ID, INVALID_TAB_ID, false, context, windowAndroid, launchType, |
| + null, null); |
| tab.initialize(null, null, delegateFactory, true, false); |
| // Resize the webContent to avoid expensive post load resize when attaching the tab. |