Move node integration from RenderViewObserver to RendererClient.
This commit is contained in:
parent
02d94c8b2e
commit
df0094b6cb
6 changed files with 54 additions and 57 deletions
|
@ -5,6 +5,7 @@
|
|||
#include "renderer/atom_renderer_client.h"
|
||||
|
||||
#include "common/node_bindings.h"
|
||||
#include "renderer/api/atom_renderer_bindings.h"
|
||||
#include "renderer/atom_render_view_observer.h"
|
||||
|
||||
#include "common/v8/node_common.h"
|
||||
|
@ -12,7 +13,8 @@
|
|||
namespace atom {
|
||||
|
||||
AtomRendererClient::AtomRendererClient()
|
||||
: node_bindings_(NodeBindings::Create(false)) {
|
||||
: node_bindings_(NodeBindings::Create(false)),
|
||||
atom_bindings_(new AtomRendererBindings) {
|
||||
}
|
||||
|
||||
AtomRendererClient::~AtomRendererClient() {
|
||||
|
@ -35,4 +37,29 @@ void AtomRendererClient::RenderViewCreated(content::RenderView* render_view) {
|
|||
new AtomRenderViewObserver(render_view, this);
|
||||
}
|
||||
|
||||
void AtomRendererClient::DidCreateScriptContext(WebKit::WebFrame* frame,
|
||||
v8::Handle<v8::Context> context,
|
||||
int extension_group,
|
||||
int world_id) {
|
||||
v8::Context::Scope scope(context);
|
||||
|
||||
// Check the existance of process object to prevent duplicate initialization.
|
||||
if (context->Global()->Has(v8::String::New("process")))
|
||||
return;
|
||||
|
||||
// Give the node loop a run to make sure everything is ready.
|
||||
node_bindings_->RunMessageLoop();
|
||||
|
||||
// Setup node environment for each window.
|
||||
node_bindings_->CreateEnvironment(context);
|
||||
|
||||
// Add atom-shell extended APIs.
|
||||
atom_bindings_->BindToFrame(frame);
|
||||
}
|
||||
|
||||
void AtomRendererClient::WillReleaseScriptContext(WebKit::WebFrame* frame,
|
||||
v8::Handle<v8::Context>,
|
||||
int world_id) {
|
||||
}
|
||||
|
||||
} // namespace atom
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue