Commit a6ed00a4 authored by Alan Cutter's avatar Alan Cutter Committed by Commit Bot

Add BrowserView::IsBrowserTypeHostedApp() helper function

This CL tidies up some verbose callsites to
extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser()
by hiding it behind a BrowserView::IsBrowserTypeHostedApp() helper
function.

Bug: 895690
Change-Id: I0cbced2882e4be5dde9107961f3b5a443810869e
Reviewed-on: https://chromium-review.googlesource.com/c/1286236
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarBret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600603}
parent dc0a0084
......@@ -12,7 +12,6 @@
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/ui/views/frame/browser_frame.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/browser_window_property_manager_win.h"
......@@ -320,8 +319,7 @@ MARGINS BrowserDesktopWindowTreeHostWin::GetDWMFrameMargins() const {
bool BrowserDesktopWindowTreeHostWin::IsOpaqueHostedAppFrame() const {
// TODO(https://crbug.com/868239): Support Windows 7 Aero glass for hosted app
// window titlebar controls.
return extensions::HostedAppBrowserController::
IsForExperimentalHostedAppBrowser(browser_view_->browser()) &&
return browser_view_->IsBrowserTypeHostedApp() &&
base::win::GetVersion() < base::win::VERSION_WIN10;
}
......
......@@ -592,10 +592,8 @@ void BrowserNonClientFrameViewAsh::OnTabletModeToggled(bool enabled) {
bool BrowserNonClientFrameViewAsh::ShouldTabIconViewAnimate() const {
// Hosted apps use their app icon and shouldn't show a throbber.
if (extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
browser_view()->browser())) {
if (browser_view()->IsBrowserTypeHostedApp())
return false;
}
// This function is queried during the creation of the window as the
// TabIconView we host is initialized, so we need to null check the selected
......@@ -789,8 +787,7 @@ BrowserNonClientFrameViewAsh::CreateFrameHeader() {
} else {
auto default_frame_header = std::make_unique<ash::DefaultFrameHeader>(
frame(), this, caption_button_container_);
if (extensions::HostedAppBrowserController::
IsForExperimentalHostedAppBrowser(browser)) {
if (browser_view()->IsBrowserTypeHostedApp()) {
SetUpForHostedApp(default_frame_header.get());
} else if (!browser->is_app()) {
default_frame_header->SetFrameColors(kMdWebUiFrameColor,
......@@ -836,8 +833,7 @@ void BrowserNonClientFrameViewAsh::UpdateFrameColors() {
if (!UsePackagedAppHeaderStyle(browser_view()->browser())) {
active_color = GetFrameColor(kActive);
inactive_color = GetFrameColor(kInactive);
} else if (extensions::HostedAppBrowserController::
IsForExperimentalHostedAppBrowser(browser_view()->browser())) {
} else if (browser_view()->IsBrowserTypeHostedApp()) {
active_color =
browser_view()->browser()->hosted_app_controller()->GetThemeColor();
frame_header_->set_button_color_mode(
......
......@@ -625,6 +625,11 @@ WebContents* BrowserView::GetActiveWebContents() const {
return browser_->tab_strip_model()->GetActiveWebContents();
}
bool BrowserView::IsBrowserTypeHostedApp() const {
return extensions::HostedAppBrowserController::
IsForExperimentalHostedAppBrowser(browser_.get());
}
bool BrowserView::IsTopControlsSlideBehaviorEnabled() const {
return top_controls_slide_controller_ &&
top_controls_slide_controller_->IsEnabled();
......
......@@ -241,6 +241,10 @@ class BrowserView : public BrowserWindow,
return browser_->is_type_tabbed();
}
// Returns true if the Browser object associated with this BrowserView is a
// for an installed hosted app.
bool IsBrowserTypeHostedApp() const;
// Returns true if the top browser controls (a.k.a. top-chrome UIs) are
// allowed to slide up and down with the gesture scrolls on the current tab's
// page.
......
......@@ -6,7 +6,6 @@
#include "base/command_line.h"
#include "chrome/browser/shell_integration_linux.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/ui/views/frame/browser_frame.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/common/chrome_switches.h"
......@@ -62,10 +61,8 @@ bool DesktopBrowserFrameAuraX11::UseCustomFrame() const {
// Hosted app windows get a custom frame (if the desktop PWA experimental
// feature is enabled).
if (extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
browser_view()->browser())) {
if (browser_view()->IsBrowserTypeHostedApp())
return true;
}
return false;
}
......
......@@ -12,7 +12,6 @@
#include "chrome/app/chrome_command_ids.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/hosted_app_button_container.h"
......@@ -114,8 +113,7 @@ GlassBrowserFrameView::GlassBrowserFrameView(BrowserFrame* frame,
AddChildView(window_title_);
}
if (extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
browser_view->browser())) {
if (browser_view->IsBrowserTypeHostedApp()) {
// TODO(alancutter): Avoid snapshotting GetTitlebarFeatureColor() values
// here and call it on demand in
// HostedAppButtonContainer::UpdateIconsColor() via a delegate interface.
......
......@@ -188,9 +188,7 @@ HostedAppButtonContainer::HostedAppButtonContainer(views::Widget* widget,
false /* interactive */)),
app_menu_button_(new HostedAppMenuButton(browser_view)) {
DCHECK(browser_view_);
DCHECK(
extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
browser_view_->browser()));
DCHECK(browser_view_->IsBrowserTypeHostedApp());
views::BoxLayout& layout =
*SetLayoutManager(std::make_unique<views::BoxLayout>(
views::BoxLayout::kHorizontal,
......
......@@ -175,8 +175,7 @@ OpaqueBrowserFrameView::OpaqueBrowserFrameView(
window_title_->set_id(VIEW_ID_WINDOW_TITLE);
AddChildView(window_title_);
if (extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
browser_view->browser())) {
if (browser_view->IsBrowserTypeHostedApp()) {
hosted_app_button_container_ = new HostedAppButtonContainer(
frame, browser_view, GetReadableFrameForegroundColor(kActive),
GetReadableFrameForegroundColor(kInactive));
......@@ -659,8 +658,7 @@ bool OpaqueBrowserFrameView::ShouldShowWindowTitleBar() const {
SkColor OpaqueBrowserFrameView::GetReadableFrameForegroundColor(
ActiveState active_state) const {
if (extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
browser_view()->browser())) {
if (browser_view()->IsBrowserTypeHostedApp()) {
base::Optional<SkColor> theme_color =
browser_view()->browser()->hosted_app_controller()->GetThemeColor();
if (theme_color)
......
......@@ -270,9 +270,7 @@ void Windows10CaptionButton::PaintSymbol(gfx::Canvas* canvas) {
const ui::ThemeProvider* Windows10CaptionButton::GetFrameThemeProvider() const {
// TODO(https://crbug.com/891560): Move this check up into
// BrowserFrame::GetThemeProvider() and have it return the default theme.
if (extensions::HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
frame_view_->browser_view()->browser())) {
if (frame_view_->browser_view()->IsBrowserTypeHostedApp())
return nullptr;
}
return GetThemeProvider();
}
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