| Index: mojo/services/view_manager/view_manager_service_impl.cc
|
| diff --git a/mojo/services/view_manager/view_manager_service_impl.cc b/mojo/services/view_manager/view_manager_service_impl.cc
|
| index dd3fc7087aa1db62909dbf0516cf487353b1ff36..a4390262197533f4a17916edb60965b3ae0fcb03 100644
|
| --- a/mojo/services/view_manager/view_manager_service_impl.cc
|
| +++ b/mojo/services/view_manager/view_manager_service_impl.cc
|
| @@ -542,16 +542,18 @@ Array<NodeDataPtr> ViewManagerServiceImpl::NodesToNodeDatas(
|
|
|
| void ViewManagerServiceImpl::CreateNode(
|
| Id transport_node_id,
|
| - const Callback<void(bool)>& callback) {
|
| + const Callback<void(ErrorCode)>& callback) {
|
| const NodeId node_id(NodeIdFromTransportId(transport_node_id));
|
| - if (node_id.connection_id != id_ ||
|
| - node_map_.find(node_id.node_id) != node_map_.end()) {
|
| - callback.Run(false);
|
| - return;
|
| + ErrorCode error_code = ERROR_CODE_NONE;
|
| + if (node_id.connection_id != id_) {
|
| + error_code = ERROR_CODE_ILLEGAL_ARGUMENT;
|
| + } else if (node_map_.find(node_id.node_id) != node_map_.end()) {
|
| + error_code = ERROR_CODE_VALUE_IN_USE;
|
| + } else {
|
| + node_map_[node_id.node_id] = new Node(root_node_manager_, node_id);
|
| + known_nodes_.insert(transport_node_id);
|
| }
|
| - node_map_[node_id.node_id] = new Node(root_node_manager_, node_id);
|
| - known_nodes_.insert(transport_node_id);
|
| - callback.Run(true);
|
| + callback.Run(error_code);
|
| }
|
|
|
| void ViewManagerServiceImpl::DeleteNode(
|
|
|