`mousemove` should not be fired on the `Document` node if preceding boundary event removed the target and there is the last deepest `mouseenter` event target
Categories
(Core :: DOM: UI Events & Focus Handling, defect)
Tracking
()
People
(Reporter: masayuki, Assigned: masayuki)
References
Details
(Keywords: parity-chrome, webcompat:platform-bug)
Attachments
(2 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-release+
|
Details | Review |
Chrome stops dispatching mousemove
or pointermove
if its preceding boundary event causes removing the target.
Updated•28 days ago
|
Assignee | ||
Comment 1•28 days ago
|
||
Oh, if mouseover
target is just removed, Chrome dispatches a mousemove
on the connected ancesto. However, if mouseover
target is replaced, i.e., the element under the cursor is not a target of the enter targets, Chrome does not dispatch mousemove
.
Assignee | ||
Comment 2•28 days ago
•
|
||
Err, no. Chrome fires mousemove
on the connected ancestor even if the target is replaced. Hmm.
Assignee | ||
Comment 3•28 days ago
|
||
Chrome may change the behavior because they behave differently with/without the experimental feature, and we don't need this bug for bug 1943411. So, we should close this bug for now.
Assignee | ||
Comment 4•27 days ago
|
||
Okay, we should dispatch pointermove
and mousemove
on the last deepest "enter" event target (i.e., next deepest "leave" event target).
Assignee | ||
Updated•27 days ago
|
Assignee | ||
Comment 5•27 days ago
|
||
I got same result with Chrome Canary with enabling the new boundary event behavior for mouse, but it seems that Chrome Canary stops dispatching in pointer event case.
Assignee | ||
Comment 6•27 days ago
|
||
Assignee | ||
Comment 7•27 days ago
|
||
Chrome dispatches mousemove
/pointermove
event on the preceding mouseover
or pointerover
target even if the target is removed from the DOM tree.
However, once the "Boundary Event Dispatch Tracks Node Removal" feature is
enabled, Chrome Canary dispatches mousemove
/pointermove
on the last
deepest mouseenter
/pointerenter
event target which is still connected.
Therefore, we should follow their new behavior if it's simply possible.
Updated•27 days ago
|
Assignee | ||
Updated•27 days ago
|
Comment 10•27 days ago
|
||
bugherder |
Assignee | ||
Comment 12•26 days ago
|
||
Chrome dispatches mousemove
event on the preceding mouseover
target even if
the target is removed from the DOM tree. However, once the
"Boundary Event Dispatch Tracks Node Removal" feature is enabled, Chrome Canary
dispatches mousemove
on the last deepest mouseenter
event target which is
still connected. Therefore, we should follow their new behavior if it's simply
possible.
Note that if pointeover
target is removed, Chrome does not dispatch
pointermove
on the last deepest pointerenter
target. Therefore, this patch
limits the behavior change only for eMouseMove
.
Original Revision: https://phabricator.services.mozilla.com/D235807
Updated•26 days ago
|
Comment 13•26 days ago
|
||
beta Uplift Approval Request
- User impact if declined: Cannot use the menu in https://www.eclecticgames.co.uk/
- Code covered by automated testing: yes
- Fix verified in Nightly: yes
- Needs manual QE test: yes
- Steps to reproduce for manual QE testing: Go to https://www.eclecticgames.co.uk/ and move mouse cursor over the link under the searchbox, then, move the cursor down to over the popuped menu (the menu was closed when you move the mouse cursor on it)
- Risk associated with taking this patch: Low
- Explanation of risk level: The new behavior is redirecting
mousemove
event to nearest its ancestor which is still in the DOM tree. This does not match with current Chrome, but it's same as newer behavior of Chrome. Additionally, currently dispatchingmousemove
onto theDocument
node is illegal from the UI Events spec. - String changes made/needed: none
- Is Android affected?: yes
Updated•26 days ago
|
Comment 14•26 days ago
|
||
Reproducible on 136.0a1 (20250127162202) and verified fixed on 136.0a1 (20250129050021).
Updated•26 days ago
|
Updated•26 days ago
|
Assignee | ||
Updated•19 days ago
|
Assignee | ||
Updated•19 days ago
|
Updated•18 days ago
|
Updated•11 days ago
|
Updated•11 days ago
|
Comment 15•11 days ago
|
||
uplift |
Updated•11 days ago
|
Comment 16•8 days ago
|
||
Added to the 135.0.1 relnotes.
Fixed drop-down menus being unusable on some sites relying on certain
mousemove
event behavior.
Comment 17•6 days ago
|
||
Verified fixed using Firefox 135.0.1 (20250213194722) downloaded from Comment 15.
Updated•2 days ago
|
Description
•