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

Side by Side Diff: services/ui/ws/window_tree_host_factory.cc

Issue 2712203002: c++ / mojo changes for 'external window mode'
Patch Set: . 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
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 "services/ui/ws/window_tree_host_factory.h" 5 #include "services/ui/ws/window_tree_host_factory.h"
6 6
7 #include "services/ui/ws/default_access_policy.h"
7 #include "services/ui/ws/display.h" 8 #include "services/ui/ws/display.h"
8 #include "services/ui/ws/display_binding.h" 9 #include "services/ui/ws/display_binding.h"
9 #include "services/ui/ws/window_server.h" 10 #include "services/ui/ws/window_server.h"
11 #include "services/ui/ws/window_tree.h"
12 #include "services/ui/ws/window_tree_binding.h"
10 13
11 namespace ui { 14 namespace ui {
12 namespace ws { 15 namespace ws {
13 16
14 WindowTreeHostFactory::WindowTreeHostFactory(WindowServer* window_server, 17 WindowTreeHostFactory::WindowTreeHostFactory(WindowServer* window_server,
15 const UserId& user_id) 18 const UserId& user_id)
16 : window_server_(window_server), user_id_(user_id) { 19 : window_server_(window_server), user_id_(user_id) {
17 platform_display_init_params_.metrics.bounds.set_width(1024); 20 platform_display_init_params_.metrics.bounds.set_width(1024);
18 platform_display_init_params_.metrics.bounds.set_height(768); 21 platform_display_init_params_.metrics.bounds.set_height(768);
19 platform_display_init_params_.metrics.pixel_size.SetSize(1024, 768); 22 platform_display_init_params_.metrics.pixel_size.SetSize(1024, 768);
20 platform_display_init_params_.metrics.device_scale_factor = 1.0f; 23 platform_display_init_params_.metrics.device_scale_factor = 1.0f;
21 } 24 }
22 25
23 WindowTreeHostFactory::~WindowTreeHostFactory() {} 26 WindowTreeHostFactory::~WindowTreeHostFactory() {}
24 27
25 void WindowTreeHostFactory::AddBinding( 28 void WindowTreeHostFactory::Init(mojom::WindowTreeHostFactoryRequest request,
26 mojom::WindowTreeHostFactoryRequest request) { 29 mojom::WindowTreeRequest tree_request,
30 mojom::WindowTreeClientPtr tree_client) {
27 bindings_.AddBinding(this, std::move(request)); 31 bindings_.AddBinding(this, std::move(request));
32
33 std::unique_ptr<ws::WindowTree> tree(
34 new ws::WindowTree(window_server_, user_id_, nullptr /*ServerWindow*/,
35 base::WrapUnique(new DefaultAccessPolicy)));
36
37 std::unique_ptr<ws::DefaultWindowTreeBinding> tree_binding(
38 new ws::DefaultWindowTreeBinding(tree.get(), window_server_,
39 std::move(tree_request),
40 std::move(tree_client)));
41
42 tree_ = tree.get();
43
44 // Pass nullptr as mojom::WindowTreePtr (3rd paramaneter), because in external
fwang 2017/02/27 20:06:50 parameter
tonikitoo 2017/03/01 05:05:44 Done.
45 // window mode, the WindowTreePtr is created on the aura/WindowTreeClient
46 // side.
47 //
48 // NOTE: This call to ::AddTree calls ::Init. However, it wont trigger a
fwang 2017/02/28 08:23:53 won't
tonikitoo 2017/03/01 05:05:44 Done.
49 // ::OnEmbed call because the WindowTree instance was created above passing
50 // 'nullptr' as the ServerWindow, hence there is no 'root' yet.
51 window_server_->AddTree(std::move(tree), std::move(tree_binding),
52 nullptr /*mojom::WindowTreePtr*/);
28 } 53 }
29 54
30 void WindowTreeHostFactory::CreateWindowTreeHost( 55 void WindowTreeHostFactory::CreateWindowTreeHost(
31 mojom::WindowTreeHostRequest host, 56 mojom::WindowTreeHostRequest tree_host_request) {
32 mojom::WindowTreeClientPtr tree_client) {
33 Display* display = new Display(window_server_); 57 Display* display = new Display(window_server_);
34 std::unique_ptr<DisplayBindingImpl> display_binding( 58 std::unique_ptr<DisplayBindingImpl> display_binding(
35 new DisplayBindingImpl(std::move(host), display, user_id_, 59 new DisplayBindingImpl(std::move(tree_host_request), display, user_id_,
36 std::move(tree_client), window_server_)); 60 nullptr /* tree_client */, window_server_));
fwang 2017/02/28 08:23:53 ditto about /* */
37 display->Init(platform_display_init_params_, std::move(display_binding)); 61 display->Init(platform_display_init_params_, std::move(display_binding));
38 } 62 }
39 63
40 } // namespace ws 64 } // namespace ws
41 } // namespace ui 65 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698