| Index: mojo/services/view_manager/view_manager_init_service_impl.cc
|
| diff --git a/mojo/services/view_manager/view_manager_init_service_impl.cc b/mojo/services/view_manager/view_manager_init_service_impl.cc
|
| index 28c7beb37c9559a3e7cc6d72da3f632a6ff702d7..9cb337bd6a6fae159f0b23c71e50d512d9d05e72 100644
|
| --- a/mojo/services/view_manager/view_manager_init_service_impl.cc
|
| +++ b/mojo/services/view_manager/view_manager_init_service_impl.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "mojo/services/view_manager/view_manager_init_service_impl.h"
|
|
|
| +#include "base/bind.h"
|
| #include "mojo/public/interfaces/service_provider/service_provider.mojom.h"
|
| #include "mojo/services/view_manager/ids.h"
|
| #include "mojo/services/view_manager/view_manager_service_impl.h"
|
| @@ -19,7 +20,11 @@ ViewManagerInitServiceImpl::ConnectParams::~ConnectParams() {}
|
|
|
| ViewManagerInitServiceImpl::ViewManagerInitServiceImpl(
|
| ApplicationConnection* connection)
|
| - : root_node_manager_(connection, this),
|
| + : root_node_manager_(
|
| + connection,
|
| + this,
|
| + base::Bind(&ViewManagerInitServiceImpl::OnNativeViewportDeleted,
|
| + base::Unretained(this))),
|
| is_tree_host_ready_(false) {
|
| }
|
|
|
| @@ -57,6 +62,13 @@ void ViewManagerInitServiceImpl::OnRootViewManagerWindowTreeHostCreated() {
|
| MaybeEmbedRoot(connect_params_->url, connect_params_->callback);
|
| }
|
|
|
| +void ViewManagerInitServiceImpl::OnNativeViewportDeleted() {
|
| + // TODO(beng): Should not have to rely on implementation detail of
|
| + // InterfaceImpl to close the connection. Instead should simply
|
| + // be able to delete this object.
|
| + internal_state()->router()->CloseMessagePipe();
|
| +}
|
| +
|
| } // namespace service
|
| } // namespace view_manager
|
| } // namespace mojo
|
|
|