diff options
author | gdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-18 21:54:07 +0000 |
---|---|---|
committer | gdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-18 21:54:07 +0000 |
commit | b63729fc09bda64fcf024b37a355758bcdf694df (patch) | |
tree | 6a724a984a5d0f9a038b5034b2c1cc423af98a73 /chrome/browser/extensions | |
parent | 72e4bd538572a356edc3830e81d8611f840b20fb (diff) | |
download | chromium_src-b63729fc09bda64fcf024b37a355758bcdf694df.zip chromium_src-b63729fc09bda64fcf024b37a355758bcdf694df.tar.gz chromium_src-b63729fc09bda64fcf024b37a355758bcdf694df.tar.bz2 |
Change the USB extension API to use ArrayBuffers.
BUG=130181
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10561021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142827 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions')
3 files changed, 6 insertions, 12 deletions
diff --git a/chrome/browser/extensions/api/api_resource_event_notifier.cc b/chrome/browser/extensions/api/api_resource_event_notifier.cc index 20a5e20..a970dbc 100644 --- a/chrome/browser/extensions/api/api_resource_event_notifier.cc +++ b/chrome/browser/extensions/api/api_resource_event_notifier.cc @@ -82,7 +82,7 @@ void APIResourceEventNotifier::OnWriteComplete(int result_code) { } void APIResourceEventNotifier::OnTransferComplete(int result_code, - base::ListValue* data) { + base::BinaryValue* data) { if (src_id_ < 0) { delete data; return; diff --git a/chrome/browser/extensions/api/api_resource_event_notifier.h b/chrome/browser/extensions/api/api_resource_event_notifier.h index 09f4070..270ac84 100644 --- a/chrome/browser/extensions/api/api_resource_event_notifier.h +++ b/chrome/browser/extensions/api/api_resource_event_notifier.h @@ -60,7 +60,7 @@ class APIResourceEventNotifier virtual void OnWriteComplete(int result_code); - virtual void OnTransferComplete(int result_code, base::ListValue* data); + virtual void OnTransferComplete(int result_code, base::BinaryValue* data); static std::string APIResourceEventTypeToString( APIResourceEventType event_type); diff --git a/chrome/browser/extensions/api/usb/usb_device_resource.cc b/chrome/browser/extensions/api/usb/usb_device_resource.cc index f2046d4..f90ef5a 100644 --- a/chrome/browser/extensions/api/usb/usb_device_resource.cc +++ b/chrome/browser/extensions/api/usb/usb_device_resource.cc @@ -94,7 +94,7 @@ static bool GetTransferSize(const T& input, size_t* output) { } } else if (input.direction == kDirectionOut) { if (input.data.get()) { - *output = input.data->size(); + *output = input.data->GetSize(); return true; } } @@ -113,10 +113,7 @@ static scoped_refptr<net::IOBuffer> CreateBufferForTransfer(const T& input) { return buffer; } - const vector<int>& input_buffer = *input.data.get(); - for (size_t i = 0; i < size; ++i) { - buffer->data()[i] = input_buffer[i]; - } + memcpy(buffer->data(), input.data->GetBuffer(), size); return buffer; } @@ -209,11 +206,8 @@ void UsbDeviceResource::TransferComplete(net::IOBuffer* buffer, const size_t length, int success) { if (buffer) { - base::ListValue *const response_buffer = new base::ListValue(); - for (size_t i = 0; i < length; ++i) { - const uint8_t value = buffer->data()[i] & 0xFF; - response_buffer->Append(base::Value::CreateIntegerValue(value)); - } + base::BinaryValue* const response_buffer = + base::BinaryValue::CreateWithCopiedBuffer(buffer->data(), length); event_notifier()->OnTransferComplete(success, response_buffer); } } |