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

Side by Side Diff: third_party/WebKit/Source/modules/webusb/USBDevice.cpp

Issue 1730403006: Basic layout tests for WebUSB. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Mojo tests that depend on extra module loading. Created 4 years, 9 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/CallbackPromiseAdapter.h" 7 #include "bindings/core/v8/CallbackPromiseAdapter.h"
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "bindings/core/v8/ToV8.h" 10 #include "bindings/core/v8/ToV8.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 public: 134 public:
135 using WebType = OwnPtr<WebUSBTransferInfo>; 135 using WebType = OwnPtr<WebUSBTransferInfo>;
136 136
137 static USBIsochronousInTransferResult* take(ScriptPromiseResolver*, PassOwnP tr<WebUSBTransferInfo> webTransferInfo) 137 static USBIsochronousInTransferResult* take(ScriptPromiseResolver*, PassOwnP tr<WebUSBTransferInfo> webTransferInfo)
138 { 138 {
139 ASSERT(webTransferInfo->status.size() == webTransferInfo->packetLength.s ize() && webTransferInfo->packetLength.size() == webTransferInfo->bytesTransferr ed.size()); 139 ASSERT(webTransferInfo->status.size() == webTransferInfo->packetLength.s ize() && webTransferInfo->packetLength.size() == webTransferInfo->bytesTransferr ed.size());
140 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(webTransferInfo-> data.data(), webTransferInfo->data.size()); 140 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(webTransferInfo-> data.data(), webTransferInfo->data.size());
141 HeapVector<Member<USBIsochronousInTransferPacket>> packets(webTransferIn fo->status.size()); 141 HeapVector<Member<USBIsochronousInTransferPacket>> packets(webTransferIn fo->status.size());
142 size_t byteOffset = 0; 142 size_t byteOffset = 0;
143 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) { 143 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) {
144 packets.append(USBIsochronousInTransferPacket::create(convertTransfe rStatus(webTransferInfo->status[i]), DOMDataView::create(buffer, byteOffset, web TransferInfo->bytesTransferred[i]))); 144 packets[i] = USBIsochronousInTransferPacket::create(convertTransferS tatus(webTransferInfo->status[i]), DOMDataView::create(buffer, byteOffset, webTr ansferInfo->bytesTransferred[i]));
145 byteOffset += webTransferInfo->packetLength[i]; 145 byteOffset += webTransferInfo->packetLength[i];
146 } 146 }
147 return USBIsochronousInTransferResult::create(buffer, packets); 147 return USBIsochronousInTransferResult::create(buffer, packets);
148 } 148 }
149 }; 149 };
150 150
151 class IsochronousOutputTransferResult { 151 class IsochronousOutputTransferResult {
152 WTF_MAKE_NONCOPYABLE(IsochronousOutputTransferResult); 152 WTF_MAKE_NONCOPYABLE(IsochronousOutputTransferResult);
153 153
154 public: 154 public:
155 using WebType = OwnPtr<WebUSBTransferInfo>; 155 using WebType = OwnPtr<WebUSBTransferInfo>;
156 156
157 static USBIsochronousOutTransferResult* take(ScriptPromiseResolver*, PassOwn Ptr<WebUSBTransferInfo> webTransferInfo) 157 static USBIsochronousOutTransferResult* take(ScriptPromiseResolver*, PassOwn Ptr<WebUSBTransferInfo> webTransferInfo)
158 { 158 {
159 ASSERT(webTransferInfo->status.size() == webTransferInfo->bytesTransferr ed.size()); 159 ASSERT(webTransferInfo->status.size() == webTransferInfo->bytesTransferr ed.size());
160 HeapVector<Member<USBIsochronousOutTransferPacket>> packets(webTransferI nfo->status.size()); 160 HeapVector<Member<USBIsochronousOutTransferPacket>> packets(webTransferI nfo->status.size());
161 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) 161 for (size_t i = 0; i < webTransferInfo->status.size(); ++i)
162 packets.append(USBIsochronousOutTransferPacket::create(convertTransf erStatus(webTransferInfo->status[i]), webTransferInfo->bytesTransferred[i])); 162 packets[i] = USBIsochronousOutTransferPacket::create(convertTransfer Status(webTransferInfo->status[i]), webTransferInfo->bytesTransferred[i]);
163 return USBIsochronousOutTransferResult::create(packets); 163 return USBIsochronousOutTransferResult::create(packets);
164 } 164 }
165 }; 165 };
166 166
167 class BufferSource { 167 class BufferSource {
168 WTF_MAKE_NONCOPYABLE(BufferSource); 168 WTF_MAKE_NONCOPYABLE(BufferSource);
169 public: 169 public:
170 BufferSource(const ArrayBufferOrArrayBufferView& buffer) : m_buffer(buffer) 170 BufferSource(const ArrayBufferOrArrayBufferView& buffer) : m_buffer(buffer)
171 { 171 {
172 ASSERT(!m_buffer.isNull()); 172 ASSERT(!m_buffer.isNull());
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 { 353 {
354 m_device->close(new WebUSBDeviceCloseCallbacks()); 354 m_device->close(new WebUSBDeviceCloseCallbacks());
355 } 355 }
356 356
357 DEFINE_TRACE(USBDevice) 357 DEFINE_TRACE(USBDevice)
358 { 358 {
359 ContextLifecycleObserver::trace(visitor); 359 ContextLifecycleObserver::trace(visitor);
360 } 360 }
361 361
362 } // namespace blink 362 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698