Chromium Code Reviews
DescriptionFix shouldPaint issue when a composited floating iframe becomes non-self-painting
Previously we forced selfPainting flags (but let selfPainting() function
return false) on all blocks into which a composited (for certain reason)
floating iframe overhangs or intrudes. When the iframe became non-self-
painting, all these blocks will paint the float. This caused multiple
issues, such as duplicated painting, display items with duplicated ids,
subsequence caching disorders, etc.
This CL contains two parts:
1. Revert crrev.com/413649 which caused the problems;
2. Set PaintLayer::selfPaintingStatusChanged() when self-painting status
changes, and check it and clear it during compositing update.
If the status changed for a floating layer, update ancestor
shouldPaint flags to reflect the new status.
BUG=680423
TEST=compositing/iframes/floating-self-painting-frame.html
TEST=compositing/iframes/floating-self-painting-frame-expected.html
TEST=fast/block/float/float-change-composited-scrolling.html
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
R=chrishtr@chromium.org
Review-Url: https://codereview.chromium.org/2654843004 .
Cr-Commit-Position: refs/heads/master@{#446226}
Committed: https://chromium.googlesource.com/chromium/src/+/574d079a3f53ebfae2d34cc304fe8613cbcdf593
Patch Set 1 #Patch Set 2 : -0 #
Total comments: 6
Patch Set 3 : TODO #Patch Set 4 : Rename setAncestorShouldPaintFloatingObject to updateAncestorShouldPaintFloatingObject #Messages
Total messages: 28 (16 generated)
|