summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
authorgdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-18 21:54:07 +0000
committergdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-18 21:54:07 +0000
commitb63729fc09bda64fcf024b37a355758bcdf694df (patch)
tree6a724a984a5d0f9a038b5034b2c1cc423af98a73 /chrome/browser/extensions
parent72e4bd538572a356edc3830e81d8611f840b20fb (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/extensions/api/api_resource_event_notifier.cc2
-rw-r--r--chrome/browser/extensions/api/api_resource_event_notifier.h2
-rw-r--r--chrome/browser/extensions/api/usb/usb_device_resource.cc14
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);
}
}