WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
266932
Mousemove event should be fired when the mouse stays in the document but there is no element
https://bugs.webkit.org/show_bug.cgi?id=266932
Summary
Mousemove event should be fired when the mouse stays in the document but ther...
Ahmad Saleem
Reported
2023-12-29 10:27:02 PST
Hi Team, While looking into Blink's commit, I came across another potential merge. Blink Commit:
https://src.chromium.org/viewvc/blink?view=revision&revision=182622
WebKit Source:
https://github.com/WebKit/WebKit/blob/7883e9ca30c85590b7ac6f16a8b2bbec71fa9d51/Source/WebCore/rendering/RenderLayer.cpp#L4021
Following compiles: LayoutPoint hitPoint = hitTestLocation.point(); if (!request.isChildFrameHitTest() && ((request.active() || request.release()) || (request.move() && hitTestArea.contains(hitPoint.x(), hitPoint.y()))) && isRenderViewLayer()) { // if (!request.isChildFrameHitTest() && (request.active() || request.release()) && isRenderViewLayer()) { renderer().updateHitTestResult(result, downcast<RenderView>(renderer()).flipForWritingMode(hitTestLocation.point())); insideLayer = { this }; } ___ We don't start to pass all tests from added but we do pass few more than before, if we merge this. Just wanted to raise to get input. Thanks!
Attachments
Add attachment
proposed patch, testcase, etc.
Ahmad Saleem
Comment 1
2023-12-29 10:42:58 PST
With Patch (taking test from 'source.chromium.org' and modifying to use 'window.testRunner.dumpChildFramesAsText();'): Tests that the mouse event is fired when the mouse pointer stays in document but there is no element On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS successfullyParsed is true TEST COMPLETE -------- Frame: '<!--frame1-->' -------- POINTER PASS events[0] is "mousemove" FAIL targets[0] should be #document. Was BODY. PASS events[1] is "mousemove" FAIL targets[1] should be BODY. Was #document. PASS events[2] is "mousemove" FAIL targets[2] should be #document. Was BODY. FAIL events[3] should be mouseover. Was mousemove. PASS targets[3] is "#document" PASS events[4] is "mouseover" PASS targets[4] is "BODY" PASS events[5] is "mouseover" PASS targets[5] is "#document" FAIL events[6] should be mouseout. Was mouseover. FAIL targets[6] should be #document. Was BODY. FAIL events[7] should be mouseout. Was mouseover. FAIL targets[7] should be BODY. Was #document. PASS events[8] is "mouseout" FAIL targets[8] should be #document. Was BODY. FAIL events[9] should be mouseenter. Was mouseout. PASS targets[9] is "#document" FAIL events[10] should be mouseleave. Was mouseout. FAIL targets[10] should be #document. Was BODY. FAIL events[11] should be mouseenter. Was mouseout. PASS targets[11] is "#document" PASS events[12] is "mouseenter" PASS targets[12] is "BODY" PASS events[13] is "mouseleave" PASS targets[13] is "BODY" FAIL events[14] should be mouseleave. Was mouseenter. FAIL targets[14] should be #document. Was BODY. PASS successfullyParsed is true Some tests failed. TEST COMPLETE
Ahmad Saleem
Comment 2
2023-12-29 10:49:00 PST
Using 'LayoutTests/fast/events/resources/mouse-events-within-no-element-iframe.html' from the Blink commit (rather than upstream): With Patch: POINTER PASS events[0] is "mousemove" PASS targets[0] is "#document" PASS events[1] is "mousemove" PASS targets[1] is "BODY" PASS events[2] is "mousemove" PASS targets[2] is "#document" PASS events[3] is "mouseover" PASS targets[3] is "#document" PASS events[4] is "mouseover" PASS targets[4] is "BODY" PASS events[5] is "mouseover" PASS targets[5] is "#document" PASS events[6] is "mouseout" PASS targets[6] is "#document" PASS events[7] is "mouseout" PASS targets[7] is "BODY" PASS events[8] is "mouseout" PASS targets[8] is "#document" PASS events[9] is "mouseenter" FAIL targets[9] should be #document. Was BODY. PASS events[10] is "mouseleave" FAIL targets[10] should be #document. Was BODY. FAIL events[11] should be mouseenter (of type string). Was undefined (of type undefined). FAIL targets[11] should be BODY (of type string). Was undefined (of type undefined). FAIL events[12] should be mouseenter (of type string). Was undefined (of type undefined). FAIL targets[12] should be #document (of type string). Was undefined (of type undefined). FAIL events[13] should be mouseleave (of type string). Was undefined (of type undefined). FAIL targets[13] should be BODY (of type string). Was undefined (of type undefined). FAIL events[14] should be mouseleave (of type string). Was undefined (of type undefined). FAIL targets[14] should be #document (of type string). Was undefined (of type undefined). PASS successfullyParsed is true Some tests failed. TEST COMPLETE __ Without Patch: POINTER PASS events[0] is "mousemove" FAIL targets[0] should be #document. Was BODY. PASS events[1] is "mousemove" FAIL targets[1] should be BODY. Was #document. FAIL events[2] should be mousemove. Was mouseover. FAIL targets[2] should be #document. Was BODY. PASS events[3] is "mouseover" PASS targets[3] is "#document" FAIL events[4] should be mouseover. Was mouseout. PASS targets[4] is "BODY" FAIL events[5] should be mouseover. Was mouseout. PASS targets[5] is "#document" FAIL events[6] should be mouseout. Was mouseenter. FAIL targets[6] should be #document. Was BODY. FAIL events[7] should be mouseout. Was mouseleave. PASS targets[7] is "BODY" FAIL events[8] should be mouseout (of type string). Was undefined (of type undefined). FAIL targets[8] should be #document (of type string). Was undefined (of type undefined). FAIL events[9] should be mouseenter (of type string). Was undefined (of type undefined). FAIL targets[9] should be #document (of type string). Was undefined (of type undefined). FAIL events[10] should be mouseleave (of type string). Was undefined (of type undefined). FAIL targets[10] should be #document (of type string). Was undefined (of type undefined). FAIL events[11] should be mouseenter (of type string). Was undefined (of type undefined). FAIL targets[11] should be BODY (of type string). Was undefined (of type undefined). FAIL events[12] should be mouseenter (of type string). Was undefined (of type undefined). FAIL targets[12] should be #document (of type string). Was undefined (of type undefined). FAIL events[13] should be mouseleave (of type string). Was undefined (of type undefined). FAIL targets[13] should be BODY (of type string). Was undefined (of type undefined). FAIL events[14] should be mouseleave (of type string). Was undefined (of type undefined). FAIL targets[14] should be #document (of type string). Was undefined (of type undefined). PASS successfullyParsed is true Some tests failed. TEST COMPLETE ___ So some progressions (if we use old test commit based test case).
Radar WebKit Bug Importer
Comment 3
2024-01-05 10:27:14 PST
<
rdar://problem/120551245
>
Ahmad Saleem
Comment 4
2024-01-31 17:51:13 PST
Follow-up to fix the mouseover - but it might not be 1-1 easily:
https://src.chromium.org/viewvc/blink?view=revision&revision=192954
Ahmad Saleem
Comment 5
2024-06-01 12:13:28 PDT
https://github.com/chromium/chromium/commit/20a8667a4e0d5e28d4f301ad5c66a0fa3b540ca6
Ahmad Saleem
Comment 6
2025-06-17 01:09:30 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/46838
EWS
Comment 7
2025-06-17 16:30:52 PDT
Committed
296341@main
(7a8eec33525b): <
https://commits.webkit.org/296341@main
> Reviewed commits have been landed. Closing PR #46838 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug