`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•10 months ago
|
| Assignee | ||
Comment 1•10 months 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•10 months ago
•
|
||
Err, no. Chrome fires mousemove on the connected ancestor even if the target is replaced. Hmm.
| Assignee | ||
Comment 3•10 months 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•10 months ago
|
||
Okay, we should dispatch pointermove and mousemove on the last deepest "enter" event target (i.e., next deepest "leave" event target).
| Assignee | ||
Updated•10 months ago
|
| Assignee | ||
Comment 5•10 months 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•10 months ago
|
||
| Assignee | ||
Comment 7•10 months 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•10 months ago
|
| Assignee | ||
Updated•10 months ago
|
Comment 10•10 months ago
|
||
| bugherder | ||
| Assignee | ||
Comment 12•10 months 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•10 months ago
|
Comment 13•10 months 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
mousemoveevent 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 dispatchingmousemoveonto theDocumentnode is illegal from the UI Events spec. - String changes made/needed: none
- Is Android affected?: yes
Updated•10 months ago
|
Comment 14•10 months ago
|
||
Reproducible on 136.0a1 (20250127162202) and verified fixed on 136.0a1 (20250129050021).
Updated•10 months ago
|
Updated•10 months ago
|
| Assignee | ||
Updated•10 months ago
|
| Assignee | ||
Updated•10 months ago
|
Updated•10 months ago
|
Updated•9 months ago
|
Updated•9 months ago
|
Comment 15•9 months ago
|
||
| uplift | ||
Updated•9 months ago
|
Comment 16•9 months ago
|
||
Added to the 135.0.1 relnotes.
Fixed drop-down menus being unusable on some sites relying on certain
mousemoveevent behavior.
Comment 17•9 months ago
|
||
Verified fixed using Firefox 135.0.1 (20250213194722) downloaded from Comment 15.
Updated•9 months ago
|
Description
•