PaintLayerScrollableArea doesn't enforce integer scroll position when composited |
|||||||||
Issue descriptionAn integer scroll offset is required for LCD text to work on composited scrolling layers. While PaintLayerScrollableArea::shouldUseIntegerScrollOffset returns true when we are not preferring compositing over LCD text, that is not enough to ensure that translations and other accumulated effects retain the integer offset. Investigate and fix issues that arise.
,
Oct 19 2016
Also we need to ensure that the screen space opacity is 1 (i.e. that no ancestor reduces our opacity): https://cs.chromium.org/chromium/src/cc/layers/layer_impl.cc?q=file:cc+opaque+lcd&sq=package:chromium&dr=CSs&l=1011
,
Oct 19 2016
I put up a CL to make automatic promotion experimental again to fix this in M55: https://chromiumcodereview.appspot.com/2439573002. As for M56 The scroll position should be pixel snapped by TransformTree::UpdateSnapping (https://cs.chromium.org/chromium/src/cc/trees/property_tree.cc?dr=CSs&q=file:cc%5C/+snap&sq=package:chromium&l=642), but we do need to check all ancestor transforms and opacity as per the check in #2.
,
Oct 19 2016
Fix to not promote when we have transforms or opacity: https://chromiumcodereview.appspot.com/2434443005
,
Oct 20 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c656b155c2f6fb63288a259d130dd06dca393925 commit c656b155c2f6fb63288a259d130dd06dca393925 Author: flackr <flackr@chromium.org> Date: Thu Oct 20 03:29:51 2016 Only automatically promote scrollers which are untransformed and opaque. To be sure that we actually get LCD text, we only promote scrollers which have not been transformed themselves or by any ancestor, and also exclude those which are translucent due to an opacity on themselves or an ancestor. BUG= 644833 TEST=PaintLayerScrollableAreaTest.OnlyNonTransformedOpaqueLayersPromoted, PaintLayerScrollableAreaTest.OnlyOpaqueLayersPromoted CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://chromiumcodereview.appspot.com/2434443005 Cr-Commit-Position: refs/heads/master@{#426385} [modify] https://crrev.com/c656b155c2f6fb63288a259d130dd06dca393925/third_party/WebKit/LayoutTests/compositing/overflow/scaled-overflow.html [modify] https://crrev.com/c656b155c2f6fb63288a259d130dd06dca393925/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp [modify] https://crrev.com/c656b155c2f6fb63288a259d130dd06dca393925/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp [modify] https://crrev.com/c656b155c2f6fb63288a259d130dd06dca393925/third_party/WebKit/Source/platform/testing/RuntimeEnabledFeaturesTestHelpers.h
,
Oct 20 2016
Is this issue is fixed? If yes, Could any one let us know is there manual repro steps available to verify this issue from Chrome-TE end. Thanks!
,
Oct 20 2016
This issue is fixed, but we would like to disable the CompositeOpaqueScrollers feature in M-55 due to issue 651305 as well. I just landed https://codereview.chromium.org/2439573002 to do this which I'd like to merge back - just waiting to see it show up in the bug here.
,
Oct 20 2016
Hmm the bot that posts to the bugs must be really delayed, anyways I would like to merge https://chromium.googlesource.com/chromium/src/+/42f45334458475b43440671e6e7de5ff95e54a7c to M55 to avoid this issue on this bug and issue 651305 .
,
Oct 21 2016
Your change meets the bar and is auto-approved for M55 (branch: 2883)
,
Oct 22 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c8338128808d2dae2ffc77a87a47554eeb7d4210 commit c8338128808d2dae2ffc77a87a47554eeb7d4210 Author: Robert Flack <flackr@chromium.org> Date: Sat Oct 22 02:32:15 2016 Make CompositeOpaqueScrollers experimental until https://crbug.com/644833 is fixed. BUG= 644833 , 651305 Review-Url: https://chromiumcodereview.appspot.com/2439573002 Cr-Commit-Position: refs/heads/master@{#426486} (cherry picked from commit 42f45334458475b43440671e6e7de5ff95e54a7c) Review URL: https://codereview.chromium.org/2444663002 . Cr-Commit-Position: refs/branch-heads/2883@{#235} Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768} [modify] https://crrev.com/c8338128808d2dae2ffc77a87a47554eeb7d4210/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
,
Oct 24 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/10336a25975c113e068268d848b01f0c3563f215 commit 10336a25975c113e068268d848b01f0c3563f215 Author: flackr <flackr@chromium.org> Date: Mon Oct 24 20:27:38 2016 Reenable CompositeOpaqueScrollers on tip of tree. BUG= 644833 , 651305 Review-Url: https://codereview.chromium.org/2450473002 Cr-Commit-Position: refs/heads/master@{#427136} [modify] https://crrev.com/10336a25975c113e068268d848b01f0c3563f215/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
,
Oct 25 2016
This should be fixed on M56 and CompositeOpaqueScrollers is not on by default in M55. You can verify by visiting a page like http://output.jsbin.com/wacasinozi on a low dpi device and seeing that the first scroller still has subpixel text anti-aliasing. If you open dev tools and enable layer borders you can see that it is not promoted because it has a transform which may cause it to lose subpixel AA.
,
Oct 27 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c8338128808d2dae2ffc77a87a47554eeb7d4210 commit c8338128808d2dae2ffc77a87a47554eeb7d4210 Author: Robert Flack <flackr@chromium.org> Date: Sat Oct 22 02:32:15 2016 Make CompositeOpaqueScrollers experimental until https://crbug.com/644833 is fixed. BUG= 644833 , 651305 Review-Url: https://chromiumcodereview.appspot.com/2439573002 Cr-Commit-Position: refs/heads/master@{#426486} (cherry picked from commit 42f45334458475b43440671e6e7de5ff95e54a7c) Review URL: https://codereview.chromium.org/2444663002 . Cr-Commit-Position: refs/branch-heads/2883@{#235} Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768} [modify] https://crrev.com/c8338128808d2dae2ffc77a87a47554eeb7d4210/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
,
Nov 4 2016
[Automated comment] removing mislabelled merge-merged-2840
,
Aug 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/318d3c7d33df6e1c6a16d929a57d350f77acfd91 commit 318d3c7d33df6e1c6a16d929a57d350f77acfd91 Author: Eric Willigers <ericwilligers@chromium.org> Date: Wed Aug 08 17:22:16 2018 Retire CompositeOpaqueScrollers flag CompositeOpaqueScrollers has been shipping since M56. https://codereview.chromium.org/2450473002 BUG= 644833 , 651305 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I2efd8b92d96177ebfa45b360c02a5cf5e31a18dc Reviewed-on: https://chromium-review.googlesource.com/1166611 Reviewed-by: Robert Flack <flackr@chromium.org> Commit-Queue: Eric Willigers <ericwilligers@chromium.org> Cr-Commit-Position: refs/heads/master@{#581610} [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-background-opaque-to-transparent.html [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-background-transparent-to-opaque.html [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/WebKit/LayoutTests/compositing/overflow/overflow-scroll-with-opaque-background.html [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder_test.cc [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/blink/renderer/core/paint/paint_layer_scrollable_area_test.cc [modify] https://crrev.com/318d3c7d33df6e1c6a16d929a57d350f77acfd91/third_party/blink/renderer/platform/runtime_enabled_features.json5 |
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by chrishtr@chromium.org
, Oct 17 2016Labels: -Pri-2 M-55 ReleaseBlock-Stable OS-Linux Pri-1
Owner: flackr@chromium.org