New issue
Advanced search Search tips

Issue 597946 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Element with border-radius not horizontally scrollable

Reported by m...@xenforo.com, Mar 25 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36

Example URL:

Steps to reproduce the problem:
I have attached a test case. The first textarea will be horizontally scrollable (using the mouse) in all cases. The second textarea will generally not be horizontally scrollable.

This appears to depend on the textarea having a vertical scrollbar and not being scrolled to the end of the content (effectively with content going under the scrollbar).

What is the expected behavior?

What went wrong?
The second textarea is not horizontally scrollable.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? Yes In version 48, I believe

Does this work in other browsers? Yes 

Chrome version: 49.0.2623.87  Channel: n/a
OS Version: 10.0
Flash Version: Shockwave Flash 21.0 r0
 
chrome-textarea-scroll.html
2.0 KB View Download
Components: -Blink Blink>Forms

Comment 2 by tkent@chromium.org, Mar 27 2016

Components: -Blink>Forms Blink>Input>HitTesting Blink>Scroll
Labels: -OS-Windows OS-All
Status: Untriaged (was: Unconfirmed)
Summary: Element with border-radius not horizontally scrollable (was: Textarea with border-radius not horizontally scrollable)
This is reprodusible with non-textarea elements.  attached an example.
Mouse-pressing on the horizontal scrollbar starts text selection.


chrome-non-textarea-scroll-hittest.html
2.1 KB View Download
Cc: pdr@chromium.org majidvp@chromium.org skobes@chromium.org myid.shin@chromium.org
Status: Available (was: Untriaged)
There has been some recent work on fixing issues with border radius hit-testing that may be the root cause. See: https://codereview.chromium.org/1616673005

+pdr, +myid.shin, +skobes


Comment 4 by pdr@chromium.org, Mar 31 2016

Owner: pdr@chromium.org
Status: Assigned (was: Available)
This is a regression from https://chromium.googlesource.com/chromium/src/+/b6749c9b582f70fc9a5dcb364087e30cf45a7306
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dab89b99996bb173c6f3747e70191687089eaa8c

commit dab89b99996bb173c6f3747e70191687089eaa8c
Author: pdr <pdr@chromium.org>
Date: Mon Apr 18 20:19:36 2016

Check scrollbars before hit testing border radius

This patch fixes a regression from [1] where scrollbar hit testing
would be ignored if a border radius was present. By excluding hit tests
on the scrollbars (included in overflowClipRect(...)), we now properly
give scrollbars precedence over border radius.

[1] https://crrev.com/b6749c9b582f70fc9a5dcb364087e30cf45a7306

BUG= 597946 

Review URL: https://codereview.chromium.org/1897753002

Cr-Commit-Position: refs/heads/master@{#387999}

[modify] https://crrev.com/dab89b99996bb173c6f3747e70191687089eaa8c/third_party/WebKit/LayoutTests/hittesting/inner-border-radius-hittest-expected.txt
[modify] https://crrev.com/dab89b99996bb173c6f3747e70191687089eaa8c/third_party/WebKit/LayoutTests/hittesting/inner-border-radius-hittest.html
[modify] https://crrev.com/dab89b99996bb173c6f3747e70191687089eaa8c/third_party/WebKit/Source/core/layout/LayoutBlock.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 23 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0c45146717e9d715483d89fa7314ed7fcc5831bd

commit 0c45146717e9d715483d89fa7314ed7fcc5831bd
Author: pdr <pdr@chromium.org>
Date: Sat Apr 23 02:33:42 2016

Refactor OverlayScrollbarSizeRelevancy into OverlayScrollbarClipBehavior

OverlayScrollbarSizeRelevancy was added in [1] and took chrishtr and me
quite a bit of time to understand in [2]. For example, it was not clear
what "relevancy" meant, nor that including overlay scrollbar size is
needed for hit testing. When creating the new LayoutViewItem API, this
code was incorrectly exposed even though it wasn't needed.

This patch does the following renames and adds a comment explaining why:
OverlayScrollbarSizeRelevancy -> OverlayScrollbarClipBehavior
IncludeOverlayScrollbarSize -> IncludeOverlayScrollbarSizeForHitTesting

Additionally, LayoutViewItem has been updated to no longer use the enum.

[1] https://chromium.googlesource.com/chromium/src/+/9477b0e3afbc92ba1e75e235b0f09fe231853770
[2] https://codereview.chromium.org/1897753002/

BUG= 597946 

Review URL: https://codereview.chromium.org/1907213002

Cr-Commit-Position: refs/heads/master@{#389345}

[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/ClipRectsCache.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutTable.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutView.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutView.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/api/LayoutViewItem.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerClipper.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h

Comment 7 by pdr@chromium.org, Apr 23 2016

Status: Fixed (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 25 2016

Labels: merge-merged-2716
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0c45146717e9d715483d89fa7314ed7fcc5831bd

commit 0c45146717e9d715483d89fa7314ed7fcc5831bd
Author: pdr <pdr@chromium.org>
Date: Sat Apr 23 02:33:42 2016

Refactor OverlayScrollbarSizeRelevancy into OverlayScrollbarClipBehavior

OverlayScrollbarSizeRelevancy was added in [1] and took chrishtr and me
quite a bit of time to understand in [2]. For example, it was not clear
what "relevancy" meant, nor that including overlay scrollbar size is
needed for hit testing. When creating the new LayoutViewItem API, this
code was incorrectly exposed even though it wasn't needed.

This patch does the following renames and adds a comment explaining why:
OverlayScrollbarSizeRelevancy -> OverlayScrollbarClipBehavior
IncludeOverlayScrollbarSize -> IncludeOverlayScrollbarSizeForHitTesting

Additionally, LayoutViewItem has been updated to no longer use the enum.

[1] https://chromium.googlesource.com/chromium/src/+/9477b0e3afbc92ba1e75e235b0f09fe231853770
[2] https://codereview.chromium.org/1897753002/

BUG= 597946 

Review URL: https://codereview.chromium.org/1907213002

Cr-Commit-Position: refs/heads/master@{#389345}

[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/ClipRectsCache.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutTable.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutView.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/LayoutView.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/layout/api/LayoutViewItem.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerClipper.h
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/0c45146717e9d715483d89fa7314ed7fcc5831bd/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h

Comment 9 by sshru...@google.com, Aug 25 2016

Components: -Blink>Input>HitTesting Blink>HitTesting
Moving Blink>Input>HitTesting to Blink>HitTesting

Sign in to add a comment