Regression: Page content of 'madeinmyindia.com' vanishes after scrolling via mouse wheel.
Reported by
jshan...@etouch.net,
Aug 24 2016
|
||||||||||
Issue descriptionChrome Version: 54.0.2837.0 (Official Build) a29577e8b1ed329373d426e85f679dfeb07a2979-refs/heads/master@{#413618}-32/64 bit OS: Windows (7,8,8.1,10),Linux (14.04 LTS),Mac OS X(10.10.5, 10.11.4) URL: http://www.madeinmyindia.com/product/golden-multi-strap-sandal/ Steps: 1. Launch Chrome and navigate to above url. 2. Hover mouse over product description, scroll via mouse wheel and observe. Actual: Page content i.e Description, Size chart, Add to cart,etc vanishes after scrolling via mouse wheel. Expected: Page content i.e Description, Size chart, Add to cart,etc should be seen properly after scrolling via mouse wheel. This is regression issue broken in M-54, below is bisect info: Good build : 54.0.2827.0 Bad build : 54.0.2828.0 Narrow Bisect: https://chromium.googlesource.com/chromium/src/+log/3831b72130f11ebac151fd4945719f6d7489e048..f7d24bd8050b6bf21e6280f12103f0c311e18f4f?pretty=fuller&n=100 Suspecting: r411563 ? Please help to re-assign if your change is not the cause for this issue. Note:1. This is resolution specific issue, seen on desktop/laptop with resolution 1366x768. 2. Issue is not seen on other browsers like Firefox and I.E
,
Aug 24 2016
I have no CLs in that revision range. I suspect r411560 "Reland "Raster display item lists via a visual rect RTree." which touches compositing (src/cc). To wkorman.
,
Aug 24 2016
I can repro at ToT, likely due to my patch, will investigate shortly.
,
Aug 24 2016
Reduced test case attached. Scrolling in righthand side of page demonstrates issue. Hard to reduced the minimized vendor jquery-based js further. Will try to work from this to debug and understand root of issue.
,
Aug 24 2016
Much simpler test case attached that repros in default 800x600 sized content shell.
,
Aug 24 2016
It looks like the issue may be paint invalidation related and present before r411560. That is, r411560 produces a different failure mode that is more visible, but the underlying cause was already present. Rationale -- syncing to r411559 and selecting text in test case from #5 only paints selection for the first line, and deselecting does not unhighlight anything. Paint flashing in dev tools shows all invalidation rects positioned above the actual text.
,
Aug 25 2016
Capturing notes/theories from research yesterday as I have to shift gears to work on a ClusterFuzz issue --
Modifying the reduced test case in #5 to contain only one line of text (attaching the modification), the scroll content offset of 'inside' element ends up being -20px (roughly height of the text, presumably the 106px we're setting scrollTop to is clamping to max actual scrollable content). That offset then looks to be applied 2x to the paint invalidation rect somehow.
Such that whereas the paint invalidation rect position should be 600, it instead ends up being 560. The paint cull rect is correct, but the invalidation/visual rect is wrong:
{index: 7, client: "0x11d488e186d8 LayoutBlockFlow (positioned) DIV", type: "DrawingBoxDecorationBackground", rect: [0.000000,600.000000 85.000000x17.000000], cacheIsValid: true, visualRect: [-1,560 85x17]},
Note that while the 'inside' container is a composited paint invalidation container, it is not considered explicitly "scrollable". It is neither intrinsic nor having a scrollingLayer(), so it returns false from PaintLayerScrollableArea::usesCompositedScrolling() which propagates to false for LayoutBoxModelObject::usesCompositedScrolling() which has ramifications re: whether scrollContentOffset is applied to the invalidation rect.
+xianzhu and chris just as FYI.
,
Aug 26 2016
,
Aug 28 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/537724421c0f5d046e56fb0eba001da3bcea0613 commit 537724421c0f5d046e56fb0eba001da3bcea0613 Author: chrishtr <chrishtr@chromium.org> Date: Sun Aug 28 02:15:49 2016 Don't apply overflow clips in paint invalidation. Previously, such clips were applied if the paint invalidation container did not scroll overflow, but this is problematic, because overflow:hidden elements can be scrolled via script. BUG= 597902 , 640565 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2280243002 Cr-Commit-Position: refs/heads/master@{#414951} [modify] https://crrev.com/537724421c0f5d046e56fb0eba001da3bcea0613/third_party/WebKit/LayoutTests/TestExpectations [add] https://crrev.com/537724421c0f5d046e56fb0eba001da3bcea0613/third_party/WebKit/LayoutTests/paint/invalidation/overflow-hidden-yet-scrolled-expected.txt [add] https://crrev.com/537724421c0f5d046e56fb0eba001da3bcea0613/third_party/WebKit/LayoutTests/paint/invalidation/overflow-hidden-yet-scrolled.html [modify] https://crrev.com/537724421c0f5d046e56fb0eba001da3bcea0613/third_party/WebKit/Source/core/layout/LayoutBox.cpp [modify] https://crrev.com/537724421c0f5d046e56fb0eba001da3bcea0613/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp [modify] https://crrev.com/537724421c0f5d046e56fb0eba001da3bcea0613/third_party/WebKit/Source/core/layout/VisualRectMappingTest.cpp
,
Aug 28 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2eb37f134cf7dedfc50f99f5ce45623d39510087 commit 2eb37f134cf7dedfc50f99f5ce45623d39510087 Author: Rebaseline Bot <blink-rebaseline-bot@chromium.org> Date: Sun Aug 28 03:01:23 2016 Auto-rebaseline for r414951 https://chromium.googlesource.com/chromium/src/+/537724421 BUG= 640565 TBR=chrishtr@chromium.org Review URL: https://codereview.chromium.org/2289463002 . Cr-Commit-Position: refs/heads/master@{#414953} [modify] https://crrev.com/2eb37f134cf7dedfc50f99f5ce45623d39510087/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/2eb37f134cf7dedfc50f99f5ce45623d39510087/third_party/WebKit/LayoutTests/compositing/repaint/should-not-repaint-composited-descendants-expected.txt [modify] https://crrev.com/2eb37f134cf7dedfc50f99f5ce45623d39510087/third_party/WebKit/LayoutTests/fast/repaint/video-mute-repaint-expected.txt [modify] https://crrev.com/2eb37f134cf7dedfc50f99f5ce45623d39510087/third_party/WebKit/LayoutTests/fast/repaint/video-unmute-repaint-expected.txt
,
Aug 29 2016
This missed the M54 branch at r414607. We should merge once we've validated fix on Canary build.
,
Aug 29 2016
,
Aug 29 2016
Your change meets the bar and is auto-approved for M54 (branch: 2840)
,
Aug 29 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/19e275edf518255cc77cf7fe97d501f536ec87b7 commit 19e275edf518255cc77cf7fe97d501f536ec87b7 Author: Chris Harrelson <chrishtr@chromium.org> Date: Mon Aug 29 21:34:20 2016 Don't apply overflow clips in paint invalidation. Previously, such clips were applied if the paint invalidation container did not scroll overflow, but this is problematic, because overflow:hidden elements can be scrolled via script. BUG= 597902 , 640565 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2280243002 Cr-Commit-Position: refs/heads/master@{#414951} (cherry picked from commit 537724421c0f5d046e56fb0eba001da3bcea0613) Review URL: https://codereview.chromium.org/2295503002 . Cr-Commit-Position: refs/branch-heads/2840@{#24} Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607} [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/LayoutTests/TestExpectations [add] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/LayoutTests/paint/invalidation/overflow-hidden-yet-scrolled-expected.txt [add] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/LayoutTests/paint/invalidation/overflow-hidden-yet-scrolled.html [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/Source/core/layout/LayoutBox.cpp [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/Source/core/layout/VisualRectMappingTest.cpp
,
Aug 29 2016
,
Oct 27 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/19e275edf518255cc77cf7fe97d501f536ec87b7 commit 19e275edf518255cc77cf7fe97d501f536ec87b7 Author: Chris Harrelson <chrishtr@chromium.org> Date: Mon Aug 29 21:34:20 2016 Don't apply overflow clips in paint invalidation. Previously, such clips were applied if the paint invalidation container did not scroll overflow, but this is problematic, because overflow:hidden elements can be scrolled via script. BUG= 597902 , 640565 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2280243002 Cr-Commit-Position: refs/heads/master@{#414951} (cherry picked from commit 537724421c0f5d046e56fb0eba001da3bcea0613) Review URL: https://codereview.chromium.org/2295503002 . Cr-Commit-Position: refs/branch-heads/2840@{#24} Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607} [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/LayoutTests/TestExpectations [add] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/LayoutTests/paint/invalidation/overflow-hidden-yet-scrolled-expected.txt [add] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/LayoutTests/paint/invalidation/overflow-hidden-yet-scrolled.html [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/Source/core/layout/LayoutBox.cpp [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp [modify] https://crrev.com/19e275edf518255cc77cf7fe97d501f536ec87b7/third_party/WebKit/Source/core/layout/VisualRectMappingTest.cpp |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by ranjitkan@chromium.org
, Aug 24 2016