Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1213)

Unified Diff: ash/mus/window_manager_application.cc

Issue 2105653003: Fixes shutdown race in mash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/mus/window_manager_application.h ('k') | ash/mus/window_manager_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/mus/window_manager_application.cc
diff --git a/ash/mus/window_manager_application.cc b/ash/mus/window_manager_application.cc
index 38699f086bd0123ff178eef6132a463cc7ff4fd4..962667a1a9ede40c019d51891dd23e43e36c7f56 100644
--- a/ash/mus/window_manager_application.cc
+++ b/ash/mus/window_manager_application.cc
@@ -8,7 +8,6 @@
#include "ash/mus/accelerator_registrar_impl.h"
#include "ash/mus/root_window_controller.h"
-#include "ash/mus/root_windows_observer.h"
#include "ash/mus/shelf_layout_impl.h"
#include "ash/mus/user_window_controller_impl.h"
#include "ash/mus/window_manager.h"
@@ -43,16 +42,6 @@ WindowManagerApplication::~WindowManagerApplication() {
window_manager_.reset();
}
-void WindowManagerApplication::OnAccelerator(uint32_t id,
- const ui::Event& event) {
- for (auto* registrar : accelerator_registrars_) {
- if (registrar->OwnsAccelerator(id)) {
- registrar->ProcessAccelerator(id, event);
- break;
- }
- }
-}
-
void WindowManagerApplication::OnAcceleratorRegistrarDestroyed(
AcceleratorRegistrarImpl* registrar) {
accelerator_registrars_.erase(registrar);
@@ -61,7 +50,7 @@ void WindowManagerApplication::OnAcceleratorRegistrarDestroyed(
void WindowManagerApplication::InitWindowManager(
::mus::WindowTreeClient* window_tree_client) {
window_manager_->Init(window_tree_client);
- window_manager_->AddRootWindowsObserver(this);
+ window_manager_->AddObserver(this);
}
void WindowManagerApplication::Initialize(shell::Connector* connector,
@@ -69,7 +58,7 @@ void WindowManagerApplication::Initialize(shell::Connector* connector,
uint32_t id) {
connector_ = connector;
::mus::GpuService::Initialize(connector);
- window_manager_.reset(new WindowManager(this, connector_));
+ window_manager_.reset(new WindowManager(connector_));
aura_init_.reset(new views::AuraInit(connector_, "ash_mus_resources.pak"));
@@ -122,6 +111,9 @@ void WindowManagerApplication::Create(
void WindowManagerApplication::Create(
shell::Connection* connection,
mojo::InterfaceRequest<::mus::mojom::AcceleratorRegistrar> request) {
+ if (!window_manager_->window_manager_client())
+ return; // Can happen during shutdown.
+
static int accelerator_registrar_count = 0;
if (accelerator_registrar_count == std::numeric_limits<int>::max()) {
// Restart from zero if we have reached the limit. It is technically
« no previous file with comments | « ash/mus/window_manager_application.h ('k') | ash/mus/window_manager_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698