Commit 150c2a56 authored by Xi Han's avatar Xi Han Committed by Commit Bot

[Instant Start] Avoid extra omnibox when changing themes.

The bug happens when the instant start startup code path is called in a
warm start, i.e., ChromeTabbedActivity is recreated when the dark/light
theme is changed. We add a check of warm start to prevent this from
happening.

Bug: 1117226
Change-Id: I65b48afd03137c33b5ed1a726aac23f9dffd7e6f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2454254Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#815353}
parent ea769b76
......@@ -839,7 +839,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// showing a glimpse of the tab selector during start up.
if (!mPendingInitialTabCreation
&& !(TabUiFeatureUtilities.supportInstantStart(isTablet())
&& shouldShowTabSwitcherOnStart())) {
&& shouldShowTabSwitcherOnStart() && !hadWarmStart())) {
setInitialOverviewState();
}
......@@ -1149,7 +1149,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// mPendingInitialTabCreation was true then do so now.
if (hasStartWithNativeBeenCalled()
&& !(TabUiFeatureUtilities.supportInstantStart(isTablet())
&& shouldShowTabSwitcherOnStart())) {
&& shouldShowTabSwitcherOnStart() && !hadWarmStart())) {
setInitialOverviewState();
}
}
......@@ -1530,8 +1530,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// When the feature flag {@link ChromeFeatureList.INSTANT_START} turns on phones (not
// tablet), a view-only start page created on Java will be shown before native is
// initialized.
if (TabUiFeatureUtilities.supportInstantStart(isTablet())) {
// initialized. The {@link prepareToShowStartPagePreNative()} is only called in a cold
// start.
if (TabUiFeatureUtilities.supportInstantStart(isTablet()) && !hadWarmStart()) {
prepareToShowStartPagePreNative();
}
}
......@@ -1541,7 +1542,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
* an LayoutManagerChrome object, add overview mode observer and so on.
*/
private void prepareToShowStartPagePreNative() {
assert TabUiFeatureUtilities.supportInstantStart(isTablet());
assert TabUiFeatureUtilities.supportInstantStart(isTablet() && !hadWarmStart());
try (TraceEvent e =
TraceEvent.scoped("ChromeTabbedActivity.prepareToShowStartPagePreNative")) {
setupCompositorContentPreNativeForPhone();
......
......@@ -159,7 +159,8 @@ public abstract class AsyncInitializationActivity extends ChromeBaseAppCompatAct
@Override
public final void setContentViewAndLoadLibrary(Runnable onInflationCompleteCallback) {
boolean enableInstantStart = TabUiFeatureUtilities.supportInstantStart(isTablet());
boolean enableInstantStart =
TabUiFeatureUtilities.supportInstantStart(isTablet()) && !mHadWarmStart;
mOnInflationCompleteCallback = onInflationCompleteCallback;
if (enableInstantStart) {
triggerLayoutInflation();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment