Consider to set microtask level to 0 when dispatching events
Categories
(Remote Protocol :: Agent, enhancement, P2)
Tracking
(firefox140 fixed)
| Tracking | Status | |
|---|---|---|
| firefox140 | --- | fixed |
People
(Reporter: smaug, Assigned: smaug)
References
Details
(Whiteboard: [webdriver:m16][webdriver:relnote][webdriver:external])
Attachments
(1 file)
I'm not sure if this works, but something like this might be needed for promise heavy tests like
https://searchfox.org/mozilla-central/rev/29184ec2b107c8b9dd8c9a594711c27545dfb2c7/testing/web-platform/tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html
| Assignee | ||
Comment 1•5 months ago
|
||
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
| Assignee | ||
Comment 2•5 months ago
|
||
The reason we need this is that because Marionette is implemented in JS, and window actors have their callbacks implemented as webidl callbacks. Those function are treated as the top level JS execution. And that means that if dispatching some dom event (from that js callback) has a side effect of dispatching other events too, microtask checkpoint will run only after all the JS execution has stopped, not between the DOM events, like it would normally happen if events were dispatched natively. And not having normal microtask checkpoint means that mutation observer callbacks and promise callbacks get called at wrong time.
Updated•5 months ago
|
Backed out for causing wpt failures @select-events-2.tentative.html.
| Assignee | ||
Comment 8•5 months ago
|
||
No links to new failures?
Comment 9•5 months ago
|
||
I think that's this.
| Assignee | ||
Comment 10•5 months ago
|
||
Thanks!
(select popup handling is still a bit weird when it comes to microtasks. It doesn't use normal event handling)
Comment 11•5 months ago
|
||
Comment 12•5 months ago
|
||
| bugherder | ||
Updated•4 months ago
|
Description
•