chromeos: extract ShellViewsDelegate into its own header
And makes ash_standalone use it too.
BUG=none
TEST=none
Change-Id: Iba9f80c0fd4d6a40928efce574df15e2faf75c9e
Reviewed-on: https://chromium-review.googlesource.com/546695
Reviewed-by: Elliot Glaysher <[email protected]>
Commit-Queue: Scott Violet <[email protected]>
Cr-Commit-Position: refs/heads/master@{#481993}
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 3cee95a..fea3fa9 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -1007,6 +1007,8 @@
"shell/panel_window.h",
"shell/shell_delegate_impl.cc",
"shell/shell_delegate_impl.h",
+ "shell/shell_views_delegate.cc",
+ "shell/shell_views_delegate.h",
"shell/toplevel_window.cc",
"shell/toplevel_window.h",
"shell/widgets.cc",
diff --git a/ash/mus/standalone/ash_standalone_main.cc b/ash/mus/standalone/ash_standalone_main.cc
index b595679..386338e 100644
--- a/ash/mus/standalone/ash_standalone_main.cc
+++ b/ash/mus/standalone/ash_standalone_main.cc
@@ -7,6 +7,7 @@
#include "ash/shell/example_app_list_presenter.h"
#include "ash/shell/example_session_controller_client.h"
#include "ash/shell/shell_delegate_impl.h"
+#include "ash/shell/shell_views_delegate.h"
#include "ash/shell/window_type_launcher.h"
#include "ash/shell/window_watcher.h"
#include "ash/shell_observer.h"
@@ -97,6 +98,7 @@
} // namespace ash
MojoResult ServiceMain(MojoHandle service_request_handle) {
+ ash::shell::ShellViewsDelegate shell_views_delegate;
const bool show_primary_host_on_connect = false;
std::unique_ptr<ash::ShellInit> shell_init_ptr =
base::MakeUnique<ash::ShellInit>();
diff --git a/ash/shell/content/client/shell_browser_main_parts.cc b/ash/shell/content/client/shell_browser_main_parts.cc
index fae6a9f..f8f291b 100644
--- a/ash/shell/content/client/shell_browser_main_parts.cc
+++ b/ash/shell/content/client/shell_browser_main_parts.cc
@@ -11,6 +11,7 @@
#include "ash/shell/example_app_list_presenter.h"
#include "ash/shell/example_session_controller_client.h"
#include "ash/shell/shell_delegate_impl.h"
+#include "ash/shell/shell_views_delegate.h"
#include "ash/shell/window_type_launcher.h"
#include "ash/shell/window_watcher.h"
#include "ash/shell_init_params.h"
@@ -40,7 +41,6 @@
#include "ui/display/screen.h"
#include "ui/message_center/message_center.h"
#include "ui/views/examples/examples_window_with_content.h"
-#include "ui/views/test/test_views_delegate.h"
#include "ui/wm/core/wm_state.h"
#if defined(USE_X11)
@@ -50,37 +50,6 @@
namespace ash {
namespace shell {
-namespace {
-
-class ShellViewsDelegate : public views::TestViewsDelegate {
- public:
- ShellViewsDelegate() {}
- ~ShellViewsDelegate() override {}
-
- // Overridden from views::TestViewsDelegate:
- views::NonClientFrameView* CreateDefaultNonClientFrameView(
- views::Widget* widget) override {
- return ash::Shell::Get()->CreateDefaultNonClientFrameView(widget);
- }
- void OnBeforeWidgetInit(
- views::Widget::InitParams* params,
- views::internal::NativeWidgetDelegate* delegate) override {
- if (params->opacity == views::Widget::InitParams::INFER_OPACITY)
- params->opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
-
- if (params->native_widget)
- return;
-
- if (!params->parent && !params->context && !params->child)
- params->context = Shell::GetPrimaryRootWindow();
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegate);
-};
-
-} // namespace
-
ShellBrowserMainParts::ShellBrowserMainParts(
const content::MainFunctionParams& parameters)
: BrowserMainParts(), delegate_(nullptr) {}
diff --git a/ash/shell/shell_views_delegate.cc b/ash/shell/shell_views_delegate.cc
new file mode 100644
index 0000000..1522fa8
--- /dev/null
+++ b/ash/shell/shell_views_delegate.cc
@@ -0,0 +1,35 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/shell/shell_views_delegate.h"
+
+#include "ash/shell.h"
+
+namespace ash {
+namespace shell {
+
+ShellViewsDelegate::ShellViewsDelegate() = default;
+
+ShellViewsDelegate::~ShellViewsDelegate() = default;
+
+views::NonClientFrameView* ShellViewsDelegate::CreateDefaultNonClientFrameView(
+ views::Widget* widget) {
+ return ash::Shell::Get()->CreateDefaultNonClientFrameView(widget);
+}
+
+void ShellViewsDelegate::OnBeforeWidgetInit(
+ views::Widget::InitParams* params,
+ views::internal::NativeWidgetDelegate* delegate) {
+ if (params->opacity == views::Widget::InitParams::INFER_OPACITY)
+ params->opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
+
+ if (params->native_widget)
+ return;
+
+ if (!params->parent && !params->context && !params->child)
+ params->context = Shell::GetPrimaryRootWindow();
+}
+
+} // namespace shell
+} // namespace ash
diff --git a/ash/shell/shell_views_delegate.h b/ash/shell/shell_views_delegate.h
new file mode 100644
index 0000000..d14c175
--- /dev/null
+++ b/ash/shell/shell_views_delegate.h
@@ -0,0 +1,32 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_SHELL_SHELL_VIEWS_DELEGATE_H_
+#define ASH_SHELL_SHELL_VIEWS_DELEGATE_H_
+
+#include "ui/views/test/test_views_delegate.h"
+
+namespace ash {
+namespace shell {
+
+class ShellViewsDelegate : public views::TestViewsDelegate {
+ public:
+ ShellViewsDelegate();
+ ~ShellViewsDelegate() override;
+
+ // views::TestViewsDelegate:
+ views::NonClientFrameView* CreateDefaultNonClientFrameView(
+ views::Widget* widget) override;
+ void OnBeforeWidgetInit(
+ views::Widget::InitParams* params,
+ views::internal::NativeWidgetDelegate* delegate) override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegate);
+};
+
+} // namespace shell
+} // namespace ash
+
+#endif // ASH_SHELL_SHELL_VIEWS_DELEGATE_H_