// Copyright (c) 2013 GitHub, Inc. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef RAVE_COMMON_NODE_BINDINGS_ #define RAVE_COMMON_NODE_BINDINGS_ #include "base/basictypes.h" namespace WebKit { class WebFrame; } namespace atom { class NodeBindings { public: static NodeBindings* Create(bool is_browser); virtual ~NodeBindings(); // Setup V8, libuv and the process object. virtual void Initialize(); // Load node.js main script. virtual void Load(); // Load cefode.js script under web frame. virtual void BindTo(WebKit::WebFrame* frame); // Prepare for message loop integration. virtual void PrepareMessageLoop() = 0; // Do message loop integration. virtual void RunMessageLoop() = 0; protected: explicit NodeBindings(bool is_browser); bool is_browser_; private: DISALLOW_COPY_AND_ASSIGN(NodeBindings); }; } // namespace atom #endif // RAVE_COMMON_NODE_BINDINGS_