OLD | NEW |
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 #ifndef SERVICES_UI_WS_WINDOW_TREE_HOST_FACTORY_H_ | 5 #ifndef SERVICES_UI_WS_WINDOW_TREE_HOST_FACTORY_H_ |
6 #define SERVICES_UI_WS_WINDOW_TREE_HOST_FACTORY_H_ | 6 #define SERVICES_UI_WS_WINDOW_TREE_HOST_FACTORY_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include "mojo/public/cpp/bindings/binding_set.h" | 10 #include "mojo/public/cpp/bindings/binding_set.h" |
11 #include "services/ui/public/interfaces/window_tree_host.mojom.h" | 11 #include "services/ui/public/interfaces/window_tree_host.mojom.h" |
12 #include "services/ui/ws/platform_display_init_params.h" | 12 #include "services/ui/ws/platform_display_init_params.h" |
13 #include "services/ui/ws/user_id.h" | 13 #include "services/ui/ws/user_id.h" |
14 | 14 |
15 namespace ui { | 15 namespace ui { |
16 namespace ws { | 16 namespace ws { |
17 | 17 |
18 class WindowServer; | 18 class WindowServer; |
| 19 class WindowTree; |
19 | 20 |
20 class WindowTreeHostFactory : public mojom::WindowTreeHostFactory { | 21 class WindowTreeHostFactory : public mojom::WindowTreeHostFactory { |
21 public: | 22 public: |
22 WindowTreeHostFactory(WindowServer* window_server, const UserId& user_id); | 23 WindowTreeHostFactory(WindowServer* window_server, const UserId& user_id); |
23 ~WindowTreeHostFactory() override; | 24 ~WindowTreeHostFactory() override; |
24 | 25 |
25 void AddBinding(mojom::WindowTreeHostFactoryRequest request); | 26 void Init(mojom::WindowTreeHostFactoryRequest request, |
| 27 mojom::WindowTreeRequest tree_request, |
| 28 mojom::WindowTreeClientPtr tree_client); |
| 29 |
| 30 WindowTree* window_tree() { return tree_; } |
26 | 31 |
27 private: | 32 private: |
28 // mojom::WindowTreeHostFactory implementation. | 33 // mojom::WindowTreeHostFactory implementation. |
29 void CreateWindowTreeHost(mojom::WindowTreeHostRequest host, | 34 void CreateWindowTreeHost( |
30 mojom::WindowTreeClientPtr tree_client) override; | 35 mojom::WindowTreeHostRequest tree_host_request) override; |
31 | 36 |
32 WindowServer* window_server_; | 37 WindowServer* window_server_; |
33 const UserId user_id_; | 38 const UserId user_id_; |
34 PlatformDisplayInitParams platform_display_init_params_; | 39 PlatformDisplayInitParams platform_display_init_params_; |
35 mojo::BindingSet<mojom::WindowTreeHostFactory> bindings_; | 40 mojo::BindingSet<mojom::WindowTreeHostFactory> bindings_; |
36 | 41 |
| 42 // Owned by WindowServer. |
| 43 WindowTree* tree_ = nullptr; |
| 44 |
37 DISALLOW_COPY_AND_ASSIGN(WindowTreeHostFactory); | 45 DISALLOW_COPY_AND_ASSIGN(WindowTreeHostFactory); |
38 }; | 46 }; |
39 | 47 |
40 } // namespace ws | 48 } // namespace ws |
41 } // namespace ui | 49 } // namespace ui |
42 | 50 |
43 #endif // SERVICES_UI_WS_WINDOW_TREE_HOST_FACTORY_H_ | 51 #endif // SERVICES_UI_WS_WINDOW_TREE_HOST_FACTORY_H_ |
OLD | NEW |