Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1228)

Unified Diff: third_party/WebKit/Source/modules/webusb/USBDevice.cpp

Issue 2234443002: Mojo C++ binding: make device/usb mojom targets use STD string/vector types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move the vector converter into a private header. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/webusb/USBDevice.cpp
diff --git a/third_party/WebKit/Source/modules/webusb/USBDevice.cpp b/third_party/WebKit/Source/modules/webusb/USBDevice.cpp
index 425b80d99c92705de4e309309d26ccad43c35392..5fd99f1f6e632357b101e5a68dd48cc4c8fe2d24 100644
--- a/third_party/WebKit/Source/modules/webusb/USBDevice.cpp
+++ b/third_party/WebKit/Source/modules/webusb/USBDevice.cpp
@@ -72,7 +72,7 @@ String convertTransferStatus(const usb::TransferStatus& status)
}
}
-mojo::WTFArray<uint8_t> convertBufferSource(const ArrayBufferOrArrayBufferView& buffer)
+Vector<uint8_t> convertBufferSource(const ArrayBufferOrArrayBufferView& buffer)
{
ASSERT(!buffer.isNull());
Vector<uint8_t> vector;
@@ -80,7 +80,7 @@ mojo::WTFArray<uint8_t> convertBufferSource(const ArrayBufferOrArrayBufferView&
vector.append(static_cast<uint8_t*>(buffer.getAsArrayBuffer()->data()), buffer.getAsArrayBuffer()->byteLength());
else
vector.append(static_cast<uint8_t*>(buffer.getAsArrayBufferView()->baseAddress()), buffer.getAsArrayBufferView()->byteLength());
- return mojo::WTFArray<uint8_t>(std::move(vector));
+ return vector;
}
} // namespace
@@ -278,7 +278,7 @@ ScriptPromise USBDevice::controlTransferOut(ScriptState* scriptState, const USBC
auto parameters = convertControlTransferParameters(setup, resolver);
if (parameters) {
m_deviceRequests.add(resolver);
- m_device->ControlTransferOut(std::move(parameters), mojo::WTFArray<uint8_t>(), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPersistent(this), 0, wrapPersistent(resolver))));
+ m_device->ControlTransferOut(std::move(parameters), Vector<uint8_t>(), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPersistent(this), 0, wrapPersistent(resolver))));
}
}
return promise;
@@ -291,10 +291,10 @@ ScriptPromise USBDevice::controlTransferOut(ScriptState* scriptState, const USBC
if (ensureDeviceConfigured(resolver)) {
auto parameters = convertControlTransferParameters(setup, resolver);
if (parameters) {
- mojo::WTFArray<uint8_t> buffer = convertBufferSource(data);
+ Vector<uint8_t> buffer = convertBufferSource(data);
unsigned transferLength = buffer.size();
m_deviceRequests.add(resolver);
- m_device->ControlTransferOut(std::move(parameters), std::move(buffer), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPersistent(this), transferLength, wrapPersistent(resolver))));
+ m_device->ControlTransferOut(std::move(parameters), buffer, 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPersistent(this), transferLength, wrapPersistent(resolver))));
}
}
return promise;
@@ -327,10 +327,10 @@ ScriptPromise USBDevice::transferOut(ScriptState* scriptState, uint8_t endpointN
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
ScriptPromise promise = resolver->promise();
if (ensureEndpointAvailable(false /* out */, endpointNumber, resolver)) {
- mojo::WTFArray<uint8_t> buffer = convertBufferSource(data);
+ Vector<uint8_t> buffer = convertBufferSource(data);
unsigned transferLength = buffer.size();
m_deviceRequests.add(resolver);
- m_device->GenericTransferOut(endpointNumber, std::move(buffer), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncTransferOut, wrapPersistent(this), transferLength, wrapPersistent(resolver))));
+ m_device->GenericTransferOut(endpointNumber, buffer, 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncTransferOut, wrapPersistent(this), transferLength, wrapPersistent(resolver))));
}
return promise;
}
@@ -341,7 +341,7 @@ ScriptPromise USBDevice::isochronousTransferIn(ScriptState* scriptState, uint8_t
ScriptPromise promise = resolver->promise();
if (ensureEndpointAvailable(true /* in */, endpointNumber, resolver)) {
m_deviceRequests.add(resolver);
- m_device->IsochronousTransferIn(endpointNumber, mojo::WTFArray<uint32_t>(std::move(packetLengths)), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncIsochronousTransferIn, wrapPersistent(this), wrapPersistent(resolver))));
+ m_device->IsochronousTransferIn(endpointNumber, packetLengths, 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncIsochronousTransferIn, wrapPersistent(this), wrapPersistent(resolver))));
}
return promise;
}
@@ -352,7 +352,7 @@ ScriptPromise USBDevice::isochronousTransferOut(ScriptState* scriptState, uint8_
ScriptPromise promise = resolver->promise();
if (ensureEndpointAvailable(false /* out */, endpointNumber, resolver)) {
m_deviceRequests.add(resolver);
- m_device->IsochronousTransferOut(endpointNumber, convertBufferSource(data), mojo::WTFArray<uint32_t>(std::move(packetLengths)), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncIsochronousTransferOut, wrapPersistent(this), wrapPersistent(resolver))));
+ m_device->IsochronousTransferOut(endpointNumber, convertBufferSource(data), packetLengths, 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncIsochronousTransferOut, wrapPersistent(this), wrapPersistent(resolver))));
}
return promise;
}
@@ -533,7 +533,7 @@ void USBDevice::setEndpointsForInterface(size_t interfaceIndex, bool set)
const auto& configuration = *info().configurations[m_configurationIndex];
const auto& interface = *configuration.interfaces[interfaceIndex];
const auto& alternate = *interface.alternates[m_selectedAlternates[interfaceIndex]];
- for (const auto& endpoint : alternate.endpoints.storage()) {
+ for (const auto& endpoint : alternate.endpoints) {
uint8_t endpointNumber = endpoint->endpoint_number;
if (endpointNumber == 0 || endpointNumber >= 16)
continue; // Ignore endpoints with invalid indices.
@@ -661,7 +661,7 @@ void USBDevice::asyncSelectAlternateInterface(size_t interfaceIndex, size_t alte
resolver->reject(DOMException::create(NetworkError, "Unable to set device interface."));
}
-void USBDevice::asyncControlTransferIn(ScriptPromiseResolver* resolver, usb::TransferStatus status, mojo::WTFArray<uint8_t> data)
+void USBDevice::asyncControlTransferIn(ScriptPromiseResolver* resolver, usb::TransferStatus status, const Optional<Vector<uint8_t>>& data)
{
if (!markRequestComplete(resolver))
return;
@@ -670,7 +670,7 @@ void USBDevice::asyncControlTransferIn(ScriptPromiseResolver* resolver, usb::Tra
if (error)
resolver->reject(error);
else
- resolver->resolve(USBInTransferResult::create(convertTransferStatus(status), data.PassStorage()));
+ resolver->resolve(USBInTransferResult::create(convertTransferStatus(status), data));
}
void USBDevice::asyncControlTransferOut(unsigned transferLength, ScriptPromiseResolver* resolver, usb::TransferStatus status)
@@ -696,7 +696,7 @@ void USBDevice::asyncClearHalt(ScriptPromiseResolver* resolver, bool success)
resolver->reject(DOMException::create(NetworkError, "Unable to clear endpoint."));
}
-void USBDevice::asyncTransferIn(ScriptPromiseResolver* resolver, usb::TransferStatus status, mojo::WTFArray<uint8_t> data)
+void USBDevice::asyncTransferIn(ScriptPromiseResolver* resolver, usb::TransferStatus status, const Optional<Vector<uint8_t>>& data)
{
if (!markRequestComplete(resolver))
return;
@@ -705,7 +705,7 @@ void USBDevice::asyncTransferIn(ScriptPromiseResolver* resolver, usb::TransferSt
if (error)
resolver->reject(error);
else
- resolver->resolve(USBInTransferResult::create(convertTransferStatus(status), data.PassStorage()));
+ resolver->resolve(USBInTransferResult::create(convertTransferStatus(status), data));
}
void USBDevice::asyncTransferOut(unsigned transferLength, ScriptPromiseResolver* resolver, usb::TransferStatus status)
@@ -720,35 +720,35 @@ void USBDevice::asyncTransferOut(unsigned transferLength, ScriptPromiseResolver*
resolver->resolve(USBOutTransferResult::create(convertTransferStatus(status), transferLength));
}
-void USBDevice::asyncIsochronousTransferIn(ScriptPromiseResolver* resolver, mojo::WTFArray<uint8_t> data, mojo::WTFArray<usb::IsochronousPacketPtr> mojoPackets)
+void USBDevice::asyncIsochronousTransferIn(ScriptPromiseResolver* resolver, const Optional<Vector<uint8_t>>& data, Vector<usb::IsochronousPacketPtr> mojoPackets)
{
if (!markRequestComplete(resolver))
return;
- DOMArrayBuffer* buffer = DOMArrayBuffer::create(data.storage().data(), data.storage().size());
+ DOMArrayBuffer* buffer = data ? DOMArrayBuffer::create(data->data(), data->size()) : nullptr;
HeapVector<Member<USBIsochronousInTransferPacket>> packets;
packets.reserveCapacity(mojoPackets.size());
size_t byteOffset = 0;
- for (const auto& packet : mojoPackets.storage()) {
+ for (const auto& packet : mojoPackets) {
DOMException* error = convertFatalTransferStatus(packet->status);
if (error) {
resolver->reject(error);
return;
}
- packets.append(USBIsochronousInTransferPacket::create(convertTransferStatus(packet->status), DOMDataView::create(buffer, byteOffset, packet->transferred_length)));
+ packets.append(USBIsochronousInTransferPacket::create(convertTransferStatus(packet->status), buffer ? DOMDataView::create(buffer, byteOffset, packet->transferred_length) : nullptr));
byteOffset += packet->length;
}
resolver->resolve(USBIsochronousInTransferResult::create(buffer, packets));
}
-void USBDevice::asyncIsochronousTransferOut(ScriptPromiseResolver* resolver, mojo::WTFArray<usb::IsochronousPacketPtr> mojoPackets)
+void USBDevice::asyncIsochronousTransferOut(ScriptPromiseResolver* resolver, Vector<usb::IsochronousPacketPtr> mojoPackets)
{
if (!markRequestComplete(resolver))
return;
HeapVector<Member<USBIsochronousOutTransferPacket>> packets;
packets.reserveCapacity(mojoPackets.size());
- for (const auto& packet : mojoPackets.storage()) {
+ for (const auto& packet : mojoPackets) {
DOMException* error = convertFatalTransferStatus(packet->status);
if (error) {
resolver->reject(error);

Powered by Google App Engine
This is Rietveld 408576698