Index: mash/wm/window_manager_application.h |
diff --git a/mash/wm/window_manager_application.h b/mash/wm/window_manager_application.h |
index 20593df8b3dc605de000204fa991d1b905b52b81..cf0f26c0f043ff759a0806b7d6e0ab38b2bf63d4 100644 |
--- a/mash/wm/window_manager_application.h |
+++ b/mash/wm/window_manager_application.h |
@@ -11,7 +11,6 @@ |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
-#include "base/memory/scoped_vector.h" |
#include "components/mus/common/types.h" |
#include "components/mus/public/cpp/window_observer.h" |
#include "components/mus/public/cpp/window_tree_delegate.h" |
@@ -19,6 +18,7 @@ |
#include "components/mus/public/interfaces/window_manager.mojom.h" |
#include "components/mus/public/interfaces/window_tree_host.mojom.h" |
#include "mash/wm/public/interfaces/container.mojom.h" |
+#include "mash/wm/public/interfaces/user_window_controller.mojom.h" |
#include "mojo/common/weak_binding_set.h" |
#include "mojo/services/tracing/public/cpp/tracing_impl.h" |
#include "mojo/shell/public/cpp/application_delegate.h" |
@@ -41,6 +41,7 @@ class AcceleratorRegistrarImpl; |
class BackgroundLayout; |
class ShadowController; |
class ShelfLayout; |
+class UserWindowControllerImpl; |
class WindowLayout; |
class WindowManagerImpl; |
@@ -49,6 +50,7 @@ class WindowManagerApplication |
public mus::WindowObserver, |
public mus::mojom::WindowTreeHostClient, |
public mus::WindowTreeDelegate, |
+ public mojo::InterfaceFactory<mash::wm::mojom::UserWindowController>, |
public mojo::InterfaceFactory<mus::mojom::WindowManager>, |
public mojo::InterfaceFactory<mus::mojom::AcceleratorRegistrar> { |
public: |
@@ -86,6 +88,11 @@ class WindowManagerApplication |
void OnEmbed(mus::Window* root) override; |
void OnConnectionLost(mus::WindowTreeConnection* connection) override; |
+ // InterfaceFactory<mash::wm::mojom::UserWindowController>: |
+ void Create(mojo::ApplicationConnection* connection, |
+ mojo::InterfaceRequest<mash::wm::mojom::UserWindowController> |
+ request) override; |
+ |
// InterfaceFactory<mus::mojom::AcceleratorRegistrar>: |
void Create(mojo::ApplicationConnection* connection, |
mojo::InterfaceRequest<mus::mojom::AcceleratorRegistrar> request) |
@@ -120,7 +127,17 @@ class WindowManagerApplication |
// |requests_| stores any pending WindowManager interface requests. |
scoped_ptr<WindowManagerImpl> window_manager_; |
mojo::WeakBindingSet<mus::mojom::WindowManager> window_manager_binding_; |
- ScopedVector<mojo::InterfaceRequest<mus::mojom::WindowManager>> requests_; |
+ std::vector<scoped_ptr<mojo::InterfaceRequest<mus::mojom::WindowManager>>> |
+ requests_; |
+ |
+ // |user_window_controller_| is created once OnEmbed() is called. Until that |
+ // time |user_window_controller_requests_| stores pending interface requests. |
+ scoped_ptr<UserWindowControllerImpl> user_window_controller_; |
+ mojo::WeakBindingSet<mash::wm::mojom::UserWindowController> |
+ user_window_controller_binding_; |
+ std::vector< |
+ scoped_ptr<mojo::InterfaceRequest<mash::wm::mojom::UserWindowController>>> |
+ user_window_controller_requests_; |
scoped_ptr<BackgroundLayout> background_layout_; |
scoped_ptr<ShelfLayout> shelf_layout_; |