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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/webusb/usbDevice-iframe.https.html

Issue 2789723003: Migrate WebUSB LayoutTests into external/wpt (Closed)
Patch Set: Rebased Created 3 years, 8 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 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script> 2 <script src="/resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script> 3 <script src="/resources/testharnessreport.js"></script>
4 <script src="resources/fake-devices.js"></script> 4 <script src="resources/fake-devices.js"></script>
5 <script src="resources/usb-helpers.js"></script> 5 <script src="resources/usb-helpers.js"></script>
6 <script src="resources/webusb-test.js"></script>
7 <script> 6 <script>
8 'use strict'; 7 'use strict';
9 8
10 function runIframeDisconnectTest(onDeviceConnected) { 9 function runIframeDisconnectTest(onDeviceConnected) {
11 return navigator.usb.test.initialize().then(() => { 10 return navigator.usb.test.initialize().then(() => {
12 return new Promise((resolve, reject) => { 11 return new Promise((resolve, reject) => {
13 let opened = false; 12 let opened = false;
14 let fakeDevice = null; 13 let fakeDeviceGuid = null;
15 14
16 let iframe = document.createElement('iframe'); 15 let iframe = document.createElement('iframe');
17 iframe.src = 'resources/open-in-iframe.html'; 16 iframe.src = 'resources/open-in-iframe.html';
18 iframe.onload = () => { 17 iframe.onload = () => {
19 navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => { 18 navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => {
20 iframe.contentWindow.postMessage('Ready', '*'); 19 iframe.contentWindow.postMessage('Ready', '*');
21 }); 20 });
22 }; 21 };
23 22
24 window.onmessage = messageEvent => { 23 window.onmessage = messageEvent => {
25 if (messageEvent.data == 'Ready') { 24 if (messageEvent.data == 'Ready') {
26 fakeDevice = navigator.usb.test.addFakeDevice(fakeDeviceInit); 25 fakeDeviceGuid = navigator.usb.test.addFakeDevice(fakeDeviceInit);
27 } else if (messageEvent.data == 'Success') { 26 } else if (messageEvent.data == 'Success') {
28 opened = true; 27 opened = true;
29 onDeviceConnected(iframe); 28 onDeviceConnected(iframe);
30 } else { 29 } else {
31 reject(messageEvent.data); 30 reject(messageEvent.data);
32 } 31 }
33 }; 32 };
34 33
35 navigator.usb.test.ondeviceclose = closedFakeDevice => { 34 navigator.usb.test.ondeviceclose = guid => {
36 assert_equals(closedFakeDevice, fakeDevice); 35 assert_equals(guid, fakeDeviceGuid);
37 assert_true(opened); 36 assert_true(opened);
38 resolve(); 37 resolve();
39 }; 38 };
40 39
41 document.body.appendChild(iframe); 40 document.body.appendChild(iframe);
42 }); 41 });
43 }); 42 });
44 } 43 }
45 44
46 promise_test(() => { 45 promise_test(() => {
47 return runIframeDisconnectTest(iframe => { 46 return runIframeDisconnectTest(iframe => {
48 document.body.removeChild(iframe); 47 document.body.removeChild(iframe);
49 }); 48 });
50 }, 'detaching iframe disconnects device.'); 49 }, 'detaching iframe disconnects device.');
51 50
52 promise_test(() => { 51 promise_test(() => {
53 return runIframeDisconnectTest(iframe => { 52 return runIframeDisconnectTest(iframe => {
54 iframe.src = 'about:blank'; 53 iframe.src = 'about:blank';
55 }); 54 });
56 }, 'navigating iframe disconnects device.'); 55 }, 'navigating iframe disconnects device.');
57
58 promise_test(() => {
59 return navigator.usb.test.initialize().then(() => {
60 return new Promise((resolve, reject) => {
61 let opened = false;
62 let fakeDeviceGuid = null;
63
64 let iframe = document.createElement('iframe');
65 iframe.src = 'resources/open-in-iframe.html';
66 iframe.onload = () => {
67 navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => {
68 iframe.contentWindow.postMessage('Ready', '*');
69 });
70 };
71
72 window.onmessage = messageEvent => {
73 if (messageEvent.data == 'Ready') {
74 document.body.removeChild(iframe);
75 runGarbageCollection().then(() => {
76 navigator.usb.test.addFakeDevice(fakeDeviceInit);
77 resolve();
78 });
79 } else {
80 reject(messageEvent.data);
81 }
82 };
83
84 document.body.appendChild(iframe);
85 });
86 });
87 }, 'events are not delivered to detached frames');
88 </script> 56 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698