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

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

Issue 396703002: Makes Embed() take a single node (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 6 years, 5 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/root_node_manager.h" 5 #include "mojo/services/view_manager/root_node_manager.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "mojo/public/cpp/application/application_connection.h" 8 #include "mojo/public/cpp/application/application_connection.h"
9 #include "mojo/public/interfaces/service_provider/service_provider.mojom.h" 9 #include "mojo/public/interfaces/service_provider/service_provider.mojom.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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 85
86 // Notify remaining connections so that they can cleanup. 86 // Notify remaining connections so that they can cleanup.
87 for (ConnectionMap::const_iterator i = connection_map_.begin(); 87 for (ConnectionMap::const_iterator i = connection_map_.begin();
88 i != connection_map_.end(); ++i) { 88 i != connection_map_.end(); ++i) {
89 i->second->OnViewManagerServiceImplDestroyed(connection->id()); 89 i->second->OnViewManagerServiceImplDestroyed(connection->id());
90 } 90 }
91 } 91 }
92 92
93 void RootNodeManager::EmbedRoot(const std::string& url) { 93 void RootNodeManager::EmbedRoot(const std::string& url) {
94 CHECK(connection_map_.empty()); 94 CHECK(connection_map_.empty());
95 Array<Id> roots(0); 95 EmbedImpl(kRootConnection, String::From(url), InvalidNodeId());
96 EmbedImpl(kRootConnection, String::From(url), roots);
97 } 96 }
98 97
99 void RootNodeManager::Embed(ConnectionSpecificId creator_id, 98 void RootNodeManager::Embed(ConnectionSpecificId creator_id,
100 const String& url, 99 const String& url,
101 const Array<Id>& node_ids) { 100 Id transport_node_id) {
102 CHECK_GT(node_ids.size(), 0u); 101 EmbedImpl(creator_id, url, NodeIdFromTransportId(transport_node_id))->
103 EmbedImpl(creator_id, url, node_ids)->set_delete_on_connection_error(); 102 set_delete_on_connection_error();
104 } 103 }
105 104
106 ViewManagerServiceImpl* RootNodeManager::GetConnection( 105 ViewManagerServiceImpl* RootNodeManager::GetConnection(
107 ConnectionSpecificId connection_id) { 106 ConnectionSpecificId connection_id) {
108 ConnectionMap::iterator i = connection_map_.find(connection_id); 107 ConnectionMap::iterator i = connection_map_.find(connection_id);
109 return i == connection_map_.end() ? NULL : i->second; 108 return i == connection_map_.end() ? NULL : i->second;
110 } 109 }
111 110
112 Node* RootNodeManager::GetNode(const NodeId& id) { 111 Node* RootNodeManager::GetNode(const NodeId& id) {
113 if (id == root_->id()) 112 if (id == root_->id())
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 // PrepareForChange/FinishChange should be balanced. 232 // PrepareForChange/FinishChange should be balanced.
234 CHECK(current_change_); 233 CHECK(current_change_);
235 if (current_change_->change_type() == CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID) 234 if (current_change_->change_type() == CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID)
236 next_server_change_id_++; 235 next_server_change_id_++;
237 current_change_ = NULL; 236 current_change_ = NULL;
238 } 237 }
239 238
240 ViewManagerServiceImpl* RootNodeManager::EmbedImpl( 239 ViewManagerServiceImpl* RootNodeManager::EmbedImpl(
241 const ConnectionSpecificId creator_id, 240 const ConnectionSpecificId creator_id,
242 const String& url, 241 const String& url,
243 const Array<Id>& node_ids) { 242 const NodeId& root_id) {
244 MessagePipe pipe; 243 MessagePipe pipe;
245 244
246 ServiceProvider* service_provider = 245 ServiceProvider* service_provider =
247 app_connection_->ConnectToApplication(url)->GetServiceProvider(); 246 app_connection_->ConnectToApplication(url)->GetServiceProvider();
248 service_provider->ConnectToService( 247 service_provider->ConnectToService(
249 ViewManagerServiceImpl::Client::Name_, 248 ViewManagerServiceImpl::Client::Name_,
250 pipe.handle1.Pass()); 249 pipe.handle1.Pass());
251 250
252 std::string creator_url; 251 std::string creator_url;
253 ConnectionMap::const_iterator it = connection_map_.find(creator_id); 252 ConnectionMap::const_iterator it = connection_map_.find(creator_id);
254 if (it != connection_map_.end()) 253 if (it != connection_map_.end())
255 creator_url = it->second->url(); 254 creator_url = it->second->url();
256 255
257 ViewManagerServiceImpl* connection = 256 ViewManagerServiceImpl* connection =
258 new ViewManagerServiceImpl(this, 257 new ViewManagerServiceImpl(this,
259 creator_id, 258 creator_id,
260 creator_url, 259 creator_url,
261 url.To<std::string>()); 260 url.To<std::string>(),
262 connection->SetRoots(node_ids); 261 root_id);
263 BindToPipe(connection, pipe.handle0.Pass()); 262 BindToPipe(connection, pipe.handle0.Pass());
264 connections_created_by_connect_.insert(connection); 263 connections_created_by_connect_.insert(connection);
265 return connection; 264 return connection;
266 } 265 }
267 266
268 void RootNodeManager::OnNodeDestroyed(const Node* node) { 267 void RootNodeManager::OnNodeDestroyed(const Node* node) {
269 ProcessNodeDeleted(node->id()); 268 ProcessNodeDeleted(node->id());
270 } 269 }
271 270
272 void RootNodeManager::OnNodeHierarchyChanged(const Node* node, 271 void RootNodeManager::OnNodeHierarchyChanged(const Node* node,
(...skipping 16 matching lines...) Expand all
289 } 288 }
290 289
291 void RootNodeManager::OnViewInputEvent(const View* view, 290 void RootNodeManager::OnViewInputEvent(const View* view,
292 const ui::Event* event) { 291 const ui::Event* event) {
293 DispatchViewInputEventToWindowManager(view, event); 292 DispatchViewInputEventToWindowManager(view, event);
294 } 293 }
295 294
296 } // namespace service 295 } // namespace service
297 } // namespace view_manager 296 } // namespace view_manager
298 } // namespace mojo 297 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/view_manager/root_node_manager.h ('k') | mojo/services/view_manager/test_change_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698