[Start Surface] Remove Carousel Tab Switcher
Carousel tab switcher is no longer used in any features. Remove it.
Bug: 1507103
Change-Id: I4adcf2e1f5d3b7a02fb825e5b92cdb4894c5c2b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5074811
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1233319}
diff --git a/chrome/android/features/start_surface/java/res/layout/tasks_view_layout.xml b/chrome/android/features/start_surface/java/res/layout/tasks_view_layout.xml
index ad679bf..28ce579 100644
--- a/chrome/android/features/start_surface/java/res/layout/tasks_view_layout.xml
+++ b/chrome/android/features/start_surface/java/res/layout/tasks_view_layout.xml
@@ -53,38 +53,6 @@
<include layout="@layout/query_tiles_layout" />
</FrameLayout>
<include layout="@layout/mv_tiles_container" />
- <LinearLayout
- android:id="@+id/tab_switcher_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingStart="16dp"
- android:paddingEnd="4dp"
- android:paddingTop="10dp"
- android:paddingBottom="10dp"
- android:visibility="gone"
- android:orientation="horizontal"
- app:layout_scrollFlags="scroll">
- <TextView
- android:id="@+id/tab_switcher_title_description"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:layout_gravity="center_vertical"
- android:gravity="center_vertical|start"
- android:singleLine="true"
- android:textAlignment="viewStart"
- android:text="@string/tab_switcher_carousel_title" />
- <TextView
- android:id="@+id/more_tabs"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="-16dp"
- android:layout_marginBottom="-16dp"
- android:paddingTop="16dp"
- android:paddingBottom="16dp"
- android:paddingEnd="16dp"
- android:text="@string/tab_switcher_carousel_view_all"/>
- </LinearLayout>
<!-- TODO(crbug.com/982018): Make view stub to inflate only when needed. -->
<include layout="@layout/tab_switcher_module_container" />
</com.google.android.material.appbar.AppBarLayout>
diff --git a/chrome/android/features/start_surface/java/res/layout/tasks_view_layout_polish.xml b/chrome/android/features/start_surface/java/res/layout/tasks_view_layout_polish.xml
index c8b26f6..a75ee2782 100644
--- a/chrome/android/features/start_surface/java/res/layout/tasks_view_layout_polish.xml
+++ b/chrome/android/features/start_surface/java/res/layout/tasks_view_layout_polish.xml
@@ -54,38 +54,6 @@
<include layout="@layout/query_tiles_layout" />
</FrameLayout>
<include layout="@layout/mv_tiles_container_polish" />
- <LinearLayout
- android:id="@+id/tab_switcher_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingStart="16dp"
- android:paddingEnd="4dp"
- android:paddingTop="10dp"
- android:paddingBottom="10dp"
- android:visibility="gone"
- android:orientation="horizontal"
- app:layout_scrollFlags="scroll">
- <TextView
- android:id="@+id/tab_switcher_title_description"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:layout_gravity="center_vertical"
- android:gravity="center_vertical|start"
- android:singleLine="true"
- android:textAlignment="viewStart"
- android:text="@string/tab_switcher_carousel_title" />
- <TextView
- android:id="@+id/more_tabs"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="-16dp"
- android:layout_marginBottom="-16dp"
- android:paddingTop="16dp"
- android:paddingBottom="16dp"
- android:paddingEnd="16dp"
- android:text="@string/tab_switcher_carousel_view_all"/>
- </LinearLayout>
<!-- TODO(crbug.com/982018): Make view stub to inflate only when needed. -->
<include layout="@layout/tab_switcher_module_container" />
</com.google.android.material.appbar.AppBarLayout>
@@ -106,4 +74,4 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
-</org.chromium.chrome.features.tasks.TasksView>
\ No newline at end of file
+</org.chromium.chrome.features.tasks.TasksView>
diff --git a/chrome/android/features/start_surface/java/res/values/dimens.xml b/chrome/android/features/start_surface/java/res/values/dimens.xml
index e4d4702..813602b 100644
--- a/chrome/android/features/start_surface/java/res/values/dimens.xml
+++ b/chrome/android/features/start_surface/java/res/values/dimens.xml
@@ -8,7 +8,6 @@
<dimen name="tasks_surface_body_top_margin">24dp</dimen>
<dimen name="mv_tiles_container_top_margin">17dp</dimen>
<dimen name="single_tab_view_top_margin_for_feed_improvement">32dp</dimen>
- <dimen name="tab_switcher_title_top_margin">16dp</dimen>
<!-- Single Tab card on tablets -->
<dimen name="single_tab_card_lateral_margin_landscape_tablet">62dp</dimen>
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurface.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurface.java
index 11c565ba..384a9f5 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurface.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurface.java
@@ -236,11 +236,11 @@
/**
* Returns the TabListDelegate implementation that can be used to access the Tab list of the
- * carousel/single tab switcher when start surface is enabled; when start surface is disabled,
- * null should be returned.
+ * single tab switcher when start surface is enabled; when start surface is disabled, null
+ * should be returned.
*/
// TODO(crbug.com/1315676): Remove this API after the refactoring is done.
- TabSwitcher.TabListDelegate getCarouselOrSingleTabListDelegate();
+ TabSwitcher.TabListDelegate getSingleTabListDelegate();
/**
* @return {@link Supplier} that provides dialog visibility.
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceConfiguration.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceConfiguration.java
index 7703aa71..ebe3298b 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceConfiguration.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceConfiguration.java
@@ -30,9 +30,6 @@
"hide_switch_when_no_incognito_tabs",
true);
- public static final BooleanCachedFieldTrialParameter START_SURFACE_LAST_ACTIVE_TAB_ONLY =
- new BooleanCachedFieldTrialParameter(
- ChromeFeatureList.START_SURFACE_ANDROID, "show_last_active_tab_only", true);
public static final BooleanCachedFieldTrialParameter START_SURFACE_OPEN_NTP_INSTEAD_OF_START =
new BooleanCachedFieldTrialParameter(
ChromeFeatureList.START_SURFACE_ANDROID, "open_ntp_instead_of_start", true);
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
index 2f44386..9a5890c 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
@@ -466,7 +466,7 @@
@Override
public void show(boolean animate) {
if (!mUseMagicSpace) {
- getCarouselOrSingleTabListDelegate().prepareTabSwitcherView();
+ getSingleTabListDelegate().prepareTabSwitcherView();
}
mStartSurfaceMediator.show(animate);
}
@@ -731,7 +731,7 @@
}
@Override
- public TabSwitcher.TabListDelegate getCarouselOrSingleTabListDelegate() {
+ public TabSwitcher.TabListDelegate getSingleTabListDelegate() {
if (mIsStartSurfaceEnabled) {
if (mIsStartSurfaceRefactorEnabled) {
return mTabSwitcherModule.getTabListDelegate();
@@ -920,16 +920,12 @@
assert mIsStartSurfaceEnabled;
- int tabSwitcherType =
- StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY.getValue()
- ? TabSwitcherType.SINGLE
- : TabSwitcherType.CAROUSEL;
mTasksSurface =
createTasksSurface(
mActivity,
mScrimCoordinator,
mPropertyModel,
- tabSwitcherType,
+ TabSwitcherType.SINGLE,
mParentTabSupplier,
true,
!excludeQueryTiles,
@@ -968,10 +964,7 @@
int tabSwitcherType = TabSwitcherType.NONE;
if (!mUseMagicSpace) {
- tabSwitcherType =
- StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY.getValue()
- ? TabSwitcherType.SINGLE
- : TabSwitcherType.CAROUSEL;
+ tabSwitcherType = TabSwitcherType.SINGLE;
}
if (!mIsSurfacePolishEnabled) {
@@ -990,31 +983,13 @@
mActivityLifecycleDispatcher,
mParentTabSupplier.hasValue() && mParentTabSupplier.get().isIncognito(),
mWindowAndroid);
- if (tabSwitcherType == TabSwitcherType.CAROUSEL) {
- mTabSwitcherModule =
- TabManagementDelegateProvider.getDelegate()
- .createCarouselTabSwitcher(
- mActivity,
- mActivityLifecycleDispatcher,
- mTabModelSelector,
- mTabContentManager,
- mBrowserControlsManager,
- mTabCreatorManager,
- mMenuOrKeyboardActionController,
- mView.getCarouselTabSwitcherContainer(),
- mMultiWindowModeStateDispatcher,
- mScrimCoordinator,
- mView,
- mDynamicResourceLoaderSupplier,
- mSnackbarManager,
- mModalDialogManager);
- } else if (tabSwitcherType == TabSwitcherType.SINGLE) {
+ if (tabSwitcherType == TabSwitcherType.SINGLE) {
// We always pass the parameter isTablet to be false here since StartSurfaceCoordinator
// is only created on phones.
mTabSwitcherModule =
new SingleTabSwitcherCoordinator(
mActivity,
- mView.getCarouselTabSwitcherContainer(),
+ mView.getCardTabSwitcherContainer(),
null,
mTabModelSelector,
/* isShownOnNtp= */ false,
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
index 4683ef3..36c3a346 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
@@ -20,18 +20,15 @@
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_LENS_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_SURFACE_BODY_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_TITLE_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_VISIBLE;
+import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CARD_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_VOICE_RECOGNITION_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.LENS_BUTTON_CLICK_LISTENER;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MORE_TABS_CLICK_LISTENER;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.QUERY_TILES_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.RESET_TASK_SURFACE_HEADER_SCROLL_POSITION;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.SINGLE_TAB_TOP_MARGIN;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TAB_SWITCHER_TITLE_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TASKS_SURFACE_BODY_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TOP_TOOLBAR_PLACEHOLDER_HEIGHT;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.VOICE_SEARCH_BUTTON_CLICK_LISTENER;
@@ -113,7 +110,6 @@
/** The mediator implements the logic to interact with the surfaces and caller. */
class StartSurfaceMediator
implements TabSwitcher.TabSwitcherViewObserver,
- View.OnClickListener,
StartSurface.OnTabSelectingListener,
BackPressHandler,
LogoCoordinator.VisibilityObserver,
@@ -302,10 +298,7 @@
assert mIsStartSurfaceEnabled;
if (mTabSwitcherModule != null) {
- boolean isTabCarousel =
- mController.getTabSwitcherType() == TabSwitcherType.CAROUSEL;
- mPropertyModel.set(IS_TAB_CAROUSEL_VISIBLE, isTabCarousel);
- mPropertyModel.set(IS_TAB_CAROUSEL_TITLE_VISIBLE, isTabCarousel);
+ mPropertyModel.set(IS_TAB_CARD_VISIBLE, false);
}
if (mTabSwitcherModule != null || mUseMagicSpace) {
@@ -338,8 +331,6 @@
mPropertyModel.set(IS_INCOGNITO, mIsIncognito);
updateBackgroundColor(mPropertyModel);
- mPropertyModel.set(MORE_TABS_CLICK_LISTENER, this);
-
if (!mUseMagicSpace) {
// Hide tab carousel, which does not exist in incognito mode, when closing all
// normal tabs.
@@ -351,14 +342,14 @@
Tab tab, boolean animate, boolean didCloseAlone) {
if (isHomepageShown()
&& mTabModelSelector.getModel(false).getCount() <= 1) {
- setTabCarouselVisibility(false);
+ setTabCardVisibility(false);
}
}
@Override
public void tabClosureUndone(Tab tab) {
if (isHomepageShown()) {
- setTabCarouselVisibility(true);
+ setTabCardVisibility(true);
}
}
@@ -368,7 +359,7 @@
&& isHomepageShown())) {
return;
}
- setTabCarouselVisibility(
+ setTabCardVisibility(
mTabModelSelector.getModel(false).getCount() > 0
&& !mIsIncognito);
}
@@ -404,7 +395,7 @@
if (type == TabSelectionType.FROM_CLOSE
&& UrlUtilities.isNtpUrl(tab.getUrl())) {
- setTabCarouselVisibility(false);
+ setTabCardVisibility(false);
}
}
};
@@ -737,7 +728,7 @@
updateBackgroundColor(mPropertyModel);
setMVTilesVisibility(!mIsIncognito);
setLogoVisibility(!mIsIncognito);
- setTabCarouselVisibility(getNormalTabCount() > 0 && !mIsIncognito);
+ setTabCardVisibility(getNormalTabCount() > 0 && !mIsIncognito);
setExploreSurfaceVisibility(!mIsIncognito && mExploreSurfaceCoordinatorFactory != null);
// TODO(qinmin): show query tiles when flag is enabled.
setQueryTilesVisibility(false);
@@ -918,7 +909,7 @@
// will not show.
setMVTilesVisibility(!mIsIncognito);
setLogoVisibility(!mIsIncognito);
- setTabCarouselVisibility(hasNormalTab && !mIsIncognito);
+ setTabCardVisibility(hasNormalTab && !mIsIncognito);
setExploreSurfaceVisibility(!mIsIncognito && mExploreSurfaceCoordinatorFactory != null);
setQueryTilesVisibility(!mIsIncognito);
setFakeBoxVisibility(!mIsIncognito);
@@ -939,7 +930,7 @@
if (mPreviousStartSurfaceState == StartSurfaceState.SHOWN_HOMEPAGE) {
mayRecordHomepageSessionEnd();
}
- setTabCarouselVisibility(false);
+ setTabCardVisibility(false);
setMVTilesVisibility(false);
setLogoVisibility(false);
setQueryTilesVisibility(false);
@@ -1283,26 +1274,6 @@
mPropertyModel.set(EXPLORE_SURFACE_COORDINATOR, null);
}
- // TODO(crbug.com/982018): turn into onClickMoreTabs() and hide the OnClickListener signature
- // inside. Implements View.OnClickListener, which listens for the more tabs button.
- @Override
- public void onClick(View v) {
- assert isHomepageShown();
-
- if (mIsStartSurfaceRefactorEnabled) {
- mTabSwitcherClickHandler.onClick(v);
- } else {
- if (mSecondaryTasksSurfacePropertyModel == null) {
- TabSwitcher.Controller controller = mSecondaryTasksSurfaceInitializer.initialize();
- assert mSecondaryTasksSurfacePropertyModel != null;
- setSecondaryTasksSurfaceController(controller);
- }
-
- setStartSurfaceState(StartSurfaceState.SHOWN_TABSWITCHER);
- }
- RecordUserAction.record("StartSurface.SinglePane.MoreTabs");
- }
-
// StartSurface.OnTabSelectingListener
@Override
public void onTabSelecting(int tabId) {
@@ -1496,19 +1467,17 @@
: getTopToolbarPlaceholderHeight());
}
- private void setTabCarouselVisibility(boolean isVisible) {
+ private void setTabCardVisibility(boolean isVisible) {
if (mUseMagicSpace) return;
// If the single tab switcher is shown and the current selected tab is a new tab page, we
// shouldn't show the tab switcher layout on Start.
- boolean shouldShowTabCarousel =
+ boolean shouldShowTabCard =
isVisible && !(isSingleTabSwitcher() && isCurrentSelectedTabNtp());
- if (shouldShowTabCarousel == mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE)) return;
+ if (shouldShowTabCard == mPropertyModel.get(IS_TAB_CARD_VISIBLE)) return;
- mPropertyModel.set(IS_TAB_CAROUSEL_VISIBLE, shouldShowTabCarousel);
- mPropertyModel.set(
- IS_TAB_CAROUSEL_TITLE_VISIBLE, shouldShowTabCarousel && showTabSwitcherTitle());
+ mPropertyModel.set(IS_TAB_CARD_VISIBLE, shouldShowTabCard);
}
private void setMVTilesVisibility(boolean isVisible) {
@@ -1642,10 +1611,6 @@
return mController != null && mController.getTabSwitcherType() == TabSwitcherType.SINGLE;
}
- private boolean showTabSwitcherTitle() {
- return !isSingleTabSwitcher();
- }
-
private void notifyBackPressStateChanged() {
mBackPressChangedSupplier.set(shouldInterceptBackPress());
}
@@ -1769,9 +1734,6 @@
TASKS_SURFACE_BODY_TOP_MARGIN,
resources.getDimensionPixelSize(R.dimen.tasks_surface_body_top_margin));
}
- mPropertyModel.set(
- TAB_SWITCHER_TITLE_TOP_MARGIN,
- resources.getDimensionPixelSize(R.dimen.tab_switcher_title_top_margin));
if (mIsSurfacePolishEnabled && !mIsFeedGoneImprovementEnabled) return;
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout.java
index 395a437..1c3c88c 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout.java
@@ -96,8 +96,8 @@
@Nullable private final ScrimCoordinator mScrimCoordinator;
// Always use getGridTabListDelegate() instead to make sure it's not null.
@Nullable private TabSwitcher.TabListDelegate mGridTabListDelegate;
- // Always use getCarouselOrSingleTabListDelegate() instead to make sure it's not null.
- @Nullable private TabSwitcher.TabListDelegate mCarouselOrSingleTabListDelegate;
+ // Always use getSingleTabListDelegate() instead to make sure it's not null.
+ @Nullable private TabSwitcher.TabListDelegate mSingleTabListDelegate;
private boolean mIsInitialized;
private float mBackgroundAlpha;
@@ -350,7 +350,7 @@
// If start surface homepage is showing, carousel or single tab switcher is used.
// Otherwise grid tab switcher is used.
if (isShowingStartSurfaceHomepage) {
- quick = getCarouselOrSingleTabListDelegate().prepareTabSwitcherView();
+ quick = getSingleTabListDelegate().prepareTabSwitcherView();
} else {
mStartSurface.beforeShowTabSwitcherView();
quick = getGridTabListDelegate().prepareTabSwitcherView();
@@ -914,17 +914,17 @@
private Rect getThumbnailLocationOfCurrentTab() {
if (isHidingStartSurfaceHomepage()) {
- return getCarouselOrSingleTabListDelegate().getThumbnailLocationOfCurrentTab();
+ return getSingleTabListDelegate().getThumbnailLocationOfCurrentTab();
} else {
return getGridTabListDelegate().getThumbnailLocationOfCurrentTab();
}
}
- private TabListDelegate getCarouselOrSingleTabListDelegate() {
- if (mCarouselOrSingleTabListDelegate == null) {
- mCarouselOrSingleTabListDelegate = mStartSurface.getCarouselOrSingleTabListDelegate();
+ private TabListDelegate getSingleTabListDelegate() {
+ if (mSingleTabListDelegate == null) {
+ mSingleTabListDelegate = mStartSurface.getSingleTabListDelegate();
}
- return mCarouselOrSingleTabListDelegate;
+ return mSingleTabListDelegate;
}
private TabListDelegate getGridTabListDelegate() {
@@ -938,13 +938,11 @@
// It is possible that the StartSurfaceState becomes StartSurfaceState.NOT_SHOWN when hiding
// the overview page, thus, the last used TabListDelegate is returned.
if (mStartSurface.getStartSurfaceState() == StartSurfaceState.NOT_SHOWN) {
- assert mGridTabListDelegate != null || mCarouselOrSingleTabListDelegate != null;
- return mGridTabListDelegate != null
- ? mGridTabListDelegate
- : mCarouselOrSingleTabListDelegate;
+ assert mGridTabListDelegate != null || mSingleTabListDelegate != null;
+ return mGridTabListDelegate != null ? mGridTabListDelegate : mSingleTabListDelegate;
}
return isShowingStartSurfaceHomepage()
- ? getCarouselOrSingleTabListDelegate()
+ ? getSingleTabListDelegate()
: getGridTabListDelegate();
}
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceCoordinator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceCoordinator.java
index 6f5c8f4..3cfc87a6 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceCoordinator.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceCoordinator.java
@@ -140,25 +140,7 @@
mTabContentManager = tabContentManager;
mModalDialogManager = modalDialogManager;
mParentTabSupplier = parentTabSupplier;
- if (tabSwitcherType == TabSwitcherType.CAROUSEL) {
- mTabSwitcher =
- TabManagementDelegateProvider.getDelegate()
- .createCarouselTabSwitcher(
- activity,
- activityLifecycleDispatcher,
- tabModelSelector,
- tabContentManager,
- browserControlsStateProvider,
- tabCreatorManager,
- menuOrKeyboardActionController,
- mView.getCarouselTabSwitcherContainer(),
- multiWindowModeStateDispatcher,
- scrimCoordinator,
- rootView,
- dynamicResourceLoaderSupplier,
- snackbarManager,
- modalDialogManager);
- } else if (tabSwitcherType == TabSwitcherType.GRID) {
+ if (tabSwitcherType == TabSwitcherType.GRID) {
assert incognitoReauthControllerSupplier != null
: "Valid Incognito re-auth controller supplier needed to create GTS.";
mTabSwitcher =
@@ -185,7 +167,7 @@
mTabSwitcher =
new SingleTabSwitcherCoordinator(
activity,
- mView.getCarouselTabSwitcherContainer(),
+ mView.getCardTabSwitcherContainer(),
null,
tabModelSelector,
/* isShownOnNtp= */ false,
@@ -220,8 +202,7 @@
new TasksSurfaceMediator(
propertyModel,
incognitoLearnMoreClickListener,
- incognitoCookieControlsManager,
- tabSwitcherType == TabSwitcherType.CAROUSEL);
+ incognitoCookieControlsManager);
if (hasMVTiles) {
boolean isScrollableMVTEnabled =
@@ -343,8 +324,7 @@
@Override
public Supplier<Boolean> getTabGridDialogVisibilitySupplier() {
- if (mTabSwitcherType != TabSwitcherType.CAROUSEL
- && mTabSwitcherType != TabSwitcherType.GRID) {
+ if (mTabSwitcherType != TabSwitcherType.GRID) {
return null;
}
assert mTabSwitcher != null;
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java
index b03f834..21a3995 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java
@@ -15,8 +15,6 @@
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_FAKE_SEARCH_BOX_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_LENS_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_SURFACE_BODY_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_TITLE_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_VOICE_RECOGNITION_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.LENS_BUTTON_CLICK_LISTENER;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.VOICE_SEARCH_BUTTON_CLICK_LISTENER;
@@ -51,11 +49,8 @@
TasksSurfaceMediator(
PropertyModel model,
View.OnClickListener incognitoLearnMoreClickListener,
- IncognitoCookieControlsManager incognitoCookieControlsManager,
- boolean isTabCarousel) {
+ IncognitoCookieControlsManager incognitoCookieControlsManager) {
mModel = model;
- mModel.set(IS_TAB_CAROUSEL_VISIBLE, isTabCarousel);
- mModel.set(IS_TAB_CAROUSEL_TITLE_VISIBLE, isTabCarousel);
model.set(INCOGNITO_LEARN_MORE_CLICK_LISTENER, incognitoLearnMoreClickListener);
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceProperties.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceProperties.java
index 45e1ef0..b46689a 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceProperties.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceProperties.java
@@ -30,9 +30,7 @@
new PropertyModel.WritableBooleanPropertyKey();
public static final PropertyModel.WritableBooleanPropertyKey IS_SURFACE_BODY_VISIBLE =
new PropertyModel.WritableBooleanPropertyKey();
- public static final PropertyModel.WritableBooleanPropertyKey IS_TAB_CAROUSEL_VISIBLE =
- new PropertyModel.WritableBooleanPropertyKey();
- public static final PropertyModel.WritableBooleanPropertyKey IS_TAB_CAROUSEL_TITLE_VISIBLE =
+ public static final PropertyModel.WritableBooleanPropertyKey IS_TAB_CARD_VISIBLE =
new PropertyModel.WritableBooleanPropertyKey();
public static final PropertyModel.WritableBooleanPropertyKey
IS_VOICE_RECOGNITION_BUTTON_VISIBLE = new PropertyModel.WritableBooleanPropertyKey();
@@ -58,8 +56,6 @@
FAKE_SEARCH_BOX_TEXT_WATCHER = new PropertyModel.WritableObjectPropertyKey<>();
public static final PropertyModel.WritableObjectPropertyKey<View.OnClickListener>
LENS_BUTTON_CLICK_LISTENER = new PropertyModel.WritableObjectPropertyKey<>();
- public static final PropertyModel.WritableObjectPropertyKey<View.OnClickListener>
- MORE_TABS_CLICK_LISTENER = new PropertyModel.WritableObjectPropertyKey<>();
public static final PropertyModel.WritableBooleanPropertyKey MV_TILES_VISIBLE =
IS_CONTAINER_VISIBLE;
public static final PropertyModel.WritableBooleanPropertyKey QUERY_TILES_VISIBLE =
@@ -72,8 +68,6 @@
new PropertyModel.WritableIntPropertyKey();
public static final PropertyModel.WritableIntPropertyKey MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN =
new PropertyModel.WritableIntPropertyKey();
- public static final PropertyModel.WritableIntPropertyKey TAB_SWITCHER_TITLE_TOP_MARGIN =
- new PropertyModel.WritableIntPropertyKey();
public static final PropertyModel.WritableIntPropertyKey SINGLE_TAB_TOP_MARGIN =
new PropertyModel.WritableIntPropertyKey();
public static final PropertyModel.WritableIntPropertyKey TOP_TOOLBAR_PLACEHOLDER_HEIGHT =
@@ -92,8 +86,7 @@
IS_INCOGNITO_DESCRIPTION_VISIBLE,
IS_LENS_BUTTON_VISIBLE,
IS_SURFACE_BODY_VISIBLE,
- IS_TAB_CAROUSEL_VISIBLE,
- IS_TAB_CAROUSEL_TITLE_VISIBLE,
+ IS_TAB_CARD_VISIBLE,
IS_VOICE_RECOGNITION_BUTTON_VISIBLE,
INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER,
INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED,
@@ -104,14 +97,12 @@
FAKE_SEARCH_BOX_CLICK_LISTENER,
FAKE_SEARCH_BOX_TEXT_WATCHER,
LENS_BUTTON_CLICK_LISTENER,
- MORE_TABS_CLICK_LISTENER,
MV_TILES_VISIBLE,
QUERY_TILES_VISIBLE,
VOICE_SEARCH_BUTTON_CLICK_LISTENER,
TASKS_SURFACE_BODY_TOP_MARGIN,
MV_TILES_CONTAINER_TOP_MARGIN,
MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN,
- TAB_SWITCHER_TITLE_TOP_MARGIN,
SINGLE_TAB_TOP_MARGIN,
RESET_TASK_SURFACE_HEADER_SCROLL_POSITION,
TOP_TOOLBAR_PLACEHOLDER_HEIGHT,
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksView.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksView.java
index 9793404..a919a39c 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksView.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksView.java
@@ -17,17 +17,13 @@
import android.view.ViewStub;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.FrameLayout;
-import android.widget.TextView;
import androidx.annotation.ColorInt;
-import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
-import androidx.core.view.ViewCompat;
import com.google.android.material.appbar.AppBarLayout;
-import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feed.FeedStreamViewResizer;
import org.chromium.chrome.browser.feed.FeedSurfaceCoordinator;
@@ -49,7 +45,7 @@
public class TasksView extends CoordinatorLayoutForPointer {
private final Context mContext;
- private FrameLayout mCarouselTabSwitcherContainer;
+ private FrameLayout mCardTabSwitcherContainer;
private AppBarLayout mHeaderView;
private ViewGroup mMvTilesContainerLayout;
private SearchBoxCoordinator mSearchBoxCoordinator;
@@ -89,8 +85,7 @@
protected void onFinishInflate() {
super.onFinishInflate();
- mCarouselTabSwitcherContainer =
- (FrameLayout) findViewById(R.id.tab_switcher_module_container);
+ mCardTabSwitcherContainer = (FrameLayout) findViewById(R.id.tab_switcher_module_container);
mMvTilesContainerLayout = findViewById(R.id.mv_tiles_container);
mSearchBoxCoordinator = new SearchBoxCoordinator(getContext(), this);
@@ -100,7 +95,6 @@
mUiConfig = new UiConfig(this);
setHeaderPadding();
- setTabCarouselTitleStyle();
}
@Override
@@ -109,25 +103,8 @@
mUiConfig.updateDisplayStyle();
}
- private void setTabCarouselTitleStyle() {
- // Match the tab carousel title style with the feed header.
- // There are many places checking FeedFeatures.isReportingUserActions, like in
- // ExploreSurfaceCoordinator.
- TextView titleDescription = (TextView) findViewById(R.id.tab_switcher_title_description);
- TextView moreTabs = (TextView) findViewById(R.id.more_tabs);
- ApiCompatibilityUtils.setTextAppearance(
- titleDescription, R.style.TextAppearance_TextAccentMediumThick_Secondary);
- ApiCompatibilityUtils.setTextAppearance(moreTabs, R.style.TextAppearance_Button_Text_Blue);
- ViewCompat.setPaddingRelative(
- titleDescription,
- titleDescription.getPaddingStart(),
- titleDescription.getPaddingTop(),
- titleDescription.getPaddingEnd(),
- titleDescription.getPaddingBottom());
- }
-
- public ViewGroup getCarouselTabSwitcherContainer() {
- return mCarouselTabSwitcherContainer;
+ public ViewGroup getCardTabSwitcherContainer() {
+ return mCardTabSwitcherContainer;
}
public ViewGroup getBodyViewContainer() {
@@ -144,18 +121,11 @@
/**
* Set the visibility of the tab carousel.
+ *
* @param isVisible Whether it's visible.
*/
- void setTabCarouselVisibility(boolean isVisible) {
- mCarouselTabSwitcherContainer.setVisibility(isVisible ? View.VISIBLE : View.GONE);
- }
-
- /**
- * Set the visibility of the tab carousel title.
- * @param isVisible Whether it's visible.
- */
- void setTabCarouselTitleVisibility(boolean isVisible) {
- findViewById(R.id.tab_switcher_title).setVisibility(isVisible ? View.VISIBLE : View.GONE);
+ void setTabCardVisibility(boolean isVisible) {
+ mCardTabSwitcherContainer.setVisibility(isVisible ? View.VISIBLE : View.GONE);
}
/**
@@ -175,11 +145,6 @@
findViewById(R.id.query_tiles_container).setVisibility(visibility);
}
- /** Set the {@link android.view.View.OnClickListener} for More Tabs. */
- void setMoreTabsOnClickListener(@Nullable View.OnClickListener listener) {
- findViewById(R.id.more_tabs).setOnClickListener(listener);
- }
-
/**
* Set the incognito state.
* @param isIncognito Whether it's in incognito mode.
@@ -385,17 +350,6 @@
}
/**
- * Set the top margin for the tab switcher title.
- * @param topMargin The top margin to set.
- */
- void setTabSwitcherTitleTopMargin(int topMargin) {
- MarginLayoutParams params =
- (MarginLayoutParams)
- mHeaderView.findViewById(R.id.tab_switcher_title).getLayoutParams();
- params.topMargin = topMargin;
- }
-
- /**
* Set the top margin for the single tab card.
* @param topMargin The top margin to set.
*/
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksViewBinder.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksViewBinder.java
index 2f380f5a..4f1dfb7 100644
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksViewBinder.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksViewBinder.java
@@ -19,18 +19,15 @@
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_LENS_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_SURFACE_BODY_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_TITLE_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_VISIBLE;
+import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CARD_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_VOICE_RECOGNITION_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.LENS_BUTTON_CLICK_LISTENER;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MORE_TABS_CLICK_LISTENER;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.QUERY_TILES_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.RESET_TASK_SURFACE_HEADER_SCROLL_POSITION;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.SINGLE_TAB_TOP_MARGIN;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TAB_SWITCHER_TITLE_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TASKS_SURFACE_BODY_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TOP_TOOLBAR_PLACEHOLDER_HEIGHT;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.VOICE_SEARCH_BUTTON_CLICK_LISTENER;
@@ -85,18 +82,14 @@
.setLensButtonVisibility(model.get(IS_LENS_BUTTON_VISIBLE));
} else if (propertyKey == IS_SURFACE_BODY_VISIBLE) {
view.setSurfaceBodyVisibility(model.get(IS_SURFACE_BODY_VISIBLE));
- } else if (propertyKey == IS_TAB_CAROUSEL_VISIBLE) {
- view.setTabCarouselVisibility(model.get(IS_TAB_CAROUSEL_VISIBLE));
- } else if (propertyKey == IS_TAB_CAROUSEL_TITLE_VISIBLE) {
- view.setTabCarouselTitleVisibility(model.get(IS_TAB_CAROUSEL_TITLE_VISIBLE));
+ } else if (propertyKey == IS_TAB_CARD_VISIBLE) {
+ view.setTabCardVisibility(model.get(IS_TAB_CARD_VISIBLE));
} else if (propertyKey == IS_VOICE_RECOGNITION_BUTTON_VISIBLE) {
view.getSearchBoxCoordinator()
.setVoiceSearchButtonVisibility(model.get(IS_VOICE_RECOGNITION_BUTTON_VISIBLE));
} else if (propertyKey == LENS_BUTTON_CLICK_LISTENER) {
view.getSearchBoxCoordinator()
.addLensButtonClickListener(model.get(LENS_BUTTON_CLICK_LISTENER));
- } else if (propertyKey == MORE_TABS_CLICK_LISTENER) {
- view.setMoreTabsOnClickListener(model.get(MORE_TABS_CLICK_LISTENER));
} else if (propertyKey == MV_TILES_VISIBLE) {
view.setMostVisitedVisibility(model.get(MV_TILES_VISIBLE) ? View.VISIBLE : View.GONE);
} else if (propertyKey == QUERY_TILES_VISIBLE) {
@@ -112,8 +105,6 @@
} else if (propertyKey == MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN) {
view.setMVTilesContainerLeftAndRightMargin(
model.get(MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN));
- } else if (propertyKey == TAB_SWITCHER_TITLE_TOP_MARGIN) {
- view.setTabSwitcherTitleTopMargin(model.get(TAB_SWITCHER_TITLE_TOP_MARGIN));
} else if (propertyKey == SINGLE_TAB_TOP_MARGIN) {
view.setSingleTabTopMargin(model.get(SINGLE_TAB_TOP_MARGIN));
} else if (propertyKey == RESET_TASK_SURFACE_HEADER_SCROLL_POSITION) {
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java
index d5ea69fd..b7d46f1 100644
--- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java
+++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java
@@ -4,7 +4,6 @@
package org.chromium.chrome.features.start_surface;
-import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.pressKey;
@@ -27,16 +26,13 @@
import static org.chromium.chrome.features.start_surface.StartSurfaceTestUtils.INSTANT_START_TEST_BASE_PARAMS;
import static org.chromium.ui.test.util.ViewUtils.onViewWaiting;
-import android.os.Build;
import android.os.Build.VERSION_CODES;
import android.view.KeyEvent;
-import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.test.filters.LargeTest;
import androidx.test.filters.MediumTest;
-import androidx.test.filters.SmallTest;
import org.junit.After;
import org.junit.Assert;
@@ -56,11 +52,8 @@
import org.chromium.base.test.params.ParameterSet;
import org.chromium.base.test.params.ParameterizedRunner;
import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.Criteria;
-import org.chromium.base.test.util.CriteriaHelper;
import org.chromium.base.test.util.DisableIf;
import org.chromium.base.test.util.DoNotBatch;
-import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.JniMocker;
import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.browser.ChromeTabbedActivity;
@@ -71,7 +64,6 @@
import org.chromium.chrome.browser.homepage.HomepageManager;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
-import org.chromium.chrome.browser.tab.TabUtils;
import org.chromium.chrome.browser.tabmodel.TabModelFilter;
import org.chromium.chrome.browser.tasks.ReturnToChromeUtil;
import org.chromium.chrome.browser.tasks.pseudotab.TabAttributeCache;
@@ -89,7 +81,6 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
-import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -133,16 +124,14 @@
@Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
/**
- * {@link ParameterProvider} used for parameterized test that provides whether it's single tab
- * switcher or carousel tab switcher and whether last visited tab is a search result page.
+ * {@link ParameterProvider} used for parameterized test that provides whether last visited tab
+ * is a search result page.
*/
public static class LastVisitedTabIsSRPTestParams implements ParameterProvider {
private static final List<ParameterSet> sLVTIsSRPTestParams =
Arrays.asList(
- new ParameterSet().value(false, false).name("CarouselTab_NotSRP"),
- new ParameterSet().value(true, false).name("SingleTab_NotSRP"),
- new ParameterSet().value(false, true).name("CarouselTab_SRP"),
- new ParameterSet().value(true, true).name("SingleTab_SRP"));
+ new ParameterSet().value(false).name("SingleTab_NotSRP"),
+ new ParameterSet().value(true).name("SingleTab_SRP"));
@Override
public List<ParameterSet> getParameters() {
@@ -164,13 +153,13 @@
}
/**
- * Tests that clicking the "more_tabs" button won't make Omnibox get focused when single tab is
+ * Tests that clicking the tab switcher button won't make Omnibox get focused when single tab is
* shown on the StartSurface.
*/
@Test
@MediumTest
- @CommandLineFlags.Add({INSTANT_START_TEST_BASE_PARAMS + "/show_last_active_tab_only/true"})
- public void startSurfaceMoreTabsButtonTest() throws IOException {
+ @CommandLineFlags.Add({INSTANT_START_TEST_BASE_PARAMS})
+ public void startSurfaceTabSwitcherButtonTest() throws IOException {
StartSurfaceTestUtils.createTabStatesAndMetadataFile(new int[] {0});
StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(0, mBrowserControlsStateProvider);
TabAttributeCache.setTitleForTesting(0, "Google");
@@ -180,7 +169,6 @@
Assert.assertFalse(cta.isTablet());
Assert.assertTrue(ChromeFeatureList.sInstantStart.isEnabled());
Assert.assertTrue(ReturnToChromeUtil.shouldShowTabSwitcher(-1, false));
- Assert.assertTrue(StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY.getValue());
mActivityTestRule.waitForActivityNativeInitializationComplete();
@@ -197,184 +185,6 @@
}
@Test
- @SmallTest
- @Feature({"RenderTest"})
- @CommandLineFlags.Add({
- ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
- INSTANT_START_TEST_BASE_PARAMS + "/show_last_active_tab_only/false"
- })
- public void renderTabSwitcher() throws IOException, InterruptedException {
- StartSurfaceTestUtils.createTabStatesAndMetadataFile(new int[] {0, 1, 2});
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(0, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(1, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(2, mBrowserControlsStateProvider);
- TabAttributeCache.setTitleForTesting(0, "title");
- TabAttributeCache.setTitleForTesting(1, "漢字");
- TabAttributeCache.setTitleForTesting(2, "اَلْعَرَبِيَّةُ");
-
- // Must be after StartSurfaceTestUtils.createTabStatesAndMetadataFile() to read these files.
- StartSurfaceTestUtils.startMainActivityFromLauncher(mActivityTestRule);
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
- RecyclerView recyclerView =
- (RecyclerView) StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta);
- TabUiTestHelper.waitForThumbnailsToFetch(recyclerView);
- mRenderTestRule.render(recyclerView, "tabSwitcher_3tabs");
-
- // Resume native initialization and make sure the GTS looks the same.
- StartSurfaceTestUtils.startAndWaitNativeInitialization(mActivityTestRule);
-
- Assert.assertEquals(3, cta.getTabModelSelector().getCurrentModel().getCount());
- // TODO(crbug.com/1065314): find a better way to wait for a stable rendering.
- Thread.sleep(2000);
- // The titles on the tab cards changes to "Google" because we use M26_GOOGLE_COM.
- mRenderTestRule.render(recyclerView, "tabSwitcher_3tabs_postNative");
- }
-
- @Test
- @SmallTest
- @Feature({"RenderTest"})
- @CommandLineFlags.Add({
- ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
- INSTANT_START_TEST_BASE_PARAMS + "/show_last_active_tab_only/false"
- })
- @DisableIf.Build(
- message = "Flaky. See https://crbug.com/1091311",
- sdk_is_greater_than = Build.VERSION_CODES.O)
- public void renderTabGroups() throws IOException {
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(0, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(1, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(2, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(3, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(4, mBrowserControlsStateProvider);
- TabAttributeCache.setRootIdForTesting(0, 0);
- TabAttributeCache.setRootIdForTesting(1, 0);
- TabAttributeCache.setRootIdForTesting(2, 0);
- TabAttributeCache.setRootIdForTesting(3, 3);
- TabAttributeCache.setRootIdForTesting(4, 3);
- // StartSurfaceTestUtils.createTabStatesAndMetadataFile() has to be after
- // setRootIdForTesting() to get root IDs.
- StartSurfaceTestUtils.createTabStatesAndMetadataFile(new int[] {0, 1, 2, 3, 4});
-
- // Must be after StartSurfaceTestUtils.createTabStatesAndMetadataFile() to read these files.
- StartSurfaceTestUtils.startMainActivityFromLauncher(mActivityTestRule);
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
- RecyclerView recyclerView =
- (RecyclerView) StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta);
- TabUiTestHelper.waitForThumbnailsToFetch(recyclerView);
- // TODO(crbug.com/1065314): Tab group cards should not have favicons.
- mRenderTestRule.render(
- StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta),
- "tabSwitcher_tabGroups_aspect_ratio_point85");
-
- // Resume native initialization and make sure the GTS looks the same.
- StartSurfaceTestUtils.startAndWaitNativeInitialization(mActivityTestRule);
-
- Assert.assertEquals(5, cta.getTabModelSelector().getCurrentModel().getCount());
- Assert.assertEquals(
- 2,
- cta.getTabModelSelector()
- .getTabModelFilterProvider()
- .getCurrentTabModelFilter()
- .getCount());
- Assert.assertEquals(
- 3,
- getRelatedTabListSizeOnUiThread(
- cta.getTabModelSelector()
- .getTabModelFilterProvider()
- .getCurrentTabModelFilter()));
- // TODO(crbug.com/1065314): fix thumbnail changing in post-native rendering and make sure
- // post-native GTS looks the same.
- }
-
- @Test
- @SmallTest
- @Feature({"RenderTest"})
- @CommandLineFlags.Add({
- ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
- INSTANT_START_TEST_BASE_PARAMS + "/show_last_active_tab_only/false"
- })
- @DisableIf.Build(
- message = "Flaky. See https://crbug.com/1091311",
- sdk_is_greater_than = Build.VERSION_CODES.O)
- public void renderTabGroups_ThemeRefactor() throws IOException {
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(0, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(1, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(2, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(3, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(4, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(5, mBrowserControlsStateProvider);
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(6, mBrowserControlsStateProvider);
- TabAttributeCache.setRootIdForTesting(0, 0);
- TabAttributeCache.setRootIdForTesting(1, 0);
- TabAttributeCache.setRootIdForTesting(2, 0);
- TabAttributeCache.setRootIdForTesting(3, 0);
- TabAttributeCache.setRootIdForTesting(4, 0);
- TabAttributeCache.setRootIdForTesting(5, 5);
- TabAttributeCache.setRootIdForTesting(6, 5);
-
- // StartSurfaceTestUtils.createTabStatesAndMetadataFile() has to be after
- // setRootIdForTesting() to get root IDs.
- StartSurfaceTestUtils.createTabStatesAndMetadataFile(new int[] {0, 1, 2, 3, 4, 5, 6});
-
- // Must be after StartSurfaceTestUtils.createTabStatesAndMetadataFile() to read these files.
- StartSurfaceTestUtils.startMainActivityFromLauncher(mActivityTestRule);
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
-
- RecyclerView recyclerView =
- (RecyclerView) StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta);
- TabUiTestHelper.waitForThumbnailsToFetch(recyclerView);
- mRenderTestRule.render(
- StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta),
- "tabSwitcher_tabGroups_theme_enforcement");
- }
-
- @Test
- @MediumTest
- @CommandLineFlags.Add({
- ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
- INSTANT_START_TEST_BASE_PARAMS + "/show_last_active_tab_only/false"
- })
- public void testSingleAsHomepage_CloseTabInCarouselTabSwitcher()
- throws IOException, ExecutionException {
- StartSurfaceTestUtils.createTabStatesAndMetadataFile(new int[] {0});
- StartSurfaceTestUtils.createThumbnailBitmapAndWriteToFile(0, mBrowserControlsStateProvider);
- TabAttributeCache.setTitleForTesting(0, "Google");
-
- StartSurfaceTestUtils.startMainActivityFromLauncher(mActivityTestRule);
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
-
- // Initializes native.
- StartSurfaceTestUtils.startAndWaitNativeInitialization(mActivityTestRule);
- StartSurfaceTestUtils.waitForTabModel(cta);
- TabUiTestHelper.verifyTabModelTabCount(cta, 1, 0);
- onView(
- allOf(
- withParent(
- withId(
- org.chromium.chrome.test.R.id
- .tab_switcher_module_container)),
- withId(org.chromium.chrome.test.R.id.tab_list_recycler_view)))
- .check(matches(isDisplayed()));
- RecyclerView tabListView =
- (RecyclerView) StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta);
- TestThreadUtils.runOnUiThreadBlocking(
- () ->
- tabListView
- .getChildAt(0)
- .findViewById(org.chromium.chrome.test.R.id.action_button)
- .performClick());
-
- TabUiTestHelper.verifyTabModelTabCount(cta, 0, 0);
- assertEquals(
- cta.findViewById(org.chromium.chrome.test.R.id.tab_switcher_title).getVisibility(),
- View.GONE);
- }
-
- @Test
@LargeTest
@CommandLineFlags.Add({
ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
@@ -434,72 +244,6 @@
@Test
@MediumTest
- @DisableFeatures(ChromeFeatureList.START_SURFACE_REFACTOR)
- @CommandLineFlags.Add({
- ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
- INSTANT_START_TEST_BASE_PARAMS
- + "/show_last_active_tab_only/false"
- + "/open_ntp_instead_of_start/false/open_start_as_homepage/true"
- })
- public void testSingleAsHomepage_Landscape_TabSize() throws IOException {
- testSingleAsHomepage_Landscape_TabSize_impl();
- }
-
- @Test
- @MediumTest
- @EnableFeatures(ChromeFeatureList.START_SURFACE_REFACTOR)
- @CommandLineFlags.Add({
- ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
- INSTANT_START_TEST_BASE_PARAMS
- + "/show_last_active_tab_only/false"
- + "/open_ntp_instead_of_start/false/open_start_as_homepage/true"
- })
- public void testSingleAsHomepage_Landscape_TabSize_RefactorEnabled() throws IOException {
- testSingleAsHomepage_Landscape_TabSize_impl();
- }
-
- private void testSingleAsHomepage_Landscape_TabSize_impl() throws IOException {
- StartSurfaceTestUtils.startMainActivityFromLauncher(mActivityTestRule);
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
-
- // Initializes native.
- StartSurfaceTestUtils.startAndWaitNativeInitialization(mActivityTestRule);
- onViewWaiting(allOf(withId(R.id.feed_stream_recycler_view), isDisplayed()));
-
- // Rotate to landscape mode.
- ActivityTestUtils.rotateActivityToOrientation(cta, ORIENTATION_LANDSCAPE);
- CriteriaHelper.pollUiThread(
- () -> {
- Criteria.checkThat(
- cta.getResources().getConfiguration().orientation,
- is(ORIENTATION_LANDSCAPE));
- });
-
- // Launch the first MV tile to open a tab.
- StartSurfaceTestUtils.launchFirstMVTile(cta, /* currentTabCount= */ 0);
- StartSurfaceTestUtils.pressHomePageButton(cta);
-
- // Wait for thumbnail to show.
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
- onViewWaiting(allOf(withId(org.chromium.chrome.test.R.id.tab_thumbnail), isDisplayed()));
-
- RecyclerView recyclerView =
- (RecyclerView) StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta);
- View tabThumbnail = recyclerView.findViewById(org.chromium.chrome.test.R.id.tab_thumbnail);
- assertEquals(
- tabThumbnail.getMeasuredHeight(),
- (int)
- (tabThumbnail.getMeasuredWidth()
- * 1.0
- / TabUtils.PORTRAIT_THUMBNAIL_ASPECT_RATIO),
- 2);
-
- ActivityTestUtils.clearActivityOrientation(cta);
- }
-
- @Test
- @MediumTest
@CommandLineFlags.Add({INSTANT_START_TEST_BASE_PARAMS})
public void testShowStartWhenHomepageDisabledWithImmediateReturn() throws IOException {
Assert.assertTrue(ChromeFeatureList.sInstantStart.isEnabled());
@@ -557,9 +301,8 @@
ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
INSTANT_START_TEST_BASE_PARAMS
})
- public void testRecordLastVisitedTabIsSRPHistogram_Instant(
- boolean isSingleTabSwitcher, boolean isSRP) throws IOException {
- testRecordLastVisitedTabIsSRPHistogram(isSingleTabSwitcher, isSRP);
+ public void testRecordLastVisitedTabIsSRPHistogram_Instant(boolean isSRP) throws IOException {
+ testRecordLastVisitedTabIsSRPHistogram(isSRP);
}
@Test
@@ -570,9 +313,8 @@
ChromeSwitches.DISABLE_NATIVE_INITIALIZATION,
INSTANT_START_TEST_BASE_PARAMS
})
- public void testRecordLastVisitedTabIsSRPHistogram_NoInstant(
- boolean isSingleTabSwitcher, boolean isSRP) throws IOException {
- testRecordLastVisitedTabIsSRPHistogram(isSingleTabSwitcher, isSRP);
+ public void testRecordLastVisitedTabIsSRPHistogram_NoInstant(boolean isSRP) throws IOException {
+ testRecordLastVisitedTabIsSRPHistogram(isSRP);
}
@Test
@@ -619,10 +361,7 @@
.readBoolean(ChromePreferenceKeys.IS_LAST_VISITED_TAB_SRP, false));
}
- private void testRecordLastVisitedTabIsSRPHistogram(boolean isSingleTabSwitcher, boolean isSRP)
- throws IOException {
- StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY.setForTesting(
- isSingleTabSwitcher);
+ private void testRecordLastVisitedTabIsSRPHistogram(boolean isSRP) throws IOException {
StartSurfaceTestUtils.createTabStatesAndMetadataFile(
new int[] {0, 1},
new String[] {"https://www.google.com/search?q=test", "https://www.google.com"},
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java
index 2feee86..c83ecb9 100644
--- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java
+++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java
@@ -216,10 +216,9 @@
StartSurfaceTestUtils.launchFirstMVTile(cta, /* currentTabCount= */ 1);
StartSurfaceTestUtils.pressHomePageButton(cta);
onViewWaiting(withId(R.id.primary_tasks_surface_view));
- onView(allOf(withId(R.id.tab_list_recycler_view), isDisplayed()));
- // Launches the new tab from the carousel tab switcher, and press back button.
- StartSurfaceTestUtils.clickTabInCarousel(/* position= */ 1);
+ // Launches the new tab from the single tab card, and press back button.
+ onViewWaiting(withId(R.id.single_tab_view)).perform(click());
Assert.assertEquals(
TabLaunchType.FROM_START_SURFACE,
cta.getTabModelSelector().getCurrentTab().getLaunchType());
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceNoTabsTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceNoTabsTest.java
index f88ec4e..04693d6 100644
--- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceNoTabsTest.java
+++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceNoTabsTest.java
@@ -111,11 +111,9 @@
onView(withId(R.id.primary_tasks_surface_view)).check(matches(isDisplayed()));
onView(withId(R.id.search_box_text)).check(matches(isDisplayed()));
onView(withId(R.id.mv_tiles_container)).check(matches(isDisplayed()));
- onView(withId(R.id.tab_switcher_title)).check(matches(withEffectiveVisibility(GONE)));
onView(withId(R.id.tab_switcher_module_container))
.check(matches(withEffectiveVisibility(GONE)));
onView(withId(R.id.single_tab_view)).check(matches(withEffectiveVisibility(GONE)));
- onView(withId(R.id.more_tabs)).check(matches(withEffectiveVisibility(GONE)));
onView(withId(R.id.tasks_surface_body)).check(matches(isDisplayed()));
onView(withId(R.id.start_tab_switcher_button)).check(matches(isDisplayed()));
onViewWaiting(withId(R.id.logo)).check(matches(isDisplayed()));
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java
index d2775389..ca14659 100644
--- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java
+++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java
@@ -208,14 +208,16 @@
StartSurfaceTestUtils.waitForStartSurfaceVisible(
mLayoutChangedCallbackHelper, mCurrentlyActiveLayout, cta);
TabUiTestHelper.verifyTabModelTabCount(cta, 1, 0);
- assertEquals(cta.findViewById(R.id.tab_switcher_title).getVisibility(), View.VISIBLE);
+ assertEquals(
+ cta.findViewById(R.id.tab_switcher_module_container).getVisibility(), View.VISIBLE);
TestThreadUtils.runOnUiThreadBlocking(
() -> {
cta.getTabModelSelector().getModel(false).closeAllTabs();
});
TabUiTestHelper.verifyTabModelTabCount(cta, 0, 0);
- assertEquals(cta.findViewById(R.id.tab_switcher_title).getVisibility(), View.GONE);
+ assertEquals(
+ cta.findViewById(R.id.tab_switcher_module_container).getVisibility(), View.GONE);
}
@Test
@@ -243,15 +245,11 @@
cta.getTabModelSelector()
.getTabModelFilterProvider()
.getTabModelFilter(false);
- if (mImmediateReturn) {
- StartSurfaceTestUtils.clickFirstTabInCarousel();
- } else {
- onViewWaiting(
- allOf(
- withId(R.id.toolbar_left_button),
- isDescendantOfA(withId(R.id.bottom_controls))))
- .perform(click());
- }
+ onViewWaiting(
+ allOf(
+ withId(R.id.toolbar_left_button),
+ isDescendantOfA(withId(R.id.bottom_controls))))
+ .perform(click());
onViewWaiting(
allOf(
withId(R.id.tab_list_recycler_view),
@@ -315,57 +313,6 @@
@CommandLineFlags.Add({
START_SURFACE_TEST_SINGLE_ENABLED_PARAMS + "/show_tabs_in_mru_order/true"
})
- public void test_CarouselTabSwitcherShowTabsInMRUOrder() {
- if (!mImmediateReturn) {
- StartSurfaceTestUtils.pressHomePageButton(mActivityTestRule.getActivity());
- }
-
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(
- mLayoutChangedCallbackHelper, mCurrentlyActiveLayout, cta);
- onViewWaiting(withId(R.id.logo));
- Tab tab1 = cta.getCurrentTabModel().getTabAt(0);
-
- // Launches the first site in MV tiles.
- StartSurfaceTestUtils.launchFirstMVTile(cta, /* currentTabCount= */ 1);
- Tab tab2 = cta.getActivityTab();
- // Verifies that the titles of the two Tabs are different.
- TestThreadUtils.runOnUiThreadBlocking(
- () -> {
- Assert.assertNotEquals(tab1.getTitle(), tab2.getTitle());
- });
-
- // Returns to the Start surface.
- StartSurfaceTestUtils.pressHomePageButton(cta);
- StartSurfaceTestUtils.waitForStartSurfaceVisible(cta);
- ViewUtils.waitForVisibleView(
- allOf(
- withParent(withId(R.id.tab_switcher_module_container)),
- withId(R.id.tab_list_recycler_view)));
-
- RecyclerView recyclerView =
- (RecyclerView) StartSurfaceTestUtils.getCarouselTabSwitcherTabListView(cta);
- CriteriaHelper.pollUiThread(() -> 2 == recyclerView.getChildCount());
- // Verifies that the tabs are shown in MRU order: the first card in the carousel Tab
- // switcher is the last created Tab by tapping the MV tile; the second card is the Tab
- // created or restored in setup().
- RecyclerView.ViewHolder firstViewHolder = recyclerView.findViewHolderForAdapterPosition(0);
- TextView title1 = firstViewHolder.itemView.findViewById(R.id.tab_title);
- TestThreadUtils.runOnUiThreadBlocking(
- () -> Assert.assertEquals(tab2.getTitle(), title1.getText()));
-
- RecyclerView.ViewHolder secondViewHolder = recyclerView.findViewHolderForAdapterPosition(1);
- TextView title2 = secondViewHolder.itemView.findViewById(R.id.tab_title);
- TestThreadUtils.runOnUiThreadBlocking(
- () -> Assert.assertEquals(tab1.getTitle(), title2.getText()));
- }
-
- @Test
- @LargeTest
- @Feature({"StartSurface"})
- @CommandLineFlags.Add({
- START_SURFACE_TEST_SINGLE_ENABLED_PARAMS + "/show_tabs_in_mru_order/true"
- })
public void testShow_GridTabSwitcher_AlwaysShowTabsInCreationOrder() {
tabSwitcher_AlwaysShowTabsInGridTabSwitcherInCreationOrderImpl();
}
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
index b291481..9bdeeea 100644
--- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
+++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
@@ -209,39 +209,6 @@
@Test
@MediumTest
@Feature({"StartSurface"})
- @CommandLineFlags.Add({START_SURFACE_TEST_SINGLE_ENABLED_PARAMS})
- public void testShow_SingleAsHomepage() {
- if (!mImmediateReturn) {
- StartSurfaceTestUtils.pressHomePageButton(mActivityTestRule.getActivity());
- }
- ChromeTabbedActivity cta = mActivityTestRule.getActivity();
- StartSurfaceTestUtils.waitForStartSurfaceVisible(
- mLayoutChangedCallbackHelper, mCurrentlyActiveLayout, cta);
-
- onViewWaiting(withId(R.id.primary_tasks_surface_view));
- onViewWaiting(withId(R.id.search_box_text)).check(matches(isDisplayed()));
- onViewWaiting(withId(R.id.mv_tiles_container)).check(matches(isDisplayed()));
- onViewWaiting(withId(R.id.tab_switcher_title)).check(matches(isDisplayed()));
- onViewWaiting(withId(R.id.tab_switcher_module_container)).check(matches(isDisplayed()));
- onView(withId(R.id.tasks_surface_body)).check(matches(isDisplayed()));
-
- StartSurfaceTestUtils.clickMoreTabs(cta);
- StartSurfaceTestUtils.waitForTabSwitcherVisible(cta);
- ViewUtils.waitForVisibleView(
- allOf(
- withParent(withId(TabUiTestHelper.getTabSwitcherParentId(cta))),
- withId(R.id.tab_list_recycler_view)));
-
- StartSurfaceTestUtils.pressBack(mActivityTestRule);
- onViewWaiting(allOf(withId(R.id.primary_tasks_surface_view), isDisplayed()));
-
- StartSurfaceTestUtils.clickFirstTabInCarousel();
- LayoutTestUtils.waitForLayout(cta.getLayoutManager(), LayoutType.BROWSING);
- }
-
- @Test
- @MediumTest
- @Feature({"StartSurface"})
@CommandLineFlags.Add({
START_SURFACE_TEST_SINGLE_ENABLED_PARAMS + "/hide_switch_when_no_incognito_tabs/false"
})
@@ -258,14 +225,13 @@
onViewWaiting(withId(R.id.primary_tasks_surface_view));
onViewWaiting(withId(R.id.search_box_text));
onViewWaiting(withId(R.id.mv_tiles_container)).check(matches(isDisplayed()));
- onViewWaiting(withId(R.id.tab_switcher_title)).check(matches(isDisplayed()));
onViewWaiting(withId(R.id.tab_switcher_module_container)).check(matches(isDisplayed()));
onView(withId(R.id.tasks_surface_body)).check(matches(isDisplayed()));
// TODO(crbug.com/1076274): fix toolbar to make incognito switch part of the view.
onView(withId(R.id.incognito_toggle_tabs)).check(matches(withEffectiveVisibility(GONE)));
- StartSurfaceTestUtils.clickMoreTabs(cta);
+ StartSurfaceTestUtils.clickTabSwitcherButton(cta);
StartSurfaceTestUtils.waitForTabSwitcherVisible(cta);
onView(withId(R.id.incognito_toggle_tabs)).check(matches(withEffectiveVisibility(VISIBLE)));
@@ -282,7 +248,7 @@
onView(withId(R.id.incognito_toggle_tabs)).check(matches(withEffectiveVisibility(GONE)));
- StartSurfaceTestUtils.clickFirstTabInCarousel();
+ onViewWaiting(withId(R.id.single_tab_view)).perform(click());
LayoutTestUtils.waitForLayout(cta.getLayoutManager(), LayoutType.BROWSING);
}
@@ -315,7 +281,6 @@
onViewWaiting(withId(R.id.primary_tasks_surface_view));
onViewWaiting(withId(R.id.search_box_text));
onView(withId(R.id.mv_tiles_container)).check(matches(isDisplayed()));
- onView(withId(R.id.tab_switcher_title)).check(matches(withEffectiveVisibility(GONE)));
onView(withId(R.id.tab_switcher_module_container)).check(matches(isDisplayed()));
onView(withId(R.id.single_tab_view)).check(matches(isDisplayed()));
onView(withId(R.id.tasks_surface_body)).check(matches(isDisplayed()));
@@ -525,27 +490,6 @@
FeedPlaceholderLayout.DISABLE_ANIMATION_SWITCH
})
public void startSurfaceRecordHistogramsTest_SingleTab() {
- startSurfaceRecordHistogramsTest(true);
- }
-
- @Test
- @MediumTest
- @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
- @EnableFeatures({
- ChromeFeatureList.START_SURFACE_RETURN_TIME + "<Study",
- ChromeFeatureList.START_SURFACE_ANDROID + "<Study"
- })
- @CommandLineFlags.Add({
- START_SURFACE_TEST_SINGLE_ENABLED_PARAMS,
- // Disable feed placeholder animation because it causes waitForDeferredStartup() to time
- // out.
- FeedPlaceholderLayout.DISABLE_ANIMATION_SWITCH
- })
- public void startSurfaceRecordHistogramsTest_CarouselTab() {
- startSurfaceRecordHistogramsTest(false);
- }
-
- private void startSurfaceRecordHistogramsTest(boolean isSingleTabSwitcher) {
if (!mImmediateReturn) {
assertNotEquals(0, START_SURFACE_RETURN_TIME_SECONDS.getValue());
StartSurfaceTestUtils.pressHomePageButton(mActivityTestRule.getActivity());
@@ -553,9 +497,6 @@
assertEquals(0, START_SURFACE_RETURN_TIME_SECONDS.getValue());
}
- Assert.assertEquals(
- isSingleTabSwitcher,
- StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY.getValue());
StartSurfaceTestUtils.waitForStartSurfaceVisible(
mLayoutChangedCallbackHelper,
mCurrentlyActiveLayout,
@@ -586,14 +527,12 @@
// Histograms should be only recorded when StartSurface is shown immediately after
// launch.
- if (isSingleTabSwitcher) {
- Assert.assertEquals(
- expectedRecordCount,
- RecordHistogram.getHistogramTotalCountForTesting(
- StartSurfaceConfiguration.getHistogramName(
- SingleTabSwitcherMediator.SINGLE_TAB_TITLE_AVAILABLE_TIME_UMA,
- isInstantStart)));
- }
+ Assert.assertEquals(
+ expectedRecordCount,
+ RecordHistogram.getHistogramTotalCountForTesting(
+ StartSurfaceConfiguration.getHistogramName(
+ SingleTabSwitcherMediator.SINGLE_TAB_TITLE_AVAILABLE_TIME_UMA,
+ isInstantStart)));
Assert.assertEquals(
expectedRecordCount,
@@ -695,7 +634,7 @@
}
/** Verifies the case of start surface -> a tab -> tab switcher -> start surface. */
- StartSurfaceTestUtils.clickFirstTabInCarousel();
+ onViewWaiting(withId(R.id.single_tab_view)).perform(click());
assertFalse(bottomSheetTestSupport.hasSuppressionTokens());
TabUiTestHelper.enterTabSwitcher(cta);
@@ -707,7 +646,7 @@
assertFalse(bottomSheetTestSupport.hasSuppressionTokens());
/** Verifies the case of navigating to a tab -> start surface -> tab switcher. */
- StartSurfaceTestUtils.clickFirstTabInCarousel();
+ onViewWaiting(withId(R.id.single_tab_view)).perform(click());
assertFalse(bottomSheetTestSupport.hasSuppressionTokens());
StartSurfaceTestUtils.pressHomePageButton(cta);
@@ -1038,7 +977,7 @@
}
/**
- * Tests that on navigation from start surface using carousel tab switcher shouldn't use spare
+ * Tests that on navigation from start surface using single tab switcher shouldn't use spare
* tab.
*/
@Test
@@ -1046,7 +985,7 @@
@Feature({"StartSurface"})
@EnableFeatures({ChromeFeatureList.SPARE_TAB, ChromeFeatureList.START_SURFACE_SPARE_TAB})
@CommandLineFlags.Add({START_SURFACE_TEST_SINGLE_ENABLED_PARAMS})
- public void test_DoesntUseSpareTabForNavigationFromCarouselTabSwitcher() {
+ public void test_DoesntUseSpareTabForNavigationFromSingleTabSwitcher() {
if (!mImmediateReturn) return;
ChromeTabbedActivity cta = mActivityTestRule.getActivity();
@@ -1061,7 +1000,7 @@
});
// Navigate from StartSurface using carousel tab switcher.
- StartSurfaceTestUtils.clickFirstTabInCarousel();
+ onViewWaiting(withId(R.id.single_tab_view)).perform(click());
LayoutTestUtils.waitForLayout(cta.getLayoutManager(), LayoutType.BROWSING);
// This shouldn't use spare tab and deletes spare tab once the start surface gets hidden.
@@ -1163,7 +1102,6 @@
onViewWaiting(withId(R.id.tab_switcher_toolbar));
onViewWaiting(withId(R.id.search_box_text)).check(matches(isDisplayed()));
onViewWaiting(withId(R.id.mv_tiles_container)).check(matches(isDisplayed()));
- onViewWaiting(withId(R.id.tab_switcher_title)).check(matches(isDisplayed()));
onViewWaiting(withId(R.id.tab_switcher_module_container)).check(matches(isDisplayed()));
onViewWaiting(withId(R.id.tasks_surface_body));
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java
index bfcd095..6175fa07 100644
--- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java
+++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTestUtils.java
@@ -5,12 +5,10 @@
package org.chromium.chrome.features.start_surface;
import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
-import static androidx.test.espresso.matcher.ViewMatchers.withParent;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.not;
@@ -32,7 +30,6 @@
import androidx.annotation.Nullable;
import androidx.test.espresso.UiController;
import androidx.test.espresso.ViewAction;
-import androidx.test.espresso.contrib.RecyclerViewActions;
import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.uiautomator.UiDevice;
@@ -104,8 +101,8 @@
+ StartSurfaceConfiguration.START_SURFACE_RETURN_TIME_SECONDS_PARAM
+ "/0";
public static final String START_SURFACE_TEST_SINGLE_ENABLED_PARAMS =
- "force-fieldtrial-params=Study.Group:show_last_active_tab_only/false"
- + "/open_ntp_instead_of_start/false/open_start_as_homepage/true";
+ "force-fieldtrial-params=Study.Group:"
+ + "open_ntp_instead_of_start/false/open_start_as_homepage/true";
public static final String START_SURFACE_TEST_BASE_PARAMS =
"force-fieldtrial-params=Study.Group:";
@@ -627,23 +624,6 @@
TabUiTestHelper.verifyTabModelTabCount(cta, currentTabCount + 1, 0);
}
- /** Click the first tab in carousel tab switcher. */
- public static void clickFirstTabInCarousel() {
- clickTabInCarousel(0);
- }
-
- /**
- * Click the tab at specific position in carousel tab switcher.
- * @param position The position of the tab which is clicked.
- */
- public static void clickTabInCarousel(int position) {
- onViewWaiting(
- allOf(
- withParent(withId(R.id.tab_switcher_module_container)),
- withId(R.id.tab_list_recycler_view)))
- .perform(RecyclerViewActions.actionOnItemAtPosition(position, click()));
- }
-
/**
* Click the tab switcher button to navigate to tab switcher surface.
* @param cta The ChromeTabbedActivity under test.
@@ -658,23 +638,6 @@
}
/**
- * Click "more_tabs" to navigate to tab switcher surface.
- * @param cta The ChromeTabbedActivity under test.
- */
- public static void clickMoreTabs(ChromeTabbedActivity cta) {
- // Note that onView(R.id.more_tabs).perform(click()) can not be used since it requires 90
- // percent of the view's area is displayed to the users. However, this view has negative
- // margin which makes the percentage is less than 90.
- // TODO(crbug.com/1186752): Investigate whether this would be a problem for real users.
- try {
- TestThreadUtils.runOnUiThreadBlocking(
- () -> cta.findViewById(R.id.more_tabs).performClick());
- } catch (ExecutionException e) {
- fail("Failed to tap 'more tabs' " + e.toString());
- }
- }
-
- /**
* Set MV tiles on start surface by setting suggestionsDeps.
* @param suggestionsDeps The SuggestionsDependenciesRule under test.
* @return The MostVisitedSites the test used.
@@ -736,12 +699,6 @@
ChromeApplicationTestUtils.waitUntilChromeInBackground();
}
- /** Gets the "tab_list_recycler_view" from the carousel tab switcher module on Start surface. */
- static View getCarouselTabSwitcherTabListView(ChromeTabbedActivity cta) {
- return cta.findViewById(R.id.tab_switcher_module_container)
- .findViewById(R.id.tab_list_recycler_view);
- }
-
/** Presses the back button and verifies that Chrome goes to the background. */
public static void pressBackAndVerifyChromeToBackground(ChromeTabbedActivityTestRule testRule) {
// Verifies Chrome is closed.
diff --git a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceMediatorUnitTest.java b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceMediatorUnitTest.java
index 93965625..a91fe9f 100644
--- a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceMediatorUnitTest.java
+++ b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/start_surface/StartSurfaceMediatorUnitTest.java
@@ -45,14 +45,12 @@
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_LENS_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_SURFACE_BODY_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_TITLE_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_VISIBLE;
+import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CARD_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_VOICE_RECOGNITION_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.SINGLE_TAB_TOP_MARGIN;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TAB_SWITCHER_TITLE_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TASKS_SURFACE_BODY_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.VOICE_SEARCH_BUTTON_CLICK_LISTENER;
@@ -152,7 +150,7 @@
@Rule public JniMocker mJniMocker = new JniMocker();
@Rule public TestRule mProcessor = new Features.JUnitProcessor();
- @Mock private TabSwitcher.Controller mCarouselOrSingleTabSwitcherModuleController;
+ @Mock private TabSwitcher.Controller mSingleTabSwitcherModuleController;
@Mock private TabModelSelector mTabModelSelector;
@Mock private Tab mTab;
@Mock private TabModel mNormalTabModel;
@@ -183,13 +181,11 @@
@Mock private OnClickListener mTabSwitcherClickHandler;
@Mock private TabSwitcher mTabSwitcherModule;
@Mock private TabListDelegate mTabListDelegate;
- @Mock private TabSwitcher.Controller mSingleTabSwitcherModuleController;
@Captor private ArgumentCaptor<TabModelSelectorObserver> mTabModelSelectorObserverCaptor;
@Captor private ArgumentCaptor<TabModelObserver> mTabModelObserverCaptor;
@Captor
- private ArgumentCaptor<TabSwitcherViewObserver>
- mCarouselTabSwitcherModuleVisibilityObserverCaptor;
+ private ArgumentCaptor<TabSwitcherViewObserver> mCardTabSwitcherModuleVisibilityObserverCaptor;
@Captor private ArgumentCaptor<UrlFocusChangeListener> mUrlFocusChangeListenerCaptor;
@@ -204,11 +200,9 @@
@Captor private ArgumentCaptor<TemplateUrlServiceObserver> mTemplateUrlServiceObserverCaptor;
private final ObservableSupplierImpl<Boolean>
- mCarouselTabSwitcherModuleControllerBackPressStateSupplier =
- new ObservableSupplierImpl<>();
+ mCardTabSwitcherModuleControllerBackPressStateSupplier = new ObservableSupplierImpl<>();
private final ObservableSupplierImpl<Boolean>
- mCarouselTabSwitcherModuleControllerDialogVisibleSupplier =
- new ObservableSupplierImpl<>();
+ mCardTabSwitcherModuleControllerDialogVisibleSupplier = new ObservableSupplierImpl<>();
private final ObservableSupplierImpl<Boolean> mSecondaryControllerBackPressStateSupplier =
new ObservableSupplierImpl<>();
private final ObservableSupplierImpl<Boolean> mSecondaryControllerDialogVisibleSupplier =
@@ -250,14 +244,14 @@
when(mTabModelFilterProvider.getTabModelFilter(false)).thenReturn(mNormalTabModelFilter);
when(mTabModelFilterProvider.getTabModelFilter(true)).thenReturn(mNormalTabModelFilter);
- doReturn(TabSwitcherType.CAROUSEL)
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ doReturn(TabSwitcherType.SINGLE)
+ .when(mSingleTabSwitcherModuleController)
.getTabSwitcherType();
- doReturn(mCarouselTabSwitcherModuleControllerBackPressStateSupplier)
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ doReturn(mCardTabSwitcherModuleControllerBackPressStateSupplier)
+ .when(mSingleTabSwitcherModuleController)
.getHandleBackPressChangedSupplier();
- doReturn(mCarouselTabSwitcherModuleControllerDialogVisibleSupplier)
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ doReturn(mCardTabSwitcherModuleControllerDialogVisibleSupplier)
+ .when(mSingleTabSwitcherModuleController)
.isDialogVisibleSupplier();
doReturn(mSecondaryTasksSurfaceController)
.when(mSecondaryTasksSurfaceInitializer)
@@ -292,21 +286,21 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ false);
verify(mTabModelSelector, never()).addObserver(mTabModelSelectorObserverCaptor.capture());
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
mediator.showOverview(false);
- verify(mCarouselOrSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
+ verify(mSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
mediator.hideTabSwitcherView(true);
- verify(mCarouselOrSingleTabSwitcherModuleController).hideTabSwitcherView(eq(true));
+ verify(mSingleTabSwitcherModuleController).hideTabSwitcherView(eq(true));
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
// TODO(crbug.com/1020223): Test the other SurfaceMode.NO_START_SURFACE operations.
}
@@ -319,9 +313,9 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
// Sets the current StartSurfaceState to SHOWING_START before calling the
@@ -330,7 +324,7 @@
// {@link StartSurfaceMediator#showOverview()}.
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_START);
- verify(mCarouselOrSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
+ verify(mSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
verify(mOmniboxStub, times(2))
.addUrlFocusChangeListener(mUrlFocusChangeListenerCaptor.capture());
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
@@ -339,8 +333,8 @@
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
UrlFocusChangeListener urlFocusChangeListener =
mUrlFocusChangeListenerCaptor.getAllValues().get(1);
@@ -352,20 +346,20 @@
assertThat(mPropertyModel.get(IS_VOICE_RECOGNITION_BUTTON_VISIBLE), equalTo(true));
mediator.hideTabSwitcherView(true);
- verify(mCarouselOrSingleTabSwitcherModuleController).hideTabSwitcherView(eq(true));
+ verify(mSingleTabSwitcherModuleController).hideTabSwitcherView(eq(true));
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(false));
verify(mOmniboxStub).removeUrlFocusChangeListener(mUrlFocusChangeListenerCaptor.getValue());
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
// TODO(crbug.com/1020223): Test the other SurfaceMode.SINGLE_PANE operations.
}
// TODO(crbug.com/1020223): Test SurfaceMode.SINGLE_PANE and SurfaceMode.TWO_PANES modes.
@Test
- public void hideTabCarouselWithNoTabs() {
+ public void hideTabCardWithNoTabs() {
doReturn(false).when(mTabModelSelector).isIncognitoSelected();
doReturn(mVoiceRecognitionHandler).when(mOmniboxStub).getVoiceRecognitionHandler();
doReturn(true).when(mVoiceRecognitionHandler).isVoiceSearchEnabled();
@@ -377,12 +371,11 @@
showHomepageAndVerify(mediator, StartSurfaceState.SHOWN_HOMEPAGE);
verify(mNormalTabModel).addObserver(mTabModelObserverCaptor.capture());
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
}
@Test
- public void hideTabCarouselWhenClosingLastTab() {
+ public void hideTabCardWhenClosingLastTab() {
doReturn(false).when(mTabModelSelector).isIncognitoSelected();
doReturn(mVoiceRecognitionHandler).when(mOmniboxStub).getVoiceRecognitionHandler();
doReturn(true).when(mVoiceRecognitionHandler).isVoiceSearchEnabled();
@@ -395,23 +388,20 @@
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
verify(mNormalTabModel).addObserver(mTabModelObserverCaptor.capture());
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
mTabModelObserverCaptor.getValue().willCloseTab(mock(Tab.class), false, true);
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
doReturn(1).when(mNormalTabModel).getCount();
mTabModelObserverCaptor.getValue().willCloseTab(mock(Tab.class), false, true);
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
}
@Test
- public void hideTabCarouselWhenClosingAndSelectingNtpTab() {
+ public void hideTabCardWhenClosingAndSelectingNtpTab() {
doReturn(false).when(mTabModelSelector).isIncognitoSelected();
doReturn(mVoiceRecognitionHandler).when(mOmniboxStub).getVoiceRecognitionHandler();
doReturn(true).when(mVoiceRecognitionHandler).isVoiceSearchEnabled();
@@ -424,26 +414,23 @@
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
verify(mNormalTabModel).addObserver(mTabModelObserverCaptor.capture());
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
Tab tab1 = mock(Tab.class);
doReturn(JUnitTestGURLs.URL_1).when(tab1).getUrl();
mTabModelObserverCaptor.getValue().didSelectTab(tab1, TabSelectionType.FROM_CLOSE, 1);
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
Tab ntpTab = mock(Tab.class);
doReturn(JUnitTestGURLs.NTP_URL).when(ntpTab).getUrl();
mTabModelObserverCaptor.getValue().didSelectTab(ntpTab, TabSelectionType.FROM_CLOSE, 2);
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
}
@Test
- public void reshowTabCarouselWhenTabClosureUndone() {
+ public void reshowTabCardWhenTabClosureUndone() {
doReturn(false).when(mTabModelSelector).isIncognitoSelected();
doReturn(mVoiceRecognitionHandler).when(mOmniboxStub).getVoiceRecognitionHandler();
doReturn(true).when(mVoiceRecognitionHandler).isVoiceSearchEnabled();
@@ -460,13 +447,11 @@
mTabModelObserverCaptor.getValue().willCloseTab(mock(Tab.class), false, true);
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
mTabModelObserverCaptor.getValue().tabClosureUndone(mock(Tab.class));
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
doReturn(2).when(mNormalTabModel).getCount();
mediator.setStartSurfaceState(StartSurfaceState.SHOWN_TABSWITCHER);
@@ -474,8 +459,7 @@
mTabModelObserverCaptor.getValue().tabClosureUndone(mock(Tab.class));
doReturn(0).when(mNormalTabModel).getCount();
mTabModelObserverCaptor.getValue().willCloseTab(mock(Tab.class), false, true);
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(true));
}
@@ -601,19 +585,17 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
mediator.setSecondaryTasksSurfacePropertyModel(mSecondaryTasksSurfacePropertyModel);
- mediator.onClick(mock(View.class));
+ mediator.setStartSurfaceState(StartSurfaceState.SHOWN_TABSWITCHER);
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.SHOWN_TABSWITCHER));
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(true));
assertThat(
mSecondaryTasksSurfacePropertyModel.get(IS_FAKE_SEARCH_BOX_VISIBLE),
@@ -626,8 +608,7 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
mediator.startedHiding();
@@ -655,8 +636,7 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(true));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(true));
assertThat(
mSecondaryTasksSurfacePropertyModel.get(IS_FAKE_SEARCH_BOX_VISIBLE),
@@ -688,8 +668,7 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
doReturn(true).when(mTabModelSelector).isIncognitoSelected();
@@ -708,8 +687,7 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
}
@@ -735,20 +713,18 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(EXPLORE_SURFACE_COORDINATOR), equalTo(null));
mediator.setSecondaryTasksSurfacePropertyModel(mSecondaryTasksSurfacePropertyModel);
- mediator.onClick(mock(View.class));
+ mediator.setStartSurfaceState(StartSurfaceState.SHOWN_TABSWITCHER);
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.SHOWN_TABSWITCHER));
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(true));
assertThat(
mSecondaryTasksSurfacePropertyModel.get(IS_FAKE_SEARCH_BOX_VISIBLE),
@@ -762,8 +738,7 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(EXPLORE_SURFACE_COORDINATOR), equalTo(null));
@@ -791,8 +766,7 @@
assertThat(mPropertyModel.get(IS_INCOGNITO), equalTo(false));
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(MV_TILES_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(mPropertyModel.get(IS_SECONDARY_SURFACE_VISIBLE), equalTo(false));
assertThat(mPropertyModel.get(EXPLORE_SURFACE_COORDINATOR), equalTo(null));
@@ -845,9 +819,9 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
mediator.setSecondaryTasksSurfacePropertyModel(mSecondaryTasksSurfacePropertyModel);
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
@@ -859,8 +833,8 @@
assertThat(mPropertyModel.get(BOTTOM_BAR_HEIGHT), equalTo(30));
assertThat(mSecondaryTasksSurfacePropertyModel.get(BOTTOM_BAR_HEIGHT), equalTo(0));
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
mBrowserControlsStateProviderCaptor.getValue().onBottomControlsHeightChanged(0, 0);
assertThat(mPropertyModel.get(BOTTOM_BAR_HEIGHT), equalTo(0));
@@ -871,7 +845,7 @@
assertThat(mSecondaryTasksSurfacePropertyModel.get(BOTTOM_BAR_HEIGHT), equalTo(0));
mediator.hideTabSwitcherView(false);
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
verify(mBrowserControlsStateProvider)
.removeObserver(mBrowserControlsStateProviderCaptor.getValue());
}
@@ -980,9 +954,9 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
if (!ChromeFeatureList.sStartSurfaceRefactor.isEnabled()) {
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
@@ -990,7 +964,7 @@
}
showHomepageAndVerify(mediator, StartSurfaceState.SHOWN_HOMEPAGE);
verify(mTabModelSelector).addObserver(mTabModelSelectorObserverCaptor.capture());
- verify(mCarouselOrSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
+ verify(mSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
verify(mOmniboxStub, times(2))
.addUrlFocusChangeListener(mUrlFocusChangeListenerCaptor.capture());
assertThat(mPropertyModel.get(IS_FAKE_SEARCH_BOX_VISIBLE), equalTo(true));
@@ -1072,9 +1046,9 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
mediator.showOverview(false);
@@ -1089,15 +1063,15 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
mediator.setSecondaryTasksSurfacePropertyModel(mSecondaryTasksSurfacePropertyModel);
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
- verify(mCarouselOrSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
+ verify(mSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
verify(mOmniboxStub, times(2))
.addUrlFocusChangeListener(mUrlFocusChangeListenerCaptor.capture());
assertThat(mPropertyModel.get(IS_FAKE_SEARCH_BOX_VISIBLE), equalTo(true));
@@ -1134,19 +1108,18 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- InOrder carouselTabSwitcherModuleController =
- inOrder(mCarouselOrSingleTabSwitcherModuleController);
+ InOrder carouselTabSwitcherModuleController = inOrder(mSingleTabSwitcherModuleController);
carouselTabSwitcherModuleController
- .verify(mCarouselOrSingleTabSwitcherModuleController)
+ .verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
mediator.setSecondaryTasksSurfacePropertyModel(mSecondaryTasksSurfacePropertyModel);
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_PREVIOUS);
carouselTabSwitcherModuleController
- .verify(mCarouselOrSingleTabSwitcherModuleController)
+ .verify(mSingleTabSwitcherModuleController)
.showTabSwitcherView(eq(false));
InOrder omniboxStub = inOrder(mOmniboxStub);
omniboxStub
@@ -1156,12 +1129,12 @@
assertThat(mediator.shouldShowTabSwitcherToolbar(), equalTo(true));
mediator.hideTabSwitcherView(true);
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_PREVIOUS);
carouselTabSwitcherModuleController
- .verify(mCarouselOrSingleTabSwitcherModuleController)
+ .verify(mSingleTabSwitcherModuleController)
.showTabSwitcherView(eq(false));
omniboxStub
.verify(mOmniboxStub, times(2))
@@ -1177,8 +1150,8 @@
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.SHOWN_TABSWITCHER));
mediator.hideTabSwitcherView(true);
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
mediator.setStartSurfaceState(StartSurfaceState.SHOWING_PREVIOUS);
mediator.showOverview(false);
@@ -1197,12 +1170,11 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- InOrder carouselTabSwitcherModuleController =
- inOrder(mCarouselOrSingleTabSwitcherModuleController);
+ InOrder carouselTabSwitcherModuleController = inOrder(mSingleTabSwitcherModuleController);
carouselTabSwitcherModuleController
- .verify(mCarouselOrSingleTabSwitcherModuleController)
+ .verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
mPropertyModel.set(IS_EXPLORE_SURFACE_VISIBLE, true);
@@ -1210,7 +1182,7 @@
.thenReturn(mExploreSurfaceCoordinator);
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
carouselTabSwitcherModuleController
- .verify(mCarouselOrSingleTabSwitcherModuleController)
+ .verify(mSingleTabSwitcherModuleController)
.showTabSwitcherView(eq(false));
assertThat(
mPropertyModel.get(EXPLORE_SURFACE_COORDINATOR),
@@ -1218,8 +1190,8 @@
doReturn(TabLaunchType.FROM_START_SURFACE).when(mTab).getLaunchType();
mediator.hideTabSwitcherView(true);
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
assertNull(mPropertyModel.get(EXPLORE_SURFACE_COORDINATOR));
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_PREVIOUS);
@@ -1229,8 +1201,8 @@
doReturn(TabLaunchType.FROM_LINK).when(mTab).getLaunchType();
mediator.hideTabSwitcherView(true);
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
assertNull(mPropertyModel.get(EXPLORE_SURFACE_COORDINATOR));
}
@@ -1306,9 +1278,9 @@
/* isRefactorEnabled= */ false,
/* hadWarmStart= */ false,
/* useMagicSpace= */ false);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
assertThat(mediator.getStartSurfaceState(), equalTo(StartSurfaceState.NOT_SHOWN));
// Sets the current StartSurfaceState to SHOWING_START before calling the
@@ -1317,7 +1289,7 @@
// {@link StartSurfaceMediator#showOverview()}.
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_START);
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(false));
- verify(mCarouselOrSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
+ verify(mSingleTabSwitcherModuleController).showTabSwitcherView(eq(false));
mediator.initWithNative(
mOmniboxStub, mExploreSurfaceCoordinatorFactory, mPrefService, null);
@@ -1331,8 +1303,6 @@
resources.getDimensionPixelSize(R.dimen.tasks_surface_body_top_margin);
int mvTilesContainerTopMargin =
resources.getDimensionPixelSize(R.dimen.mv_tiles_container_top_margin);
- int tabSwitcherTitleTopMargin =
- resources.getDimensionPixelSize(R.dimen.tab_switcher_title_top_margin);
createStartSurfaceMediatorWithoutInit(
/* isStartSurfaceEnabled= */ true,
@@ -1345,9 +1315,6 @@
assertThat(
mPropertyModel.get(MV_TILES_CONTAINER_TOP_MARGIN),
equalTo(mvTilesContainerTopMargin));
- assertThat(
- mPropertyModel.get(TAB_SWITCHER_TITLE_TOP_MARGIN),
- equalTo(tabSwitcherTitleTopMargin));
assertThat(mPropertyModel.get(MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN), equalTo(0));
assertThat(mPropertyModel.get(SINGLE_TAB_TOP_MARGIN), equalTo(0));
@@ -1358,8 +1325,6 @@
public void initializeStartSurfaceTopMargins_SurfacePolish() {
Resources resources = ContextUtils.getApplicationContext().getResources();
int tasksSurfaceBodyTopMarginPolished = 0;
- int tabSwitcherTitleTopMargin =
- resources.getDimensionPixelSize(R.dimen.tab_switcher_title_top_margin);
createStartSurfaceMediatorWithoutInit(
/* isStartSurfaceEnabled= */ true,
@@ -1370,9 +1335,6 @@
mPropertyModel.get(TASKS_SURFACE_BODY_TOP_MARGIN),
equalTo(tasksSurfaceBodyTopMarginPolished));
assertThat(mPropertyModel.get(MV_TILES_CONTAINER_TOP_MARGIN), equalTo(0));
- assertThat(
- mPropertyModel.get(TAB_SWITCHER_TITLE_TOP_MARGIN),
- equalTo(tabSwitcherTitleTopMargin));
assertThat(mPropertyModel.get(MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN), equalTo(0));
assertThat(mPropertyModel.get(SINGLE_TAB_TOP_MARGIN), equalTo(0));
@@ -1386,7 +1348,7 @@
Context context = ContextUtils.getApplicationContext();
Assert.assertTrue(ReturnToChromeUtil.shouldImproveStartWhenFeedIsDisabled(context));
doReturn(TabSwitcherType.SINGLE)
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ .when(mSingleTabSwitcherModuleController)
.getTabSwitcherType();
Resources resources = context.getResources();
@@ -1397,8 +1359,6 @@
int mvTilesContainerTopMargin =
resources.getDimensionPixelOffset(R.dimen.tile_grid_layout_top_margin)
+ resources.getDimensionPixelOffset(R.dimen.ntp_search_box_bottom_margin);
- int tabSwitcherTitleTopMargin =
- resources.getDimensionPixelSize(R.dimen.tab_switcher_title_top_margin);
int singleTopMargin =
resources.getDimensionPixelSize(
R.dimen.single_tab_view_top_margin_for_feed_improvement);
@@ -1415,9 +1375,6 @@
assertThat(
mPropertyModel.get(MV_TILES_CONTAINER_TOP_MARGIN),
equalTo(mvTilesContainerTopMargin));
- assertThat(
- mPropertyModel.get(TAB_SWITCHER_TITLE_TOP_MARGIN),
- equalTo(tabSwitcherTitleTopMargin));
assertThat(mPropertyModel.get(SINGLE_TAB_TOP_MARGIN), equalTo(singleTopMargin));
// Tasks surface body top margin should be updated when tab carousel/single card visibility
@@ -1425,14 +1382,14 @@
doReturn(0).when(mNormalTabModel).getCount();
doReturn(true).when(mTabModelSelector).isTabStateInitialized();
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
assertThat(
mPropertyModel.get(TASKS_SURFACE_BODY_TOP_MARGIN),
equalTo(tasksSurfaceBodyTopMarginWithoutTab));
doReturn(2).when(mNormalTabModel).getCount();
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
assertThat(
mPropertyModel.get(TASKS_SURFACE_BODY_TOP_MARGIN),
equalTo(tasksSurfaceBodyTopMarginWithTab));
@@ -1491,7 +1448,7 @@
doReturn(mVoiceRecognitionHandler).when(mOmniboxStub).getVoiceRecognitionHandler();
doReturn(true).when(mVoiceRecognitionHandler).isVoiceSearchEnabled();
doReturn(TabSwitcherType.SINGLE)
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ .when(mSingleTabSwitcherModuleController)
.getTabSwitcherType();
StartSurfaceMediator mediator =
@@ -1502,8 +1459,7 @@
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
verify(mNormalTabModel).addObserver(mTabModelObserverCaptor.capture());
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(true));
}
@Test
@@ -1515,7 +1471,7 @@
doReturn(true).when(mTabModelSelector).isTabStateInitialized();
doReturn(TabSwitcherType.SINGLE)
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ .when(mSingleTabSwitcherModuleController)
.getTabSwitcherType();
MockTab regularTab = new MockTab(1, mProfile);
regularTab.setGurlOverrideForTesting(JUnitTestGURLs.NTP_URL);
@@ -1527,8 +1483,7 @@
showHomepageAndVerify(mediator, StartSurfaceState.SHOWING_HOMEPAGE);
verify(mNormalTabModel).addObserver(mTabModelObserverCaptor.capture());
assertThat(mPropertyModel.get(IS_SHOWING_OVERVIEW), equalTo(true));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_VISIBLE), equalTo(false));
- assertThat(mPropertyModel.get(IS_TAB_CAROUSEL_TITLE_VISIBLE), equalTo(false));
+ assertThat(mPropertyModel.get(IS_TAB_CARD_VISIBLE), equalTo(false));
}
@Test
@@ -1656,9 +1611,9 @@
StartSurfaceMediator mediator =
createStartSurfaceMediator(/* isStartSurfaceEnabled= */ true);
- verify(mCarouselOrSingleTabSwitcherModuleController)
+ verify(mSingleTabSwitcherModuleController)
.addTabSwitcherViewObserver(
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.capture());
+ mCardTabSwitcherModuleVisibilityObserverCaptor.capture());
showHomepageAndVerify(mediator, StartSurfaceState.SHOWN_HOMEPAGE);
assertThat(mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE), equalTo(true));
@@ -1667,14 +1622,14 @@
UrlFocusChangeListener listener = mUrlFocusChangeListenerCaptor.getAllValues().get(0);
assertThat(listener, equalTo(mFeedReliabilityLogger));
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedShowing();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().startedHiding();
mediator.hideTabSwitcherView(true);
verify(mOmniboxStub).removeUrlFocusChangeListener(listener);
- mCarouselTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
+ mCardTabSwitcherModuleVisibilityObserverCaptor.getValue().finishedHiding();
}
@Test
@@ -1697,8 +1652,8 @@
doReturn(false).when(mTabModelSelector).isIncognitoSelected();
doReturn(mVoiceRecognitionHandler).when(mOmniboxStub).getVoiceRecognitionHandler();
doReturn(true).when(mVoiceRecognitionHandler).isVoiceSearchEnabled();
- doAnswer((inv) -> mCarouselTabSwitcherModuleControllerDialogVisibleSupplier.get())
- .when(mCarouselOrSingleTabSwitcherModuleController)
+ doAnswer((inv) -> mCardTabSwitcherModuleControllerDialogVisibleSupplier.get())
+ .when(mSingleTabSwitcherModuleController)
.isDialogVisible();
doAnswer((inv) -> mSecondaryControllerDialogVisibleSupplier.get())
.when(mSecondaryTasksSurfaceController)
@@ -1712,21 +1667,21 @@
mediator.setStartSurfaceState(StartSurfaceState.SHOWN_TABSWITCHER);
Assert.assertFalse(
"Should not intercept back press by default", mediator.shouldInterceptBackPress());
- mCarouselTabSwitcherModuleControllerDialogVisibleSupplier.set(true);
+ mCardTabSwitcherModuleControllerDialogVisibleSupplier.set(true);
Assert.assertTrue(mediator.shouldInterceptBackPress());
- doReturn(true).when(mCarouselOrSingleTabSwitcherModuleController).onBackPressed();
+ doReturn(true).when(mSingleTabSwitcherModuleController).onBackPressed();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController).onBackPressed();
+ verify(mSingleTabSwitcherModuleController).onBackPressed();
- mCarouselTabSwitcherModuleControllerDialogVisibleSupplier.set(false);
+ mCardTabSwitcherModuleControllerDialogVisibleSupplier.set(false);
Assert.assertFalse(mediator.shouldInterceptBackPress());
- mCarouselTabSwitcherModuleControllerDialogVisibleSupplier.set(true);
+ mCardTabSwitcherModuleControllerDialogVisibleSupplier.set(true);
mSecondaryControllerDialogVisibleSupplier.set(true);
Assert.assertTrue(mediator.shouldInterceptBackPress());
doReturn(true).when(mSecondaryTasksSurfaceController).onBackPressed();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController).onBackPressed();
+ verify(mSingleTabSwitcherModuleController).onBackPressed();
verify(
mSecondaryTasksSurfaceController,
description(
@@ -1735,7 +1690,7 @@
.onBackPressed();
mSecondaryControllerDialogVisibleSupplier.set(false);
- mCarouselTabSwitcherModuleControllerDialogVisibleSupplier.set(false);
+ mCardTabSwitcherModuleControllerDialogVisibleSupplier.set(false);
verify(
mSecondaryTasksSurfaceController,
description(
@@ -1780,13 +1735,13 @@
showHomepageAndVerify(mediator, state);
- doReturn(true).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(true).when(mSingleTabSwitcherModuleController).isDialogVisible();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController).onBackPressed();
+ verify(mSingleTabSwitcherModuleController).onBackPressed();
- doReturn(false).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(false).when(mSingleTabSwitcherModuleController).isDialogVisible();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController, times(2)).onBackPressed();
+ verify(mSingleTabSwitcherModuleController, times(2)).onBackPressed();
}
/**
@@ -1810,16 +1765,16 @@
showHomepageAndVerify(mediator, StartSurfaceState.SHOWN_HOMEPAGE);
- doReturn(true).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(true).when(mSingleTabSwitcherModuleController).isDialogVisible();
doReturn(false).when(mSecondaryTasksSurfaceController).isDialogVisible();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController).onBackPressed();
+ verify(mSingleTabSwitcherModuleController).onBackPressed();
verify(mSecondaryTasksSurfaceController, never()).onBackPressed();
- doReturn(false).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(false).when(mSingleTabSwitcherModuleController).isDialogVisible();
doReturn(false).when(mSecondaryTasksSurfaceController).isDialogVisible();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController, times(2)).onBackPressed();
+ verify(mSingleTabSwitcherModuleController, times(2)).onBackPressed();
// Reach the end of #onBackPressed.
verify(mSecondaryTasksSurfaceController).onBackPressed();
}
@@ -1837,13 +1792,13 @@
showHomepageAndVerify(mediator, null);
- doReturn(true).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(true).when(mSingleTabSwitcherModuleController).isDialogVisible();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController, times(1)).onBackPressed();
+ verify(mSingleTabSwitcherModuleController, times(1)).onBackPressed();
- doReturn(false).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(false).when(mSingleTabSwitcherModuleController).isDialogVisible();
mediator.onBackPressed();
- verify(mCarouselOrSingleTabSwitcherModuleController, times(2)).onBackPressed();
+ verify(mSingleTabSwitcherModuleController, times(2)).onBackPressed();
}
/**
@@ -1865,7 +1820,7 @@
mediator.setStartSurfaceState(StartSurfaceState.SHOWN_TABSWITCHER);
Assert.assertEquals(StartSurfaceState.SHOWN_TABSWITCHER, mediator.getStartSurfaceState());
// The primary task surface is invisible when showing the Tab Switcher.
- doReturn(false).when(mCarouselOrSingleTabSwitcherModuleController).isDialogVisible();
+ doReturn(false).when(mSingleTabSwitcherModuleController).isDialogVisible();
doReturn(true).when(mSecondaryTasksSurfaceController).isDialogVisible();
doReturn(true).when(mSecondaryTasksSurfaceController).onBackPressed();
@@ -1873,7 +1828,7 @@
HistogramWatcher.newSingleRecordWatcher(
"Android.BackPress.Intercept", 4); // START_SURFACE enum value
Assert.assertTrue(mediator.onBackPressed());
- verify(mCarouselOrSingleTabSwitcherModuleController, never()).onBackPressed();
+ verify(mSingleTabSwitcherModuleController, never()).onBackPressed();
verify(mSecondaryTasksSurfaceController).onBackPressed();
histogramWatcher.assertExpected();
@@ -2196,7 +2151,7 @@
boolean hasTasksView = isStartSurfaceEnabled && !isRefactorEnabled;
boolean hasTabSwitcherModule = isStartSurfaceEnabled && isRefactorEnabled && !useMagicSpace;
return new StartSurfaceMediator(
- useMagicSpace ? null : mCarouselOrSingleTabSwitcherModuleController,
+ useMagicSpace ? null : mSingleTabSwitcherModuleController,
/* tabSwitcherContainer= */ null,
hasTabSwitcherModule ? mTabSwitcherModule : null,
mTabModelSelector,
diff --git a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksSurfaceMediatorUnitTest.java b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksSurfaceMediatorUnitTest.java
index a508ef0..514061e2 100644
--- a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksSurfaceMediatorUnitTest.java
+++ b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksSurfaceMediatorUnitTest.java
@@ -22,8 +22,6 @@
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_INITIALIZED;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_SURFACE_BODY_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_TITLE_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_VOICE_RECOGNITION_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.VOICE_SEARCH_BUTTON_CLICK_LISTENER;
@@ -76,7 +74,7 @@
mMediator =
new TasksSurfaceMediator(
- mPropertyModel, mLearnMoreOnClickListener, mCookieControlsManager, true);
+ mPropertyModel, mLearnMoreOnClickListener, mCookieControlsManager);
mMediator.initWithNative(mOmniboxStub, mFeedReliabilityLogger);
}
@@ -87,8 +85,6 @@
@Test
public void initialization() {
- verify(mPropertyModel).set(eq(IS_TAB_CAROUSEL_VISIBLE), eq(true));
- verify(mPropertyModel).set(eq(IS_TAB_CAROUSEL_TITLE_VISIBLE), eq(true));
verify(mPropertyModel)
.set(eq(FAKE_SEARCH_BOX_CLICK_LISTENER), mFakeboxClickListenerCaptor.capture());
verify(mPropertyModel)
diff --git a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksViewBinderUnitTest.java b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksViewBinderUnitTest.java
index 3b3fe57..4746eb2d 100644
--- a/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksViewBinderUnitTest.java
+++ b/chrome/android/features/start_surface/junit/src/org/chromium/chrome/features/tasks/TasksViewBinderUnitTest.java
@@ -19,16 +19,13 @@
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_INITIALIZED;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_INCOGNITO_DESCRIPTION_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_LENS_BUTTON_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_TITLE_VISIBLE;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CAROUSEL_VISIBLE;
+import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_TAB_CARD_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.IS_VOICE_RECOGNITION_BUTTON_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.LENS_BUTTON_CLICK_LISTENER;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MORE_TABS_CLICK_LISTENER;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_LEFT_RIGHT_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_CONTAINER_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.MV_TILES_VISIBLE;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.SINGLE_TAB_TOP_MARGIN;
-import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TAB_SWITCHER_TITLE_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TASKS_SURFACE_BODY_TOP_MARGIN;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.TOP_TOOLBAR_PLACEHOLDER_HEIGHT;
import static org.chromium.chrome.features.tasks.TasksSurfaceProperties.VOICE_SEARCH_BUTTON_CLICK_LISTENER;
@@ -126,26 +123,16 @@
@Test
@SmallTest
- public void testSetTabCarouselMode() {
- mTasksViewPropertyModel.set(IS_TAB_CAROUSEL_VISIBLE, true);
+ public void testSetTabCardVisibilityMode() {
+ mTasksViewPropertyModel.set(IS_TAB_CARD_VISIBLE, true);
assertTrue(isViewVisible(R.id.tab_switcher_module_container));
- mTasksViewPropertyModel.set(IS_TAB_CAROUSEL_VISIBLE, false);
+ mTasksViewPropertyModel.set(IS_TAB_CARD_VISIBLE, false);
assertFalse(isViewVisible(R.id.tab_switcher_module_container));
}
@Test
@SmallTest
- public void testSetTabCarouselTitle() {
- mTasksViewPropertyModel.set(IS_TAB_CAROUSEL_TITLE_VISIBLE, true);
- assertTrue(isViewVisible(R.id.tab_switcher_title));
-
- mTasksViewPropertyModel.set(IS_TAB_CAROUSEL_TITLE_VISIBLE, false);
- assertFalse(isViewVisible(R.id.tab_switcher_title));
- }
-
- @Test
- @SmallTest
public void testSetFakeboxVisibilityClickListenerAndTextWatcher() {
TestThreadUtils.runOnUiThreadBlocking(
() -> mTasksViewPropertyModel.set(IS_FAKE_SEARCH_BOX_VISIBLE, true));
@@ -250,23 +237,6 @@
@Test
@SmallTest
- public void testSetMoreTabsClickListener() {
- mTasksViewPropertyModel.set(IS_TAB_CAROUSEL_VISIBLE, true);
-
- mViewClicked.set(false);
- // Note that onView(R.id.more_tabs).perform(click()) can not be used since it requires 90
- // percent of the view's area is displayed to the users. However, this view has negative
- // margin which makes the percentage is less than 90.
- // TODO (crbug.com/1186752): Investigate whether this would be a problem for real users.
- mTasksView.findViewById(R.id.more_tabs).performClick();
- assertFalse(mViewClicked.get());
- mTasksViewPropertyModel.set(MORE_TABS_CLICK_LISTENER, mViewOnClickListener);
- mTasksView.findViewById(R.id.more_tabs).performClick();
- assertTrue(mViewClicked.get());
- }
-
- @Test
- @SmallTest
public void testSetIncognitoMode() {
mTasksViewPropertyModel.set(IS_INCOGNITO, true);
assertTrue(mTasksView.getSearchBoxCoordinator().getIncognitoModeForTesting());
@@ -379,9 +349,9 @@
.getLayoutInflater()
.inflate(
R.layout.single_tab_view_layout,
- mTasksView.getCarouselTabSwitcherContainer(),
+ mTasksView.getCardTabSwitcherContainer(),
false);
- mTasksView.getCarouselTabSwitcherContainer().addView(singleTabView);
+ mTasksView.getCardTabSwitcherContainer().addView(singleTabView);
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams)
@@ -396,19 +366,6 @@
@Test
@SmallTest
- public void testSetTabSwitcherTitleTopMargin() {
- ViewGroup.MarginLayoutParams params =
- (ViewGroup.MarginLayoutParams)
- mTasksView.findViewById(R.id.tab_switcher_title).getLayoutParams();
- assertEquals(0, params.topMargin);
-
- mTasksViewPropertyModel.set(TAB_SWITCHER_TITLE_TOP_MARGIN, 16);
-
- assertEquals(16, params.topMargin);
- }
-
- @Test
- @SmallTest
public void testSetTopToolbarLayoutHeight() {
ViewGroup.LayoutParams params =
mTasksView.findViewById(R.id.top_toolbar_placeholder).getLayoutParams();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
index be8c3490..bc399ff 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
@@ -44,14 +44,13 @@
public interface TabManagementDelegate {
@IntDef({
TabSwitcherType.GRID,
- TabSwitcherType.CAROUSEL,
TabSwitcherType.SINGLE,
TabSwitcherType.NONE
})
@Retention(RetentionPolicy.SOURCE)
public @interface TabSwitcherType {
int GRID = 0;
- int CAROUSEL = 1;
+ // int CAROUSEL_DEPRECATED = 1;
int SINGLE = 2;
int NONE = 3;
}
@@ -123,40 +122,6 @@
@Nullable OneshotSupplier<LayoutStateProvider> layoutStateProviderSupplier);
/**
- * Create the {@link TabSwitcher} to display Tabs in carousel.
- * @param activity The current Android {@link Activity}.
- * @param lifecycleDispatcher Allows observation of the activity lifecycle.
- * @param tabModelSelector Gives access to the current set of {@TabModel}.
- * @param tabContentManager Gives access to the tab content.
- * @param browserControls Allows observation of the browser controls state.
- * @param tabCreatorManager Manages creation of tabs.
- * @param menuOrKeyboardActionController allows access to menu or keyboard actions.
- * @param containerView The {@link ViewGroup} to add the switcher to.
- * @param multiWindowModeStateDispatcher Gives access to the multi window mode state.
- * @param scrimCoordinator The {@link ScrimCoordinator} to control the scrim view.
- * @param rootView The root view of the app.
- * @param dynamicResourceLoaderSupplier Supplies the current {@link DynamicResourceLoader}.
- * @param snackbarManager Manages the snackbar.
- * @param modalDialogManager Manages modal dialogs.
- * @return The {@link TabSwitcher}.
- */
- TabSwitcher createCarouselTabSwitcher(
- @NonNull Activity activity,
- @NonNull ActivityLifecycleDispatcher lifecycleDispatcher,
- @NonNull TabModelSelector tabModelSelector,
- @NonNull TabContentManager tabContentManager,
- @NonNull BrowserControlsStateProvider browserControls,
- @NonNull TabCreatorManager tabCreatorManager,
- @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
- @NonNull ViewGroup containerView,
- @NonNull MultiWindowModeStateDispatcher multiWindowModeStateDispatcher,
- @NonNull ScrimCoordinator scrimCoordinator,
- @NonNull ViewGroup rootView,
- @NonNull Supplier<DynamicResourceLoader> dynamicResourceLoaderSupplier,
- @NonNull SnackbarManager snackbarManager,
- @NonNull ModalDialogManager modalDialogManager);
-
- /**
* Create the {@link TabGroupUi}.
* @param activity The {@link Activity} that creates this surface.
* @param parentView The parent view of this UI.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
index 03952f4..2c28838 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
@@ -102,43 +102,6 @@
}
@Override
- public TabSwitcher createCarouselTabSwitcher(
- @NonNull Activity activity,
- @NonNull ActivityLifecycleDispatcher lifecycleDispatcher,
- @NonNull TabModelSelector tabModelSelector,
- @NonNull TabContentManager tabContentManager,
- @NonNull BrowserControlsStateProvider browserControls,
- @NonNull TabCreatorManager tabCreatorManager,
- @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
- @NonNull ViewGroup containerView,
- @NonNull MultiWindowModeStateDispatcher multiWindowModeStateDispatcher,
- @NonNull ScrimCoordinator scrimCoordinator,
- @NonNull ViewGroup rootView,
- @NonNull Supplier<DynamicResourceLoader> dynamicResourceLoaderSupplier,
- @NonNull SnackbarManager snackbarManager,
- @NonNull ModalDialogManager modalDialogManager) {
- return new TabSwitcherCoordinator(
- activity,
- lifecycleDispatcher,
- tabModelSelector,
- tabContentManager,
- browserControls,
- tabCreatorManager,
- menuOrKeyboardActionController,
- containerView,
- multiWindowModeStateDispatcher,
- scrimCoordinator,
- TabListCoordinator.TabListMode.CAROUSEL,
- rootView,
- dynamicResourceLoaderSupplier,
- snackbarManager,
- modalDialogManager,
- null,
- null,
- null);
- }
-
- @Override
public TabGroupUi createTabGroupUi(
@NonNull Activity activity,
@NonNull ViewGroup parentView,
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
index 4e855f4..b0157b34 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
@@ -984,10 +984,9 @@
@Override
public @TabSwitcherType int getTabSwitcherType() {
switch (mMode) {
- case TabListMode.CAROUSEL:
- return TabSwitcherType.CAROUSEL;
case TabListMode.GRID:
return TabSwitcherType.GRID;
+ case TabListMode.CAROUSEL:
case TabListMode.LIST:
case TabListMode.STRIP:
default:
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
index 9c89481..53ce47e 100644
--- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
+++ b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
@@ -370,9 +370,6 @@
<message name="IDS_TAB_SWITCHER_CAROUSEL_TITLE" desc="Title of the Tabs carousel section on the single pane start surface.">
Continue browsing
</message>
- <message name="IDS_TAB_SWITCHER_CAROUSEL_VIEW_ALL" desc="Title of the text view button in the Tabs carousel section on the single pane start surface. Click it to view all the existing Tabs.">
- View all
- </message>
<!-- Single Tab module strings -->
<message name="IDS_SINGLE_TAB_MODULE_TITLE" desc="Title of the single Tab module on the magic space of the start surface or NTP home surface.">
diff --git a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_TAB_SWITCHER_CAROUSEL_VIEW_ALL.png.sha1 b/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_TAB_SWITCHER_CAROUSEL_VIEW_ALL.png.sha1
deleted file mode 100644
index 553e01a..0000000
--- a/chrome/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_grd/IDS_TAB_SWITCHER_CAROUSEL_VIEW_ALL.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b80019f5c1f74e2e6892fb5336fe7c7e3bfa97e5
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
index 470d053..ad6e5679 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
@@ -120,7 +120,6 @@
.SIGNIN_PROMO_NTP_SINCE_FIRST_TIME_SHOWN_LIMIT_HOURS,
StartSurfaceConfiguration.SIGNIN_PROMO_NTP_RESET_AFTER_HOURS,
StartSurfaceConfiguration.START_SURFACE_HIDE_INCOGNITO_SWITCH_NO_TAB,
- StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY,
StartSurfaceConfiguration.START_SURFACE_OPEN_NTP_INSTEAD_OF_START,
StartSurfaceConfiguration.START_SURFACE_OPEN_START_AS_HOMEPAGE,
StartSurfaceConfiguration.SURFACE_POLISH_OMNIBOX_COLOR,
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index b3954a5..3c27b2f6 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2356,12 +2356,6 @@
std::size(kNewTabSearchEngineUrlAndroid_EeaCountryOnly), nullptr},
};
-const FeatureEntry::FeatureParam kStartSurfaceAndroid_SingleSurface[] = {
- {"open_ntp_instead_of_start", "false"},
- {"open_start_as_homepage", "true"},
- {"show_last_active_tab_only", "false"},
- {"show_tabs_in_mru_order", "true"}};
-
const FeatureEntry::FeatureParam kStartSurfaceAndroid_CandidateA[] = {
{"open_ntp_instead_of_start", "false"},
{"open_start_as_homepage", "true"}};
@@ -2397,8 +2391,6 @@
{"Candidate B + Always show Incognito icon",
kStartSurfaceAndroid_CandidateB_AlwaysShowIncognito,
std::size(kStartSurfaceAndroid_CandidateB_AlwaysShowIncognito), nullptr},
- {"Single Surface", kStartSurfaceAndroid_SingleSurface,
- std::size(kStartSurfaceAndroid_SingleSurface), nullptr},
};
const FeatureEntry::FeatureParam kSurfacePolish_mvp[] = {
diff --git a/tools/android/instant_start/benchmark.py b/tools/android/instant_start/benchmark.py
index 4d6fe56..f733836 100755
--- a/tools/android/instant_start/benchmark.py
+++ b/tools/android/instant_start/benchmark.py
@@ -59,7 +59,6 @@
'--force-fieldtrials=Study/Group',
'--force-fieldtrial-params=Study.Group:'
'start_surface_return_time_seconds/0'
- '/show_last_active_tab_only/true'
'/open_ntp_instead_of_start/true'
] + extra_cmd)