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!
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
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).
<rdar://problem/120551245>
Follow-up to fix the mouseover - but it might not be 1-1 easily: https://src.chromium.org/viewvc/blink?view=revision&revision=192954
https://github.com/chromium/chromium/commit/20a8667a4e0d5e28d4f301ad5c66a0fa3b540ca6