<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Test for dispatching of legacy non-primary click when domain in pref</title> <script src="/tests/SimpleTest/SimpleTest.js"></script> <script src="/tests/SimpleTest/EventUtils.js"></script> <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> </head> <body> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"></pre> <a id="link-test" href="example.org">example link</a> <script> "use strict"; SimpleTest.waitForExplicitFinish(); const HACK_PREF = "dom.mouseevent.click.hack.use_legacy_non-primary_dispatch"; const testEl = document.getElementById("test"); const linkEl = document.getElementById("link-test"); let seenClick = false; SpecialPowers.pushPrefEnv( { set: [[HACK_PREF, document.domain]] }, () => { SimpleTest.waitForFocus(() => { // Test seeing the non-primary 'click' document.addEventListener("click", (e) => { ok(true, "Saw 'click' event"); seenClick = true; }, { once: true }); document.addEventListener("auxclick", (e) => { ok(true, "Saw 'auxclick' event"); ok(seenClick, "Saw 'click' event before 'auxclick' event"); }, { once: true }); synthesizeMouseAtCenter(testEl, { button: 1 }); // Test preventDefaulting on non-primary 'click' document.addEventListener("click", (e) => { is(e.target, linkEl, "Saw 'click' on link"); e.preventDefault(); SimpleTest.finish(); }, { once: true, capture: true }); document.addEventListener("auxclick", (e) => { ok(false, "Shouldn't have got 'auxclick' after preventDefaulting 'click'"); }, { once: true }); synthesizeMouseAtCenter(linkEl, { button: 1 }); }); }); </script> </body> </html>