Intermittent wpt failure in inert-iframe-hittest.html | Hit-testing doesn't reach contents of an inert iframe
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox124 | --- | fixed |
People
(Reporter: hsinyi, Assigned: masayuki)
References
(Blocks 2 open bugs)
Details
Attachments
(1 file)
The sub-test "Hit-testing doesn't reach contents of an inert iframe" fails intermittently.
For example: https://wpt.fyi/results/inert/inert-iframe-hittest.html?run_id=6265390278115328
Reporter | ||
Comment 1•1 year ago
|
||
Hi Masayuki, can you please investigate this? Thank you.
Assignee | ||
Comment 2•1 year ago
|
||
The hover state is set at dispatching mouseover
.
https://searchfox.org/mozilla-central/rev/90dce6b0223b4dc17bb10f1125b44f70951585f9/dom/events/EventStateManager.cpp#4852,4891-4892
This is kicked by the refresh driver. So I think that this is caused by a timing issue.
Assignee | ||
Comment 3•1 year ago
|
||
Oh, but we don't know intermittent failure of this (no bug, and the ini file only has timeout issue). I wonder, what environment is used in wpt.fyi. If my guess is right, it seems that it has really slow refresh-rate.
Assignee | ||
Comment 4•1 year ago
|
||
inert-iframe-hittest.html
expects that :hover
state should be updated
immediately after a pointer down. The state is updated by
EventStateManager::NotifyMouseOver
[1] when we received a real or synthetic
eMouseMove
. Therefore, the hover state may have not set yet if no refresh
occurs between the pointer down and checking the result.
Additionally, some WPT for UI Events and Pointer Events expect that mouseover
or mouseout
should be fired before mouseup
/pointerup
if a preceding
mousedown
or pointerdown
event listener removes the target. So, this
patch may fix intermittent failures of them if there are.
Unfortunately, flushing the pending mousemove
does not solve this issue
because synthesized mousemove
flushes some other states too. E.g.,
gotpointercapture
and releasepointercapture
. They should be fired handled
later if explicit capture changes the capturing content in tricky case [2].
Therefore, this patch adds a new internal event message, eMouseBoundary
,
which is never dispatched into the DOM (i.e., handled only by
EventStateManager
) and never cause pointer events, but calls
EventStateManager::GenerateMouseEnterExit()
only with a mouse event.
Updated•1 year ago
|
Assignee | ||
Comment 5•1 year ago
|
||
Edgar, could you review the PointerEventHandler
part? Thank you!
Comment 6•1 year ago
|
||
(In reply to Masayuki Nakano [:masayuki] (he/him)(JST, +0900) from comment #5)
Edgar, could you review the
PointerEventHandler
part? Thank you!
Done. :)
Comment 9•1 year ago
|
||
bugherder |
Description
•