|
|
DescriptionFix traverseNonCompositingDescendantsInPaintOrder for float-under-inline cases
We should traverse into composited inlines even if they are stacking
context, because there might be floating objects which belong to
ancestors in paint order.
During traverse for paint invalidation, when we encounter a floating
object, we should mark the real painting layer for paint invalidation
which may be above the tip of the subtree being traversed.
BUG=644144
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2639283003
Cr-Commit-Position: refs/heads/master@{#445679}
Committed: https://chromium.googlesource.com/chromium/src/+/f105471106f4c821364165bdd991ce13196f5496
Patch Set 1 #Patch Set 2 : Temporary debug on bots #Patch Set 3 : Fix #
Total comments: 4
Patch Set 4 : Rebase on https://codereview.chromium.org/2642763009/ #Patch Set 5 : - #
Total comments: 2
Patch Set 6 : Rebase #
Messages
Total messages: 34 (26 generated)
Description was changed from ========== Fix traverseNonCompositingDescendantsInPaintOrder for float-under-inline cases We should traverse into composited inlines even if they are stacking context, because there might be floating objects which belong to ancestors in paint order. During traverse for paint invalidation, when we encounter a floating object, we should mark the real painting layer for paint invalidation which may be above the tip of the subtree being traversed. BUG=644144 ========== to ========== Fix traverseNonCompositingDescendantsInPaintOrder for float-under-inline cases We should traverse into composited inlines even if they are stacking context, because there might be floating objects which belong to ancestors in paint order. During traverse for paint invalidation, when we encounter a floating object, we should mark the real painting layer for paint invalidation which may be above the tip of the subtree being traversed. BUG=644144 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
The CQ bit was checked by wangxianzhu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
wangxianzhu@chromium.org changed reviewers: + chrishtr@chromium.org, trchen@chromium.org
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
There are failures in telemetry_perf_unittests. Debugging.
The CQ bit was checked by wangxianzhu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by wangxianzhu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2639283003/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp (right): https://codereview.chromium.org/2639283003/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:80: if (!object.isLayoutBlockFlow() && descendant->isFloating()) { && !isStacked() ? See https://codereview.chromium.org/2640053004 https://codereview.chromium.org/2639283003/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:149: } else if (object.isFloating() && object.parent() && Same here: skip isStacked() objects?
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by wangxianzhu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by wangxianzhu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2639283003/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp (right): https://codereview.chromium.org/2639283003/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:80: if (!object.isLayoutBlockFlow() && descendant->isFloating()) { On 2017/01/19 21:22:26, chrishtr wrote: > && !isStacked() ? See https://codereview.chromium.org/2640053004 Yes. Moved the case under the condition at new line 86. https://codereview.chromium.org/2639283003/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:149: } else if (object.isFloating() && object.parent() && On 2017/01/19 21:22:26, chrishtr wrote: > Same here: skip isStacked() objects? Now rebased on https://codereview.chromium.org/2642763009/ and use canContainFloatingObject().
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
lgtm https://codereview.chromium.org/2639283003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp (right): https://codereview.chromium.org/2639283003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:72: // descendants may not belong to |object| but belong to an ancestor. This Add an example of why non-block-flow elements might have this problem.
https://codereview.chromium.org/2639283003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp (right): https://codereview.chromium.org/2639283003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:72: // descendants may not belong to |object| but belong to an ancestor. This On 2017/01/21 04:01:04, chrishtr wrote: > Add an example of why non-block-flow elements might have this problem. Done.
The CQ bit was checked by wangxianzhu@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from chrishtr@chromium.org Link to the patchset: https://codereview.chromium.org/2639283003/#ps100001 (title: "Rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 100001, "attempt_start_ts": 1485240013169320, "parent_rev": "f5a497cd5ce83519a9c71bd1ef877f85ec022d38", "commit_rev": "f105471106f4c821364165bdd991ce13196f5496"}
Message was sent while issue was closed.
Description was changed from ========== Fix traverseNonCompositingDescendantsInPaintOrder for float-under-inline cases We should traverse into composited inlines even if they are stacking context, because there might be floating objects which belong to ancestors in paint order. During traverse for paint invalidation, when we encounter a floating object, we should mark the real painting layer for paint invalidation which may be above the tip of the subtree being traversed. BUG=644144 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Fix traverseNonCompositingDescendantsInPaintOrder for float-under-inline cases We should traverse into composited inlines even if they are stacking context, because there might be floating objects which belong to ancestors in paint order. During traverse for paint invalidation, when we encounter a floating object, we should mark the real painting layer for paint invalidation which may be above the tip of the subtree being traversed. BUG=644144 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2639283003 Cr-Commit-Position: refs/heads/master@{#445679} Committed: https://chromium.googlesource.com/chromium/src/+/f105471106f4c821364165bdd991... ==========
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as https://chromium.googlesource.com/chromium/src/+/f105471106f4c821364165bdd991... |