mouseenter/mouseleave fire differently on <select>s in e10s mode.
Categories
(Core :: DOM: Events, defect, P2)
Tracking
()
Webcompat Priority | P2 |
Tracking | Status | |
---|---|---|
firefox54 | --- | affected |
People
(Reporter: wisniewskit, Assigned: mconley)
References
(Blocks 1 open bug, )
Details
(Whiteboard: [webcompat][wpt-tests-?])
Attachments
(5 files)
Reporter | ||
Comment 1•8 years ago
|
||
Comment 2•8 years ago
|
||
Assignee | ||
Comment 3•8 years ago
|
||
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Assignee | ||
Updated•8 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Comment 7•7 years ago
|
||
Comment 8•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 9•6 years ago
|
||
Migrating Webcompat whiteboard priorities to project flags. See bug 1547409.
Comment 10•6 years ago
|
||
See bug 1547409. Migrating whiteboard priority tags to program flags.
Comment 11•6 years ago
|
||
Note: the twitch bug that was reported seems invalid now -- it's working for me, likely due to a site redesign.
Updated•6 years ago
|
Comment 12•5 years ago
|
||
Is this bug going to be addressed or is there another issue I can follow? It's still a problem with the same reproduction steps as in this issue and the duplicate https://bugzilla.mozilla.org/show_bug.cgi?id=1296264. Any viable workarounds in the meantime?
Also FWIW it's still an issue on twitch.tv, just in the "Report Playback Issue" menu option instead of quality.
Comment 13•3 years ago
|
||
This might be another case
https://github.com/webcompat/web-bugs/issues/101110
Comment 14•3 years ago
|
||
Mike, do you have context on why the setCapture
approach didn't work?
Comment 15•3 years ago
|
||
With the testcase
Hovering the select button and stay
mouseenter: yes
on Gecko, Blink, WebKit
Hovering the select button and leaving
mouseenter: yes
on Gecko, Blink, WebKit
mouseleave: yes
on Gecko, Blink, WebKit
mouseout: yes
on Gecko, Blink, WebKit
Hovering the select button and CLICK without moving
mouseenter: yes
on Gecko, Blink, WebKit
mouseleave: yes
on Gecko
mouseout: yes
on Gecko
Note that Moving the cursor will keep firing events on Gecko.
The mouseleave and mouseout events are fired only when releasing the widget after selection
in video
https://imgur.com/a/XUQTMUg
Comment 16•3 years ago
|
||
To note that in case of https://github.com/webcompat/web-bugs/issues/101110
it breaks the site because of
$('.smbDropdown').mouseout(function () {
this.blur()
});
Updated•3 years ago
|
Comment 17•3 years ago
|
||
Hsin-Yi,
I would be tempted to raise the severity of this. When a site use a feature like the one in Comment #16 it makes Firefox really unusable for this site. The Webcompat Priority is low as we have not detected a lot of sites breaking and a big site breaking, but when the breakage is happening, this is bad for the user.
Comment 18•3 years ago
|
||
This is breaking functionality on some sites. Twitch fixed it, and the other known cases are lower priority, so setting WebCompat priority P2 for now.
Assignee | ||
Comment 19•3 years ago
|
||
Assignee | ||
Comment 20•3 years ago
|
||
(In reply to Emilio Cobos Álvarez (:emilio) from comment #14)
Mike, do you have context on why the
setCapture
approach didn't work?
I don't, but when I revived the patch (which I've attached as a WIP) and updated it to use setCaptureAlways
(https://searchfox.org/mozilla-central/rev/1ca8ea11406642df4a2c6f81f21d683817af568d/dom/webidl/Element.webidl#144-149), it didn't seem to solve the issue.
I'm not really sure how to proceed with this. Is there some platform mechanism I can use to suppress event handling by the in-content <select> control until the dropdown is closed? I looked at https://searchfox.org/mozilla-central/rev/1ca8ea11406642df4a2c6f81f21d683817af568d/dom/interfaces/base/nsIDOMWindowUtils.idl#972-979, and while that kind of works as a replacement to setCaptureAlways
, it also just ends up deferring events for the entire document until the suppression ends, which probably isn't what we want.
I guess I could add a capturing event handler in the SelectChild script for a bunch of events and just prevent them from propagating down to the <select>... is there a better way?
Assignee | ||
Updated•3 years ago
|
Comment 21•3 years ago
|
||
I'm not super familiar with how we do the mouseout event when we move from the <select>
to the popup, and whether there'd be a good way to prevent it from firing... I could try to look into it, but maybe Edgar knows off-hand? Edgar, see comment 20 and comment 14 for context. Thanks!
Comment 22•3 years ago
|
||
The mouseout event is triggered from parent process when the mouse moves from <browser> into the popup. Using setCaptureAlways
doesn't work, I think it is because of it only set the mouse capture on the process where the setCaptureAlways
is called (content process in this case), so the parent process still generate the mouseout event. And I don't think setting capture also in parent help, because popup would not be able to receive the mouse event if we set capture on <browser>.
I test on Chrome and Safari, the web content document doesn't receive mousemove event when the popup is opened. It seems like they suppress the mouse event?
(In reply to Mike Conley (:mconley) (:⚙️) from comment #20)
I looked at https://searchfox.org/mozilla-central/rev/1ca8ea11406642df4a2c6f81f21d683817af568d/dom/interfaces/base/nsIDOMWindowUtils.idl#972-979, and while that kind of works as a replacement to
setCaptureAlways
, it also just ends up deferring events for the entire document until the suppression ends, which probably isn't what we want.
Maybe we could add a way to suppress only mouse event?
Updated•2 years ago
|
Comment 23•8 months ago
|
||
Verified this issue and still reproduces on Firefox Nightly, as I can see different results for test case when hovering the drop-down menu. mouseleave detected: yes mouseout detected: yes is triggered when hovering inside the drop-down
Tested with:
Browser / Version: Firefox Nightly 128.0a1 (2024-05-29) (64-bit)
Operating System: Windows 10 PRO x64
Comment 24•4 days ago
|
||
This is fixed by bug 1778923, so mark as duplicate.
Description
•