Run Tizen Webapps in single process mode
[platform/framework/web/crosswalk-tizen.git] / atom / renderer / atom_renderer_client.cc
index 87be391..1e55cce 100644 (file)
@@ -34,6 +34,7 @@
 #include "native_mate/dictionary.h"
 #include "third_party/WebKit/public/web/WebDocument.h"
 #include "third_party/WebKit/public/web/WebLocalFrame.h"
+#include "tizen/common/env_variables.h"
 
 #include "atom/common/node_includes.h"
 
@@ -60,9 +61,11 @@ const char** StringVectorToArgArray(
 }  // namespace
 
 AtomRendererClient::AtomRendererClient()
-    : node_integration_initialized_(false),
-      node_bindings_(NodeBindings::Create(NodeBindings::RENDERER)),
-      atom_bindings_(new AtomBindings(uv_default_loop())) {
+    : node_integration_initialized_(false) {
+  if (!::tizen::is_single_process) {
+    node_bindings_.reset(NodeBindings::Create(NodeBindings::RENDERER));
+    atom_bindings_.reset(new AtomBindings(node_bindings_->uv_loop()));
+  }
   isolated_world_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
       switches::kContextIsolation);
 }
@@ -114,6 +117,8 @@ void AtomRendererClient::RenderViewCreated(content::RenderView* render_view) {
 
 void AtomRendererClient::RunScriptsAtDocumentStart(
     content::RenderFrame* render_frame) {
+  if (::tizen::is_single_process)
+    return;
   // Inform the document start pharse.
   node::Environment* env = node_bindings_->uv_env();
   if (env) {
@@ -124,6 +129,8 @@ void AtomRendererClient::RunScriptsAtDocumentStart(
 
 void AtomRendererClient::RunScriptsAtDocumentEnd(
     content::RenderFrame* render_frame) {
+  if (::tizen::is_single_process)
+    return;
   // Inform the document end pharse.
   node::Environment* env = node_bindings_->uv_env();
   if (env) {
@@ -142,6 +149,8 @@ void AtomRendererClient::DidCreateScriptContext(
                         render_frame->GetWebFrame()->document().baseURL().string().utf8().c_str());
   }
 #endif
+  if (::tizen::is_single_process)
+    return;
   // Only allow node integration for the main frame, unless it is a devtools
   // extension page.
   if (!render_frame->IsMainFrame() && !IsDevToolsExtension(render_frame))
@@ -180,6 +189,8 @@ void AtomRendererClient::WillReleaseScriptContext(
   if (widget_)
     widget_->StopSession(context);
 #endif
+  if (::tizen::is_single_process)
+    return;
   // Only allow node integration for the main frame, unless it is a devtools
   // extension page.
   if (!render_frame->IsMainFrame() && !IsDevToolsExtension(render_frame))