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 f17c0aa96379af0e4f4211482041711d4505c760..5f07c6c645aec947d935cac673cb6c14de548090 100644 |
--- a/ui/views/mus/window_manager_connection.cc |
+++ b/ui/views/mus/window_manager_connection.cc |
@@ -35,10 +35,14 @@ base::LazyInstance<WindowManagerConnectionPtr>::Leaky lazy_tls_ptr = |
} // namespace |
// static |
-void WindowManagerConnection::Create(shell::Connector* connector, |
- const shell::Identity& identity) { |
+std::unique_ptr<WindowManagerConnection> WindowManagerConnection::Create( |
+ shell::Connector* connector, |
+ const shell::Identity& identity) { |
DCHECK(!lazy_tls_ptr.Pointer()->Get()); |
- lazy_tls_ptr.Pointer()->Set(new WindowManagerConnection(connector, identity)); |
+ WindowManagerConnection* connection = |
+ new WindowManagerConnection(connector, identity); |
+ DCHECK(lazy_tls_ptr.Pointer()->Get()); |
+ return base::WrapUnique(connection); |
} |
// static |
@@ -53,12 +57,6 @@ bool WindowManagerConnection::Exists() { |
return !!lazy_tls_ptr.Pointer()->Get(); |
} |
-// static |
-void WindowManagerConnection::Reset() { |
- delete Get(); |
- lazy_tls_ptr.Pointer()->Set(nullptr); |
-} |
- |
mus::Window* WindowManagerConnection::NewWindow( |
const std::map<std::string, std::vector<uint8_t>>& properties) { |
return client_->NewTopLevelWindow(&properties); |
@@ -108,6 +106,7 @@ WindowManagerConnection::WindowManagerConnection( |
: connector_(connector), |
identity_(identity), |
created_device_data_manager_(false) { |
+ lazy_tls_ptr.Pointer()->Set(this); |
client_.reset(new mus::WindowTreeClient(this, nullptr, nullptr)); |
client_->ConnectViaWindowTreeFactory(connector_); |
@@ -134,6 +133,7 @@ WindowManagerConnection::~WindowManagerConnection() { |
client_.reset(); |
if (created_device_data_manager_) |
ui::DeviceDataManager::DeleteInstance(); |
+ lazy_tls_ptr.Pointer()->Set(nullptr); |
if (ViewsDelegate::GetInstance()) { |
ViewsDelegate::GetInstance()->set_native_widget_factory( |