LibWeb: Pageshow event dispatched by the user agent should be trusted

The spec says that "isTrusted is a convenience that indicates whether
an event is dispatched by the user agent (as opposed to using
dispatchEvent())"

But when dispatching a pageshow event the flag was incorrectly set
to false.

This fixes https://wpt.fyi/results/html/syntax/parsing/the-end.html
This commit is contained in:
Alan Kemp 2024-10-27 18:33:14 +00:00 committed by Andreas Kling
parent 64f18a93c2
commit d2fbbabd89
Notes: github-actions[bot] 2024-10-30 09:28:15 +00:00
3 changed files with 18 additions and 0 deletions

View file

@ -0,0 +1 @@
PASS

View file

@ -0,0 +1,14 @@
<script src="../include.js"></script>
<iframe id="i"></iframe>
<script>
asyncTest((done) => {
window.addEventListener("pageshow", (e) => {
if (e.isTrusted) {
println("PASS");
} else {
println("FAIL");
}
done();
});
});
</script>

View file

@ -423,6 +423,9 @@ void Window::fire_a_page_transition_event(FlyString const& event_name, bool pers
// the bubbles attribute initialized to true,
event->set_bubbles(true);
// isTrusted is a convenience that indicates whether an event is dispatched by the user agent (as opposed to using dispatchEvent())
event->set_is_trusted(true);
// and legacy target override flag set.
dispatch_event(event);
}