Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / mojo / services / view_manager / view_manager_init_service_impl.cc
index be2ce15..ab30718 100644 (file)
@@ -4,59 +4,31 @@
 
 #include "mojo/services/view_manager/view_manager_init_service_impl.h"
 
-#include "mojo/public/interfaces/service_provider/service_provider.mojom.h"
+#include "base/bind.h"
 #include "mojo/services/view_manager/ids.h"
+#include "mojo/services/view_manager/view_manager_init_service_context.h"
 #include "mojo/services/view_manager/view_manager_service_impl.h"
 
 namespace mojo {
-namespace view_manager {
 namespace service {
 
-ViewManagerInitServiceImpl::ConnectParams::ConnectParams() {}
-
-ViewManagerInitServiceImpl::ConnectParams::~ConnectParams() {}
-
 ViewManagerInitServiceImpl::ViewManagerInitServiceImpl(
-    ServiceProvider* service_provider)
-    : service_provider_(service_provider),
-      root_node_manager_(service_provider, this),
-      is_tree_host_ready_(false) {
+    ApplicationConnection* connection,
+    ViewManagerInitServiceContext* context)
+    : context_(context) {
+  context_->AddConnection(this);
 }
 
 ViewManagerInitServiceImpl::~ViewManagerInitServiceImpl() {
+  context_->RemoveConnection(this);
 }
 
-void ViewManagerInitServiceImpl::MaybeEmbedRoot(
-    const std::string& url,
-    const Callback<void(bool)>& callback) {
-  if (!is_tree_host_ready_)
-    return;
-
-  root_node_manager_.EmbedRoot(url);
-  callback.Run(true);
-}
-
-void ViewManagerInitServiceImpl::EmbedRoot(
+void ViewManagerInitServiceImpl::Embed(
     const String& url,
+    ServiceProviderPtr service_provider,
     const Callback<void(bool)>& callback) {
-  if (connect_params_.get()) {
-    DVLOG(1) << "Ignoring second connect";
-    callback.Run(false);
-    return;
-  }
-  connect_params_.reset(new ConnectParams);
-  connect_params_->url = url.To<std::string>();
-  connect_params_->callback = callback;
-  MaybeEmbedRoot(url.To<std::string>(), callback);
-}
-
-void ViewManagerInitServiceImpl::OnRootViewManagerWindowTreeHostCreated() {
-  DCHECK(!is_tree_host_ready_);
-  is_tree_host_ready_ = true;
-  if (connect_params_.get())
-    MaybeEmbedRoot(connect_params_->url, connect_params_->callback);
+  context_->Embed(url, service_provider.Pass(), callback);
 }
 
 }  // namespace service
-}  // namespace view_manager
 }  // namespace mojo