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

Change some calls to IsBrowserTypeNormal to check FEATURE_TABSTRIP

App browsers can now support tab strips and should be included in
some of the calls to IsBrowserTypeNormal.

Added function IsTabStripSupported and changed calls relating to
tablet mode in BrowserNonClientFrameViewAsh and
ImmersiveModeControllerAsh to use it rather than IsBrowserTypeNormal.

Bug: 1090208
Change-Id: I158e24debf44cd68b62725d96e8c287944af4dbf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2226236
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#774384}
parent 393e2683
......@@ -494,7 +494,7 @@ void BrowserNonClientFrameViewAsh::OnTabletModeToggled(bool enabled) {
// minimized are still put in immersive mode, since they may still be
// visible but not activated due to something transparent and/or not
// fullscreen (ie. fullscreen launcher).
if (!frame()->IsFullscreen() && !browser_view()->IsBrowserTypeNormal() &&
if (!frame()->IsFullscreen() && !browser_view()->IsTabStripSupported() &&
!frame()->IsMinimized()) {
browser_view()->immersive_mode_controller()->SetEnabled(true);
return;
......@@ -502,7 +502,7 @@ void BrowserNonClientFrameViewAsh::OnTabletModeToggled(bool enabled) {
} else {
// Exit immersive mode if the feature is enabled and the widget is not in
// fullscreen mode.
if (!frame()->IsFullscreen() && !browser_view()->IsBrowserTypeNormal()) {
if (!frame()->IsFullscreen() && !browser_view()->IsTabStripSupported()) {
browser_view()->immersive_mode_controller()->SetEnabled(false);
return;
}
......@@ -661,7 +661,7 @@ bool BrowserNonClientFrameViewAsh::ShouldPaint() const {
// 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() &&
browser_view()->IsBrowserTypeNormal()) {
browser_view()->IsTabStripSupported()) {
return false;
}
#endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
......
......@@ -750,6 +750,10 @@ WebContents* BrowserView::GetActiveWebContents() const {
return browser_->tab_strip_model()->GetActiveWebContents();
}
bool BrowserView::IsTabStripSupported() const {
return browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP);
}
bool BrowserView::IsBrowserTypeWebApp() const {
return web_app::AppBrowserController::IsForWebAppBrowser(browser_.get());
}
......
......@@ -242,8 +242,12 @@ class BrowserView : public BrowserWindow,
// move it to a WindowDelegate subclass.
content::WebContents* GetActiveWebContents() const;
// Returns true if the Browser object associated with this BrowserView
// supports tabs, such as all normal browsers, and tabbed apps like terminal.
bool IsTabStripSupported() const;
// Returns true if the Browser object associated with this BrowserView is a
// tabbed-type window (i.e. a browser window, not an app or popup).
// normal window (i.e. a browser window, not an app or popup).
bool IsBrowserTypeNormal() const { return browser_->is_type_normal(); }
// Returns true if the Browser object associated with this BrowserView is a
......
......@@ -123,14 +123,14 @@ void ImmersiveModeControllerAsh::OnFindBarVisibleBoundsChanged(
}
bool ImmersiveModeControllerAsh::ShouldStayImmersiveAfterExitingFullscreen() {
return !browser_view_->IsBrowserTypeNormal() &&
return !browser_view_->IsTabStripSupported() &&
ash::TabletMode::Get()->InTabletMode();
}
void ImmersiveModeControllerAsh::OnWidgetActivationChanged(
views::Widget* widget,
bool active) {
if (browser_view_->IsBrowserTypeNormal())
if (browser_view_->IsTabStripSupported())
return;
if (!ash::TabletMode::Get()->InTabletMode())
......@@ -185,7 +185,7 @@ void ImmersiveModeControllerAsh::SetVisibleFraction(double visible_fraction) {
// means some gesture may not be recognized well during the animation, but
// that's fine since a complicated gesture wouldn't be involved during the
// animation duration. See: https://crbug.com/901544.
if (browser_view_->IsBrowserTypeNormal()) {
if (browser_view_->IsTabStripSupported()) {
if (visible_fraction == 1.0) {
browser_view_->contents_web_view()->holder()->SetHitTestTopInset(
browser_view_->top_container()->height());
......
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