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

Side by Side Diff: ui/views/mus/window_manager_connection.cc

Issue 2168733002: Splits debug_commands into aura and non-aura parts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/mus/window_manager_connection.h" 5 #include "ui/views/mus/window_manager_connection.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/threading/thread_local.h" 10 #include "base/threading/thread_local.h"
(...skipping 18 matching lines...) Expand all
29 29
30 using WindowManagerConnectionPtr = 30 using WindowManagerConnectionPtr =
31 base::ThreadLocalPointer<views::WindowManagerConnection>; 31 base::ThreadLocalPointer<views::WindowManagerConnection>;
32 32
33 // Env is thread local so that aura may be used on multiple threads. 33 // Env is thread local so that aura may be used on multiple threads.
34 base::LazyInstance<WindowManagerConnectionPtr>::Leaky lazy_tls_ptr = 34 base::LazyInstance<WindowManagerConnectionPtr>::Leaky lazy_tls_ptr =
35 LAZY_INSTANCE_INITIALIZER; 35 LAZY_INSTANCE_INITIALIZER;
36 36
37 } // namespace 37 } // namespace
38 38
39 WindowManagerConnection::~WindowManagerConnection() {
40 // ~WindowTreeClient calls back to us (we're its delegate), destroy it while
41 // we are still valid.
42 client_.reset();
43 ui::Clipboard::DestroyClipboardForCurrentThread();
44 ui::GpuService::Terminate();
45 lazy_tls_ptr.Pointer()->Set(nullptr);
46
47 if (ViewsDelegate::GetInstance()) {
48 ViewsDelegate::GetInstance()->set_native_widget_factory(
49 ViewsDelegate::NativeWidgetFactory());
50 }
51 }
52
39 // static 53 // static
40 std::unique_ptr<WindowManagerConnection> WindowManagerConnection::Create( 54 std::unique_ptr<WindowManagerConnection> WindowManagerConnection::Create(
41 shell::Connector* connector, 55 shell::Connector* connector,
42 const shell::Identity& identity) { 56 const shell::Identity& identity) {
43 DCHECK(!lazy_tls_ptr.Pointer()->Get()); 57 DCHECK(!lazy_tls_ptr.Pointer()->Get());
44 WindowManagerConnection* connection = 58 WindowManagerConnection* connection =
45 new WindowManagerConnection(connector, identity); 59 new WindowManagerConnection(connector, identity);
46 DCHECK(lazy_tls_ptr.Pointer()->Get()); 60 DCHECK(lazy_tls_ptr.Pointer()->Get());
47 return base::WrapUnique(connection); 61 return base::WrapUnique(connection);
48 } 62 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 std::unique_ptr<ClipboardMus> clipboard(new ClipboardMus); 163 std::unique_ptr<ClipboardMus> clipboard(new ClipboardMus);
150 clipboard->Init(connector); 164 clipboard->Init(connector);
151 ui::Clipboard::SetClipboardForCurrentThread(std::move(clipboard)); 165 ui::Clipboard::SetClipboardForCurrentThread(std::move(clipboard));
152 166
153 ViewsDelegate::GetInstance()->set_native_widget_factory(base::Bind( 167 ViewsDelegate::GetInstance()->set_native_widget_factory(base::Bind(
154 &WindowManagerConnection::CreateNativeWidgetMus, 168 &WindowManagerConnection::CreateNativeWidgetMus,
155 base::Unretained(this), 169 base::Unretained(this),
156 std::map<std::string, std::vector<uint8_t>>())); 170 std::map<std::string, std::vector<uint8_t>>()));
157 } 171 }
158 172
159 WindowManagerConnection::~WindowManagerConnection() {
160 // ~WindowTreeClient calls back to us (we're its delegate), destroy it while
161 // we are still valid.
162 client_.reset();
163 ui::Clipboard::DestroyClipboardForCurrentThread();
164 ui::GpuService::Terminate();
165 lazy_tls_ptr.Pointer()->Set(nullptr);
166
167 if (ViewsDelegate::GetInstance()) {
168 ViewsDelegate::GetInstance()->set_native_widget_factory(
169 ViewsDelegate::NativeWidgetFactory());
170 }
171 }
172
173 bool WindowManagerConnection::HasPointerDownWatcher() { 173 bool WindowManagerConnection::HasPointerDownWatcher() {
174 // Check to see if we really have any observers left. This doesn't use 174 // Check to see if we really have any observers left. This doesn't use
175 // base::ObserverList<>::might_have_observers() because that returns true 175 // base::ObserverList<>::might_have_observers() because that returns true
176 // during iteration over the list even when the last observer is removed. 176 // during iteration over the list even when the last observer is removed.
177 base::ObserverList<PointerDownWatcher>::Iterator iterator( 177 base::ObserverList<PointerDownWatcher>::Iterator iterator(
178 &pointer_down_watchers_); 178 &pointer_down_watchers_);
179 return !!iterator.GetNext(); 179 return !!iterator.GetNext();
180 } 180 }
181 181
182 bool WindowManagerConnection::HasTouchEventWatcher() { 182 bool WindowManagerConnection::HasTouchEventWatcher() {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 void WindowManagerConnection::OnWindowManagerFrameValuesChanged() { 234 void WindowManagerConnection::OnWindowManagerFrameValuesChanged() {
235 if (client_) 235 if (client_)
236 NativeWidgetMus::NotifyFrameChanged(client_.get()); 236 NativeWidgetMus::NotifyFrameChanged(client_.get());
237 } 237 }
238 238
239 gfx::Point WindowManagerConnection::GetCursorScreenPoint() { 239 gfx::Point WindowManagerConnection::GetCursorScreenPoint() {
240 return client_->GetCursorScreenPoint(); 240 return client_->GetCursorScreenPoint();
241 } 241 }
242 242
243 } // namespace views 243 } // namespace views
OLDNEW
« ash/accelerators/debug_commands.cc ('K') | « ui/views/mus/window_manager_connection.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698