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