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 external 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•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 2•1 year 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•1 year ago
|
Backed out for causing wpt failures @select-events-2.tentative.html.
| Assignee | ||
Comment 8•1 year ago
|
||
No links to new failures?
I think that's this.
| Assignee | ||
Comment 10•1 year ago
|
||
Thanks!
(select popup handling is still a bit weird when it comes to microtasks. It doesn't use normal event handling)
Comment 11•1 year ago
|
||
Comment 12•1 year ago
|
||
| bugherder | ||
Updated•1 year ago
|
Description
•