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 7903875777308c7a86ab9b2234fa4b63600343c9..42e661af08ef2f2cf8f9172672309880c8bc3412 100644 |
--- a/chrome/renderer/extensions/extension_process_bindings.cc |
+++ b/chrome/renderer/extensions/extension_process_bindings.cc |
@@ -416,6 +416,7 @@ class ExtensionImpl : public ExtensionBase { |
int request_id = args[2]->Int32Value(); |
bool has_callback = args[3]->BooleanValue(); |
+ bool for_io_thread = args[4]->BooleanValue(); |
v8::Persistent<v8::Context> current_context = |
v8::Persistent<v8::Context>::New(v8::Context::GetCurrent()); |
@@ -430,8 +431,13 @@ class ExtensionImpl : public ExtensionBase { |
params.request_id = request_id; |
params.has_callback = has_callback; |
params.user_gesture = webframe->isProcessingUserGesture(); |
- renderview->Send(new ExtensionHostMsg_Request( |
- renderview->routing_id(), params)); |
+ if (for_io_thread) { |
+ renderview->Send(new ExtensionHostMsg_RequestForIOThread( |
+ renderview->routing_id(), params)); |
+ } else { |
+ renderview->Send(new ExtensionHostMsg_Request( |
+ renderview->routing_id(), params)); |
+ } |
return v8::Undefined(); |
} |