<!doctype html> <html> <head> <title>Pointer Event: Suppress compatibility mouse events on click</title> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> <link rel="author" title="Google" href="http://www.google.com "/> <meta name="assert" content="When a pointerdown is canceled, a click/tap shouldn't fire any compatibility mouse events."/> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <!--script src="/resources/testharnessreport.js"></script--> <script type="text/javascript" src="pointerevent_support.js"></script> <script type="text/javascript" src="mochitest_support_internal.js"></script> <script type="text/javascript"> var test_pointerEvent = async_test("Suppress compat mouse events on click"); add_completion_callback(end_of_test); var detected_pointertypes = {}; var event_log = []; function end_of_test() { showLoggedEvents(); showPointerTypes(); } function end_of_interaction() { test(function () { assert_equals(event_log.join(", "), "mousedown@target1, mouseup@target1"); }, "Event log"); test_pointerEvent.done(); // complete test } function run() { on_event(document.getElementById("done"), "click", end_of_interaction); var target_list = ["target0", "target1"]; var pointer_event_list = ["pointerdown"]; var mouse_event_list = ["mousedown", "mouseup"]; target_list.forEach(function(targetId) { var target = document.getElementById(targetId); pointer_event_list.forEach(function(eventName) { on_event(target, eventName, function (event) { detected_pointertypes[event.pointerType] = true; var label = event.type + "@" + targetId; test(function () { assert_true(event.isPrimary); }, "primary pointer " + label); if (label === "pointerdown@target0") event.preventDefault(); }); }); mouse_event_list.forEach(function(eventName) { on_event(target, eventName, function (event) { event_log.push(event.type + "@" + targetId); }); }); }); } </script> <style> #target0, #target1 { margin: 20px; } #done { margin: 20px; border: 2px solid black; } </style> </head> <body onload="run()"> <h1>Pointer Event: Suppress compatibility mouse events on click</h1> <h4> When a pointerdown is canceled, a click/tap shouldn't fire any compatibility mouse events. </h4> <!-- <ol> <li> Click or tap on Target0.</li> <li> Click or tap on Target1.</li> <li> Click Done.</li> </ol> --> <div id="target0"> Target0 </div> <div id="target1"> Target1 </div> <div id="done"> Done </div> <div id="complete-notice"> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>The following events were logged: <span id="event-log"></span>.</p> </div> <div id="log"></div> </body> </html>