Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: mojo/services/view_manager/view_manager_connection.cc

Issue 274733004: Deletion/ownership (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « mojo/services/view_manager/view_manager_connection.h ('k') | mojo/services/view_manager/view_manager_connection_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698