Loading dom/events/test/mochitest.ini +1 −0 Original line number Diff line number Diff line Loading @@ -185,3 +185,4 @@ skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM [test_wheel_default_action.html] [test_bug687787.html] [test_bug1298970.html] [test_touchevent_resist_fingerprinting.html] dom/events/test/test_touchevent_resist_fingerprinting.html 0 → 100644 +68 −0 Original line number Diff line number Diff line <!DOCTYPE HTML> <html> <!-- https://trac.torproject.org/10286 --> <head> <meta charset="utf-8"> <title>Test for Tor Bug 10286</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <div id="target0">target0</div> <script type="application/javascript"> SimpleTest.waitForExplicitFinish(); let promiseEvent = (target, eventName) => { return new Promise(resolve => { target.addEventListener(eventName, function eventOccurred(event) { target.removeEventListener(eventName, eventOccurred, false); resolve(event); }, false); }); } let promiseTouchEvent = (target, type, offsetX, offsetY, params) => { let touchEventPromise = promiseEvent(target, type); params.type = type; synthesizeTouch(target, offsetX, offsetY, params); return touchEventPromise; }; let target0 = document.getElementById("target0"); let touchParams = { force: 1.0, angle: 1.0, rx: 2, ry: 3 }; let runTest = async () => { await SpecialPowers.pushPrefEnv( { set: [["dom.w3c_touch_events.enabled", 1]] }); for (let resist of [false, true]) { await SpecialPowers.pushPrefEnv( { set: [["privacy.resistFingerprinting", resist]] }); info("starting test with fingerprinting resistance " + (resist ? "on" : "off")); let touchEvent = await promiseTouchEvent(target0, "touchstart", 5, 5, touchParams); info("touch event received"); let touch = touchEvent.touches[0]; if (resist) { is(touch.screenX, touch.clientX, "touch.screenX should be the same as touch.clientX"); is(touch.screenY, touch.clientY, "touch.screenY should be the same as touch.clientY"); } is(touch.force, resist ? 0.0 : touchParams.force, "touch.force"); is(touch.radiusX, resist ? 1 : touchParams.rx, "touch.radiusX"); is(touch.radiusY, resist ? 1 : touchParams.ry, "touch.radiusY"); is(touch.rotationAngle, resist ? 0 : touchParams.angle, "touch.rotationAngle"); } } window.onload = () => { runTest().then(() => SimpleTest.finish()); }; </script> </body> </html> testing/mochitest/tests/SimpleTest/EventUtils.js +1 −1 Original line number Diff line number Diff line Loading @@ -395,7 +395,7 @@ function synthesizeTouchAtPoint(left, top, aEvent, aWindow = window) if (utils) { var id = aEvent.id || 0; var rx = aEvent.rx || 1; var ry = aEvent.rx || 1; var ry = aEvent.ry || 1; var angle = aEvent.angle || 0; var force = aEvent.force || 1; var modifiers = _parseModifiers(aEvent, aWindow); Loading Loading
dom/events/test/mochitest.ini +1 −0 Original line number Diff line number Diff line Loading @@ -185,3 +185,4 @@ skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM [test_wheel_default_action.html] [test_bug687787.html] [test_bug1298970.html] [test_touchevent_resist_fingerprinting.html]
dom/events/test/test_touchevent_resist_fingerprinting.html 0 → 100644 +68 −0 Original line number Diff line number Diff line <!DOCTYPE HTML> <html> <!-- https://trac.torproject.org/10286 --> <head> <meta charset="utf-8"> <title>Test for Tor Bug 10286</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <div id="target0">target0</div> <script type="application/javascript"> SimpleTest.waitForExplicitFinish(); let promiseEvent = (target, eventName) => { return new Promise(resolve => { target.addEventListener(eventName, function eventOccurred(event) { target.removeEventListener(eventName, eventOccurred, false); resolve(event); }, false); }); } let promiseTouchEvent = (target, type, offsetX, offsetY, params) => { let touchEventPromise = promiseEvent(target, type); params.type = type; synthesizeTouch(target, offsetX, offsetY, params); return touchEventPromise; }; let target0 = document.getElementById("target0"); let touchParams = { force: 1.0, angle: 1.0, rx: 2, ry: 3 }; let runTest = async () => { await SpecialPowers.pushPrefEnv( { set: [["dom.w3c_touch_events.enabled", 1]] }); for (let resist of [false, true]) { await SpecialPowers.pushPrefEnv( { set: [["privacy.resistFingerprinting", resist]] }); info("starting test with fingerprinting resistance " + (resist ? "on" : "off")); let touchEvent = await promiseTouchEvent(target0, "touchstart", 5, 5, touchParams); info("touch event received"); let touch = touchEvent.touches[0]; if (resist) { is(touch.screenX, touch.clientX, "touch.screenX should be the same as touch.clientX"); is(touch.screenY, touch.clientY, "touch.screenY should be the same as touch.clientY"); } is(touch.force, resist ? 0.0 : touchParams.force, "touch.force"); is(touch.radiusX, resist ? 1 : touchParams.rx, "touch.radiusX"); is(touch.radiusY, resist ? 1 : touchParams.ry, "touch.radiusY"); is(touch.rotationAngle, resist ? 0 : touchParams.angle, "touch.rotationAngle"); } } window.onload = () => { runTest().then(() => SimpleTest.finish()); }; </script> </body> </html>
testing/mochitest/tests/SimpleTest/EventUtils.js +1 −1 Original line number Diff line number Diff line Loading @@ -395,7 +395,7 @@ function synthesizeTouchAtPoint(left, top, aEvent, aWindow = window) if (utils) { var id = aEvent.id || 0; var rx = aEvent.rx || 1; var ry = aEvent.rx || 1; var ry = aEvent.ry || 1; var angle = aEvent.angle || 0; var force = aEvent.force || 1; var modifiers = _parseModifiers(aEvent, aWindow); Loading