Commit cb6300e1 authored by Xianzhu Wang's avatar Xianzhu Wang Committed by Commit Bot

[SPv175+] Will-change without layer should not have direct compositing reason

For <svg style="will-change: left"></svg>,
previously we created a transform node just to store the direct
compositing reason CompositingReason::kWillChangeCompositingHint,
which broke the assumption that only objects having a PaintLayer
can be composited.

Bug: 825090
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I6eddb3b025ea82c08b38dc4ae0c0efc1048f6854
Reviewed-on: https://chromium-review.googlesource.com/978504Reviewed-by: default avatarChris Harrelson <chrishtr@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545571}
parent d9f3bbd1
......@@ -580,6 +580,9 @@ void FragmentPaintPropertyTreeBuilder::UpdateTransformForNonRootSVG() {
}
static CompositingReasons CompositingReasonsForTransform(const LayoutBox& box) {
if (!box.HasLayer())
return CompositingReason::kNone;
const ComputedStyle& style = box.StyleRef();
CompositingReasons compositing_reasons = CompositingReason::kNone;
if (CompositingReasonFinder::RequiresCompositingForTransform(box))
......
......@@ -5360,4 +5360,10 @@ TEST_P(PaintPropertyTreeBuilderTest, IframeDoesNotRequireCompositedScrolling) {
->HasDirectCompositingReasons());
}
TEST_P(PaintPropertyTreeBuilderTest,
NoTransformPropertyForWillChangeWithoutLayer) {
SetBodyInnerHTML("<svg id='target' style='will-change: left'></svg>");
EXPECT_EQ(nullptr, PaintPropertiesForElement("target")->Transform());
}
} // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment