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 cac1ef3ec02fbd1ea22f825cf04bd9429f0a79c9..4621ab9aab0302b8e44ddb53e6556a461b2d3f72 100644 |
--- a/mojo/services/view_manager/view_manager_connection.cc |
+++ b/mojo/services/view_manager/view_manager_connection.cc |
@@ -121,12 +121,14 @@ void ViewManagerConnection::ProcessNodeViewReplaced( |
bool originated_change) { |
if (originated_change) |
return; |
- const TransportViewId new_view_id = new_view ? |
- ViewIdToTransportId(new_view->id()) : 0; |
- const TransportViewId old_view_id = old_view ? |
- ViewIdToTransportId(old_view->id()) : 0; |
- client()->OnNodeViewReplaced(NodeIdToTransportId(node->id()), |
- new_view_id, old_view_id); |
+ if (known_nodes_.count(NodeIdToTransportId(node->id())) > 0) { |
+ const TransportViewId new_view_id = new_view ? |
+ ViewIdToTransportId(new_view->id()) : 0; |
+ const TransportViewId old_view_id = old_view ? |
+ ViewIdToTransportId(old_view->id()) : 0; |
+ client()->OnNodeViewReplaced(NodeIdToTransportId(node->id()), |
+ new_view_id, old_view_id); |
+ } |
} |
void ViewManagerConnection::ProcessNodeDeleted( |
@@ -264,6 +266,7 @@ void ViewManagerConnection::CreateNode( |
return; |
} |
node_map_[node_id.node_id] = new Node(this, node_id); |
+ known_nodes_.insert(transport_node_id); |
callback.Run(true); |
} |