DeprecatedPaintLayerStackingNode should walk DPL
commite6bc1b0b5522a32d0a6d23584ac081defeeda8e8
authorjchaffraix@chromium.org <jchaffraix@chromium.org>
Wed, 23 Sep 2015 00:24:38 +0000 (23 00:24 +0000)
committerjchaffraix@chromium.org <jchaffraix@chromium.org>
Wed, 23 Sep 2015 00:24:38 +0000 (23 00:24 +0000)
tree58e4ee3d6850b8b41eabae053c879ce2c4a31066
parent9839535c46bcd87a5e504267874841664d15c3c1
DeprecatedPaintLayerStackingNode should walk DPL

https://codereview.chromium.org/1199413006 changed the way we
collect DeprecatedPaintLayers for the purpose of painting.
The change made the implicit assumptions that stacking contexts
would have DeprecatedPaintLayer, else there is no way we could
correctly paint. It turns out that this is not an assumption
that holds in our code. The reason is that some LayoutObject
just can't have DeprecatedPaintLayer (any objects that are not
LayoutBoxModelObject) or they don't want one (LayoutTableCol),
even if they should have one.

The old code worked because it didn't discriminate these cases
and was a lot more robust to the widespread abuse in the code.
Thus the logical solution is to revert the change.

BUG=527927

Review URL: https://codereview.chromium.org/1346103003

git-svn-id: svn://svn.chromium.org/blink/trunk@202653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
LayoutTests/fast/layers/perspective-inline-no-display-expected.png [new file with mode: 0644]
LayoutTests/fast/layers/perspective-inline-no-display-expected.txt [new file with mode: 0644]
LayoutTests/fast/layers/perspective-inline-no-display.html [new file with mode: 0644]
LayoutTests/fast/layers/perspective-relpos-image-no-display-expected.html [new file with mode: 0644]
LayoutTests/fast/layers/perspective-relpos-image-no-display.html [new file with mode: 0644]
LayoutTests/fast/layers/transform-inline-no-display-expected.html [new file with mode: 0644]
LayoutTests/fast/layers/transform-inline-no-display.html [new file with mode: 0644]
Source/core/paint/DeprecatedPaintLayer.cpp
Source/core/paint/DeprecatedPaintLayer.h
Source/core/paint/DeprecatedPaintLayerStackingNode.cpp
Source/core/paint/DeprecatedPaintLayerStackingNode.h