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

Side by Side Diff: third_party/WebKit/LayoutTests/usb/resources/usb-helpers.js

Issue 1912223002: Make new WebUSB implementation more resilient to garbage collection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased again. Created 4 years, 7 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 'use strict'; 1 'use strict';
2 2
3 function assertRejectsWithError(promise, name, message) { 3 function assertRejectsWithError(promise, name, message) {
4 return promise.then(() => { 4 return promise.then(() => {
5 assert_unreached('expected promise to reject with ' + name); 5 assert_unreached('expected promise to reject with ' + name);
6 }, error => { 6 }, error => {
7 assert_equals(error.name, name); 7 assert_equals(error.name, name);
8 if (message !== undefined) 8 if (message !== undefined)
9 assert_equals(error.message, message); 9 assert_equals(error.message, message);
10 }); 10 });
11 } 11 }
12 12
13 // TODO(reillyg): Remove when jyasskin upstreams this to testharness.js: 13 // TODO(reillyg): Remove when jyasskin upstreams this to testharness.js:
14 // https://crbug.com/509058. 14 // https://crbug.com/509058.
15 function callWithKeyDown(functionCalledOnKeyPress) { 15 function callWithKeyDown(functionCalledOnKeyPress) {
16 return new Promise(resolve => { 16 return new Promise(resolve => {
17 function onKeyPress() { 17 function onKeyPress() {
18 document.removeEventListener('keypress', onKeyPress, false); 18 document.removeEventListener('keypress', onKeyPress, false);
19 resolve(functionCalledOnKeyPress()); 19 resolve(functionCalledOnKeyPress());
20 } 20 }
21 document.addEventListener('keypress', onKeyPress, false); 21 document.addEventListener('keypress', onKeyPress, false);
22 22
23 eventSender.keyDown(' ', []); 23 eventSender.keyDown(' ', []);
24 }); 24 });
25 } 25 }
26 26
27 function runGarbageCollection() {
28 // Run gc() as a promise.
29 return new Promise((resolve, reject) => {
30 GCController.collect();
31 setTimeout(resolve, 0);
32 });
33 }
34
27 function usbMocks(mojo) { 35 function usbMocks(mojo) {
28 return define('USB Mocks', [ 36 return define('USB Mocks', [
29 'device/usb/public/interfaces/chooser_service.mojom', 37 'device/usb/public/interfaces/chooser_service.mojom',
30 'device/usb/public/interfaces/device_manager.mojom', 38 'device/usb/public/interfaces/device_manager.mojom',
31 'device/usb/public/interfaces/device.mojom', 39 'device/usb/public/interfaces/device.mojom',
32 ], (chooserService, deviceManager, device) => { 40 ], (chooserService, deviceManager, device) => {
33 function assertDeviceInfoEquals(device, info) { 41 function assertDeviceInfoEquals(device, info) {
34 assert_equals(device.guid, info.guid); 42 assert_equals(device.guid, info.guid);
35 assert_equals(device.usbVersionMajor, info.usb_version_major); 43 assert_equals(device.usbVersionMajor, info.usb_version_major);
36 assert_equals(device.usbVersionMinor, info.usb_version_minor); 44 assert_equals(device.usbVersionMinor, info.usb_version_minor);
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 } 481 }
474 482
475 function usb_test(func, name, properties) { 483 function usb_test(func, name, properties) {
476 mojo_test(mojo => usbMocks(mojo).then(usb => { 484 mojo_test(mojo => usbMocks(mojo).then(usb => {
477 let result = Promise.resolve(func(usb)); 485 let result = Promise.resolve(func(usb));
478 let cleanUp = () => usb.mockDeviceManager.reset(); 486 let cleanUp = () => usb.mockDeviceManager.reset();
479 result.then(cleanUp, cleanUp); 487 result.then(cleanUp, cleanUp);
480 return result; 488 return result;
481 }), name, properties); 489 }), name, properties);
482 } 490 }
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/TestExpectations ('k') | third_party/WebKit/LayoutTests/usb/usbDevice.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698