| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| index 52c4b8ee8cb1b3ca2dce5e6d33935db4504241ce..8a9efeca3136ab422f6e01434c407fe0891a35ef 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| @@ -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;
|
| }
|
|
|