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

Unified Diff: mojo/services/view_manager/view_manager_init_service_impl.cc

Issue 405163002: Add EmbedRoot to ViewManagerService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . 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 side-by-side diff with in-line comments
Download patch
Index: mojo/services/view_manager/view_manager_init_service_impl.cc
diff --git a/mojo/services/view_manager/view_manager_init_service_impl.cc b/mojo/services/view_manager/view_manager_init_service_impl.cc
index 0a1c0249fd6fad35c2f31e7d7b40baec2d59cbee..79cc6c48fb91747d70b98e7b3b48ecb9108e1d8d 100644
--- a/mojo/services/view_manager/view_manager_init_service_impl.cc
+++ b/mojo/services/view_manager/view_manager_init_service_impl.cc
@@ -31,32 +31,32 @@ ViewManagerInitServiceImpl::ViewManagerInitServiceImpl(
ViewManagerInitServiceImpl::~ViewManagerInitServiceImpl() {
}
-void ViewManagerInitServiceImpl::MaybeEmbedRoot(
- const std::string& url,
- const Callback<void(bool)>& callback) {
+void ViewManagerInitServiceImpl::MaybeEmbed() {
if (!is_tree_host_ready_)
return;
- root_node_manager_.EmbedRoot(url);
- callback.Run(true);
+ ScopedVector<ConnectParams>::const_iterator it = connect_params_.begin();
+ for (; it != connect_params_.end(); ++it) {
+ root_node_manager_.EmbedRoot((*it)->url);
+ (*it)->callback.Run(true);
+ }
+ connect_params_.clear();
}
-void ViewManagerInitServiceImpl::EmbedRoot(
+void ViewManagerInitServiceImpl::Embed(
const String& url,
const Callback<void(bool)>& callback) {
- // TODO(beng): This means you can only have one EmbedRoot in flight at a time.
- // Keep a vector of these around instead.
- connect_params_.reset(new ConnectParams);
- connect_params_->url = url.To<std::string>();
- connect_params_->callback = callback;
- MaybeEmbedRoot(url.To<std::string>(), callback);
+ ConnectParams* params = new ConnectParams;
+ params->url = url.To<std::string>();
+ params->callback = callback;
+ connect_params_.push_back(params);
+ MaybeEmbed();
}
void ViewManagerInitServiceImpl::OnRootViewManagerWindowTreeHostCreated() {
DCHECK(!is_tree_host_ready_);
is_tree_host_ready_ = true;
- if (connect_params_)
- MaybeEmbedRoot(connect_params_->url, connect_params_->callback);
+ MaybeEmbed();
}
void ViewManagerInitServiceImpl::OnNativeViewportDeleted() {
« no previous file with comments | « mojo/services/view_manager/view_manager_init_service_impl.h ('k') | mojo/services/view_manager/view_manager_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698