Commit 9a7a94cd authored by Yue Zhang's avatar Yue Zhang Committed by Commit Bot

Disable new tab variation when incognito is disabled

This CL disables the new tab variation when the incognito mode is
disabled and adds some tests around the new tab variation.

Bug: 1056896
Change-Id: I840619aa868bab79ca108a2c85fbe79f16711be6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2097058Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Yue Zhang <yuezhanggg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#750361}
parent 0c15bc30
...@@ -13,6 +13,7 @@ import androidx.annotation.Nullable; ...@@ -13,6 +13,7 @@ import androidx.annotation.Nullable;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabCreationState; import org.chromium.chrome.browser.tab.TabCreationState;
...@@ -284,6 +285,7 @@ class TabSwitcherModeTTCoordinatorPhone implements TemplateUrlServiceObserver { ...@@ -284,6 +285,7 @@ class TabSwitcherModeTTCoordinatorPhone implements TemplateUrlServiceObserver {
private boolean isNewTabVariationEnabled() { private boolean isNewTabVariationEnabled() {
return TabUiFeatureUtilities.isGridTabSwitcherEnabled() && ChromeFeatureList.isInitialized() return TabUiFeatureUtilities.isGridTabSwitcherEnabled() && ChromeFeatureList.isInitialized()
&& IncognitoUtils.isIncognitoModeEnabled()
&& ChromeFeatureList && ChromeFeatureList
.getFieldTrialParamByFeature(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, .getFieldTrialParamByFeature(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
"tab_grid_layout_android_new_tab") "tab_grid_layout_android_new_tab")
......
...@@ -14,6 +14,7 @@ import static org.chromium.chrome.test.util.ToolbarTestUtils.BOTTOM_TOOLBAR; ...@@ -14,6 +14,7 @@ import static org.chromium.chrome.test.util.ToolbarTestUtils.BOTTOM_TOOLBAR;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR; import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_MENU; import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_MENU;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_NEW_TAB; import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_NEW_TAB;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_NEW_TAB_VARIATION;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_TAB_SWITCHER_BUTTON; import static org.chromium.chrome.test.util.ToolbarTestUtils.TAB_SWITCHER_TOOLBAR_TAB_SWITCHER_BUTTON;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TOP_TOOLBAR; import static org.chromium.chrome.test.util.ToolbarTestUtils.TOP_TOOLBAR;
import static org.chromium.chrome.test.util.ToolbarTestUtils.TOP_TOOLBAR_HOME; import static org.chromium.chrome.test.util.ToolbarTestUtils.TOP_TOOLBAR_HOME;
...@@ -59,6 +60,9 @@ public class AdaptiveToolbarTest { ...@@ -59,6 +60,9 @@ public class AdaptiveToolbarTest {
// Params to turn off new tab variation in GTS. // Params to turn off new tab variation in GTS.
private static final String NO_NEW_TAB_VARIATION_PARAMS = "force-fieldtrial-params=" + private static final String NO_NEW_TAB_VARIATION_PARAMS = "force-fieldtrial-params=" +
"Study.Group:tab_grid_layout_android_new_tab/false"; "Study.Group:tab_grid_layout_android_new_tab/false";
// Params to turn on new tab variation in GTS.
private static final String NEW_TAB_VARIATION_PARAMS = "force-fieldtrial-params=" +
"Study.Group:tab_grid_layout_android_new_tab/NewTabVariation";
// clang-format on // clang-format on
@Rule @Rule
public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
...@@ -341,4 +345,59 @@ public class AdaptiveToolbarTest { ...@@ -341,4 +345,59 @@ public class AdaptiveToolbarTest {
TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_TAB_SWITCHER_BUTTON, true); TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_TAB_SWITCHER_BUTTON, true);
checkToolbarVisibility(BOTTOM_TOOLBAR, false); checkToolbarVisibility(BOTTOM_TOOLBAR, false);
} }
@Test
@MediumTest
// clang-format off
@CommandLineFlags.Add({"enable-features=" + ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID +
"<Study", "force-fieldtrials=Study/Group", NEW_TAB_VARIATION_PARAMS})
public void testTopToolbar_NewTabVariation() {
// clang-format on
setupFlagsAndLaunchActivity(false, true);
final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
Layout layout = cta.getLayoutManager().getOverviewLayout();
assertTrue(layout instanceof StartSurfaceLayout);
enterTabSwitcher(cta);
verifyTabSwitcherCardCount(cta, 1);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_MENU, true);
checkToolbarButtonVisibility(
TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB_VARIATION, true);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB, false);
rotateDeviceToOrientation(cta, Configuration.ORIENTATION_LANDSCAPE);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_MENU, true);
checkToolbarButtonVisibility(
TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB_VARIATION, true);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB, false);
}
@Test
@MediumTest
// clang-format off
@CommandLineFlags.Add({"enable-features=" + ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID +
"<Study", "force-fieldtrials=Study/Group", NEW_TAB_VARIATION_PARAMS})
public void testTopToolbar_NewTabVariation_IncognitoDisabled() {
// clang-format on
IncognitoUtils.setEnabledForTesting(false);
setupFlagsAndLaunchActivity(false, true);
final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
Layout layout = cta.getLayoutManager().getOverviewLayout();
assertTrue(layout instanceof StartSurfaceLayout);
enterTabSwitcher(cta);
verifyTabSwitcherCardCount(cta, 1);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_MENU, true);
checkToolbarButtonVisibility(
TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB_VARIATION, false);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB, true);
rotateDeviceToOrientation(cta, Configuration.ORIENTATION_LANDSCAPE);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_MENU, true);
checkToolbarButtonVisibility(
TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB_VARIATION, false);
checkToolbarButtonVisibility(TAB_SWITCHER_TOOLBAR, TAB_SWITCHER_TOOLBAR_NEW_TAB, true);
}
} }
...@@ -33,6 +33,7 @@ public class ToolbarTestUtils { ...@@ -33,6 +33,7 @@ public class ToolbarTestUtils {
public static final @IdRes int TAB_SWITCHER_TOOLBAR_MENU = R.id.menu_button_wrapper; public static final @IdRes int TAB_SWITCHER_TOOLBAR_MENU = R.id.menu_button_wrapper;
public static final @IdRes int TAB_SWITCHER_TOOLBAR_NEW_TAB = R.id.new_tab_button; public static final @IdRes int TAB_SWITCHER_TOOLBAR_NEW_TAB = R.id.new_tab_button;
public static final @IdRes int TAB_SWITCHER_TOOLBAR_NEW_TAB_VARIATION = R.id.new_tab_view;
public static final @IdRes int TAB_SWITCHER_TOOLBAR_TAB_SWITCHER_BUTTON = public static final @IdRes int TAB_SWITCHER_TOOLBAR_TAB_SWITCHER_BUTTON =
R.id.tab_switcher_mode_tab_switcher_button; R.id.tab_switcher_mode_tab_switcher_button;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment