Commit 1d749be3 authored by Henrique Nakashima's avatar Henrique Nakashima Committed by Commit Bot

Split TabWindowManagerSingleton out of TabWindowManager.

TabWindowManagerSingleton will be left in the glue layer, but in the
modules the dependency should be explicitly passed.

Bug: 1112922
Change-Id: I725277f04c039f2fed42836d4d7a4079665b0ccc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2446839
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#815194}
parent 14e6023b
...@@ -85,6 +85,7 @@ chrome_java_sources = [ ...@@ -85,6 +85,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/app/tabmodel/AsyncTabParamsManagerSingleton.java", "java/src/org/chromium/chrome/browser/app/tabmodel/AsyncTabParamsManagerSingleton.java",
"java/src/org/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier.java", "java/src/org/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier.java",
"java/src/org/chromium/chrome/browser/app/tabmodel/ChromeTabModelFilterFactory.java", "java/src/org/chromium/chrome/browser/app/tabmodel/ChromeTabModelFilterFactory.java",
"java/src/org/chromium/chrome/browser/app/tabmodel/TabWindowManagerSingleton.java",
"java/src/org/chromium/chrome/browser/app/video_tutorials/NewTabPageVideoIPHManager.java", "java/src/org/chromium/chrome/browser/app/video_tutorials/NewTabPageVideoIPHManager.java",
"java/src/org/chromium/chrome/browser/app/video_tutorials/VideoPlayerActivity.java", "java/src/org/chromium/chrome/browser/app/video_tutorials/VideoPlayerActivity.java",
"java/src/org/chromium/chrome/browser/app/video_tutorials/VideoTutorialListActivity.java", "java/src/org/chromium/chrome/browser/app/video_tutorials/VideoTutorialListActivity.java",
......
...@@ -55,6 +55,7 @@ import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout ...@@ -55,6 +55,7 @@ import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout
import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier; import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
...@@ -136,7 +137,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl; ...@@ -136,7 +137,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver;
import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
import org.chromium.chrome.browser.tasks.ConditionalTabStripUtils; import org.chromium.chrome.browser.tasks.ConditionalTabStripUtils;
import org.chromium.chrome.browser.tasks.EngagementTimeUtil; import org.chromium.chrome.browser.tasks.EngagementTimeUtil;
import org.chromium.chrome.browser.tasks.JourneyManager; import org.chromium.chrome.browser.tasks.JourneyManager;
...@@ -1544,7 +1544,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -1544,7 +1544,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mOverviewModeBehaviorSupplier); mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mOverviewModeBehaviorSupplier);
mTabModelSelectorImpl = mTabModelSelectorImpl =
(TabModelSelectorImpl) TabWindowManager.getInstance().requestSelector( (TabModelSelectorImpl) TabWindowManagerSingleton.getInstance().requestSelector(
this, this, mNextTabPolicySupplier, index); this, this, mNextTabPolicySupplier, index);
if (mTabModelSelectorImpl == null) { if (mTabModelSelectorImpl == null) {
Toast.makeText( Toast.makeText(
...@@ -2051,7 +2051,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -2051,7 +2051,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
CipherFactory.getInstance().saveToBundle(outState); CipherFactory.getInstance().saveToBundle(outState);
outState.putBoolean("is_incognito_selected", getCurrentTabModel().isIncognito()); outState.putBoolean("is_incognito_selected", getCurrentTabModel().isIncognito());
outState.putInt(WINDOW_INDEX, TabWindowManager.getInstance().getIndexForWindow(this)); outState.putInt(
WINDOW_INDEX, TabWindowManagerSingleton.getInstance().getIndexForWindow(this));
} }
@Override @Override
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.app.tabmodel;
import org.chromium.base.ThreadUtils;
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
/**
* Glue-level singleton instance of {@link TabWindowManager}.
*/
public class TabWindowManagerSingleton {
private static TabWindowManager sInstance;
/**
* @return The singleton instance of {@link TabWindowManager}.
*/
public static TabWindowManager getInstance() {
ThreadUtils.assertOnUiThread();
if (sInstance == null) {
sInstance = new TabWindowManager(AsyncTabParamsManagerSingleton.getInstance());
}
return sInstance;
}
}
\ No newline at end of file
...@@ -14,6 +14,7 @@ import androidx.annotation.Nullable; ...@@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.document.ChromeIntentUtil; import org.chromium.chrome.browser.document.ChromeIntentUtil;
import org.chromium.chrome.browser.notifications.NotificationUmaTracker; import org.chromium.chrome.browser.notifications.NotificationUmaTracker;
import org.chromium.chrome.browser.notifications.NotificationWrapperBuilderFactory; import org.chromium.chrome.browser.notifications.NotificationWrapperBuilderFactory;
...@@ -21,7 +22,6 @@ import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitio ...@@ -21,7 +22,6 @@ import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitio
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
import org.chromium.components.browser_ui.notifications.NotificationManagerProxy; import org.chromium.components.browser_ui.notifications.NotificationManagerProxy;
import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl; import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl;
import org.chromium.components.browser_ui.notifications.NotificationMetadata; import org.chromium.components.browser_ui.notifications.NotificationMetadata;
...@@ -102,7 +102,7 @@ public class MediaCaptureNotificationServiceImpl extends MediaCaptureNotificatio ...@@ -102,7 +102,7 @@ public class MediaCaptureNotificationServiceImpl extends MediaCaptureNotificatio
} else if (ACTION_SCREEN_CAPTURE_STOP.equals(action)) { } else if (ACTION_SCREEN_CAPTURE_STOP.equals(action)) {
// Notify native to stop screen capture when the STOP button in notification // Notify native to stop screen capture when the STOP button in notification
// is clicked. // is clicked.
final Tab tab = TabWindowManager.getInstance().getTabById(notificationId); final Tab tab = TabWindowManagerSingleton.getInstance().getTabById(notificationId);
if (tab != null) { if (tab != null) {
MediaCaptureDevicesDispatcherAndroid.notifyStopped(tab.getWebContents()); MediaCaptureDevicesDispatcherAndroid.notifyStopped(tab.getWebContents());
} }
...@@ -285,9 +285,9 @@ public class MediaCaptureNotificationServiceImpl extends MediaCaptureNotificatio ...@@ -285,9 +285,9 @@ public class MediaCaptureNotificationServiceImpl extends MediaCaptureNotificatio
intent.putExtra(NOTIFICATION_ID_EXTRA, tabId); intent.putExtra(NOTIFICATION_ID_EXTRA, tabId);
intent.putExtra(NOTIFICATION_MEDIA_URL_EXTRA, url.getSpec()); intent.putExtra(NOTIFICATION_MEDIA_URL_EXTRA, url.getSpec());
intent.putExtra(NOTIFICATION_MEDIA_TYPE_EXTRA, mediaType); intent.putExtra(NOTIFICATION_MEDIA_TYPE_EXTRA, mediaType);
if (TabWindowManager.getInstance().getTabById(tabId) != null) { if (TabWindowManagerSingleton.getInstance().getTabById(tabId) != null) {
intent.putExtra(NOTIFICATION_MEDIA_IS_INCOGNITO, intent.putExtra(NOTIFICATION_MEDIA_IS_INCOGNITO,
TabWindowManager.getInstance().getTabById(tabId).isIncognito()); TabWindowManagerSingleton.getInstance().getTabById(tabId).isIncognito());
} }
context.startService(intent); context.startService(intent);
} }
......
...@@ -30,6 +30,7 @@ import org.chromium.base.supplier.Supplier; ...@@ -30,6 +30,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver; import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.document.ChromeIntentUtil; import org.chromium.chrome.browser.document.ChromeIntentUtil;
...@@ -546,7 +547,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi ...@@ -546,7 +547,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
@Override @Override
public void onSwitchToTab(OmniboxSuggestion suggestion, int position) { public void onSwitchToTab(OmniboxSuggestion suggestion, int position) {
Tab tab = mAutocomplete.findMatchingTabWithUrl(suggestion.getUrl()); Tab tab = mAutocomplete.findMatchingTabWithUrl(suggestion.getUrl());
TabWindowManager tabWindowManager = TabWindowManager.getInstance(); TabWindowManager tabWindowManager = TabWindowManagerSingleton.getInstance();
if (tab == null || tabWindowManager == null) { if (tab == null || tabWindowManager == null) {
onSuggestionClicked(suggestion, position, suggestion.getUrl()); onSuggestionClicked(suggestion, position, suggestion.getUrl());
return; return;
......
...@@ -13,10 +13,10 @@ import androidx.annotation.VisibleForTesting; ...@@ -13,10 +13,10 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.base.ActivityState; import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus;
import org.chromium.base.ApplicationStatus.ActivityStateListener; import org.chromium.base.ApplicationStatus.ActivityStateListener;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.VerifiesOnN; import org.chromium.base.annotations.VerifiesOnN;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.ChromeTabModelFilterFactory; import org.chromium.chrome.browser.app.tabmodel.ChromeTabModelFilterFactory;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -57,9 +57,6 @@ public class TabWindowManager implements ActivityStateListener { ...@@ -57,9 +57,6 @@ public class TabWindowManager implements ActivityStateListener {
NextTabPolicySupplier nextTabPolicySupplier, int selectorIndex); NextTabPolicySupplier nextTabPolicySupplier, int selectorIndex);
} }
/** The singleton reference. */
private static TabWindowManager sInstance;
private final AsyncTabParamsManager mAsyncTabParamsManager; private final AsyncTabParamsManager mAsyncTabParamsManager;
private TabModelSelectorFactory mSelectorFactory = new DefaultTabModelSelectorFactory(); private TabModelSelectorFactory mSelectorFactory = new DefaultTabModelSelectorFactory();
...@@ -68,17 +65,6 @@ public class TabWindowManager implements ActivityStateListener { ...@@ -68,17 +65,6 @@ public class TabWindowManager implements ActivityStateListener {
private Map<Activity, TabModelSelector> mAssignments = new HashMap<>(); private Map<Activity, TabModelSelector> mAssignments = new HashMap<>();
/**
* @return The singleton instance of {@link TabWindowManager}.
*/
public static TabWindowManager getInstance() {
ThreadUtils.assertOnUiThread();
if (sInstance == null) {
sInstance = new TabWindowManager(AsyncTabParamsManagerSingleton.getInstance());
}
return sInstance;
}
/** /**
* Called to request a {@link TabModelSelector} based on {@code index}. Note that the * Called to request a {@link TabModelSelector} based on {@code index}. Note that the
* {@link TabModelSelector} returned might not actually be the one related to {@code index} and * {@link TabModelSelector} returned might not actually be the one related to {@code index} and
...@@ -228,7 +214,7 @@ public class TabWindowManager implements ActivityStateListener { ...@@ -228,7 +214,7 @@ public class TabWindowManager implements ActivityStateListener {
mSelectorFactory = factory; mSelectorFactory = factory;
} }
private TabWindowManager(AsyncTabParamsManager asyncTabParamsManager) { public TabWindowManager(AsyncTabParamsManager asyncTabParamsManager) {
mAsyncTabParamsManager = asyncTabParamsManager; mAsyncTabParamsManager = asyncTabParamsManager;
ApplicationStatus.registerStateListenerForAllActivities(this); ApplicationStatus.registerStateListenerForAllActivities(this);
...@@ -252,9 +238,14 @@ public class TabWindowManager implements ActivityStateListener { ...@@ -252,9 +238,14 @@ public class TabWindowManager implements ActivityStateListener {
if (MultiInstanceManager.shouldMergeOnStartup(activity)) { if (MultiInstanceManager.shouldMergeOnStartup(activity)) {
mergeTabs = mergeTabs mergeTabs = mergeTabs
&& (!MultiWindowUtils.getInstance().isInMultiDisplayMode(activity) && (!MultiWindowUtils.getInstance().isInMultiDisplayMode(activity)
|| getInstance().getNumberOfAssignedTabModelSelectors() == 0); || TabWindowManagerSingleton.getInstance()
.getNumberOfAssignedTabModelSelectors()
== 0);
} else { } else {
mergeTabs = mergeTabs && getInstance().getNumberOfAssignedTabModelSelectors() == 0; mergeTabs = mergeTabs
&& TabWindowManagerSingleton.getInstance()
.getNumberOfAssignedTabModelSelectors()
== 0;
} }
if (mergeTabs) { if (mergeTabs) {
MultiInstanceManager.mergedOnStartup(); MultiInstanceManager.mergedOnStartup();
......
...@@ -20,6 +20,7 @@ import org.chromium.base.metrics.RecordHistogram; ...@@ -20,6 +20,7 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.task.AsyncTask; import org.chromium.base.task.AsyncTask;
import org.chromium.base.task.BackgroundOnlyAsyncTask; import org.chromium.base.task.BackgroundOnlyAsyncTask;
import org.chromium.base.task.TaskRunner; import org.chromium.base.task.TaskRunner;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
...@@ -362,7 +363,7 @@ public class TabbedModeTabPersistencePolicy implements TabPersistencePolicy { ...@@ -362,7 +363,7 @@ public class TabbedModeTabPersistencePolicy implements TabPersistencePolicy {
@Override @Override
protected void onPostExecute(Void unused) { protected void onPostExecute(Void unused) {
if (mDestroyed) return; if (mDestroyed) return;
TabWindowManager tabWindowManager = TabWindowManager.getInstance(); TabWindowManager tabWindowManager = TabWindowManagerSingleton.getInstance();
if (mTabFileNames != null) { if (mTabFileNames != null) {
List<String> filesToDelete = new ArrayList<>(); List<String> filesToDelete = new ArrayList<>();
......
...@@ -28,10 +28,10 @@ import org.chromium.base.test.util.MinAndroidSdkLevel; ...@@ -28,10 +28,10 @@ import org.chromium.base.test.util.MinAndroidSdkLevel;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.ChromeTabbedActivity2; import org.chromium.chrome.browser.ChromeTabbedActivity2;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule; import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.chrome.test.util.MenuUtils; import org.chromium.chrome.test.util.MenuUtils;
...@@ -88,7 +88,8 @@ public class MultiWindowIntegrationTest { ...@@ -88,7 +88,8 @@ public class MultiWindowIntegrationTest {
}); });
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
Assert.assertEquals(1, TabWindowManager.getInstance().getIncognitoTabCount()); Assert.assertEquals(
1, TabWindowManagerSingleton.getInstance().getIncognitoTabCount());
// Ensure the same tab exists in the new activity. // Ensure the same tab exists in the new activity.
Assert.assertEquals(incognitoTabId, cta2.getActivityTab().getId()); Assert.assertEquals(incognitoTabId, cta2.getActivityTab().getId());
......
...@@ -21,6 +21,7 @@ import org.chromium.base.test.util.Feature; ...@@ -21,6 +21,7 @@ import org.chromium.base.test.util.Feature;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.ChromeTabModelFilterFactory; import org.chromium.chrome.browser.app.tabmodel.ChromeTabModelFilterFactory;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -81,7 +82,7 @@ public class ContextMenuLoadUrlParamsTest { ...@@ -81,7 +82,7 @@ public class ContextMenuLoadUrlParamsTest {
// be set before super.setUp(), as super.setUp() creates Main and consequently the // be set before super.setUp(), as super.setUp() creates Main and consequently the
// TabModelSelector. // TabModelSelector.
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
TabWindowManager.getInstance().setTabModelSelectorFactory( TabWindowManagerSingleton.getInstance().setTabModelSelectorFactory(
new TabModelSelectorFactory() { new TabModelSelectorFactory() {
@Override @Override
public TabModelSelector buildSelector(Activity activity, public TabModelSelector buildSelector(Activity activity,
......
...@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout ...@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout
import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.ChromeTabModelFilterFactory; import org.chromium.chrome.browser.app.tabmodel.ChromeTabModelFilterFactory;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelper; import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelper;
import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
...@@ -265,7 +266,7 @@ public class TabPersistentStoreTest { ...@@ -265,7 +266,7 @@ public class TabPersistentStoreTest {
@After @After
public void tearDown() { public void tearDown() {
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
TabWindowManager.getInstance().onActivityStateChange( TabWindowManagerSingleton.getInstance().onActivityStateChange(
mChromeActivity, ActivityState.DESTROYED); mChromeActivity, ActivityState.DESTROYED);
}); });
mMockDirectory.tearDown(); mMockDirectory.tearDown();
...@@ -696,7 +697,7 @@ public class TabPersistentStoreTest { ...@@ -696,7 +697,7 @@ public class TabPersistentStoreTest {
TestThreadUtils.runOnUiThreadBlocking(new Callable<TestTabModelSelector>() { TestThreadUtils.runOnUiThreadBlocking(new Callable<TestTabModelSelector>() {
@Override @Override
public TestTabModelSelector call() { public TestTabModelSelector call() {
TabWindowManager tabWindowManager = TabWindowManager.getInstance(); TabWindowManager tabWindowManager = TabWindowManagerSingleton.getInstance();
tabWindowManager.setTabModelSelectorFactory(mMockTabModelSelectorFactory); tabWindowManager.setTabModelSelectorFactory(mMockTabModelSelectorFactory);
// Clear any existing TestTabModelSelector (required when // Clear any existing TestTabModelSelector (required when
// createAndRestoreRealTabModelImpls is called multiple times in one test). // createAndRestoreRealTabModelImpls is called multiple times in one test).
......
...@@ -19,6 +19,7 @@ import org.chromium.base.test.UiThreadTest; ...@@ -19,6 +19,7 @@ import org.chromium.base.test.UiThreadTest;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.customtabs.CustomTabActivity; import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.tab.MockTab; import org.chromium.chrome.browser.tab.MockTab;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -61,7 +62,7 @@ public class TabWindowManagerTest { ...@@ -61,7 +62,7 @@ public class TabWindowManagerTest {
} }
private MockTabModelSelector requestSelector(ChromeActivity activity, int requestedIndex) { private MockTabModelSelector requestSelector(ChromeActivity activity, int requestedIndex) {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
manager.setTabModelSelectorFactory(mMockTabModelSelectorFactory); manager.setTabModelSelectorFactory(mMockTabModelSelectorFactory);
return (MockTabModelSelector) manager.requestSelector( return (MockTabModelSelector) manager.requestSelector(
activity, activity, () -> NextTabPolicy.HIERARCHICAL, requestedIndex); activity, activity, () -> NextTabPolicy.HIERARCHICAL, requestedIndex);
...@@ -85,7 +86,7 @@ public class TabWindowManagerTest { ...@@ -85,7 +86,7 @@ public class TabWindowManagerTest {
@Feature({"Multiwindow"}) @Feature({"Multiwindow"})
@UiThreadTest @UiThreadTest
public void testSingleActivity() { public void testSingleActivity() {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
TabModelSelector selector0 = requestSelector(activity0, 0); TabModelSelector selector0 = requestSelector(activity0, 0);
...@@ -103,7 +104,7 @@ public class TabWindowManagerTest { ...@@ -103,7 +104,7 @@ public class TabWindowManagerTest {
@UiThreadTest @UiThreadTest
public void testMultipleActivities() { public void testMultipleActivities() {
Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 2); Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 2);
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
...@@ -146,7 +147,7 @@ public class TabWindowManagerTest { ...@@ -146,7 +147,7 @@ public class TabWindowManagerTest {
public void testIndexFallback() { public void testIndexFallback() {
Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 2); Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 2);
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
...@@ -171,7 +172,7 @@ public class TabWindowManagerTest { ...@@ -171,7 +172,7 @@ public class TabWindowManagerTest {
public void testIndexFallback2() { public void testIndexFallback2() {
Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 3); Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 3);
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
...@@ -193,7 +194,7 @@ public class TabWindowManagerTest { ...@@ -193,7 +194,7 @@ public class TabWindowManagerTest {
@Feature({"Multiwindow"}) @Feature({"Multiwindow"})
@UiThreadTest @UiThreadTest
public void testActivityDeathRemovesSingle() { public void testActivityDeathRemovesSingle() {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
TabModelSelector selector0 = requestSelector(activity0, 0); TabModelSelector selector0 = requestSelector(activity0, 0);
...@@ -216,7 +217,7 @@ public class TabWindowManagerTest { ...@@ -216,7 +217,7 @@ public class TabWindowManagerTest {
@Feature({"Multiwindow"}) @Feature({"Multiwindow"})
@UiThreadTest @UiThreadTest
public void testActivityDeathLetsModelReassign() { public void testActivityDeathLetsModelReassign() {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
TabModelSelector selector0 = requestSelector(activity0, 0); TabModelSelector selector0 = requestSelector(activity0, 0);
...@@ -248,7 +249,7 @@ public class TabWindowManagerTest { ...@@ -248,7 +249,7 @@ public class TabWindowManagerTest {
public void testActivityDeathWithMultipleActivities() { public void testActivityDeathWithMultipleActivities() {
Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 2); Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SELECTORS >= 2);
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
...@@ -281,7 +282,7 @@ public class TabWindowManagerTest { ...@@ -281,7 +282,7 @@ public class TabWindowManagerTest {
@Feature({"Multiwindow"}) @Feature({"Multiwindow"})
@UiThreadTest @UiThreadTest
public void testTabExistsInAnySelector() { public void testTabExistsInAnySelector() {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
...@@ -317,7 +318,7 @@ public class TabWindowManagerTest { ...@@ -317,7 +318,7 @@ public class TabWindowManagerTest {
@Feature({"Multiwindow"}) @Feature({"Multiwindow"})
@UiThreadTest @UiThreadTest
public void testGetTabById() { public void testGetTabById() {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
...@@ -353,7 +354,7 @@ public class TabWindowManagerTest { ...@@ -353,7 +354,7 @@ public class TabWindowManagerTest {
@Feature({"Multiwindow"}) @Feature({"Multiwindow"})
@UiThreadTest @UiThreadTest
public void getTabModelForTab() { public void getTabModelForTab() {
final TabWindowManager manager = TabWindowManager.getInstance(); final TabWindowManager manager = TabWindowManagerSingleton.getInstance();
ChromeActivity activity0 = buildActivity(); ChromeActivity activity0 = buildActivity();
ChromeActivity activity1 = buildActivity(); ChromeActivity activity1 = buildActivity();
......
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