device-orientation-events-of-detached-documents.https.html (1750B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Device sensor event listeners for `window` of detached documents.</title> 5 </head> 6 <body> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/resources/testdriver.js"></script> 10 <script src="/resources/testdriver-vendor.js"></script> 11 <script src="resources/orientation-event-helpers.js"></script> 12 <script> 13 14 promise_test(async t => { 15 const childFrame = document.createElement('iframe'); 16 childFrame.src = "/common/blank.html"; 17 document.body.append(childFrame); 18 19 const childLoadWatcher = new EventWatcher(t, childFrame, ["load"]); 20 await childLoadWatcher.wait_for("load"); 21 22 const contentWindow = childFrame.contentWindow; 23 const contentDocument = childFrame.contentDocument; 24 25 await test_driver.set_permission({ name: 'accelerometer' }, 'granted', contentWindow); 26 await test_driver.set_permission({ name: 'gyroscope' }, 'granted', contentWindow); 27 await test_driver.set_permission({ name: 'magnetometer' }, 'granted', contentWindow); 28 29 assert_equals(await contentWindow.DeviceOrientationEvent.requestPermission(), 30 'granted'); 31 assert_equals(await contentWindow.DeviceMotionEvent.requestPermission(), 32 'granted'); 33 34 document.body.remove(childFrame); 35 36 assert_not_equals(contentWindow, null); 37 assert_not_equals(contentDocument, null); 38 assert_equals(contentDocument.defaultView, null); 39 40 contentWindow.addEventListener("devicemotion", () => {}); 41 contentWindow.addEventListener("deviceorientation", () => {}); 42 contentWindow.addEventListener("deviceorientationabsolute", () => {}); 43 44 }, 'Adding an event listener on the window of a detached document does not crash.'); 45 46 </script> 47 </body> 48 </html>