element with border-radius and overflow:hidden does not properly clip content when over sibling element (instead of parent)
Reported by
tor.val...@gmail.com,
Sep 17 2016
|
|||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Example URL: https://jsfiddle.net/4uz4h085/2/ Steps to reproduce the problem: See URL. Outer box is green normally, and blue on hover event. Move cursor just outside the rounded top left corner of the first red box. You will see cursor change to "text" and outer box goes green, indicating that the hover is no longer active. The box on the right is a child element of the green box, and it does not have the same issue. What is the expected behavior? Outer box should remain blue when cursor is inside any of the green/blue area, and only change back to green when touching red. What went wrong? Something in QA. Does it occur on multiple sites: N/A Is it a problem with a plugin? N/A Did this work before? N/A Does this work in other browsers? N/A Chrome version: 52.0.2743.116 Channel: stable OS Version: OS X 10.11.6 Flash Version: Shockwave Flash 22.0 r0
,
Sep 17 2016
There should be a 3 at the end of that fiddle: https://jsfiddle.net/4uz4h085/3/ Forgot to update that before submitting.
,
Sep 17 2016
Just noticed that the child element also has the text cursor issue. And obviously the color change won't happen because its a child of the hover element. So ignore the part where I somehow think that should be different. Also sorry for deleting/adding info, I keep noticing and remembering things.
,
Sep 19 2016
Able to repro this issue on Windows 7, MAC (10.11.6) & Ubuntu Trusty (14.04) for Google Chrome Stable Version - 53.0.2785.116 This is a Non-Regression issue existing from M30 - # 30.0.1549.0
,
Sep 29 2016
We are apparently not applying the clip when hit-testing the sibling element with a border-radius.
,
Sep 29 2016
Yeah, but as I said above, there is not actual difference between sibling and child. That's just me misunderstanding the problem for a second. The problem can essentially be boiled down to: Border radius doesn't clip hidden content properly (only visibly, not interactively).
,
Oct 12 2016
Note crbug.com/602110 tracks the layout test failure for this bug.
,
Oct 21 2016
Issue 568904 has been merged into this issue.
,
Dec 6 2016
Issue 671317 has been merged into this issue.
,
Aug 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8d420d59da518424cae8a3ba3fbc3f9c9eca04ab commit 8d420d59da518424cae8a3ba3fbc3f9c9eca04ab Author: Stephen Chenney <schenney@chromium.org> Date: Wed Aug 23 20:53:50 2017 Fix hit testing on border-radius elements When an element with border radius has children, and the element should clip overflow and has it's own paint layer, we were not detecting that children should be skipped for hit testing when the point is outside the inner border clip rect. This change refactors the code to always check for border radius when ShouldClipOverflow is true, regardless of the self painting layer status. We already had test coverage with the failure hidden in js-test expectations. A previous change converted the test to testharness.js and now we can delete the failing expectations file. R=pdr@chromium.org BUG= 756532 , 647969 Change-Id: I5eccbe446a6dd502fe73c8ba66df2c2376202e6f Reviewed-on: https://chromium-review.googlesource.com/621629 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: Stephen Chenney <schenney@chromium.org> Cr-Commit-Position: refs/heads/master@{#496800} [delete] https://crrev.com/6ff12d91d13647088a2502fae2c8ec1c8d0b5750/third_party/WebKit/LayoutTests/hittesting/inner-border-radius-hittest-expected.txt [modify] https://crrev.com/8d420d59da518424cae8a3ba3fbc3f9c9eca04ab/third_party/WebKit/Source/core/layout/LayoutBox.cpp
,
Aug 24 2017
,
Aug 25 2017
Tested the issue on Windows 7, Mac 10.12.6, Ubuntu 14.04 using Chrome Canary version M62 - 62.0.3196.0 as per the issue mentioned in original comment. Observed that issue is working as intended (Colour of the blue box changes to green soon after crossing the border of red circle). Hence adding TE-Verified label. Attached the screencast for reference. Thank you!
,
Aug 25 2017
Attaching screencast for reference. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 Deleted