New issue
Advanced search Search tips

Issue 695257 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug

Blocked on:
issue 701575

Blocking:
issue 417782



Sign in to add a comment

[root layer scrolls] broken scrollbar on google.com

Project Member Reported by skobes@chromium.org, Feb 23 2017

Issue description

Repro on Linux ToT:

1. Run content_shell --root-layer-scrolls
2. Click the down stepper arrow

Expected: page scrolls down
Actual: nothing happens

 
screenshot.png
32.3 KB View Download

Comment 1 by skobes@chromium.org, Feb 23 2017

Cc: -cbiesin...@chromium.org
Owner: cbiesin...@chromium.org
Status: Assigned (was: Available)
Christian do you want to look into this one?  I suspect the scroll bounds aren't getting updated somewhere.
Status: Started (was: Assigned)
Happy to take this!
Interestingly mousewheel scrolling works, just not clicking the button
Cc: skobes@chromium.org
In this code in PaintLayerScrollableArea::maximumScrollOffsetInt:
  if (this == controller.rootScrollerArea())
    visibleSize = controller.rootScrollerVisibleArea();

controller.rootScrollerVisibleArea does not take the existance of the horizontal scrollbar into account (empirically). I guess that makes sense because it uses view()->visibleContentSize(ExcludeScrollbars) but the FrameView does not have scrollbars anymore. Maybe we need to subtract the scrollbar size separately?

Comment 5 by skobes@chromium.org, Feb 25 2017

Cc: bokan@chromium.org
Did http://crrev.com/2622103002 break this?
Yeah, reverting that patch fixes this bug.

Comment 7 by skobes@chromium.org, Feb 25 2017

Maybe TDRSC::rootScrollerVisibleArea needs to do view()->layoutViewportScrollableArea()->visibleContentSize(ExcludeScrollbars).
Oh, I didn't know that was a thing. I can try that. (Assume you mean visibleContentRect)
Blockedon: 701575
Cc: -skobes@chromium.org cbiesin...@chromium.org
Owner: skobes@chromium.org
Somehow PLSA::VisibleContentRect has been inverting the semantics of scrollbar_inclusion since the dawn of time (http://crrev.com/885d16e4).

We'll have to fix that in order for TDRSC::RootScrollerVisibleArea to get the right value.
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 9 2017

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

commit a0083d3b950116054ca29d0c457d311c2cfb309b
Author: Steve Kobes <skobes@chromium.org>
Date: Fri Jun 09 20:48:45 2017

Fix treatment of scrollbar_inclusion in PLSA::VisibleContentRect.

It was swapping the meanings of kIncludeScrollbars and kExcludeScrollbars.

Bug:  695257 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I9b7fc394e79253c7dd04375bf2d2b92cdbadc25f
Reviewed-on: https://chromium-review.googlesource.com/528340
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478405}
[modify] https://crrev.com/a0083d3b950116054ca29d0c457d311c2cfb309b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/a0083d3b950116054ca29d0c457d311c2cfb309b/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 14 2017

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

commit dcb75b204e4e3a1eb1e3765a7bd158c811a6297a
Author: Steve Kobes <skobes@chromium.org>
Date: Wed Jun 14 05:17:36 2017

Use the correct layout viewport in TDRSC::RootScrollerVisibleArea.

This fixes incorrect computation of root PLSA scroll bounds when scrollbars need
to be excluded.  (PLSA::MaximumScrollOffsetInt delegates to TDRSC.)

Note that ResizeViewportAnchor wants the layout viewport to be clamped to the
updated bounds during LocalFrameView::Resize.  For this reason, we eagerly
update the root PaintLayer size in LocalFrameView::ViewportSizeChanged.

Bug:  695257 
Change-Id: If3490fd15cb232d2e6d2be951377e484c8b77a72
Reviewed-on: https://chromium-review.googlesource.com/531934
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479293}
[modify] https://crrev.com/dcb75b204e4e3a1eb1e3765a7bd158c811a6297a/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/dcb75b204e4e3a1eb1e3765a7bd158c811a6297a/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp
[modify] https://crrev.com/dcb75b204e4e3a1eb1e3765a7bd158c811a6297a/third_party/WebKit/Source/core/paint/PaintLayerTest.cpp

Status: Fixed (was: Started)

Sign in to add a comment