OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/services/view_manager/view_manager_connection.h" | 5 #include "mojo/services/view_manager/view_manager_connection.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "mojo/public/cpp/bindings/allocation_scope.h" | 8 #include "mojo/public/cpp/bindings/allocation_scope.h" |
9 #include "mojo/services/view_manager/node.h" | 9 #include "mojo/services/view_manager/node.h" |
10 #include "mojo/services/view_manager/root_node_manager.h" | 10 #include "mojo/services/view_manager/root_node_manager.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 const NodeId& node, | 122 const NodeId& node, |
123 const ViewId& new_view_id, | 123 const ViewId& new_view_id, |
124 const ViewId& old_view_id, | 124 const ViewId& old_view_id, |
125 TransportChangeId change_id) { | 125 TransportChangeId change_id) { |
126 client()->OnNodeViewReplaced(NodeIdToTransportId(node), | 126 client()->OnNodeViewReplaced(NodeIdToTransportId(node), |
127 ViewIdToTransportId(new_view_id), | 127 ViewIdToTransportId(new_view_id), |
128 ViewIdToTransportId(old_view_id), | 128 ViewIdToTransportId(old_view_id), |
129 change_id); | 129 change_id); |
130 } | 130 } |
131 | 131 |
| 132 void ViewManagerConnection::NotifyNodeDeleted(const NodeId& node, |
| 133 TransportChangeId change_id) { |
| 134 client()->OnNodeDeleted(NodeIdToTransportId(node), change_id); |
| 135 } |
| 136 |
132 bool ViewManagerConnection::DeleteNodeImpl(ViewManagerConnection* source, | 137 bool ViewManagerConnection::DeleteNodeImpl(ViewManagerConnection* source, |
133 const NodeId& node_id, | 138 const NodeId& node_id, |
134 TransportChangeId change_id) { | 139 TransportChangeId change_id) { |
135 DCHECK_EQ(node_id.connection_id, id_); | 140 DCHECK_EQ(node_id.connection_id, id_); |
136 Node* node = GetNode(node_id); | 141 Node* node = GetNode(node_id); |
137 if (!node) | 142 if (!node) |
138 return false; | 143 return false; |
139 RootNodeManager::ScopedChange change(source, context(), change_id); | 144 RootNodeManager::ScopedChange change(source, context(), change_id); |
140 if (node->GetParent()) | 145 if (node->GetParent()) |
141 node->GetParent()->Remove(node); | 146 node->GetParent()->Remove(node); |
142 std::vector<Node*> children(node->GetChildren()); | 147 std::vector<Node*> children(node->GetChildren()); |
143 for (size_t i = 0; i < children.size(); ++i) | 148 for (size_t i = 0; i < children.size(); ++i) |
144 node->Remove(children[i]); | 149 node->Remove(children[i]); |
145 DCHECK(node->GetChildren().empty()); | 150 DCHECK(node->GetChildren().empty()); |
146 node_map_.erase(node_id.node_id); | 151 node_map_.erase(node_id.node_id); |
147 delete node; | 152 delete node; |
| 153 context()->NotifyNodeDeleted(node_id); |
148 return true; | 154 return true; |
149 } | 155 } |
150 | 156 |
151 bool ViewManagerConnection::DeleteViewImpl(ViewManagerConnection* source, | 157 bool ViewManagerConnection::DeleteViewImpl(ViewManagerConnection* source, |
152 const ViewId& view_id, | 158 const ViewId& view_id, |
153 TransportChangeId change_id) { | 159 TransportChangeId change_id) { |
154 DCHECK_EQ(view_id.connection_id, id_); | 160 DCHECK_EQ(view_id.connection_id, id_); |
155 View* view = GetView(view_id); | 161 View* view = GetView(view_id); |
156 if (!view) | 162 if (!view) |
157 return false; | 163 return false; |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 | 306 |
301 void ViewManagerConnection::OnNodeViewReplaced(const NodeId& node, | 307 void ViewManagerConnection::OnNodeViewReplaced(const NodeId& node, |
302 const ViewId& new_view_id, | 308 const ViewId& new_view_id, |
303 const ViewId& old_view_id) { | 309 const ViewId& old_view_id) { |
304 context()->NotifyNodeViewReplaced(node, new_view_id, old_view_id); | 310 context()->NotifyNodeViewReplaced(node, new_view_id, old_view_id); |
305 } | 311 } |
306 | 312 |
307 } // namespace view_manager | 313 } // namespace view_manager |
308 } // namespace services | 314 } // namespace services |
309 } // namespace mojo | 315 } // namespace mojo |
OLD | NEW |