Commit d2861a3e authored by sadrul's avatar sadrul Committed by Commit bot

mus: Initialize WindowManagerConnection in chrome instead of in content.

BUG=none

Review-Url: https://codereview.chromium.org/2027093002
Cr-Commit-Position: refs/heads/master@{#398242}
parent 23be8597
...@@ -14,6 +14,11 @@ ...@@ -14,6 +14,11 @@
#include "ui/wm/core/wm_state.h" #include "ui/wm/core/wm_state.h"
#endif #endif
#if defined(USE_AURA) && defined(MOJO_SHELL_CLIENT)
#include "content/public/common/mojo_shell_connection.h"
#include "ui/views/mus/window_manager_connection.h"
#endif
ChromeBrowserMainExtraPartsViews::ChromeBrowserMainExtraPartsViews() { ChromeBrowserMainExtraPartsViews::ChromeBrowserMainExtraPartsViews() {
} }
...@@ -39,3 +44,15 @@ void ChromeBrowserMainExtraPartsViews::PreCreateThreads() { ...@@ -39,3 +44,15 @@ void ChromeBrowserMainExtraPartsViews::PreCreateThreads() {
display::Screen::SetScreenInstance(views::CreateDesktopScreen()); display::Screen::SetScreenInstance(views::CreateDesktopScreen());
#endif #endif
} }
void ChromeBrowserMainExtraPartsViews::PreProfileInit() {
#if defined(USE_AURA) && defined(MOJO_SHELL_CLIENT)
content::MojoShellConnection* mojo_shell_connection =
content::MojoShellConnection::Get();
if (mojo_shell_connection && mojo_shell_connection->UsingExternalShell()) {
views::WindowManagerConnection::Create(
mojo_shell_connection->GetConnector(),
mojo_shell_connection->GetIdentity());
}
#endif
}
...@@ -28,6 +28,7 @@ class ChromeBrowserMainExtraPartsViews : public ChromeBrowserMainExtraParts { ...@@ -28,6 +28,7 @@ class ChromeBrowserMainExtraPartsViews : public ChromeBrowserMainExtraParts {
// Overridden from ChromeBrowserMainExtraParts: // Overridden from ChromeBrowserMainExtraParts:
void ToolkitInitialized() override; void ToolkitInitialized() override;
void PreCreateThreads() override; void PreCreateThreads() override;
void PreProfileInit() override;
private: private:
std::unique_ptr<views::ViewsDelegate> views_delegate_; std::unique_ptr<views::ViewsDelegate> views_delegate_;
......
...@@ -92,6 +92,7 @@ void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() { ...@@ -92,6 +92,7 @@ void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() {
} }
void ChromeBrowserMainExtraPartsViewsLinux::PreProfileInit() { void ChromeBrowserMainExtraPartsViewsLinux::PreProfileInit() {
ChromeBrowserMainExtraPartsViews::PreProfileInit();
// On the Linux desktop, we want to prevent the user from logging in as root, // On the Linux desktop, we want to prevent the user from logging in as root,
// so that we don't destroy the profile. Now that we have some minimal ui // so that we don't destroy the profile. Now that we have some minimal ui
// initialized, check to see if we're running as root and bail if we are. // initialized, check to see if we're running as root and bail if we are.
......
...@@ -404,7 +404,6 @@ source_set("browser") { ...@@ -404,7 +404,6 @@ source_set("browser") {
"//ui/aura", "//ui/aura",
"//ui/aura_extra", "//ui/aura_extra",
"//ui/strings", "//ui/strings",
"//ui/views/mus:for_component",
"//ui/wm", "//ui/wm",
] ]
sources += [ sources += [
......
...@@ -23,7 +23,6 @@ include_rules = [ ...@@ -23,7 +23,6 @@ include_rules = [
"+services", "+services",
"+sql", "+sql",
"+ui/aura_extra", "+ui/aura_extra",
"+ui/views/mus", # http://crbug.com/555767
"+ui/webui", "+ui/webui",
"+win8/util", "+win8/util",
......
...@@ -186,11 +186,6 @@ ...@@ -186,11 +186,6 @@
#include "crypto/nss_util.h" #include "crypto/nss_util.h"
#endif #endif
#if defined(MOJO_SHELL_CLIENT)
#include "services/shell/public/cpp/connector.h"
#include "ui/views/mus/window_manager_connection.h"
#endif
#if defined(ENABLE_VULKAN) #if defined(ENABLE_VULKAN)
#include "gpu/vulkan/vulkan_implementation.h" #include "gpu/vulkan/vulkan_implementation.h"
#endif #endif
...@@ -1211,15 +1206,11 @@ int BrowserMainLoop::BrowserThreadsStarted() { ...@@ -1211,15 +1206,11 @@ int BrowserMainLoop::BrowserThreadsStarted() {
mojo_shell_context_.reset(new MojoShellContext); mojo_shell_context_.reset(new MojoShellContext);
if (IsRunningInMojoShell()) { if (IsRunningInMojoShell()) {
#if defined(MOJO_SHELL_CLIENT) && defined(USE_AURA) #if defined(MOJO_SHELL_CLIENT) && defined(USE_AURA)
// TODO(rockot): Remove the blocking wait for init.
// http://crbug.com/594852.
MojoShellConnection* mojo_shell_connection = MojoShellConnection::Get(); MojoShellConnection* mojo_shell_connection = MojoShellConnection::Get();
if (mojo_shell_connection) { if (mojo_shell_connection)
// TODO(rockot): Remove the blocking wait for init.
// http://crbug.com/594852.
WaitForMojoShellInitialize(); WaitForMojoShellInitialize();
views::WindowManagerConnection::Create(
mojo_shell_connection->GetConnector(),
mojo_shell_connection->GetIdentity());
}
#endif #endif
} }
......
...@@ -20,5 +20,6 @@ static_library("content_client") { ...@@ -20,5 +20,6 @@ static_library("content_client") {
"//net", "//net",
"//services/navigation:lib", "//services/navigation:lib",
"//ui/views:test_support", "//ui/views:test_support",
"//ui/views/mus",
] ]
} }
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "content/shell/browser/shell_browser_context.h" #include "content/shell/browser/shell_browser_context.h"
#include "content/shell/browser/shell_net_log.h" #include "content/shell/browser/shell_net_log.h"
#include "services/navigation/navigation.h" #include "services/navigation/navigation.h"
#include "ui/views/mus/window_manager_connection.h"
#include "ui/views/test/test_views_delegate.h" #include "ui/views/test/test_views_delegate.h"
namespace navigation { namespace navigation {
...@@ -23,11 +24,17 @@ void BrowserMainParts::ToolkitInitialized() { ...@@ -23,11 +24,17 @@ void BrowserMainParts::ToolkitInitialized() {
} }
void BrowserMainParts::PreMainMessageLoopRun() { void BrowserMainParts::PreMainMessageLoopRun() {
content::MojoShellConnection* mojo_shell_connection =
content::MojoShellConnection::Get();
if (mojo_shell_connection) {
views::WindowManagerConnection::Create(
mojo_shell_connection->GetConnector(),
mojo_shell_connection->GetIdentity());
}
net_log_.reset(new content::ShellNetLog("ash_shell")); net_log_.reset(new content::ShellNetLog("ash_shell"));
browser_context_.reset( browser_context_.reset(
new content::ShellBrowserContext(false, net_log_.get())); new content::ShellBrowserContext(false, net_log_.get()));
navigation_->Init(content::MojoShellConnection::Get()->GetConnector(), navigation_->Init(mojo_shell_connection->GetConnector(), browser_context());
browser_context());
} }
void BrowserMainParts::PostMainMessageLoopRun() { void BrowserMainParts::PostMainMessageLoopRun() {
......
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