Commit 42e47ea2 authored by tedchoc's avatar tedchoc Committed by Commit bot

Refocus existing NTP instead of creating a new one after inactivity.

BUG=702312

Review-Url: https://codereview.chromium.org/2750313005
Cr-Commit-Position: refs/heads/master@{#457799}
parent 1eee5dd3
......@@ -104,6 +104,7 @@ import org.chromium.chrome.browser.tab.TabStateBrowserControlsVisibilityDelegate
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver;
......@@ -761,6 +762,23 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
return false;
}
// In cases where the tab model is initialized, attempt to reuse an existing NTP if
// available before attempting to create a new one.
TabModel normalTabModel = getTabModelSelector().getModel(false);
for (int i = 0; i < normalTabModel.getCount(); i++) {
Tab tab = normalTabModel.getTabAt(i);
if (NewTabPage.isNTPUrl(tab.getUrl()) && !tab.canGoBack() && !tab.canGoForward()) {
if (getActivityTab().equals(tab)) return true;
normalTabModel.moveTab(tab.getId(), normalTabModel.getCount());
normalTabModel.setIndex(
TabModelUtils.getTabIndexById(normalTabModel, tab.getId()),
TabSelectionType.FROM_USER);
return true;
}
}
getTabCreator(false).launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_EXTERNAL_APP);
return true;
}
......
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