tor-browser

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

interactionid-click.html (1838B)


      1 <!DOCTYPE html>
      2 <html>
      3 <meta charset=utf-8 />
      4 <title>Event Timing: interactionId-click.</title>
      5 <button id='button'>Click me.</button>
      6 <script src=/resources/testharness.js></script>
      7 <script src=/resources/testharnessreport.js></script>
      8 <script src=/resources/testdriver.js></script>
      9 <script src=/resources/testdriver-vendor.js></script>
     10 <script src=resources/event-timing-test-utils.js></script>
     11 <script>
     12  let observedEntries = [];
     13  let map = new Map();
     14 
     15  function eventsForCheck(entry) {
     16      if (entry.name === 'pointerdown' || entry.name === 'pointerup' || entry.name === 'click'
     17      || entry.name === 'mousedown' || entry.name === 'mouseup') {
     18        map.set(entry.name, entry.interactionId);
     19        return true;
     20      }
     21      return false;
     22  }
     23  async_test(function(t) {
     24    assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.');
     25 
     26    addListenersAndClick(document.getElementById('button')).then(() => {
     27      new PerformanceObserver(t.step_func(entryList => {
     28        observedEntries = observedEntries.concat(entryList.getEntries().filter(eventsForCheck));
     29        if (observedEntries.length < 5)
     30          return;
     31        assert_equals(map.get('mousedown'), 0, 'Should not have a interactionId');
     32        assert_equals(map.get('mouseup'), 0, 'Should not have a interactionId');
     33        assert_greater_than(map.get('pointerdown'), 0, 'Should have a non-trivial interactionId');
     34        assert_equals(map.get('pointerdown'), map.get('pointerup'), 'Pointerdown and pointerup should have the same interactionId');
     35        assert_equals(map.get('pointerdown'), map.get('click'), 'Pointerdown and click should have the same interactionId');
     36        t.done();
     37      })).observe({ type: 'event', buffered: true });
     38    });
     39 
     40  }, "Event Timing: compare event timing interactionId.");
     41 </script>
     42 </html>