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;
|
||||
|
||||
namespace webkit_atom {
|
||||
extern void SetNodeContext(v8::Persistent<v8::Context> context);
|
||||
extern void SetEnterFirstWindowContext(bool (*func)());
|
||||
extern void SetIsValidWindowContext(bool (*func)(v8::Handle<v8::Context>));
|
||||
namespace webkit {
|
||||
extern void SetGetFirstWindowContext(v8::Handle<v8::Context> (*)());
|
||||
extern void SetIsValidWindowContext(bool (*)(v8::Handle<v8::Context>));
|
||||
}
|
||||
|
||||
namespace atom {
|
||||
|
@ -32,13 +31,11 @@ std::vector<WebFrame*>& web_frames() {
|
|||
return frames;
|
||||
}
|
||||
|
||||
bool EnterFirstWindowContext() {
|
||||
v8::Handle<v8::Context> GetFirstWindowContext() {
|
||||
if (web_frames().size() == 0)
|
||||
return false;
|
||||
return v8::Handle<v8::Context>();
|
||||
|
||||
DCHECK(!web_frames()[0]->mainWorldScriptContext().IsEmpty());
|
||||
web_frames()[0]->mainWorldScriptContext()->Enter();
|
||||
return true;
|
||||
return web_frames()[0]->mainWorldScriptContext();
|
||||
}
|
||||
|
||||
bool IsValidWindowContext(v8::Handle<v8::Context> context) {
|
||||
|
@ -59,8 +56,8 @@ AtomRenderViewObserver::AtomRenderViewObserver(
|
|||
atom_bindings_(new AtomRendererBindings(render_view)),
|
||||
renderer_client_(renderer_client) {
|
||||
// Interact with dirty workarounds of extra node context in WebKit.
|
||||
webkit_atom::SetEnterFirstWindowContext(EnterFirstWindowContext);
|
||||
webkit_atom::SetIsValidWindowContext(IsValidWindowContext);
|
||||
webkit::SetGetFirstWindowContext(GetFirstWindowContext);
|
||||
webkit::SetIsValidWindowContext(IsValidWindowContext);
|
||||
}
|
||||
|
||||
AtomRenderViewObserver::~AtomRenderViewObserver() {
|
||||
|
|
|
@ -8,12 +8,20 @@
|
|||
#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 webkit {
|
||||
extern void SetGetNodeContext(v8::Handle<v8::Context> (*)());
|
||||
}
|
||||
|
||||
namespace atom {
|
||||
|
||||
namespace {
|
||||
|
||||
v8::Handle<v8::Context> GetNodeContext() {
|
||||
return node::g_context;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
AtomRendererClient::AtomRendererClient()
|
||||
: node_bindings_(NodeBindings::Create(false)) {
|
||||
}
|
||||
|
@ -25,7 +33,7 @@ void AtomRendererClient::RenderThreadStarted() {
|
|||
node_bindings_->Initialize();
|
||||
|
||||
// Interact with dirty workarounds of extra node context in WebKit.
|
||||
webkit_atom::SetNodeContext(node::g_context);
|
||||
webkit::SetGetNodeContext(GetNodeContext);
|
||||
|
||||
node_bindings_->Load();
|
||||
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