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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/webusb/USBDevice.h" 5 #include "modules/webusb/USBDevice.h"
6 6
7 #include "bindings/core/v8/ScriptPromise.h" 7 #include "bindings/core/v8/ScriptPromise.h"
8 #include "bindings/core/v8/ScriptPromiseResolver.h" 8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "bindings/core/v8/ToV8.h" 9 #include "bindings/core/v8/ToV8.h"
10 #include "core/dom/DOMArrayBuffer.h" 10 #include "core/dom/DOMArrayBuffer.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 case usb::TransferStatus::STALLED: 65 case usb::TransferStatus::STALLED:
66 return "stall"; 66 return "stall";
67 case usb::TransferStatus::BABBLE: 67 case usb::TransferStatus::BABBLE:
68 return "babble"; 68 return "babble";
69 default: 69 default:
70 ASSERT_NOT_REACHED(); 70 ASSERT_NOT_REACHED();
71 return ""; 71 return "";
72 } 72 }
73 } 73 }
74 74
75 mojo::WTFArray<uint8_t> convertBufferSource(const ArrayBufferOrArrayBufferView& buffer) 75 Vector<uint8_t> convertBufferSource(const ArrayBufferOrArrayBufferView& buffer)
76 { 76 {
77 ASSERT(!buffer.isNull()); 77 ASSERT(!buffer.isNull());
78 Vector<uint8_t> vector; 78 Vector<uint8_t> vector;
79 if (buffer.isArrayBuffer()) 79 if (buffer.isArrayBuffer())
80 vector.append(static_cast<uint8_t*>(buffer.getAsArrayBuffer()->data()), buffer.getAsArrayBuffer()->byteLength()); 80 vector.append(static_cast<uint8_t*>(buffer.getAsArrayBuffer()->data()), buffer.getAsArrayBuffer()->byteLength());
81 else 81 else
82 vector.append(static_cast<uint8_t*>(buffer.getAsArrayBufferView()->baseA ddress()), buffer.getAsArrayBufferView()->byteLength()); 82 vector.append(static_cast<uint8_t*>(buffer.getAsArrayBufferView()->baseA ddress()), buffer.getAsArrayBufferView()->byteLength());
83 return mojo::WTFArray<uint8_t>(std::move(vector)); 83 return vector;
84 } 84 }
85 85
86 } // namespace 86 } // namespace
87 87
88 USBDevice::USBDevice(usb::DeviceInfoPtr deviceInfo, usb::DevicePtr device, Execu tionContext* context) 88 USBDevice::USBDevice(usb::DeviceInfoPtr deviceInfo, usb::DevicePtr device, Execu tionContext* context)
89 : ContextLifecycleObserver(context) 89 : ContextLifecycleObserver(context)
90 , m_deviceInfo(std::move(deviceInfo)) 90 , m_deviceInfo(std::move(deviceInfo))
91 , m_device(std::move(device)) 91 , m_device(std::move(device))
92 , m_opened(false) 92 , m_opened(false)
93 , m_deviceStateChangeInProgress(false) 93 , m_deviceStateChangeInProgress(false)
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 } 271 }
272 272
273 ScriptPromise USBDevice::controlTransferOut(ScriptState* scriptState, const USBC ontrolTransferParameters& setup) 273 ScriptPromise USBDevice::controlTransferOut(ScriptState* scriptState, const USBC ontrolTransferParameters& setup)
274 { 274 {
275 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 275 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
276 ScriptPromise promise = resolver->promise(); 276 ScriptPromise promise = resolver->promise();
277 if (ensureDeviceConfigured(resolver)) { 277 if (ensureDeviceConfigured(resolver)) {
278 auto parameters = convertControlTransferParameters(setup, resolver); 278 auto parameters = convertControlTransferParameters(setup, resolver);
279 if (parameters) { 279 if (parameters) {
280 m_deviceRequests.add(resolver); 280 m_deviceRequests.add(resolver);
281 m_device->ControlTransferOut(std::move(parameters), mojo::WTFArray<u int8_t>(), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOu t, wrapPersistent(this), 0, wrapPersistent(resolver)))); 281 m_device->ControlTransferOut(std::move(parameters), Vector<uint8_t>( ), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapP ersistent(this), 0, wrapPersistent(resolver))));
282 } 282 }
283 } 283 }
284 return promise; 284 return promise;
285 } 285 }
286 286
287 ScriptPromise USBDevice::controlTransferOut(ScriptState* scriptState, const USBC ontrolTransferParameters& setup, const ArrayBufferOrArrayBufferView& data) 287 ScriptPromise USBDevice::controlTransferOut(ScriptState* scriptState, const USBC ontrolTransferParameters& setup, const ArrayBufferOrArrayBufferView& data)
288 { 288 {
289 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 289 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
290 ScriptPromise promise = resolver->promise(); 290 ScriptPromise promise = resolver->promise();
291 if (ensureDeviceConfigured(resolver)) { 291 if (ensureDeviceConfigured(resolver)) {
292 auto parameters = convertControlTransferParameters(setup, resolver); 292 auto parameters = convertControlTransferParameters(setup, resolver);
293 if (parameters) { 293 if (parameters) {
294 mojo::WTFArray<uint8_t> buffer = convertBufferSource(data); 294 Vector<uint8_t> buffer = convertBufferSource(data);
295 unsigned transferLength = buffer.size(); 295 unsigned transferLength = buffer.size();
296 m_deviceRequests.add(resolver); 296 m_deviceRequests.add(resolver);
297 m_device->ControlTransferOut(std::move(parameters), std::move(buffer ), 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapP ersistent(this), transferLength, wrapPersistent(resolver)))); 297 m_device->ControlTransferOut(std::move(parameters), buffer, 0, conve rtToBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPersistent(t his), transferLength, wrapPersistent(resolver))));
298 } 298 }
299 } 299 }
300 return promise; 300 return promise;
301 } 301 }
302 302
303 ScriptPromise USBDevice::clearHalt(ScriptState* scriptState, String direction, u int8_t endpointNumber) 303 ScriptPromise USBDevice::clearHalt(ScriptState* scriptState, String direction, u int8_t endpointNumber)
304 { 304 {
305 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 305 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
306 ScriptPromise promise = resolver->promise(); 306 ScriptPromise promise = resolver->promise();
307 if (ensureEndpointAvailable(direction == "in", endpointNumber, resolver)) { 307 if (ensureEndpointAvailable(direction == "in", endpointNumber, resolver)) {
(...skipping 12 matching lines...) Expand all
320 m_device->GenericTransferIn(endpointNumber, length, 0, convertToBaseCall back(WTF::bind(&USBDevice::asyncTransferIn, wrapPersistent(this), wrapPersistent (resolver)))); 320 m_device->GenericTransferIn(endpointNumber, length, 0, convertToBaseCall back(WTF::bind(&USBDevice::asyncTransferIn, wrapPersistent(this), wrapPersistent (resolver))));
321 } 321 }
322 return promise; 322 return promise;
323 } 323 }
324 324
325 ScriptPromise USBDevice::transferOut(ScriptState* scriptState, uint8_t endpointN umber, const ArrayBufferOrArrayBufferView& data) 325 ScriptPromise USBDevice::transferOut(ScriptState* scriptState, uint8_t endpointN umber, const ArrayBufferOrArrayBufferView& data)
326 { 326 {
327 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 327 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
328 ScriptPromise promise = resolver->promise(); 328 ScriptPromise promise = resolver->promise();
329 if (ensureEndpointAvailable(false /* out */, endpointNumber, resolver)) { 329 if (ensureEndpointAvailable(false /* out */, endpointNumber, resolver)) {
330 mojo::WTFArray<uint8_t> buffer = convertBufferSource(data); 330 Vector<uint8_t> buffer = convertBufferSource(data);
331 unsigned transferLength = buffer.size(); 331 unsigned transferLength = buffer.size();
332 m_deviceRequests.add(resolver); 332 m_deviceRequests.add(resolver);
333 m_device->GenericTransferOut(endpointNumber, std::move(buffer), 0, conve rtToBaseCallback(WTF::bind(&USBDevice::asyncTransferOut, wrapPersistent(this), t ransferLength, wrapPersistent(resolver)))); 333 m_device->GenericTransferOut(endpointNumber, buffer, 0, convertToBaseCal lback(WTF::bind(&USBDevice::asyncTransferOut, wrapPersistent(this), transferLeng th, wrapPersistent(resolver))));
334 } 334 }
335 return promise; 335 return promise;
336 } 336 }
337 337
338 ScriptPromise USBDevice::isochronousTransferIn(ScriptState* scriptState, uint8_t endpointNumber, Vector<unsigned> packetLengths) 338 ScriptPromise USBDevice::isochronousTransferIn(ScriptState* scriptState, uint8_t endpointNumber, Vector<unsigned> packetLengths)
339 { 339 {
340 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 340 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
341 ScriptPromise promise = resolver->promise(); 341 ScriptPromise promise = resolver->promise();
342 if (ensureEndpointAvailable(true /* in */, endpointNumber, resolver)) { 342 if (ensureEndpointAvailable(true /* in */, endpointNumber, resolver)) {
343 m_deviceRequests.add(resolver); 343 m_deviceRequests.add(resolver);
344 m_device->IsochronousTransferIn(endpointNumber, mojo::WTFArray<uint32_t> (std::move(packetLengths)), 0, convertToBaseCallback(WTF::bind(&USBDevice::async IsochronousTransferIn, wrapPersistent(this), wrapPersistent(resolver)))); 344 m_device->IsochronousTransferIn(endpointNumber, packetLengths, 0, conver tToBaseCallback(WTF::bind(&USBDevice::asyncIsochronousTransferIn, wrapPersistent (this), wrapPersistent(resolver))));
345 } 345 }
346 return promise; 346 return promise;
347 } 347 }
348 348
349 ScriptPromise USBDevice::isochronousTransferOut(ScriptState* scriptState, uint8_ t endpointNumber, const ArrayBufferOrArrayBufferView& data, Vector<unsigned> pac ketLengths) 349 ScriptPromise USBDevice::isochronousTransferOut(ScriptState* scriptState, uint8_ t endpointNumber, const ArrayBufferOrArrayBufferView& data, Vector<unsigned> pac ketLengths)
350 { 350 {
351 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 351 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
352 ScriptPromise promise = resolver->promise(); 352 ScriptPromise promise = resolver->promise();
353 if (ensureEndpointAvailable(false /* out */, endpointNumber, resolver)) { 353 if (ensureEndpointAvailable(false /* out */, endpointNumber, resolver)) {
354 m_deviceRequests.add(resolver); 354 m_deviceRequests.add(resolver);
355 m_device->IsochronousTransferOut(endpointNumber, convertBufferSource(dat a), mojo::WTFArray<uint32_t>(std::move(packetLengths)), 0, convertToBaseCallback (WTF::bind(&USBDevice::asyncIsochronousTransferOut, wrapPersistent(this), wrapPe rsistent(resolver)))); 355 m_device->IsochronousTransferOut(endpointNumber, convertBufferSource(dat a), packetLengths, 0, convertToBaseCallback(WTF::bind(&USBDevice::asyncIsochrono usTransferOut, wrapPersistent(this), wrapPersistent(resolver))));
356 } 356 }
357 return promise; 357 return promise;
358 } 358 }
359 359
360 ScriptPromise USBDevice::reset(ScriptState* scriptState) 360 ScriptPromise USBDevice::reset(ScriptState* scriptState)
361 { 361 {
362 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 362 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
363 ScriptPromise promise = resolver->promise(); 363 ScriptPromise promise = resolver->promise();
364 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) { 364 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) {
365 if (!m_opened) { 365 if (!m_opened) {
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 mojoParameters->value = parameters.value(); 526 mojoParameters->value = parameters.value();
527 mojoParameters->index = parameters.index(); 527 mojoParameters->index = parameters.index();
528 return mojoParameters; 528 return mojoParameters;
529 } 529 }
530 530
531 void USBDevice::setEndpointsForInterface(size_t interfaceIndex, bool set) 531 void USBDevice::setEndpointsForInterface(size_t interfaceIndex, bool set)
532 { 532 {
533 const auto& configuration = *info().configurations[m_configurationIndex]; 533 const auto& configuration = *info().configurations[m_configurationIndex];
534 const auto& interface = *configuration.interfaces[interfaceIndex]; 534 const auto& interface = *configuration.interfaces[interfaceIndex];
535 const auto& alternate = *interface.alternates[m_selectedAlternates[interface Index]]; 535 const auto& alternate = *interface.alternates[m_selectedAlternates[interface Index]];
536 for (const auto& endpoint : alternate.endpoints.storage()) { 536 for (const auto& endpoint : alternate.endpoints) {
537 uint8_t endpointNumber = endpoint->endpoint_number; 537 uint8_t endpointNumber = endpoint->endpoint_number;
538 if (endpointNumber == 0 || endpointNumber >= 16) 538 if (endpointNumber == 0 || endpointNumber >= 16)
539 continue; // Ignore endpoints with invalid indices. 539 continue; // Ignore endpoints with invalid indices.
540 auto& bitVector = endpoint->direction == usb::TransferDirection::INBOUND ? m_inEndpoints : m_outEndpoints; 540 auto& bitVector = endpoint->direction == usb::TransferDirection::INBOUND ? m_inEndpoints : m_outEndpoints;
541 if (set) 541 if (set)
542 bitVector.set(endpointNumber - 1); 542 bitVector.set(endpointNumber - 1);
543 else 543 else
544 bitVector.clear(endpointNumber - 1); 544 bitVector.clear(endpointNumber - 1);
545 } 545 }
546 } 546 }
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 m_selectedAlternates[interfaceIndex] = alternateIndex; 654 m_selectedAlternates[interfaceIndex] = alternateIndex;
655 setEndpointsForInterface(interfaceIndex, success); 655 setEndpointsForInterface(interfaceIndex, success);
656 m_interfaceStateChangeInProgress.clear(interfaceIndex); 656 m_interfaceStateChangeInProgress.clear(interfaceIndex);
657 657
658 if (success) 658 if (success)
659 resolver->resolve(); 659 resolver->resolve();
660 else 660 else
661 resolver->reject(DOMException::create(NetworkError, "Unable to set devic e interface.")); 661 resolver->reject(DOMException::create(NetworkError, "Unable to set devic e interface."));
662 } 662 }
663 663
664 void USBDevice::asyncControlTransferIn(ScriptPromiseResolver* resolver, usb::Tra nsferStatus status, mojo::WTFArray<uint8_t> data) 664 void USBDevice::asyncControlTransferIn(ScriptPromiseResolver* resolver, usb::Tra nsferStatus status, const Optional<Vector<uint8_t>>& data)
665 { 665 {
666 if (!markRequestComplete(resolver)) 666 if (!markRequestComplete(resolver))
667 return; 667 return;
668 668
669 DOMException* error = convertFatalTransferStatus(status); 669 DOMException* error = convertFatalTransferStatus(status);
670 if (error) 670 if (error)
671 resolver->reject(error); 671 resolver->reject(error);
672 else 672 else
673 resolver->resolve(USBInTransferResult::create(convertTransferStatus(stat us), data.PassStorage())); 673 resolver->resolve(USBInTransferResult::create(convertTransferStatus(stat us), data));
674 } 674 }
675 675
676 void USBDevice::asyncControlTransferOut(unsigned transferLength, ScriptPromiseRe solver* resolver, usb::TransferStatus status) 676 void USBDevice::asyncControlTransferOut(unsigned transferLength, ScriptPromiseRe solver* resolver, usb::TransferStatus status)
677 { 677 {
678 if (!markRequestComplete(resolver)) 678 if (!markRequestComplete(resolver))
679 return; 679 return;
680 680
681 DOMException* error = convertFatalTransferStatus(status); 681 DOMException* error = convertFatalTransferStatus(status);
682 if (error) 682 if (error)
683 resolver->reject(error); 683 resolver->reject(error);
684 else 684 else
685 resolver->resolve(USBOutTransferResult::create(convertTransferStatus(sta tus), transferLength)); 685 resolver->resolve(USBOutTransferResult::create(convertTransferStatus(sta tus), transferLength));
686 } 686 }
687 687
688 void USBDevice::asyncClearHalt(ScriptPromiseResolver* resolver, bool success) 688 void USBDevice::asyncClearHalt(ScriptPromiseResolver* resolver, bool success)
689 { 689 {
690 if (!markRequestComplete(resolver)) 690 if (!markRequestComplete(resolver))
691 return; 691 return;
692 692
693 if (success) 693 if (success)
694 resolver->resolve(); 694 resolver->resolve();
695 else 695 else
696 resolver->reject(DOMException::create(NetworkError, "Unable to clear end point.")); 696 resolver->reject(DOMException::create(NetworkError, "Unable to clear end point."));
697 } 697 }
698 698
699 void USBDevice::asyncTransferIn(ScriptPromiseResolver* resolver, usb::TransferSt atus status, mojo::WTFArray<uint8_t> data) 699 void USBDevice::asyncTransferIn(ScriptPromiseResolver* resolver, usb::TransferSt atus status, const Optional<Vector<uint8_t>>& data)
700 { 700 {
701 if (!markRequestComplete(resolver)) 701 if (!markRequestComplete(resolver))
702 return; 702 return;
703 703
704 DOMException* error = convertFatalTransferStatus(status); 704 DOMException* error = convertFatalTransferStatus(status);
705 if (error) 705 if (error)
706 resolver->reject(error); 706 resolver->reject(error);
707 else 707 else
708 resolver->resolve(USBInTransferResult::create(convertTransferStatus(stat us), data.PassStorage())); 708 resolver->resolve(USBInTransferResult::create(convertTransferStatus(stat us), data));
709 } 709 }
710 710
711 void USBDevice::asyncTransferOut(unsigned transferLength, ScriptPromiseResolver* resolver, usb::TransferStatus status) 711 void USBDevice::asyncTransferOut(unsigned transferLength, ScriptPromiseResolver* resolver, usb::TransferStatus status)
712 { 712 {
713 if (!markRequestComplete(resolver)) 713 if (!markRequestComplete(resolver))
714 return; 714 return;
715 715
716 DOMException* error = convertFatalTransferStatus(status); 716 DOMException* error = convertFatalTransferStatus(status);
717 if (error) 717 if (error)
718 resolver->reject(error); 718 resolver->reject(error);
719 else 719 else
720 resolver->resolve(USBOutTransferResult::create(convertTransferStatus(sta tus), transferLength)); 720 resolver->resolve(USBOutTransferResult::create(convertTransferStatus(sta tus), transferLength));
721 } 721 }
722 722
723 void USBDevice::asyncIsochronousTransferIn(ScriptPromiseResolver* resolver, mojo ::WTFArray<uint8_t> data, mojo::WTFArray<usb::IsochronousPacketPtr> mojoPackets) 723 void USBDevice::asyncIsochronousTransferIn(ScriptPromiseResolver* resolver, cons t Optional<Vector<uint8_t>>& data, Vector<usb::IsochronousPacketPtr> mojoPackets )
724 { 724 {
725 if (!markRequestComplete(resolver)) 725 if (!markRequestComplete(resolver))
726 return; 726 return;
727 727
728 DOMArrayBuffer* buffer = DOMArrayBuffer::create(data.storage().data(), data. storage().size()); 728 DOMArrayBuffer* buffer = data ? DOMArrayBuffer::create(data->data(), data->s ize()) : nullptr;
729 HeapVector<Member<USBIsochronousInTransferPacket>> packets; 729 HeapVector<Member<USBIsochronousInTransferPacket>> packets;
730 packets.reserveCapacity(mojoPackets.size()); 730 packets.reserveCapacity(mojoPackets.size());
731 size_t byteOffset = 0; 731 size_t byteOffset = 0;
732 for (const auto& packet : mojoPackets.storage()) { 732 for (const auto& packet : mojoPackets) {
733 DOMException* error = convertFatalTransferStatus(packet->status); 733 DOMException* error = convertFatalTransferStatus(packet->status);
734 if (error) { 734 if (error) {
735 resolver->reject(error); 735 resolver->reject(error);
736 return; 736 return;
737 } 737 }
738 packets.append(USBIsochronousInTransferPacket::create(convertTransferSta tus(packet->status), DOMDataView::create(buffer, byteOffset, packet->transferred _length))); 738 packets.append(USBIsochronousInTransferPacket::create(convertTransferSta tus(packet->status), buffer ? DOMDataView::create(buffer, byteOffset, packet->tr ansferred_length) : nullptr));
739 byteOffset += packet->length; 739 byteOffset += packet->length;
740 } 740 }
741 resolver->resolve(USBIsochronousInTransferResult::create(buffer, packets)); 741 resolver->resolve(USBIsochronousInTransferResult::create(buffer, packets));
742 } 742 }
743 743
744 void USBDevice::asyncIsochronousTransferOut(ScriptPromiseResolver* resolver, moj o::WTFArray<usb::IsochronousPacketPtr> mojoPackets) 744 void USBDevice::asyncIsochronousTransferOut(ScriptPromiseResolver* resolver, Vec tor<usb::IsochronousPacketPtr> mojoPackets)
745 { 745 {
746 if (!markRequestComplete(resolver)) 746 if (!markRequestComplete(resolver))
747 return; 747 return;
748 748
749 HeapVector<Member<USBIsochronousOutTransferPacket>> packets; 749 HeapVector<Member<USBIsochronousOutTransferPacket>> packets;
750 packets.reserveCapacity(mojoPackets.size()); 750 packets.reserveCapacity(mojoPackets.size());
751 for (const auto& packet : mojoPackets.storage()) { 751 for (const auto& packet : mojoPackets) {
752 DOMException* error = convertFatalTransferStatus(packet->status); 752 DOMException* error = convertFatalTransferStatus(packet->status);
753 if (error) { 753 if (error) {
754 resolver->reject(error); 754 resolver->reject(error);
755 return; 755 return;
756 } 756 }
757 packets.append(USBIsochronousOutTransferPacket::create(convertTransferSt atus(packet->status), packet->transferred_length)); 757 packets.append(USBIsochronousOutTransferPacket::create(convertTransferSt atus(packet->status), packet->transferred_length));
758 } 758 }
759 resolver->resolve(USBIsochronousOutTransferResult::create(packets)); 759 resolver->resolve(USBIsochronousOutTransferResult::create(packets));
760 } 760 }
761 761
(...skipping 20 matching lines...) Expand all
782 bool USBDevice::markRequestComplete(ScriptPromiseResolver* resolver) 782 bool USBDevice::markRequestComplete(ScriptPromiseResolver* resolver)
783 { 783 {
784 auto requestEntry = m_deviceRequests.find(resolver); 784 auto requestEntry = m_deviceRequests.find(resolver);
785 if (requestEntry == m_deviceRequests.end()) 785 if (requestEntry == m_deviceRequests.end())
786 return false; 786 return false;
787 m_deviceRequests.remove(requestEntry); 787 m_deviceRequests.remove(requestEntry);
788 return true; 788 return true;
789 } 789 }
790 790
791 } // namespace blink 791 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698