mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00

PR-URL: https://github.com/nodejs/node/pull/54642 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mattias Buelens <mattias@buelens.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: James M Snell <jasnell@gmail.com>
53 lines
1.6 KiB
HTML
53 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<title>preventDefault during activation behavior</title>
|
|
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1197032">
|
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/C#the-button-element">
|
|
<link rel="help" href="https://dom.spec.whatwg.org/#dispatching-events">
|
|
<link rel="author" title="L. David Baron" href="https://dbaron.org/">
|
|
<link rel="author" title="Google" href="http://www.google.com/">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<body>
|
|
|
|
<form id="f">
|
|
<input type="submit" id="b">
|
|
</form>
|
|
|
|
<script>
|
|
|
|
promise_test(async () => {
|
|
let form = document.getElementById("f");
|
|
let button = document.getElementById("b");
|
|
|
|
let cached_event;
|
|
let submit_fired = false;
|
|
|
|
let click_promise = new Promise((resolve, reject) => {
|
|
button.addEventListener("click", event => {
|
|
assert_false(submit_fired);
|
|
cached_event = event;
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
form.addEventListener("submit", event => {
|
|
assert_false(submit_fired);
|
|
assert_true(!!cached_event, "click should have fired");
|
|
|
|
// Call preventDefault on the click event during its activation
|
|
// behavior, to test the bug that we're trying to test.
|
|
cached_event.preventDefault();
|
|
|
|
// prevent the form submission from navigating the page
|
|
event.preventDefault();
|
|
|
|
submit_fired = true;
|
|
});
|
|
|
|
assert_false(submit_fired);
|
|
button.click();
|
|
await click_promise;
|
|
assert_true(submit_fired);
|
|
}, "behavior of preventDefault during activation behavior");
|
|
|
|
</script>
|