Commit f2fbb2a3 authored by Manuel Rego Casasnovas's avatar Manuel Rego Casasnovas Committed by Commit Bot

Enable transformed rasterization for kScrollDependentPosition

BUG=1076257
TEST=CompositedLayerMappingTest.TransformedRasterizationForScrollDependentPosition

Change-Id: I1ec70d65a533b14e3b6911de29830cbe334c66b7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2215335
Commit-Queue: Manuel Rego <rego@igalia.com>
Reviewed-by: default avatarXianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775040}
parent 7b9bec17
......@@ -359,7 +359,7 @@ void CompositedLayerMapping::UpdateContentsOpaque() {
void CompositedLayerMapping::UpdateRasterizationPolicy() {
bool transformed_rasterization_allowed =
!(owning_layer_.GetCompositingReasons() &
CompositingReason::kComboAllDirectReasons);
CompositingReason::kComboTransformedRasterizationDisallowedReasons);
graphics_layer_->CcLayer()->SetTransformedRasterizationAllowed(
transformed_rasterization_allowed);
if (non_scrolling_squashing_layer_) {
......
......@@ -1394,6 +1394,29 @@ TEST_F(CompositedLayerMappingTest, TransformedRasterizationForInlineTransform) {
target_graphics_layer->CcLayer()->transformed_rasterization_allowed());
}
TEST_F(CompositedLayerMappingTest,
TransformedRasterizationForScrollDependentPosition) {
SetBodyInnerHTML(R"HTML(
<div id="target"
style="transform: translateX(0.3px);
position: fixed; top: 20px; left: 30px;">
FIXED
</div>
<div style="height: 4000px; width: 4000px;
background: silver;">
</div>
)HTML");
LayoutObject* target = GetLayoutObjectByElementId("target");
ASSERT_TRUE(target && target->IsBox());
PaintLayer* target_layer = ToLayoutBox(target)->Layer();
GraphicsLayer* target_graphics_layer =
target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
ASSERT_TRUE(target_graphics_layer);
EXPECT_TRUE(
target_graphics_layer->CcLayer()->transformed_rasterization_allowed());
}
TEST_F(CompositedLayerMappingTest, ScrollingContainerBoundsChange) {
GetDocument().GetFrame()->GetSettings()->SetPreferCompositingToLCDTextEnabled(
true);
......
......@@ -132,6 +132,9 @@ class PLATFORM_EXPORT CompositingReason {
kComboAllDirectReasons = kComboAllDirectStyleDeterminedReasons |
kComboAllDirectNonStyleDeterminedReasons,
kComboTransformedRasterizationDisallowedReasons =
kComboAllDirectReasons & ~kScrollDependentPosition,
kComboAllCompositedScrollingDeterminedReasons =
kScrollDependentPosition | kOverflowScrolling,
......
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