message-event-activation-api-iframe-cross-origin.sub.tentative.html (2255B)
1 <!DOCTYPE html> 2 <!-- 3 Tentative due to: 4 https://github.com/whatwg/html/issues/1983 5 --> 6 <html> 7 <head> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/resources/testdriver.js"></script> 11 <script src="/resources/testdriver-vendor.js"></script> 12 </head> 13 <body> 14 <h1>Clicking in iframe has activation state in child via MessageEvent</h1> 15 <ol id="instructions"> 16 <li>Click inside the red area. 17 </ol> 18 <iframe id="child" width="200" height="200"> 19 </iframe> 20 <script> 21 async_test(function(t) { 22 var child = document.getElementById("child"); 23 child.src = "http://{{hosts[alt][]}}:{{ports[http][0]}}/html/user-activation/resources/child-message-event-api.html"; 24 assert_false(navigator.userActivation.isActive); 25 assert_false(navigator.userActivation.hasBeenActive); 26 window.addEventListener("message", t.step_func(event => { 27 if (event.data == 'child-loaded') { 28 // values have false after load 29 assert_true(event.userActivation != null); 30 assert_false(event.userActivation.isActive); 31 assert_false(event.userActivation.hasBeenActive); 32 test_driver.click(child); 33 } else if (event.data == 'child-clicked') { 34 // values have activation state on click 35 assert_true(navigator.userActivation.hasBeenActive); 36 assert_true(event.userActivation != null); 37 assert_true(event.userActivation.isActive); 38 assert_true(event.userActivation.hasBeenActive); 39 child.contentWindow.postMessage('report', "*"); 40 } else if (event.data == 'child-report') { 41 assert_false(navigator.userActivation.isActive); 42 assert_true(navigator.userActivation.hasBeenActive); 43 assert_true(event.userActivation != null); 44 assert_false(event.userActivation.isActive); 45 assert_true(event.userActivation.hasBeenActive); 46 child.contentWindow.postMessage('report-no-activation', "*"); 47 } else if (event.data == 'child-report-no-activation') { 48 assert_equals(event.userActivation, null); 49 t.done(); 50 } 51 })); 52 }, "Message propagates values on post"); 53 </script> 54 </body> 55 </html>