Chromium Code Reviews| 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..16b394ab4df37c0ad278e6b5d72cfc404ae77d6c 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: add this to ChromeV8Context. |
|
Aaron Boodman
2011/10/28 23:29:46
TODO(aa)
Tessa MacDuff
2011/10/29 00:06:54
Done.
|
| 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> persistent_context = |
|
Aaron Boodman
2011/10/28 23:29:46
Better name is v8_context to distinguish from "nor
Tessa MacDuff
2011/10/29 00:06:54
Done.
|
| v8::Persistent<v8::Context>::New(v8::Context::GetCurrent()); |
| - DCHECK(!current_context.IsEmpty()); |
| + DCHECK(!persistent_context.IsEmpty()); |
| g_pending_requests.Get()[request_id].reset(new PendingRequest( |
| - current_context, name)); |
| + persistent_context, name)); |
| ExtensionHostMsg_Request_Params params; |
| params.name = name; |