Index: ui/views/mus/window_manager_connection.cc |
diff --git a/ui/views/mus/window_manager_connection.cc b/ui/views/mus/window_manager_connection.cc |
index 0a4189ab977df689729e8dd12edde5f09973e1f5..9954f9ea3dd890a9473fbfd70bf91b1945157539 100644 |
--- a/ui/views/mus/window_manager_connection.cc |
+++ b/ui/views/mus/window_manager_connection.cc |
@@ -102,17 +102,20 @@ WindowManagerConnection::WindowManagerConnection( |
const shell::Identity& identity) |
: connector_(connector), |
identity_(identity), |
- client_(nullptr) { |
+ created_device_data_manager_(false) { |
client_.reset(new mus::WindowTreeClient(this, nullptr, nullptr)); |
client_->ConnectViaWindowTreeFactory(connector_); |
screen_.reset(new ScreenMus(this)); |
screen_->Init(connector); |
- // TODO(sad): We should have a DeviceDataManager implementation that talks to |
- // a mojo service to learn about the input-devices on the system. |
- // http://crbug.com/601981 |
- ui::DeviceDataManager::CreateInstance(); |
+ if (!ui::DeviceDataManager::HasInstance()) { |
+ // TODO(sad): We should have a DeviceDataManager implementation that talks |
+ // to a mojo service to learn about the input-devices on the system. |
+ // http://crbug.com/601981 |
+ ui::DeviceDataManager::CreateInstance(); |
+ created_device_data_manager_ = true; |
+ } |
ViewsDelegate::GetInstance()->set_native_widget_factory(base::Bind( |
&WindowManagerConnection::CreateNativeWidgetMus, |
@@ -124,8 +127,8 @@ WindowManagerConnection::~WindowManagerConnection() { |
// ~WindowTreeClient calls back to us (we're its delegate), destroy it while |
// we are still valid. |
client_.reset(); |
- |
- ui::DeviceDataManager::DeleteInstance(); |
+ if (created_device_data_manager_) |
+ ui::DeviceDataManager::DeleteInstance(); |
} |
bool WindowManagerConnection::HasPointerWatcher() { |