Separate the creation function of NodeBindings for renderer and browser.
authorCheng Zhao <zcbenz@gmail.com>
Thu, 4 Jul 2013 11:47:48 +0000 (19:47 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Thu, 4 Jul 2013 11:47:48 +0000 (19:47 +0800)
On Windows the message loop integration would need two different
implementations.

browser/atom_browser_main_parts.cc
common/node_bindings.h
common/node_bindings_mac.mm
renderer/atom_renderer_client.cc

index 31fe68f..a23cf36 100644 (file)
@@ -20,7 +20,7 @@ AtomBrowserMainParts* AtomBrowserMainParts::self_ = NULL;
 AtomBrowserMainParts::AtomBrowserMainParts()
     : atom_bindings_(new AtomBrowserBindings),
       browser_(new Browser),
-      node_bindings_(NodeBindings::Create(true)) {
+      node_bindings_(NodeBindings::CreateInBrowser()) {
   DCHECK(!self_) << "Cannot have two AtomBrowserMainParts";
   self_ = this;
 }
index 4f4edec..887979c 100644 (file)
@@ -15,7 +15,8 @@ namespace atom {
 
 class NodeBindings {
  public:
-  static NodeBindings* Create(bool is_browser);
+  static NodeBindings* CreateInBrowser();
+  static NodeBindings* CreateInRenderer();
 
   virtual ~NodeBindings();
 
index 0c15387..f7a7585 100644 (file)
@@ -123,8 +123,13 @@ void NodeBindingsMac::OnWatcherQueueChanged(uv_loop_t* loop) {
 }
 
 // static
-NodeBindings* NodeBindings::Create(bool is_browser) {
-  return new NodeBindingsMac(is_browser);
+NodeBindings* NodeBindings::CreateInBrowser() {
+  return new NodeBindingsMac(true);
+}
+
+// static
+NodeBindings* NodeBindings::CreateInRenderer() {
+  return new NodeBindingsMac(false);
 }
 
 }  // namespace atom
index 36cb405..a22f8a8 100644 (file)
@@ -23,7 +23,7 @@ v8::Handle<v8::Context> GetNodeContext() {
 }  // namespace
 
 AtomRendererClient::AtomRendererClient()
-    : node_bindings_(NodeBindings::Create(false)) {
+    : node_bindings_(NodeBindings::CreateInRenderer()) {
 }
 
 AtomRendererClient::~AtomRendererClient() {