New issue
Advanced search Search tips
Starred by 36 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocked on:
issue 488886
issue 515921


Show other hotlists

Hotlists containing this issue:
Top-Starred-Bugs


Sign in to add a comment
link

Issue 276329: Mouseenter/mouseleave not triggered when element under cursor is removed or moved

Reported by karl.boh...@gmail.com, Aug 20 2013

Issue description

Chrome Version       : 31.0.1605.0 canary

Other browsers tested:
    Safari 6: FAIL
    Firefox 23.0.1: OK
    IE 10: OK

What steps will reproduce the problem?
1. In the attached test case, open the developer tools console
2. Click the red div

What is the expected result?
The console should output "enter green"

What happens instead?
The mouseenter event on the green div is not triggered
 
example.html
589 bytes View Download

Comment 1 by tkent@chromium.org, Aug 20 2013

Labels: Cr-Blink-Events

Comment 2 by karl.boh...@gmail.com, Sep 3 2013

Also present in 30.0.1599.22 beta

Comment 3 by stepien....@gmail.com, Sep 5 2013

It should probably also output "leave red" when clicking the red div to remove it.
`mouseout` is triggered when removing an element and moving the cursor again.

Comment 4 by srsridhar@chromium.org, Sep 6 2013

Cc: srsridhar@chromium.org
Labels: M-31 OS-Mac
Status: Untriaged
Able to repro this issue on mac 10.8.4 OS. This is a non-regression issue existing since M24 chrome versions.

Comment 5 by bugdroid1@chromium.org, Sep 27 2013

Project Member
Labels: -M-31 M-32 MovedFrom-31
Moving all non essential bugs to the next Milestone.

Comment 6 by karl.boh...@gmail.com, Sep 27 2013

It might be unwise to release mouseenter/-leave to stable when it's this broken. There are js frameworks that feature detect for mouseenter to decide if they should emulate or use the native event (for example mootools), thus it's not unlikely this will break quite a few sites.

Comment 7 by kareng@google.com, Nov 8 2013

Labels: -M-32 MovedFrom-32
This issue has already been moved once and is lower than Priority 1,therefore removing mstone.

Comment 8 by tarik.be...@gmail.com, Mar 3 2014

It seems to be the same issue here https://code.google.com/p/chromium/issues/detail?id=122746
Mouseenter/mouseleave not triggered when holding down left mouse button,
Still present in 35.0.1867.2 canary

Comment 9 by vasil.r...@gmail.com, Apr 17 2014

Please fix it.

Comment 10 by msalsb...@gmail.com, May 1 2014

>>There are js frameworks that feature detect for mouseenter to decide if they should emulate...

I work on one of these frameworks and feature-detect for mouseenter/mouseleave, and I agree this needs serious fixing. Even without removing or adding elements, mouseenter/mouseleave should not behave differently if a button is down.

Comment 11 by akej...@gmail.com, Feb 6 2015

:bump: Can anyone take a look at this?

jsFiddle of attached example: http://jsfiddle.net/mrwb605v/ .

Please see also the comment I just made on the related  Issue 122746 :
https://code.google.com/p/chromium/issues/detail?id=122746#c47

Comment 12 by dtrebbien@gmail.com, Feb 6 2015

The problem has been fixed in Safari 8.0.3.  Maybe the patch for WebKit's fix could be applied to Chrome?

Comment 13 by dtrebbien@gmail.com, Feb 6 2015

Here is WebKit's bug report for this issue:
https://bugs.webkit.org/show_bug.cgi?id=120786

The patch was reverted, though.  I'm not sure why the issue is fixed in Safari.

Comment 14 by rbyers@chromium.org, Apr 30 2015

Labels: Cr-Blink-Input

Comment 15 by rbyers@chromium.org, May 16 2015

Blockedon: chromium:488886

Comment 16 by tkent@chromium.org, Jul 15 2015

Labels: -Cr-Blink-Events

Comment 17 by rbyers@chromium.org, Aug 12 2015

Blockedon: chromium:515921
Owner: mustaq@chromium.org
Status: Assigned
Mustaq is looking at this in relation to  issue 515921 .

Comment 18 by rbyers@chromium.org, Aug 12 2015

Related to  issue 333623 

Comment 19 by rbyers@chromium.org, Aug 12 2015

Cc: -srsridhar@chromium.org

Comment 20 by mustaq@chromium.org, Aug 12 2015

The mouse entry/exit events (mouseenter/leave/over/out) are not sent until a mousemove has occurred. Seems we need to call EventHandler::updateMouseEventTargetNode() after DOM changes. Looking into this now.

Comment 21 by mustaq@chromium.org, Aug 12 2015

Just realized that blindly updating the mouse entry/exit state after any DOM changes could be overkill since the newly sent mouse entry/exit events could cause further DOM changes. But may be it's fine to be overkill for cyclic changes in DOM?

Comment 22 by mustaq@chromium.org, Aug 17 2015

Owner: ----

Comment 23 by dtapu...@chromium.org, Jan 12 2017

Cc: dtapu...@chromium.org mustaq@chromium.org
Labels: -Pri-2 Hotlist-Input-Dev Pri-3
Status: Available (was: Assigned)
This will be fixed when issue 488886 is fixed.

Comment 24 by lanwei@chromium.org, Aug 2 2017

Owner: lanwei@chromium.org
Status: Fixed (was: Available)

Comment 25 by dtapuska@google.com, Aug 2 2017

This isn't fixed until the feature is enabled isn't it?

Comment 26 by lanwei@chromium.org, Aug 2 2017

Yes, I tested it it works when the feature is enabled. Should I update it after the feature is enabled, now it is experimental, when should we update its status?

Sign in to add a comment