Provide variants of GeometryMapper methods that guarantee tight clip/visual rects |
|||
Issue descriptionSome use-cases of GeometryMapper are used for actual clips applied on the page. For those use-cases, we need tight clip rects. For other use-cases, conservative results suffice. To reduce the risk of coding errors, we should add variants of the GeometryMapper methods to distinguish these requirements.
,
Apr 5 2017
By the way I filed a sibling bug before that requests a variant to map opaque region from one space to another space: https://crbug.com/701991 That variant could have a minimalist implementation by using this variant. (Return empty if any effects, compute mapped visual rect, return empty if any false-positive is signaled, otherwise return the tight visual rect.)
,
Nov 9 2017
I'm looking into this which blocks https://chromium-review.googlesource.com/c/chromium/src/+/753540.
,
Nov 16 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1a4f7077baed35c6c653a5d17e3311c46cb05105 commit 1a4f7077baed35c6c653a5d17e3311c46cb05105 Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Thu Nov 16 00:15:07 2017 Detect tightness of clip rects in GeometryMapper A clip rect is tight when it covers only the clipped content but not anything else. Client of GeometryMapper sometimes need to know the tightness of the mapped clip rects to determine if certain operations are applicable, e.g. incremental invalidation of changed clip. Also expand clip if there are any effects to enclose the pixels affected by the effects. Bug: 708741 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I9df0afa96b21fec0d1323fd2105abc33f53d9c74 Reviewed-on: https://chromium-review.googlesource.com/762153 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#516910} [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/core/layout/VisualRectMappingTest.cpp [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/platform/graphics/paint/FloatClipRect.h [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/platform/graphics/paint/FloatClipRectTest.cpp [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.h [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/platform/graphics/paint/GeometryMapperClipCache.h [modify] https://crrev.com/1a4f7077baed35c6c653a5d17e3311c46cb05105/third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp
,
Nov 16 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by schenney@chromium.org
, Apr 5 2017