New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 647969 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

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 description

UserAgent: 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
 

Comment 1 Deleted

There should be a 3 at the end of that fiddle: https://jsfiddle.net/4uz4h085/3/

Forgot to update that before submitting.

Comment 3 Deleted

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.
Cc: rnimmagadda@chromium.org
Components: Blink
Labels: -Type-Compat M-54 OS-Linux OS-Windows Type-Bug
Status: Untriaged (was: Unconfirmed)
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
Components: -Blink Blink>HitTesting
Owner: schenney@chromium.org
Status: Available (was: Untriaged)
We are apparently not applying the clip when hit-testing the sibling element with a border-radius.
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).
Note  crbug.com/602110  tracks the layout test failure for this bug.
 Issue 568904  has been merged into this issue.
 Issue 671317  has been merged into this issue.
Project Member

Comment 11 by bugdroid1@chromium.org, 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

Status: Fixed (was: Available)
Cc: pnangunoori@chromium.org
Labels: TE-Verified-62.0.3196.0 TE-Verified-M62
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!
Attaching screencast for reference.
647969.webm
1.9 MB View Download

Sign in to add a comment