New issue
Advanced search Search tips

Issue 732955 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

clean up was_scrolled_by_user plumbing

Project Member Reported by skobes@chromium.org, Jun 13 2017

Issue description

DocumentLoader::InitialScrollState::was_scrolled_by_user is set in a bunch of different places and conditions.

Its purpose is to disable subsequent history scroll restore operations if the user scrolls while the frame is still loading.

I think it is supposed to be set for any user scroll (from main or cc) of any scroller in the document (not just the document itself).

When I looked at it for http://crrev.com/1273623006 it was called from WebViewImpl::ApplyViewportDeltas for compositor-thread viewport scrolls, and from EventHandler::setFrameWasScrolledByUser which despite the misleading name was invoked for PLSA overflow-scrolls.

In http://crrev.com/2144303002 the call site in WebViewImpl::ApplyViewportDeltas got moved into FrameView which I guess broke WebFrameTest.CompositorScrollIsUserScrollLongPage with RLS.  We're cargo-culting it into PLSA in http://crrev.com/c/526798 but we should probably:

- Set it in LFV::UpdateScrollOffset and PLSA::UpdateScrollOffset for kUserScroll || kCompositorScroll, for any scroller in any frame.

- Get rid of all the other places that are setting it like ScrollManager and Element::NativeApplyScroll.  I suspect those are leftovers from when we did not have reliable plumbing of ScrollType into UpdateScrollOffset (or whatever it was called at the time).
 
Owner: sriram...@samsung.com
Status: Started (was: Available)
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 28 2017

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

commit 88b0872644d1ef4794a7d0a31695a553c260369a
Author: Sriram <srirama.m@samsung.com>
Date: Thu Sep 28 04:13:45 2017

clean up was_scrolled_by_user plumbing

Set was_scrolled_by_user in LFV::UpdateScrollOffset and PLSA::UpdateScrollOffset
for kUserScroll || kCompositorScroll, for any scroller in any frame.

Get rid of all the other places that are setting it.

Bug:  732955 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I5b062509a56f2f52364de2aab2cd8c313b7a9086
Reviewed-on: https://chromium-review.googlesource.com/684001
Reviewed-by: Steve Kobes <skobes@chromium.org>
Commit-Queue: srirama chandra sekhar <srirama.m@samsung.com>
Cr-Commit-Position: refs/heads/master@{#504893}
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/input/MouseWheelEventManager.cpp
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/input/MouseWheelEventManager.h
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/input/ScrollManager.cpp
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/input/ScrollManager.h
[modify] https://crrev.com/88b0872644d1ef4794a7d0a31695a553c260369a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp

Status: Fixed (was: Started)

Sign in to add a comment