1 From 0fd635681c6e7e3d2e1875f0c9e7f32547990ba1 Mon Sep 17 00:00:00 2001
2 From: Tiago Vignatti <tiago.vignatti@intel.com>
3 Date: Tue, 17 Dec 2013 15:33:36 +0200
4 Subject: [PATCH] browser: Support Desktop Aura creation on Ozone
6 This CL creates BrowserDesktopRootWindowHostOzone and gives support for Aura
9 Different than the BDRWHX11 constructor, Ozone's assigns
10 views::DesktopRootWindowHost::Create to desktop_root_window_host_, where this
11 pointer is used throughout BDRWHL methods for making reference to it.
13 In particular, this CL brings back support for Chrome browser in Ozone-Wayland.
17 .../browser_desktop_root_window_host_ozone.cc | 55 ++++++++++++++++++++
18 .../frame/browser_desktop_root_window_host_ozone.h | 42 +++++++++++++++
19 chrome/chrome_browser_ui.gypi | 2 +
20 3 files changed, 99 insertions(+)
21 create mode 100644 chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc
22 create mode 100644 chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h
24 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
26 index 0000000..f29c51b
28 +++ b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc
30 +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
31 +// Use of this source code is governed by a BSD-style license that can be
32 +// found in the LICENSE file.
34 +#include "chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h"
36 +////////////////////////////////////////////////////////////////////////////////
37 +// BrowserDesktopRootWindowHostOzone, public:
39 +BrowserDesktopRootWindowHostOzone::BrowserDesktopRootWindowHostOzone(
40 + views::internal::NativeWidgetDelegate* native_widget_delegate,
41 + views::DesktopNativeWidgetAura* desktop_native_widget_aura,
42 + BrowserView* browser_view)
43 + : browser_view_(browser_view),
44 + desktop_root_window_host_(NULL) {
45 + desktop_root_window_host_ = views::DesktopRootWindowHost::Create(
46 + native_widget_delegate,
47 + desktop_native_widget_aura);
50 +BrowserDesktopRootWindowHostOzone::~BrowserDesktopRootWindowHostOzone() {
51 + desktop_root_window_host_ = NULL;
54 +////////////////////////////////////////////////////////////////////////////////
55 +// BrowserDesktopRootWindowHostOzone,
56 +// BrowserDesktopRootWindowHost implementation:
58 +views::DesktopRootWindowHost*
59 + BrowserDesktopRootWindowHostOzone::AsDesktopRootWindowHost() {
60 + return desktop_root_window_host_;
63 +int BrowserDesktopRootWindowHostOzone::GetMinimizeButtonOffset() const {
67 +bool BrowserDesktopRootWindowHostOzone::UsesNativeSystemMenu() const {
71 +////////////////////////////////////////////////////////////////////////////////
72 +// BrowserDesktopRootWindowHost, public:
75 +BrowserDesktopRootWindowHost*
76 + BrowserDesktopRootWindowHost::CreateBrowserDesktopRootWindowHost(
77 + views::internal::NativeWidgetDelegate* native_widget_delegate,
78 + views::DesktopNativeWidgetAura* desktop_native_widget_aura,
79 + BrowserView* browser_view,
80 + BrowserFrame* browser_frame) {
81 + return new BrowserDesktopRootWindowHostOzone(native_widget_delegate,
82 + desktop_native_widget_aura,
85 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
87 index 0000000..f1dbe3f
89 +++ b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_ozone.h
91 +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
92 +// Use of this source code is governed by a BSD-style license that can be
93 +// found in the LICENSE file.
95 +#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_ROOT_WINDOW_HOST_OZONE_H_
96 +#define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_ROOT_WINDOW_HOST_OZONE_H_
98 +#include "ui/aura/root_window_host.h"
99 +#include "ui/views/widget/desktop_aura/desktop_root_window_host.h"
100 +#include "chrome/browser/ui/views/frame/browser_desktop_root_window_host.h"
106 +class DesktopNativeWidgetAura;
109 +class BrowserDesktopRootWindowHostOzone
110 + : public BrowserDesktopRootWindowHost {
112 + BrowserDesktopRootWindowHostOzone(
113 + views::internal::NativeWidgetDelegate* native_widget_delegate,
114 + views::DesktopNativeWidgetAura* desktop_native_widget_aura,
115 + BrowserView* browser_view);
116 + virtual ~BrowserDesktopRootWindowHostOzone();
119 + // Overridden from BrowserDesktopRootWindowHost:
120 + virtual views::DesktopRootWindowHost* AsDesktopRootWindowHost() OVERRIDE;
121 + virtual int GetMinimizeButtonOffset() const OVERRIDE;
122 + virtual bool UsesNativeSystemMenu() const OVERRIDE;
124 + BrowserView* browser_view_;
126 + // Ownership passed to RootWindow on Init.
127 + views::DesktopRootWindowHost* desktop_root_window_host_;
129 + DISALLOW_COPY_AND_ASSIGN(BrowserDesktopRootWindowHostOzone);
132 +#endif // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_DESKTOP_ROOT_WINDOW_HOST_OZONE_H_
133 diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
134 index dd25e1c..a33cce8 100644
135 --- a/chrome/chrome_browser_ui.gypi
136 +++ b/chrome/chrome_browser_ui.gypi
137 @@ -1860,6 +1860,8 @@
138 'browser/ui/views/frame/desktop_user_action_handler_aura.cc',
139 'browser/ui/views/frame/desktop_user_action_handler_aura.h',
140 'browser/ui/views/frame/browser_desktop_root_window_host.h',
141 + 'browser/ui/views/frame/browser_desktop_root_window_host_ozone.cc',
142 + 'browser/ui/views/frame/browser_desktop_root_window_host_ozone.h',
143 'browser/ui/views/frame/browser_desktop_root_window_host_win.cc',
144 'browser/ui/views/frame/browser_desktop_root_window_host_win.h',
145 'browser/ui/views/frame/browser_desktop_root_window_host_x11.cc',