Index: mojo/services/view_manager/view_manager_connection.cc |
diff --git a/mojo/services/view_manager/view_manager_connection.cc b/mojo/services/view_manager/view_manager_connection.cc |
index 176d8eecb0e990e5eafeeb826d4e922df678153d..d7a29191499f1dbf169d1b23bfcfdb6abc5f9342 100644 |
--- a/mojo/services/view_manager/view_manager_connection.cc |
+++ b/mojo/services/view_manager/view_manager_connection.cc |
@@ -96,7 +96,7 @@ Node* ViewManagerConnection::GetNode(const NodeId& id) { |
return context()->GetNode(id); |
} |
-View* ViewManagerConnection::GetView(const ViewId& id) { |
+service::View* ViewManagerConnection::GetView(const ViewId& id) { |
if (id_ == id.connection_id) { |
ViewMap::const_iterator i = view_map_.find(id.view_id); |
return i == view_map_.end() ? NULL : i->second; |
@@ -136,6 +136,14 @@ void ViewManagerConnection::NotifyNodeDeleted( |
client_change_id); |
} |
+void ViewManagerConnection::NotifyViewDeleted( |
+ const ViewId& view, |
+ TransportChangeId server_change_id, |
+ TransportChangeId client_change_id) { |
+ client()->OnViewDeleted(ViewIdToTransportId(view), server_change_id, |
+ client_change_id); |
+} |
+ |
bool ViewManagerConnection::DeleteNodeImpl(ViewManagerConnection* source, |
const NodeId& node_id, |
TransportChangeId change_id) { |
@@ -163,7 +171,7 @@ bool ViewManagerConnection::DeleteViewImpl(ViewManagerConnection* source, |
const ViewId& view_id, |
TransportChangeId change_id) { |
DCHECK_EQ(view_id.connection_id, id_); |
- View* view = GetView(view_id); |
+ service::View* view = GetView(view_id); |
if (!view) |
return false; |
RootNodeManager::ScopedChange change( |
@@ -173,6 +181,7 @@ bool ViewManagerConnection::DeleteViewImpl(ViewManagerConnection* source, |
view->node()->SetView(NULL); |
view_map_.erase(view_id.view_id); |
delete view; |
+ context()->NotifyViewDeleted(view_id); |
return true; |
} |
@@ -182,7 +191,7 @@ bool ViewManagerConnection::SetViewImpl(const NodeId& node_id, |
Node* node = GetNode(node_id); |
if (!node) |
return false; |
- View* view = GetView(view_id); |
+ service::View* view = GetView(view_id); |
if (!view && view_id != ViewId()) |
return false; |
RootNodeManager::ScopedChange change( |
@@ -276,7 +285,7 @@ void ViewManagerConnection::CreateView( |
callback.Run(false); |
return; |
} |
- view_map_[view_id] = new View(ViewId(id_, view_id)); |
+ view_map_[view_id] = new service::View(ViewId(id_, view_id)); |
callback.Run(true); |
} |
@@ -305,7 +314,7 @@ void ViewManagerConnection::SetViewContents( |
TransportViewId view_id, |
ScopedSharedBufferHandle buffer, |
uint32_t buffer_size) { |
- View* view = GetView(ViewIdFromTransportId(view_id)); |
+ service::View* view = GetView(ViewIdFromTransportId(view_id)); |
if (!view) |
return; |
void* handle_data; |