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

Force OpaqueBrowserFrameView for hosted apps on Windows 7

This CL forces Windows 7 to use the OpaqueBrowserFrameView (instead of
GlassBrowserFrameView) for hosted app windows. This is in preparation to
consistently support extra hosted app controls in the title bar before
we have implemented support for Aero glass titlebars.

This change is hidden behind the DesktopPWAWindowing flag.

Before: https://bugs.chromium.org/p/chromium/issues/attachment?aid=350562&signed_aid=YMSTIPY7Xl2vwJUHiVXzPw==&inline=1
After: https://bugs.chromium.org/p/chromium/issues/attachment?aid=350563&signed_aid=XwsCSHyIFeGdrm_6R_PkVQ==&inline=1

Bug: 854479
Change-Id: I3232648004ff7b32657afa127fe76924aa4f2950
Reviewed-on: https://chromium-review.googlesource.com/1152722Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578965}
parent a6a03569
......@@ -12,6 +12,7 @@
#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"
......@@ -218,6 +219,9 @@ void BrowserDesktopWindowTreeHostWin::PostHandleMSG(UINT message,
}
views::FrameMode BrowserDesktopWindowTreeHostWin::GetFrameMode() const {
if (IsOpaqueHostedAppFrame())
return views::FrameMode::CUSTOM_DRAWN;
const views::FrameMode system_frame_mode =
ShouldCustomDrawSystemTitlebar()
? views::FrameMode::SYSTEM_DRAWN_NO_CONTROLS
......@@ -246,6 +250,10 @@ bool BrowserDesktopWindowTreeHostWin::ShouldUseNativeFrame() const {
// context of the BrowserView destructor.
if (!browser_view_->browser())
return false;
if (IsOpaqueHostedAppFrame())
return false;
// We don't theme popup or app windows, so regardless of whether or not a
// theme is active for normal browser windows, we don't want to use the custom
// frame for popups/apps.
......@@ -337,6 +345,14 @@ MARGINS BrowserDesktopWindowTreeHostWin::GetDWMFrameMargins() const {
tabstrip_bounds.bottom() + left_top.y(), right_bottom.y()};
}
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()) &&
base::win::GetVersion() < base::win::VERSION_WIN10;
}
////////////////////////////////////////////////////////////////////////////////
// BrowserDesktopWindowTreeHost, public:
......
......@@ -61,6 +61,8 @@ class BrowserDesktopWindowTreeHostWin : public BrowserDesktopWindowTreeHost,
gfx::Insets GetClientEdgeThicknesses() const;
MARGINS GetDWMFrameMargins() const;
bool IsOpaqueHostedAppFrame() const;
BrowserView* browser_view_;
BrowserFrame* browser_frame_;
......
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