| Index: chrome/renderer/extensions/extension_process_bindings.cc
|
| diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc
|
| index 223ecd0d30922277a60b4fcee5fcc2db37222044..5472dce03cb0b510566aa2431b667eecde6865e7 100644
|
| --- a/chrome/renderer/extensions/extension_process_bindings.cc
|
| +++ b/chrome/renderer/extensions/extension_process_bindings.cc
|
| @@ -436,9 +436,15 @@ class ExtensionImpl : public ChromeV8Extension {
|
| const v8::Arguments& args, ListValue* value_args) {
|
| ExtensionImpl* v8_extension = GetFromArguments<ExtensionImpl>(args);
|
|
|
| + const ChromeV8ContextSet& contexts =
|
| + v8_extension->extension_dispatcher()->v8_context_set();
|
| + ChromeV8Context* current_context = contexts.GetCurrent();
|
| + if (!current_context)
|
| + return v8::Undefined();
|
| +
|
| // Get the current RenderView so that we can send a routed IPC message from
|
| // the correct source.
|
| - content::RenderView* renderview = GetCurrentRenderView();
|
| + content::RenderView* renderview = current_context->GetRenderView();
|
| if (!renderview)
|
| return v8::Undefined();
|
|
|
| @@ -450,11 +456,12 @@ class ExtensionImpl : public ChromeV8Extension {
|
| return v8::Undefined();
|
| }
|
|
|
| + // TODO(aa): add this to ChromeV8Context.
|
| if (!v8_extension->CheckPermissionForCurrentRenderView(name))
|
| return v8::Undefined();
|
|
|
| GURL source_url;
|
| - WebFrame* webframe = WebFrame::frameForCurrentContext();
|
| + WebFrame* webframe = current_context->web_frame();
|
| if (webframe)
|
| source_url = webframe->document().url();
|
|
|
| @@ -462,11 +469,11 @@ class ExtensionImpl : public ChromeV8Extension {
|
| bool has_callback = args[3]->BooleanValue();
|
| bool for_io_thread = args[4]->BooleanValue();
|
|
|
| - v8::Persistent<v8::Context> current_context =
|
| + v8::Persistent<v8::Context> v8_context =
|
| v8::Persistent<v8::Context>::New(v8::Context::GetCurrent());
|
| - DCHECK(!current_context.IsEmpty());
|
| + DCHECK(!v8_context.IsEmpty());
|
| g_pending_requests.Get()[request_id].reset(new PendingRequest(
|
| - current_context, name));
|
| + v8_context, name));
|
|
|
| ExtensionHostMsg_Request_Params params;
|
| params.name = name;
|
|
|