Use the new way of reporting exception in node context.
More on this can be found at:
3c0fc7ad9f
This commit is contained in:
parent
0bab9a9d84
commit
f3a8a0741c
3 changed files with 20 additions and 15 deletions
|
@ -17,10 +17,9 @@
|
||||||
|
|
||||||
using WebKit::WebFrame;
|
using WebKit::WebFrame;
|
||||||
|
|
||||||
namespace webkit_atom {
|
namespace webkit {
|
||||||
extern void SetNodeContext(v8::Persistent<v8::Context> context);
|
extern void SetGetFirstWindowContext(v8::Handle<v8::Context> (*)());
|
||||||
extern void SetEnterFirstWindowContext(bool (*func)());
|
extern void SetIsValidWindowContext(bool (*)(v8::Handle<v8::Context>));
|
||||||
extern void SetIsValidWindowContext(bool (*func)(v8::Handle<v8::Context>));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
@ -32,13 +31,11 @@ std::vector<WebFrame*>& web_frames() {
|
||||||
return frames;
|
return frames;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EnterFirstWindowContext() {
|
v8::Handle<v8::Context> GetFirstWindowContext() {
|
||||||
if (web_frames().size() == 0)
|
if (web_frames().size() == 0)
|
||||||
return false;
|
return v8::Handle<v8::Context>();
|
||||||
|
|
||||||
DCHECK(!web_frames()[0]->mainWorldScriptContext().IsEmpty());
|
return web_frames()[0]->mainWorldScriptContext();
|
||||||
web_frames()[0]->mainWorldScriptContext()->Enter();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsValidWindowContext(v8::Handle<v8::Context> context) {
|
bool IsValidWindowContext(v8::Handle<v8::Context> context) {
|
||||||
|
@ -59,8 +56,8 @@ AtomRenderViewObserver::AtomRenderViewObserver(
|
||||||
atom_bindings_(new AtomRendererBindings(render_view)),
|
atom_bindings_(new AtomRendererBindings(render_view)),
|
||||||
renderer_client_(renderer_client) {
|
renderer_client_(renderer_client) {
|
||||||
// Interact with dirty workarounds of extra node context in WebKit.
|
// Interact with dirty workarounds of extra node context in WebKit.
|
||||||
webkit_atom::SetEnterFirstWindowContext(EnterFirstWindowContext);
|
webkit::SetGetFirstWindowContext(GetFirstWindowContext);
|
||||||
webkit_atom::SetIsValidWindowContext(IsValidWindowContext);
|
webkit::SetIsValidWindowContext(IsValidWindowContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
AtomRenderViewObserver::~AtomRenderViewObserver() {
|
AtomRenderViewObserver::~AtomRenderViewObserver() {
|
||||||
|
|
|
@ -8,12 +8,20 @@
|
||||||
#include "renderer/atom_render_view_observer.h"
|
#include "renderer/atom_render_view_observer.h"
|
||||||
#include "vendor/node/src/node_internals.h"
|
#include "vendor/node/src/node_internals.h"
|
||||||
|
|
||||||
namespace webkit_atom {
|
namespace webkit {
|
||||||
extern void SetNodeContext(v8::Persistent<v8::Context> context);
|
extern void SetGetNodeContext(v8::Handle<v8::Context> (*)());
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
v8::Handle<v8::Context> GetNodeContext() {
|
||||||
|
return node::g_context;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
AtomRendererClient::AtomRendererClient()
|
AtomRendererClient::AtomRendererClient()
|
||||||
: node_bindings_(NodeBindings::Create(false)) {
|
: node_bindings_(NodeBindings::Create(false)) {
|
||||||
}
|
}
|
||||||
|
@ -25,7 +33,7 @@ void AtomRendererClient::RenderThreadStarted() {
|
||||||
node_bindings_->Initialize();
|
node_bindings_->Initialize();
|
||||||
|
|
||||||
// Interact with dirty workarounds of extra node context in WebKit.
|
// Interact with dirty workarounds of extra node context in WebKit.
|
||||||
webkit_atom::SetNodeContext(node::g_context);
|
webkit::SetGetNodeContext(GetNodeContext);
|
||||||
|
|
||||||
node_bindings_->Load();
|
node_bindings_->Load();
|
||||||
node_bindings_->PrepareMessageLoop();
|
node_bindings_->PrepareMessageLoop();
|
||||||
|
|
2
vendor/brightray
vendored
2
vendor/brightray
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 05db4299da03bad186bf394761843c5dcc8a8203
|
Subproject commit 6b9c1b6761ff164173e4f7fdebc478af99e411e5
|
Loading…
Add table
Reference in a new issue