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

Side by Side Diff: third_party/WebKit/LayoutTests/usb/usbDevice-iframe.html

Issue 2831223003: Move the onclose event handler to the FakeUSBDevice object (Closed)
Patch Set: Rebased Created 3 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
« no previous file with comments | « third_party/WebKit/LayoutTests/usb/resources/webusb-test.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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> 6 <script src="resources/webusb-test.js"></script>
7 <script> 7 <script>
8 'use strict'; 8 'use strict';
9 9
10 function runIframeDisconnectTest(onDeviceConnected) { 10 function runIframeDisconnectTest(onDeviceConnected) {
11 return navigator.usb.test.initialize().then(() => { 11 return navigator.usb.test.initialize().then(() => {
12 return new Promise((resolve, reject) => { 12 return new Promise((resolve, reject) => {
13 let opened = false; 13 let opened = false;
14 let fakeDevice = 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 let fakeDevice = navigator.usb.test.addFakeDevice(fakeDeviceInit);
26 fakeDevice.onclose = () => {
27 assert_true(opened);
28 resolve();
29 };
27 } else if (messageEvent.data == 'Success') { 30 } else if (messageEvent.data == 'Success') {
28 opened = true; 31 opened = true;
29 onDeviceConnected(iframe); 32 onDeviceConnected(iframe);
30 } else { 33 } else {
31 reject(messageEvent.data); 34 reject(messageEvent.data);
32 } 35 }
33 }; 36 };
34 37
35 navigator.usb.test.ondeviceclose = closedFakeDevice => {
36 assert_equals(closedFakeDevice, fakeDevice);
37 assert_true(opened);
38 resolve();
39 };
40
41 document.body.appendChild(iframe); 38 document.body.appendChild(iframe);
42 }); 39 });
43 }); 40 });
44 } 41 }
45 42
46 promise_test(() => { 43 promise_test(() => {
47 return runIframeDisconnectTest(iframe => { 44 return runIframeDisconnectTest(iframe => {
48 document.body.removeChild(iframe); 45 document.body.removeChild(iframe);
49 }); 46 });
50 }, 'detaching iframe disconnects device.'); 47 }, 'detaching iframe disconnects device.');
(...skipping 28 matching lines...) Expand all
79 } else { 76 } else {
80 reject(messageEvent.data); 77 reject(messageEvent.data);
81 } 78 }
82 }; 79 };
83 80
84 document.body.appendChild(iframe); 81 document.body.appendChild(iframe);
85 }); 82 });
86 }); 83 });
87 }, 'events are not delivered to detached frames'); 84 }, 'events are not delivered to detached frames');
88 </script> 85 </script>
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/usb/resources/webusb-test.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698