Inject node bindings to renderer's DOM.

This commit is contained in:
Cheng Zhao 2013-04-20 11:13:06 +08:00
parent 855b42551d
commit 4c0a162963
6 changed files with 76 additions and 7 deletions

View file

@ -4,18 +4,36 @@
#include "renderer/atom_renderer_client.h"
#include "common/node_bindings.h"
#include "renderer/atom_render_view_observer.h"
#include "vendor/node/src/node_internals.h"
namespace webkit_atom {
extern void SetNodeContext(v8::Persistent<v8::Context> context);
}
namespace atom {
AtomRendererClient::AtomRendererClient() {
AtomRendererClient::AtomRendererClient()
: node_bindings_(NodeBindings::Create(false)) {
}
AtomRendererClient::~AtomRendererClient() {
}
void AtomRendererClient::RenderThreadStarted() {
node_bindings_->Initialize();
// Interact with dirty workarounds of extra node context in WebKit.
webkit_atom::SetNodeContext(node::g_context);
node_bindings_->Load();
node_bindings_->PrepareMessageLoop();
node_bindings_->RunMessageLoop();
}
void AtomRendererClient::RenderViewCreated(content::RenderView* render_view) {
new AtomRenderViewObserver(render_view);
new AtomRenderViewObserver(render_view, this);
}
} // namespace atom