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_service_impl.h" | 5 #include "mojo/services/view_manager/view_manager_service_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
9 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h" | 9 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h" |
10 #include "mojo/services/public/cpp/input_events/input_events_type_converters.h" | 10 #include "mojo/services/public/cpp/input_events/input_events_type_converters.h" |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 callback.Run(false); | 554 callback.Run(false); |
555 return; | 555 return; |
556 } | 556 } |
557 node_map_[node_id.node_id] = new Node(this, node_id); | 557 node_map_[node_id.node_id] = new Node(this, node_id); |
558 known_nodes_.insert(transport_node_id); | 558 known_nodes_.insert(transport_node_id); |
559 callback.Run(true); | 559 callback.Run(true); |
560 } | 560 } |
561 | 561 |
562 void ViewManagerServiceImpl::DeleteNode( | 562 void ViewManagerServiceImpl::DeleteNode( |
563 Id transport_node_id, | 563 Id transport_node_id, |
| 564 Id server_change_id, |
564 const Callback<void(bool)>& callback) { | 565 const Callback<void(bool)>& callback) { |
565 const NodeId node_id(NodeIdFromTransportId(transport_node_id)); | 566 const NodeId node_id(NodeIdFromTransportId(transport_node_id)); |
566 bool did_delete = CanDeleteNode(node_id); | 567 bool success = false; |
567 if (did_delete) { | 568 if (server_change_id == root_node_manager_->next_server_change_id() && |
| 569 CanDeleteNode(node_id)) { |
568 ViewManagerServiceImpl* connection = root_node_manager_->GetConnection( | 570 ViewManagerServiceImpl* connection = root_node_manager_->GetConnection( |
569 node_id.connection_id); | 571 node_id.connection_id); |
570 did_delete = connection && connection->DeleteNodeImpl(this, node_id); | 572 success = connection && connection->DeleteNodeImpl(this, node_id); |
571 } | 573 } |
572 callback.Run(did_delete); | 574 callback.Run(success); |
573 } | 575 } |
574 | 576 |
575 void ViewManagerServiceImpl::AddNode( | 577 void ViewManagerServiceImpl::AddNode( |
576 Id parent_id, | 578 Id parent_id, |
577 Id child_id, | 579 Id child_id, |
578 Id server_change_id, | 580 Id server_change_id, |
579 const Callback<void(bool)>& callback) { | 581 const Callback<void(bool)>& callback) { |
580 bool success = false; | 582 bool success = false; |
581 if (server_change_id == root_node_manager_->next_server_change_id()) { | 583 if (server_change_id == root_node_manager_->next_server_change_id()) { |
582 Node* parent = GetNode(NodeIdFromTransportId(parent_id)); | 584 Node* parent = GetNode(NodeIdFromTransportId(parent_id)); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 client()->OnViewManagerConnectionEstablished( | 789 client()->OnViewManagerConnectionEstablished( |
788 id_, | 790 id_, |
789 creator_url_, | 791 creator_url_, |
790 root_node_manager_->next_server_change_id(), | 792 root_node_manager_->next_server_change_id(), |
791 NodesToNodeDatas(to_send)); | 793 NodesToNodeDatas(to_send)); |
792 } | 794 } |
793 | 795 |
794 } // namespace service | 796 } // namespace service |
795 } // namespace view_manager | 797 } // namespace view_manager |
796 } // namespace mojo | 798 } // namespace mojo |
OLD | NEW |