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

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

Issue 2108033005: Specify WTF:: prefix for bind() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
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)
94 , m_configurationIndex(-1) 94 , m_configurationIndex(-1)
95 { 95 {
96 if (m_device) 96 if (m_device)
97 m_device.set_connection_error_handler(createBaseCallback(bind(&USBDevice ::onConnectionError, wrapWeakPersistent(this)))); 97 m_device.set_connection_error_handler(createBaseCallback(WTF::bind(&USBD evice::onConnectionError, wrapWeakPersistent(this))));
98 int configurationIndex = findConfigurationIndex(info().active_configuration) ; 98 int configurationIndex = findConfigurationIndex(info().active_configuration) ;
99 if (configurationIndex != -1) 99 if (configurationIndex != -1)
100 onConfigurationSelected(true /* success */, configurationIndex); 100 onConfigurationSelected(true /* success */, configurationIndex);
101 } 101 }
102 102
103 USBDevice::~USBDevice() 103 USBDevice::~USBDevice()
104 { 104 {
105 // |m_device| may still be valid but there should be no more outstanding 105 // |m_device| may still be valid but there should be no more outstanding
106 // requests because each holds a persistent handle to this object. 106 // requests because each holds a persistent handle to this object.
107 DCHECK(m_deviceRequests.isEmpty()); 107 DCHECK(m_deviceRequests.isEmpty());
(...skipping 28 matching lines...) Expand all
136 ScriptPromise USBDevice::open(ScriptState* scriptState) 136 ScriptPromise USBDevice::open(ScriptState* scriptState)
137 { 137 {
138 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 138 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
139 ScriptPromise promise = resolver->promise(); 139 ScriptPromise promise = resolver->promise();
140 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) { 140 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) {
141 if (m_opened) { 141 if (m_opened) {
142 resolver->resolve(); 142 resolver->resolve();
143 } else { 143 } else {
144 m_deviceStateChangeInProgress = true; 144 m_deviceStateChangeInProgress = true;
145 m_deviceRequests.add(resolver); 145 m_deviceRequests.add(resolver);
146 m_device->Open(createBaseCallback(bind(&USBDevice::asyncOpen, wrapPe rsistent(this), wrapPersistent(resolver)))); 146 m_device->Open(createBaseCallback(WTF::bind(&USBDevice::asyncOpen, w rapPersistent(this), wrapPersistent(resolver))));
147 } 147 }
148 } 148 }
149 return promise; 149 return promise;
150 } 150 }
151 151
152 ScriptPromise USBDevice::close(ScriptState* scriptState) 152 ScriptPromise USBDevice::close(ScriptState* scriptState)
153 { 153 {
154 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 154 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
155 ScriptPromise promise = resolver->promise(); 155 ScriptPromise promise = resolver->promise();
156 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) { 156 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) {
157 if (!m_opened) { 157 if (!m_opened) {
158 resolver->resolve(); 158 resolver->resolve();
159 } else { 159 } else {
160 m_deviceStateChangeInProgress = true; 160 m_deviceStateChangeInProgress = true;
161 m_deviceRequests.add(resolver); 161 m_deviceRequests.add(resolver);
162 m_device->Close(createBaseCallback(bind(&USBDevice::asyncClose, wrap Persistent(this), wrapPersistent(resolver)))); 162 m_device->Close(createBaseCallback(WTF::bind(&USBDevice::asyncClose, wrapPersistent(this), wrapPersistent(resolver))));
163 } 163 }
164 } 164 }
165 return promise; 165 return promise;
166 } 166 }
167 167
168 ScriptPromise USBDevice::selectConfiguration(ScriptState* scriptState, uint8_t c onfigurationValue) 168 ScriptPromise USBDevice::selectConfiguration(ScriptState* scriptState, uint8_t c onfigurationValue)
169 { 169 {
170 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 170 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
171 ScriptPromise promise = resolver->promise(); 171 ScriptPromise promise = resolver->promise();
172 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) { 172 if (ensureNoDeviceOrInterfaceChangeInProgress(resolver)) {
173 if (!m_opened) { 173 if (!m_opened) {
174 resolver->reject(DOMException::create(InvalidStateError, kOpenRequir ed)); 174 resolver->reject(DOMException::create(InvalidStateError, kOpenRequir ed));
175 } else { 175 } else {
176 int configurationIndex = findConfigurationIndex(configurationValue); 176 int configurationIndex = findConfigurationIndex(configurationValue);
177 if (configurationIndex == -1) { 177 if (configurationIndex == -1) {
178 resolver->reject(DOMException::create(NotFoundError, "The config uration value provided is not supported by the device.")); 178 resolver->reject(DOMException::create(NotFoundError, "The config uration value provided is not supported by the device."));
179 } else if (m_configurationIndex == configurationIndex) { 179 } else if (m_configurationIndex == configurationIndex) {
180 resolver->resolve(); 180 resolver->resolve();
181 } else { 181 } else {
182 m_deviceStateChangeInProgress = true; 182 m_deviceStateChangeInProgress = true;
183 m_deviceRequests.add(resolver); 183 m_deviceRequests.add(resolver);
184 m_device->SetConfiguration(configurationValue, createBaseCallbac k(bind(&USBDevice::asyncSelectConfiguration, wrapPersistent(this), configuration Index, wrapPersistent(resolver)))); 184 m_device->SetConfiguration(configurationValue, createBaseCallbac k(WTF::bind(&USBDevice::asyncSelectConfiguration, wrapPersistent(this), configur ationIndex, wrapPersistent(resolver))));
185 } 185 }
186 } 186 }
187 } 187 }
188 return promise; 188 return promise;
189 } 189 }
190 190
191 ScriptPromise USBDevice::claimInterface(ScriptState* scriptState, uint8_t interf aceNumber) 191 ScriptPromise USBDevice::claimInterface(ScriptState* scriptState, uint8_t interf aceNumber)
192 { 192 {
193 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 193 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
194 ScriptPromise promise = resolver->promise(); 194 ScriptPromise promise = resolver->promise();
195 if (ensureDeviceConfigured(resolver)) { 195 if (ensureDeviceConfigured(resolver)) {
196 int interfaceIndex = findInterfaceIndex(interfaceNumber); 196 int interfaceIndex = findInterfaceIndex(interfaceNumber);
197 if (interfaceIndex == -1) { 197 if (interfaceIndex == -1) {
198 resolver->reject(DOMException::create(NotFoundError, kInterfaceNotFo und)); 198 resolver->reject(DOMException::create(NotFoundError, kInterfaceNotFo und));
199 } else if (m_interfaceStateChangeInProgress.get(interfaceIndex)) { 199 } else if (m_interfaceStateChangeInProgress.get(interfaceIndex)) {
200 resolver->reject(DOMException::create(InvalidStateError, kInterfaceS tateChangeInProgress)); 200 resolver->reject(DOMException::create(InvalidStateError, kInterfaceS tateChangeInProgress));
201 } else if (m_claimedInterfaces.get(interfaceIndex)) { 201 } else if (m_claimedInterfaces.get(interfaceIndex)) {
202 resolver->resolve(); 202 resolver->resolve();
203 } else { 203 } else {
204 m_interfaceStateChangeInProgress.set(interfaceIndex); 204 m_interfaceStateChangeInProgress.set(interfaceIndex);
205 m_deviceRequests.add(resolver); 205 m_deviceRequests.add(resolver);
206 m_device->ClaimInterface(interfaceNumber, createBaseCallback(bind(&U SBDevice::asyncClaimInterface, wrapPersistent(this), interfaceIndex, wrapPersist ent(resolver)))); 206 m_device->ClaimInterface(interfaceNumber, createBaseCallback(WTF::bi nd(&USBDevice::asyncClaimInterface, wrapPersistent(this), interfaceIndex, wrapPe rsistent(resolver))));
207 } 207 }
208 } 208 }
209 return promise; 209 return promise;
210 } 210 }
211 211
212 ScriptPromise USBDevice::releaseInterface(ScriptState* scriptState, uint8_t inte rfaceNumber) 212 ScriptPromise USBDevice::releaseInterface(ScriptState* scriptState, uint8_t inte rfaceNumber)
213 { 213 {
214 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 214 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
215 ScriptPromise promise = resolver->promise(); 215 ScriptPromise promise = resolver->promise();
216 if (ensureDeviceConfigured(resolver)) { 216 if (ensureDeviceConfigured(resolver)) {
217 int interfaceIndex = findInterfaceIndex(interfaceNumber); 217 int interfaceIndex = findInterfaceIndex(interfaceNumber);
218 if (interfaceIndex == -1) { 218 if (interfaceIndex == -1) {
219 resolver->reject(DOMException::create(NotFoundError, "The interface number provided is not supported by the device in its current configuration.")); 219 resolver->reject(DOMException::create(NotFoundError, "The interface number provided is not supported by the device in its current configuration."));
220 } else if (m_interfaceStateChangeInProgress.get(interfaceIndex)) { 220 } else if (m_interfaceStateChangeInProgress.get(interfaceIndex)) {
221 resolver->reject(DOMException::create(InvalidStateError, kInterfaceS tateChangeInProgress)); 221 resolver->reject(DOMException::create(InvalidStateError, kInterfaceS tateChangeInProgress));
222 } else if (!m_claimedInterfaces.get(interfaceIndex)) { 222 } else if (!m_claimedInterfaces.get(interfaceIndex)) {
223 resolver->resolve(); 223 resolver->resolve();
224 } else { 224 } else {
225 // Mark this interface's endpoints unavailable while its state is 225 // Mark this interface's endpoints unavailable while its state is
226 // changing. 226 // changing.
227 setEndpointsForInterface(interfaceIndex, false); 227 setEndpointsForInterface(interfaceIndex, false);
228 m_interfaceStateChangeInProgress.set(interfaceIndex); 228 m_interfaceStateChangeInProgress.set(interfaceIndex);
229 m_deviceRequests.add(resolver); 229 m_deviceRequests.add(resolver);
230 m_device->ReleaseInterface(interfaceNumber, createBaseCallback(bind( &USBDevice::asyncReleaseInterface, wrapPersistent(this), interfaceIndex, wrapPer sistent(resolver)))); 230 m_device->ReleaseInterface(interfaceNumber, createBaseCallback(WTF:: bind(&USBDevice::asyncReleaseInterface, wrapPersistent(this), interfaceIndex, wr apPersistent(resolver))));
231 } 231 }
232 } 232 }
233 return promise; 233 return promise;
234 } 234 }
235 235
236 ScriptPromise USBDevice::selectAlternateInterface(ScriptState* scriptState, uint 8_t interfaceNumber, uint8_t alternateSetting) 236 ScriptPromise USBDevice::selectAlternateInterface(ScriptState* scriptState, uint 8_t interfaceNumber, uint8_t alternateSetting)
237 { 237 {
238 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 238 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
239 ScriptPromise promise = resolver->promise(); 239 ScriptPromise promise = resolver->promise();
240 if (ensureInterfaceClaimed(interfaceNumber, resolver)) { 240 if (ensureInterfaceClaimed(interfaceNumber, resolver)) {
241 // TODO(reillyg): This is duplicated work. 241 // TODO(reillyg): This is duplicated work.
242 int interfaceIndex = findInterfaceIndex(interfaceNumber); 242 int interfaceIndex = findInterfaceIndex(interfaceNumber);
243 ASSERT(interfaceIndex != -1); 243 ASSERT(interfaceIndex != -1);
244 int alternateIndex = findAlternateIndex(interfaceIndex, alternateSetting ); 244 int alternateIndex = findAlternateIndex(interfaceIndex, alternateSetting );
245 if (alternateIndex == -1) { 245 if (alternateIndex == -1) {
246 resolver->reject(DOMException::create(NotFoundError, "The alternate setting provided is not supported by the device in its current configuration.")) ; 246 resolver->reject(DOMException::create(NotFoundError, "The alternate setting provided is not supported by the device in its current configuration.")) ;
247 } else { 247 } else {
248 // Mark this old alternate interface's endpoints unavailable while 248 // Mark this old alternate interface's endpoints unavailable while
249 // the change is in progress. 249 // the change is in progress.
250 setEndpointsForInterface(interfaceIndex, false); 250 setEndpointsForInterface(interfaceIndex, false);
251 m_interfaceStateChangeInProgress.set(interfaceIndex); 251 m_interfaceStateChangeInProgress.set(interfaceIndex);
252 m_deviceRequests.add(resolver); 252 m_deviceRequests.add(resolver);
253 m_device->SetInterfaceAlternateSetting(interfaceNumber, alternateSet ting, createBaseCallback(bind(&USBDevice::asyncSelectAlternateInterface, wrapPer sistent(this), interfaceNumber, alternateSetting, wrapPersistent(resolver)))); 253 m_device->SetInterfaceAlternateSetting(interfaceNumber, alternateSet ting, createBaseCallback(WTF::bind(&USBDevice::asyncSelectAlternateInterface, wr apPersistent(this), interfaceNumber, alternateSetting, wrapPersistent(resolver)) ));
254 } 254 }
255 } 255 }
256 return promise; 256 return promise;
257 } 257 }
258 258
259 ScriptPromise USBDevice::controlTransferIn(ScriptState* scriptState, const USBCo ntrolTransferParameters& setup, unsigned length) 259 ScriptPromise USBDevice::controlTransferIn(ScriptState* scriptState, const USBCo ntrolTransferParameters& setup, unsigned length)
260 { 260 {
261 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 261 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
262 ScriptPromise promise = resolver->promise(); 262 ScriptPromise promise = resolver->promise();
263 if (ensureDeviceConfigured(resolver)) { 263 if (ensureDeviceConfigured(resolver)) {
264 auto parameters = convertControlTransferParameters(setup, resolver); 264 auto parameters = convertControlTransferParameters(setup, resolver);
265 if (parameters) { 265 if (parameters) {
266 m_deviceRequests.add(resolver); 266 m_deviceRequests.add(resolver);
267 m_device->ControlTransferIn(std::move(parameters), length, 0, create BaseCallback(bind(&USBDevice::asyncControlTransferIn, wrapPersistent(this), wrap Persistent(resolver)))); 267 m_device->ControlTransferIn(std::move(parameters), length, 0, create BaseCallback(WTF::bind(&USBDevice::asyncControlTransferIn, wrapPersistent(this), wrapPersistent(resolver))));
268 } 268 }
269 } 269 }
270 return promise; 270 return promise;
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, createBaseCallback(bind(&USBDevice::asyncControlTransferOut, wrapP ersistent(this), 0, wrapPersistent(resolver)))); 281 m_device->ControlTransferOut(std::move(parameters), mojo::WTFArray<u int8_t>(), 0, createBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPersistent(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 mojo::WTFArray<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, createBaseCallback(bind(&USBDevice::asyncControlTransferOut, wrapPersisten t(this), transferLength, wrapPersistent(resolver)))); 297 m_device->ControlTransferOut(std::move(parameters), std::move(buffer ), 0, createBaseCallback(WTF::bind(&USBDevice::asyncControlTransferOut, wrapPers istent(this), 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)) {
308 m_deviceRequests.add(resolver); 308 m_deviceRequests.add(resolver);
309 m_device->ClearHalt(endpointNumber, createBaseCallback(bind(&USBDevice:: asyncClearHalt, wrapPersistent(this), wrapPersistent(resolver)))); 309 m_device->ClearHalt(endpointNumber, createBaseCallback(WTF::bind(&USBDev ice::asyncClearHalt, wrapPersistent(this), wrapPersistent(resolver))));
310 } 310 }
311 return promise; 311 return promise;
312 } 312 }
313 313
314 ScriptPromise USBDevice::transferIn(ScriptState* scriptState, uint8_t endpointNu mber, unsigned length) 314 ScriptPromise USBDevice::transferIn(ScriptState* scriptState, uint8_t endpointNu mber, unsigned length)
315 { 315 {
316 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 316 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
317 ScriptPromise promise = resolver->promise(); 317 ScriptPromise promise = resolver->promise();
318 if (ensureEndpointAvailable(true /* in */, endpointNumber, resolver)) { 318 if (ensureEndpointAvailable(true /* in */, endpointNumber, resolver)) {
319 m_deviceRequests.add(resolver); 319 m_deviceRequests.add(resolver);
320 m_device->GenericTransferIn(endpointNumber, length, 0, createBaseCallbac k(bind(&USBDevice::asyncTransferIn, wrapPersistent(this), wrapPersistent(resolve r)))); 320 m_device->GenericTransferIn(endpointNumber, length, 0, createBaseCallbac k(WTF::bind(&USBDevice::asyncTransferIn, wrapPersistent(this), wrapPersistent(re solver))));
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 mojo::WTFArray<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, creat eBaseCallback(bind(&USBDevice::asyncTransferOut, wrapPersistent(this), transferL ength, wrapPersistent(resolver)))); 333 m_device->GenericTransferOut(endpointNumber, std::move(buffer), 0, creat eBaseCallback(WTF::bind(&USBDevice::asyncTransferOut, wrapPersistent(this), tran sferLength, 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, createBaseCallback(bind(&USBDevice::asyncIsochron ousTransferIn, wrapPersistent(this), wrapPersistent(resolver)))); 344 m_device->IsochronousTransferIn(endpointNumber, mojo::WTFArray<uint32_t> (std::move(packetLengths)), 0, createBaseCallback(WTF::bind(&USBDevice::asyncIso chronousTransferIn, 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, createBaseCallback(bi nd(&USBDevice::asyncIsochronousTransferOut, wrapPersistent(this), wrapPersistent (resolver)))); 355 m_device->IsochronousTransferOut(endpointNumber, convertBufferSource(dat a), mojo::WTFArray<uint32_t>(std::move(packetLengths)), 0, createBaseCallback(WT F::bind(&USBDevice::asyncIsochronousTransferOut, wrapPersistent(this), wrapPersi stent(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) {
366 resolver->reject(DOMException::create(InvalidStateError, kOpenRequir ed)); 366 resolver->reject(DOMException::create(InvalidStateError, kOpenRequir ed));
367 } else { 367 } else {
368 m_deviceRequests.add(resolver); 368 m_deviceRequests.add(resolver);
369 m_device->Reset(createBaseCallback(bind(&USBDevice::asyncReset, wrap Persistent(this), wrapPersistent(resolver)))); 369 m_device->Reset(createBaseCallback(WTF::bind(&USBDevice::asyncReset, wrapPersistent(this), wrapPersistent(resolver))));
370 } 370 }
371 } 371 }
372 return promise; 372 return promise;
373 } 373 }
374 374
375 void USBDevice::contextDestroyed() 375 void USBDevice::contextDestroyed()
376 { 376 {
377 m_device.reset(); 377 m_device.reset();
378 m_deviceRequests.clear(); 378 m_deviceRequests.clear();
379 } 379 }
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
« no previous file with comments | « third_party/WebKit/Source/modules/webusb/USB.cpp ('k') | third_party/WebKit/Source/platform/SharedBuffer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698