| Index: components/mus/mus_app.cc
|
| diff --git a/components/mus/mus_app.cc b/components/mus/mus_app.cc
|
| index 25b97a0717d7920cb9a70bf2f2812406fadb2287..c2dc704eef76632397cf8e7a71c38f364c50414e 100644
|
| --- a/components/mus/mus_app.cc
|
| +++ b/components/mus/mus_app.cc
|
| @@ -39,6 +39,11 @@ using mus::mojom::Gpu;
|
|
|
| namespace mus {
|
|
|
| +struct MandolineUIServicesApp::PendingRequest {
|
| + scoped_ptr<mojo::InterfaceRequest<mojom::DisplayManager>> dm_request;
|
| + scoped_ptr<mojo::InterfaceRequest<mojom::WindowManager>> wm_request;
|
| +};
|
| +
|
| MandolineUIServicesApp::MandolineUIServicesApp()
|
| : app_impl_(nullptr) {}
|
|
|
| @@ -87,16 +92,21 @@ void MandolineUIServicesApp::Initialize(ApplicationImpl* app) {
|
| bool MandolineUIServicesApp::ConfigureIncomingConnection(
|
| ApplicationConnection* connection) {
|
| connection->AddService<Gpu>(this);
|
| + connection->AddService<mojom::DisplayManager>(this);
|
| connection->AddService<mojom::WindowManager>(this);
|
| connection->AddService<WindowTreeHostFactory>(this);
|
| return true;
|
| }
|
|
|
| void MandolineUIServicesApp::OnFirstRootConnectionCreated() {
|
| - WindowManagerRequests requests;
|
| - requests.swap(pending_window_manager_requests_);
|
| - for (auto& request : requests)
|
| - Create(nullptr, std::move(*request));
|
| + PendingRequests requests;
|
| + requests.swap(pending_requests_);
|
| + for (auto& request : requests) {
|
| + if (request->dm_request)
|
| + Create(nullptr, std::move(*request->dm_request));
|
| + else
|
| + Create(nullptr, std::move(*request->wm_request));
|
| + }
|
| }
|
|
|
| void MandolineUIServicesApp::OnNoMoreRootConnections() {
|
| @@ -119,10 +129,25 @@ MandolineUIServicesApp::CreateClientConnectionForEmbedAtWindow(
|
|
|
| void MandolineUIServicesApp::Create(
|
| mojo::ApplicationConnection* connection,
|
| + mojo::InterfaceRequest<mojom::DisplayManager> request) {
|
| + if (!connection_manager_->has_tree_host_connections()) {
|
| + scoped_ptr<PendingRequest> pending_request(new PendingRequest);
|
| + pending_request->dm_request.reset(
|
| + new mojo::InterfaceRequest<mojom::DisplayManager>(std::move(request)));
|
| + pending_requests_.push_back(std::move(pending_request));
|
| + return;
|
| + }
|
| + connection_manager_->AddDisplayManagerBinding(std::move(request));
|
| +}
|
| +
|
| +void MandolineUIServicesApp::Create(
|
| + mojo::ApplicationConnection* connection,
|
| mojo::InterfaceRequest<mojom::WindowManager> request) {
|
| if (!connection_manager_->has_tree_host_connections()) {
|
| - pending_window_manager_requests_.push_back(make_scoped_ptr(
|
| - new mojo::InterfaceRequest<mojom::WindowManager>(std::move(request))));
|
| + scoped_ptr<PendingRequest> pending_request(new PendingRequest);
|
| + pending_request->wm_request.reset(
|
| + new mojo::InterfaceRequest<mojom::WindowManager>(std::move(request)));
|
| + pending_requests_.push_back(std::move(pending_request));
|
| return;
|
| }
|
| if (!window_manager_impl_) {
|
|
|