tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>