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

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

Issue 2759463002: aura-mus: create an interactive ui test for drag and drop. (Closed)
Patch Set: Merge with master Created 3 years, 9 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
« no previous file with comments | « ui/views/mus/mus_client.h ('k') | ui/views/mus/test_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/mus_client.h" 5 #include "ui/views/mus/mus_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/threading/thread.h" 9 #include "base/threading/thread.h"
10 #include "services/service_manager/public/cpp/connection.h" 10 #include "services/service_manager/public/cpp/connection.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 // Widget::InitParams::Type. 54 // Widget::InitParams::Type.
55 55
56 namespace views { 56 namespace views {
57 57
58 // static 58 // static
59 MusClient* MusClient::instance_ = nullptr; 59 MusClient* MusClient::instance_ = nullptr;
60 60
61 MusClient::MusClient(service_manager::Connector* connector, 61 MusClient::MusClient(service_manager::Connector* connector,
62 const service_manager::Identity& identity, 62 const service_manager::Identity& identity,
63 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 63 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
64 bool create_wm_state) 64 bool create_wm_state,
65 MusClientTestingState testing_state)
65 : identity_(identity) { 66 : identity_(identity) {
66 DCHECK(!instance_); 67 DCHECK(!instance_);
67 DCHECK(aura::Env::GetInstance()); 68 DCHECK(aura::Env::GetInstance());
68 instance_ = this; 69 instance_ = this;
69 70
70 if (!io_task_runner) { 71 if (!io_task_runner) {
71 io_thread_ = base::MakeUnique<base::Thread>("IOThread"); 72 io_thread_ = base::MakeUnique<base::Thread>("IOThread");
72 base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); 73 base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0);
73 thread_options.priority = base::ThreadPriority::NORMAL; 74 thread_options.priority = base::ThreadPriority::NORMAL;
74 CHECK(io_thread_->StartWithOptions(thread_options)); 75 CHECK(io_thread_->StartWithOptions(thread_options));
75 io_task_runner = io_thread_->task_runner(); 76 io_task_runner = io_thread_->task_runner();
76 } 77 }
77 78
78 // TODO(msw): Avoid this... use some default value? Allow clients to extend? 79 // TODO(msw): Avoid this... use some default value? Allow clients to extend?
79 property_converter_ = base::MakeUnique<aura::PropertyConverter>(); 80 property_converter_ = base::MakeUnique<aura::PropertyConverter>();
80 property_converter_->RegisterProperty( 81 property_converter_->RegisterProperty(
81 wm::kShadowElevationKey, 82 wm::kShadowElevationKey,
82 ui::mojom::WindowManager::kShadowElevation_Property, 83 ui::mojom::WindowManager::kShadowElevation_Property,
83 base::Bind(&wm::IsValidShadowElevation)); 84 base::Bind(&wm::IsValidShadowElevation));
84 85
85 if (create_wm_state) 86 if (create_wm_state)
86 wm_state_ = base::MakeUnique<wm::WMState>(); 87 wm_state_ = base::MakeUnique<wm::WMState>();
87 88
89 if (testing_state == MusClientTestingState::CREATE_TESTING_STATE) {
90 connector->BindInterface(ui::mojom::kServiceName, &server_test_ptr_);
91 server_test_ptr_.EnableNestedDispatch(true);
92 }
93
88 window_tree_client_ = base::MakeUnique<aura::WindowTreeClient>( 94 window_tree_client_ = base::MakeUnique<aura::WindowTreeClient>(
89 connector, this, nullptr /* window_manager_delegate */, 95 connector, this, nullptr /* window_manager_delegate */,
90 nullptr /* window_tree_client_request */, std::move(io_task_runner)); 96 nullptr /* window_tree_client_request */, std::move(io_task_runner));
91 aura::Env::GetInstance()->SetWindowTreeClient(window_tree_client_.get()); 97 aura::Env::GetInstance()->SetWindowTreeClient(window_tree_client_.get());
92 window_tree_client_->ConnectViaWindowTreeFactory(); 98 window_tree_client_->ConnectViaWindowTreeFactory();
93 99
94 pointer_watcher_event_router_ = 100 pointer_watcher_event_router_ =
95 base::MakeUnique<PointerWatcherEventRouter>(window_tree_client_.get()); 101 base::MakeUnique<PointerWatcherEventRouter>(window_tree_client_.get());
96 102
97 screen_ = base::MakeUnique<ScreenMus>(this); 103 screen_ = base::MakeUnique<ScreenMus>(this);
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 } 242 }
237 243
238 void MusClient::RemoveObserver(MusClientObserver* observer) { 244 void MusClient::RemoveObserver(MusClientObserver* observer) {
239 observer_list_.RemoveObserver(observer); 245 observer_list_.RemoveObserver(observer);
240 } 246 }
241 void MusClient::SetMusPropertyMirror( 247 void MusClient::SetMusPropertyMirror(
242 std::unique_ptr<MusPropertyMirror> mirror) { 248 std::unique_ptr<MusPropertyMirror> mirror) {
243 mus_property_mirror_ = std::move(mirror); 249 mus_property_mirror_ = std::move(mirror);
244 } 250 }
245 251
252 ui::mojom::WindowServerTest* MusClient::GetTestingInterface() const {
253 // This will only be set in tests. CHECK to ensure it doesn't get used
254 // elsewhere.
255 CHECK(server_test_ptr_);
256 return server_test_ptr_.get();
257 }
258
246 std::unique_ptr<DesktopWindowTreeHost> MusClient::CreateDesktopWindowTreeHost( 259 std::unique_ptr<DesktopWindowTreeHost> MusClient::CreateDesktopWindowTreeHost(
247 const Widget::InitParams& init_params, 260 const Widget::InitParams& init_params,
248 internal::NativeWidgetDelegate* delegate, 261 internal::NativeWidgetDelegate* delegate,
249 DesktopNativeWidgetAura* desktop_native_widget_aura) { 262 DesktopNativeWidgetAura* desktop_native_widget_aura) {
250 std::map<std::string, std::vector<uint8_t>> mus_properties = 263 std::map<std::string, std::vector<uint8_t>> mus_properties =
251 ConfigurePropertiesFromParams(init_params); 264 ConfigurePropertiesFromParams(init_params);
252 return base::MakeUnique<DesktopWindowTreeHostMus>( 265 return base::MakeUnique<DesktopWindowTreeHostMus>(
253 delegate, desktop_native_widget_aura, &mus_properties); 266 delegate, desktop_native_widget_aura, &mus_properties);
254 } 267 }
255 268
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 // TODO: this likely gets z-order wrong. http://crbug.com/663606. 301 // TODO: this likely gets z-order wrong. http://crbug.com/663606.
289 gfx::Point relative_point(point); 302 gfx::Point relative_point(point);
290 window_tree_host->ConvertScreenInPixelsToDIP(&relative_point); 303 window_tree_host->ConvertScreenInPixelsToDIP(&relative_point);
291 if (gfx::Rect(root->bounds().size()).Contains(relative_point)) 304 if (gfx::Rect(root->bounds().size()).Contains(relative_point))
292 return root->GetTopWindowContainingPoint(relative_point); 305 return root->GetTopWindowContainingPoint(relative_point);
293 } 306 }
294 return nullptr; 307 return nullptr;
295 } 308 }
296 309
297 } // namespace views 310 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/mus/mus_client.h ('k') | ui/views/mus/test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698