Skip to content

Commit 74f3f73

Browse files
committed
Use entered context only for static call
Fix a1d382d
1 parent 6ea46cc commit 74f3f73

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

src/api/bindings_common.cc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ using content::V8ValueConverter;
3636
using WebKit::WebFrame;
3737
using WebKit::WebView;
3838

39-
RenderView* GetCurrentRenderView() {
40-
v8::Local<v8::Context> ctx = v8::Context::GetEntered();
39+
namespace {
40+
RenderView* GetRenderView(v8::Handle<v8::Context> ctx) {
4141
WebFrame* frame = WebFrame::frameForContext(ctx);
4242
if (!frame)
4343
return NULL;
@@ -50,6 +50,18 @@ RenderView* GetCurrentRenderView() {
5050
return render_view;
5151
}
5252

53+
}
54+
55+
RenderView* GetCurrentRenderView() {
56+
v8::Local<v8::Context> ctx = v8::Context::GetCurrent();
57+
return GetRenderView(ctx);
58+
}
59+
60+
RenderView* GetEnteredRenderView() {
61+
v8::Local<v8::Context> ctx = v8::Context::GetEntered();
62+
return GetRenderView(ctx);
63+
}
64+
5365
base::StringPiece GetStringResource(int resource_id) {
5466
return ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id);
5567
}

src/api/bindings_common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class RenderView;
3030

3131
// Get RenderView from current js context (only works under window context).
3232
content::RenderView* GetCurrentRenderView();
33+
content::RenderView* GetEnteredRenderView();
3334

3435
// Get string from resource_id.
3536
base::StringPiece GetStringResource(int resource_id);

src/api/dispatcher_bindings.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ void DispatcherBindings::CallStaticMethodSync(
408408

409409
scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
410410

411-
RenderView* render_view = GetCurrentRenderView();
411+
RenderView* render_view = GetEnteredRenderView();
412412
if (!render_view) {
413413
args.GetReturnValue().Set(v8::ThrowException(v8::Exception::Error(v8::String::New(
414414
"Unable to get render view in CallStaticMethodSync"))));

0 commit comments

Comments
 (0)