Index: components/mus/mus_app.h |
diff --git a/components/mus/mus_app.h b/components/mus/mus_app.h |
index d318b569f7b50020737a52b25148ed600e8a47d5..08d893ab04456ce6e3243d4a7c03ab1cdccead8d 100644 |
--- a/components/mus/mus_app.h |
+++ b/components/mus/mus_app.h |
@@ -11,6 +11,7 @@ |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
+#include "components/mus/public/interfaces/display.mojom.h" |
#include "components/mus/public/interfaces/gpu.mojom.h" |
#include "components/mus/public/interfaces/window_manager.mojom.h" |
#include "components/mus/public/interfaces/window_tree.mojom.h" |
@@ -43,6 +44,7 @@ class ForwardingWindowManager; |
class MandolineUIServicesApp |
: public mojo::ApplicationDelegate, |
public ws::ConnectionManagerDelegate, |
+ public mojo::InterfaceFactory<mojom::DisplayManager>, |
public mojo::InterfaceFactory<mojom::WindowManager>, |
public mojo::InterfaceFactory<mojom::WindowTreeHostFactory>, |
public mojo::InterfaceFactory<mojom::Gpu>, |
@@ -52,6 +54,10 @@ class MandolineUIServicesApp |
~MandolineUIServicesApp() override; |
private: |
+ // Holds InterfaceRequests received before the first WindowTreeHost Display |
+ // has been established. |
+ struct PendingRequest; |
+ |
// ApplicationDelegate: |
void Initialize(mojo::ApplicationImpl* app) override; |
bool ConfigureIncomingConnection( |
@@ -67,6 +73,10 @@ class MandolineUIServicesApp |
uint32_t policy_bitmask, |
mojom::WindowTreeClientPtr client) override; |
+ // mojo::InterfaceFactory<mojom::DisplayManager> implementation. |
+ void Create(mojo::ApplicationConnection* connection, |
+ mojo::InterfaceRequest<mojom::DisplayManager> request) override; |
+ |
// mojo::InterfaceFactory<mojom::WindowManager> implementation. |
void Create(mojo::ApplicationConnection* connection, |
mojo::InterfaceRequest<mojom::WindowManager> request) override; |
@@ -94,9 +104,8 @@ class MandolineUIServicesApp |
scoped_refptr<GpuState> gpu_state_; |
scoped_ptr<ui::PlatformEventSource> event_source_; |
mojo::TracingImpl tracing_; |
- using WindowManagerRequests = |
- std::vector<scoped_ptr<mojo::InterfaceRequest<mojom::WindowManager>>>; |
- WindowManagerRequests pending_window_manager_requests_; |
+ using PendingRequests = std::vector<scoped_ptr<PendingRequest>>; |
+ PendingRequests pending_requests_; |
// Surfaces |
scoped_refptr<SurfacesState> surfaces_state_; |