diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/event-timing/modal-dialog-interrupt-paint.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/event-timing/modal-dialog-interrupt-paint.html')
-rw-r--r-- | testing/web-platform/tests/event-timing/modal-dialog-interrupt-paint.html | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/event-timing/modal-dialog-interrupt-paint.html b/testing/web-platform/tests/event-timing/modal-dialog-interrupt-paint.html new file mode 100644 index 0000000000..011311a03a --- /dev/null +++ b/testing/web-platform/tests/event-timing/modal-dialog-interrupt-paint.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<meta charset=utf-8 /> +<title>Event Timing: Modal Dialog Interrupt Paint</title> +<button id='testButtonId'>Click me.</button> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/testdriver.js></script> +<script src=/resources/testdriver-actions.js></script> +<script src=/resources/testdriver-vendor.js></script> +<script src=resources/event-timing-test-utils.js></script> + +<script> + let observedEntries = []; + const map = new Map(); + const events = ['click']; + const showModalDialog = () => { + alert(); + }; + document.getElementById('testButtonId').addEventListener("click", showModalDialog); + + promise_test(async t => { + assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.'); + + const callback = (entryList) => { observedEntries = observedEntries.concat(entryList.getEntries().filter(filterAndAddToMap(events, map))); }; + const readyToResolve = () => { return observedEntries.length >= 1; }; + const observerPromise = createPerformanceObserverPromise(['event'], callback, readyToResolve); + + await interactAndObserve('click', document.getElementById('testButtonId'), observerPromise); + + const clickEntry = observedEntries[0]; + assert_less_than(clickEntry.startTime + clickEntry.duration, clickEntry.processingEnd, 'Event duration measurement should stop at the modal dialog showing time, which should be before processingEnd.'); + assert_greater_than(clickEntry.interactionId, 0, 'Should have a non-trivial interactionId for click event'); + }, "Event Timing: showing modal dialogs is an alternative end point."); + +</script> + +</html> |