Index: chrome/renderer/extensions/send_request_natives.cc |
diff --git a/chrome/renderer/extensions/send_request_natives.cc b/chrome/renderer/extensions/send_request_natives.cc |
index d17fc0a4a2b686e3bafcf1e3885cc207e0c73470..725cc3db6b99a80c25ab74f87573d917a31156e4 100644 |
--- a/chrome/renderer/extensions/send_request_natives.cc |
+++ b/chrome/renderer/extensions/send_request_natives.cc |
@@ -17,28 +17,19 @@ SendRequestNatives::SendRequestNatives( |
ExtensionRequestSender* request_sender) |
: ChromeV8Extension(extension_dispatcher), |
request_sender_(request_sender) { |
- RouteFunction("GetNextRequestId", |
- base::Bind(&SendRequestNatives::GetNextRequestId, |
- base::Unretained(this))); |
RouteFunction("StartRequest", |
base::Bind(&SendRequestNatives::StartRequest, |
base::Unretained(this))); |
} |
-v8::Handle<v8::Value> SendRequestNatives::GetNextRequestId( |
- const v8::Arguments& args) { |
- static int next_request_id = 0; |
- return v8::Integer::New(next_request_id++); |
-} |
- |
// Starts an API request to the browser, with an optional callback. The |
// callback will be dispatched to EventBindings::HandleResponse. |
v8::Handle<v8::Value> SendRequestNatives::StartRequest( |
const v8::Arguments& args) { |
std::string name = *v8::String::AsciiValue(args[0]); |
- int request_id = args[2]->Int32Value(); |
- bool has_callback = args[3]->BooleanValue(); |
- bool for_io_thread = args[4]->BooleanValue(); |
+ // args[1] is the request args object. |
+ bool has_callback = args[2]->BooleanValue(); |
+ bool for_io_thread = args[3]->BooleanValue(); |
scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create()); |
@@ -50,14 +41,12 @@ v8::Handle<v8::Value> SendRequestNatives::StartRequest( |
scoped_ptr<Value> value_args( |
converter->FromV8Value(args[1], v8::Context::GetCurrent())); |
- if (!value_args.get() || !value_args->IsType(Value::TYPE_LIST)) { |
- NOTREACHED() << "Unable to convert args passed to StartRequest"; |
- return v8::Undefined(); |
- } |
- |
- request_sender_->StartRequest(name, request_id, has_callback, for_io_thread, |
- static_cast<ListValue*>(value_args.get())); |
- return v8::Undefined(); |
+ CHECK(value_args.get()); |
+ ListValue* api_args = NULL; |
+ CHECK(value_args->GetAsList(&api_args)); |
+ |
+ return v8::Integer::New(request_sender_->StartRequest( |
+ name, has_callback, for_io_thread, api_args)); |
} |
} // namespace extensions |