Commit dbeedf35 authored by Joel Hockey's avatar Joel Hockey Committed by Commit Bot

Don't create WebUI tab strip for App windows, only Normal

Apps such as the Terminal System App should use the default tab strip.

Fixed: 1090208
Change-Id: I12d2b188c94772e90dd8620b4aef811b99c5681c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2315656Reviewed-by: default avatarCollin Baker <collinbaker@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791127}
parent 349aba7e
......@@ -627,7 +627,8 @@ bool BrowserNonClientFrameViewAsh::ShouldPaint() const {
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
// Normal windows that have a WebUI-based tab strip do not need a browser
// frame as no tab strip is drawn on top of the browser frame.
if (WebUITabStripContainerView::UseTouchableTabStrip() &&
if (WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser()) &&
browser_view()->IsTabStripSupported()) {
return false;
}
......
......@@ -709,7 +709,7 @@ bool BrowserView::IsTabStripVisible() const {
return false;
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
if (WebUITabStripContainerView::UseTouchableTabStrip())
if (WebUITabStripContainerView::UseTouchableTabStrip(browser_.get()))
return false;
#endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
......@@ -2864,7 +2864,7 @@ void BrowserView::MaybeInitializeWebUITabStrip() {
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
TRACE_EVENT0("ui", "BrowserView::MaybeInitializeWebUITabStrip");
if (browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) &&
WebUITabStripContainerView::UseTouchableTabStrip()) {
WebUITabStripContainerView::UseTouchableTabStrip(browser_.get())) {
if (!webui_tab_strip_) {
// We use |contents_container_| here so that enabling or disabling
// devtools won't affect the tab sizes. We still use only
......
......@@ -553,7 +553,8 @@ bool GlassBrowserFrameView::ShowSystemIcon() const {
}
bool GlassBrowserFrameView::IsWebUITabStrip() const {
return WebUITabStripContainerView::UseTouchableTabStrip();
return WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser());
}
bool GlassBrowserFrameView::OwnsCaptionButtons() const {
......
......@@ -443,7 +443,7 @@ WebUITabStripContainerView::WebUITabStripContainerView(
std::make_unique<DragToOpenHandler>(this, drag_handle)),
iph_controller_(std::make_unique<IPHController>(browser_)) {
TRACE_EVENT0("ui", "WebUITabStripContainerView.Init");
DCHECK(UseTouchableTabStrip());
DCHECK(UseTouchableTabStrip(browser_));
animation_.SetTweenType(gfx::Tween::Type::FAST_OUT_SLOW_IN);
SetVisible(false);
......@@ -490,8 +490,9 @@ WebUITabStripContainerView::~WebUITabStripContainerView() {
}
// static
bool WebUITabStripContainerView::UseTouchableTabStrip() {
return base::FeatureList::IsEnabled(features::kWebUITabStrip) &&
bool WebUITabStripContainerView::UseTouchableTabStrip(const Browser* browser) {
return browser->is_type_normal() &&
base::FeatureList::IsEnabled(features::kWebUITabStrip) &&
ui::TouchUiController::Get()->touch_ui();
}
......
......@@ -51,7 +51,7 @@ class WebUITabStripContainerView : public TabStripUIEmbedder,
views::View* omnibox);
~WebUITabStripContainerView() override;
static bool UseTouchableTabStrip();
static bool UseTouchableTabStrip(const Browser* browser);
// For drag-and-drop support:
static void GetDropFormatsForView(
......
......@@ -38,24 +38,28 @@ class WebUITabStripContainerViewTest : public TestWithBrowserView {
};
TEST_F(WebUITabStripContainerViewTest, TabStripStartsClosed) {
EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip());
EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser()));
ASSERT_NE(nullptr, browser_view()->webui_tab_strip());
EXPECT_FALSE(browser_view()->webui_tab_strip()->GetVisible());
}
TEST_F(WebUITabStripContainerViewTest, TouchModeTransition) {
EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip());
EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser()));
EXPECT_NE(nullptr, browser_view()->webui_tab_strip());
EXPECT_FALSE(browser_view()->IsTabStripVisible());
ui::TouchUiController::TouchUiScoperForTesting disable_touch_mode(false);
browser_view()->Layout();
EXPECT_FALSE(WebUITabStripContainerView::UseTouchableTabStrip());
EXPECT_FALSE(WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser()));
EXPECT_TRUE(browser_view()->IsTabStripVisible());
ui::TouchUiController::TouchUiScoperForTesting reenable_touch_mode(true);
browser_view()->Layout();
EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip());
EXPECT_TRUE(WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser()));
EXPECT_FALSE(browser_view()->IsTabStripVisible());
ASSERT_NE(nullptr, browser_view()->webui_tab_strip());
}
......@@ -141,8 +145,10 @@ class WebUITabStripDevToolsTest : public WebUITabStripContainerViewTest {
~WebUITabStripDevToolsTest() override = default;
};
// Regression test for crbug.com/1010247.
// Regression test for crbug.com/1010247, crbug.com/1090208.
TEST_F(WebUITabStripDevToolsTest, DevToolsWindowHasNoTabStrip) {
EXPECT_FALSE(WebUITabStripContainerView::UseTouchableTabStrip(
browser_view()->browser()));
EXPECT_EQ(nullptr, browser_view()->webui_tab_strip());
ui::TouchUiController::TouchUiScoperForTesting disable_touch_mode(false);
......
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