1 From 849379f7e54750dcae61ce73538d1423dbffa2d8 Mon Sep 17 00:00:00 2001
2 From: Tiago Vignatti <tiago.vignatti@intel.com>
3 Date: Tue, 19 Aug 2014 21:04:58 -0700
4 Subject: [PATCH 1/5] browser: Support Desktop Aura creation on Ozone
6 This CL creates BrowserDesktopRootWindowHostOzone and gives support
7 for Aura Ozone implementations. Different than the BDRWHX11 constructor,
8 Ozone's assigns views::DesktopRootWindowHost::Create to desktop_root_window_host_,
9 where this pointer is used throughout BDRWHL methods for making reference to it.
11 In particular, this CL brings back support for Chrome browser in
16 .../browser_desktop_root_window_host_ozone.cc | 55 ++++++++++++++++++++
17 .../frame/browser_desktop_root_window_host_ozone.h | 42 +++++++++++++++
18 chrome/chrome_browser_ui.gypi | 2 +
19 3 files changed, 99 insertions(+)
20 create mode 100644 chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc
21 create mode 100644 chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h
23 diff --git a/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc
25 index 0000000..794524a
27 +++ b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc
29 +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
30 +// Use of this source code is governed by a BSD-style license that can be
31 +// found in the LICENSE file.
33 +#include "chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h"
35 +////////////////////////////////////////////////////////////////////////////////
36 +// BrowserDesktopWindowTreeHostOzone, public:
38 +BrowserDesktopWindowTreeHostOzone::BrowserDesktopWindowTreeHostOzone(
39 + views::internal::NativeWidgetDelegate* native_widget_delegate,
40 + views::DesktopNativeWidgetAura* desktop_native_widget_aura,
41 + BrowserView* browser_view)
42 + : browser_view_(browser_view),
43 + desktop_root_window_host_(NULL) {
44 + desktop_root_window_host_ = views::DesktopWindowTreeHost::Create(
45 + native_widget_delegate,
46 + desktop_native_widget_aura);
49 +BrowserDesktopWindowTreeHostOzone::~BrowserDesktopWindowTreeHostOzone() {
50 + desktop_root_window_host_ = NULL;
53 +////////////////////////////////////////////////////////////////////////////////
54 +// BrowserDesktopWindowTreeHostOzone,
55 +// BrowserDesktopWindowTreeHost implementation:
57 +views::DesktopWindowTreeHost*
58 + BrowserDesktopWindowTreeHostOzone::AsDesktopWindowTreeHost() {
59 + return desktop_root_window_host_;
62 +int BrowserDesktopWindowTreeHostOzone::GetMinimizeButtonOffset() const {
66 +bool BrowserDesktopWindowTreeHostOzone::UsesNativeSystemMenu() const {
70 +////////////////////////////////////////////////////////////////////////////////
71 +// BrowserDesktopWindowTreeHost, public:
74 +BrowserDesktopWindowTreeHost*
75 + BrowserDesktopWindowTreeHost::CreateBrowserDesktopWindowTreeHost(
76 + views::internal::NativeWidgetDelegate* native_widget_delegate,
77 + views::DesktopNativeWidgetAura* desktop_native_widget_aura,
78 + BrowserView* browser_view,
79 + BrowserFrame* browser_frame) {
80 + return new BrowserDesktopWindowTreeHostOzone(native_widget_delegate,
81 + desktop_native_widget_aura,
84 diff --git a/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h
86 index 0000000..bbfb0c5
88 +++ b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h
90 +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
91 +// Use of this source code is governed by a BSD-style license that can be
92 +// found in the LICENSE file.
94 +#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_ROOT_WINDOW_HOST_OZONE_H_
95 +#define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_ROOT_WINDOW_HOST_OZONE_H_
97 +#include "ui/aura/window_tree_host.h"
98 +#include "ui/views/widget/desktop_aura/desktop_window_tree_host.h"
99 +#include "chrome/browser/ui/views/frame/browser_desktop_window_tree_host.h"
105 +class DesktopNativeWidgetAura;
108 +class BrowserDesktopWindowTreeHostOzone
109 + : public BrowserDesktopWindowTreeHost {
111 + BrowserDesktopWindowTreeHostOzone(
112 + views::internal::NativeWidgetDelegate* native_widget_delegate,
113 + views::DesktopNativeWidgetAura* desktop_native_widget_aura,
114 + BrowserView* browser_view);
115 + virtual ~BrowserDesktopWindowTreeHostOzone();
118 + // Overridden from BrowserDesktopWindowTreeHost:
119 + virtual views::DesktopWindowTreeHost* AsDesktopWindowTreeHost() OVERRIDE;
120 + virtual int GetMinimizeButtonOffset() const OVERRIDE;
121 + virtual bool UsesNativeSystemMenu() const OVERRIDE;
123 + BrowserView* browser_view_;
125 + // Ownership passed to RootWindow on Init.
126 + views::DesktopWindowTreeHost* desktop_root_window_host_;
128 + DISALLOW_COPY_AND_ASSIGN(BrowserDesktopWindowTreeHostOzone);
131 +#endif // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_ROOT_WINDOW_HOST_OZONE_H_
132 diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
133 index 9b7b3a1..a1b6ec2 100644
134 --- a/chrome/chrome_browser_ui.gypi
135 +++ b/chrome/chrome_browser_ui.gypi
136 @@ -2294,6 +2294,8 @@
137 'browser/ui/views/external_protocol_dialog.h',
138 'browser/ui/views/frame/desktop_browser_frame_aura.cc',
139 'browser/ui/views/frame/desktop_browser_frame_aura.h',
140 + 'browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc',
141 + 'browser/ui/views/frame/browser_desktop_root_window_host_ozone.h',
142 'browser/ui/views/frame/opaque_browser_frame_view.cc',
143 'browser/ui/views/frame/opaque_browser_frame_view.h',
144 'browser/ui/views/message_center/message_center_frame_view.cc',