diff --git a/DEPS b/DEPS index 55ac4bed..04217dd 100644 --- a/DEPS +++ b/DEPS
@@ -54,7 +54,7 @@ 'checkout_telemetry_dependencies': False, # libaom provides support for AV1 but the bitstream is not frozen. - 'checkout_libaom': False, + 'checkout_libaom': True, # TODO(dpranke): change to != "small" once != is supported. 'checkout_traffic_annotation_tools': 'checkout_configuration == "default"',
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 6388bb7..4b4fc68 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -82,25 +82,18 @@ crbug.com/771643 virtual/spv175/compositing/composited-descendant-requiring-border-radius-mask.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/composited-scaled-child-with-border-radius-parent-clip.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/composited-translated-child-with-border-radius-parent-clip.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/opacity-with-mask.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/fixed-body-background-positioned.html [ Failure Pass ] crbug.com/771643 virtual/spv175/compositing/geometry/repaint-foreground-layer.html [ Crash ] crbug.com/771643 virtual/spv175/compositing/images/direct-image-dynamic-border-radius.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/masks/mask-with-added-filters.html [ Failure Pass ] -crbug.com/771643 virtual/spv175/compositing/masks/mask-with-removed-filters.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/masks/multiple-masks.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/masks/simple-composited-mask.html [ Failure ] +crbug.com/771643 virtual/spv175/compositing/opacity-with-mask.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/border-radius-on-grandparent-composited-grandchild.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/border-radius-on-parent-composited-grandchild.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/border-radius-outside-bounds-of-compositing-ancestor.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/border-radius-styles-with-composited-child.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/composited-layer-under-border-radius-under-composited-layer.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/grandchild-composited-with-border-radius-ancestor.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/grandchild-with-border-radius-ancestor.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/overflow/mask-with-small-content-rect.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/overflow/overflow-scroll-with-negative-offset-translucent-outline.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/relpos-under-abspos-border-radius.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/scroll-ancestor-update.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/overflow/scroll-neg-z-index-and-composited-child.html [ Failure ] @@ -111,16 +104,13 @@ crbug.com/771643 virtual/spv175/compositing/squashing/squash-composited-input.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/squashing/squash-overflow-hidden-scrolltop.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/squashing/squash-with-ancestor-reflection.html [ Failure ] -crbug.com/771643 virtual/spv175/compositing/squashing/visibility-composited-squashing.html [ Failure ] crbug.com/771643 virtual/spv175/compositing/visibility/visibility-image-layers.html [ Failure Pass ] crbug.com/771643 virtual/spv175/paint/invalidation/offset-change-wrong-invalidation-with-float.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/repaint-across-writing-mode-boundary.html [ Failure ] -crbug.com/771643 virtual/spv175/paint/invalidation/compositing/newly-composited-repaint-rect.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/compositing/resize-squashing-layer-that-needs-full-repaint.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/compositing/subpixel-offset-scaled-transform-composited.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/forms/select-option-background-color.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/multicol/multicol-with-overflowing-block-rl.html [ Failure ] -crbug.com/771643 virtual/spv175/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/overflow/paged-with-overflowing-block-rl.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/position/position-change-keeping-geometry.html [ Failure ] crbug.com/771643 virtual/spv175/paint/invalidation/reflection/reflection-repaint-test.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/virtual/spv175/compositing/overflow/mask-with-small-content-rect-expected.png b/third_party/WebKit/LayoutTests/virtual/spv175/compositing/overflow/mask-with-small-content-rect-expected.png index 66fa0662..28103ae5 100644 --- a/third_party/WebKit/LayoutTests/virtual/spv175/compositing/overflow/mask-with-small-content-rect-expected.png +++ b/third_party/WebKit/LayoutTests/virtual/spv175/compositing/overflow/mask-with-small-content-rect-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.txt b/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.txt new file mode 100644 index 0000000..0682abe --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/overflow/composited-overflow-with-negative-offset-outline-expected.txt
@@ -0,0 +1,68 @@ +{ + "layers": [ + { + "name": "LayoutView #document", + "bounds": [800, 600], + "contentsOpaque": true, + "backgroundColor": "#FFFFFF" + }, + { + "name": "LayoutBlockFlow DIV id='scroller'", + "position": [8, 8], + "bounds": [200, 200] + }, + { + "name": "Scrolling Layer", + "position": [8, 8], + "bounds": [185, 185], + "drawsContent": false + }, + { + "name": "Scrolling Contents Layer", + "position": [8, 8], + "bounds": [185, 300] + }, + { + "name": "Overflow Controls Host Layer", + "position": [8, 8], + "bounds": [200, 200], + "drawsContent": false + }, + { + "name": "Horizontal Scrollbar Layer", + "position": [8, 193], + "bounds": [185, 15], + "drawsContent": false + }, + { + "name": "Vertical Scrollbar Layer", + "position": [193, 8], + "bounds": [15, 185], + "drawsContent": false + }, + { + "name": "Scroll Corner Layer", + "position": [193, 193], + "bounds": [15, 15] + }, + { + "name": "Decoration Layer", + "position": [8, 8], + "bounds": [200, 200], + "paintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='scroller'", + "rect": [0, 0, 200, 200], + "reason": "style change" + } + ] + } + ], + "objectPaintInvalidations": [ + { + "object": "LayoutBlockFlow DIV id='scroller'", + "reason": "style change" + } + ] +} +
diff --git a/third_party/WebKit/Source/core/page/PageOverlay.cpp b/third_party/WebKit/Source/core/page/PageOverlay.cpp index 5bb6ebe..96045f04 100644 --- a/third_party/WebKit/Source/core/page/PageOverlay.cpp +++ b/third_party/WebKit/Source/core/page/PageOverlay.cpp
@@ -84,6 +84,11 @@ } else { frame_impl_->FrameWidget()->RootGraphicsLayer()->AddChild(layer_.get()); } + + if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled()) { + layer_->SetLayerState(PropertyTreeState(PropertyTreeState::Root()), + IntPoint()); + } } FloatSize size(frame->GetPage()->GetVisualViewport().Size());
diff --git a/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp b/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp index 9c74bfd..922e75a8 100644 --- a/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp +++ b/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp
@@ -874,10 +874,13 @@ layer_config_changed = true; } - // Changes to either the internal hierarchy or the mask layer have an impact - // on painting phases, so we need to update when either are updated. - if (layer_config_changed || mask_layer_changed) + if (layer_config_changed || mask_layer_changed) { + // Changes to either the internal hierarchy or the mask layer have an impact + // on painting phases, so we need to update when either are updated. UpdatePaintingPhases(); + // Need to update paint property states of the changed GraphicsLayers. + layout_object.SetNeedsPaintPropertyUpdate(); + } UpdateElementId();
diff --git a/third_party/WebKit/Source/core/paint/compositing/CompositingLayerPropertyUpdater.cpp b/third_party/WebKit/Source/core/paint/compositing/CompositingLayerPropertyUpdater.cpp index a726a8516..6ffd2a55 100644 --- a/third_party/WebKit/Source/core/paint/compositing/CompositingLayerPropertyUpdater.cpp +++ b/third_party/WebKit/Source/core/paint/compositing/CompositingLayerPropertyUpdater.cpp
@@ -47,6 +47,8 @@ SetContainerLayerState(mapping->LayerForHorizontalScrollbar()); SetContainerLayerState(mapping->LayerForVerticalScrollbar()); SetContainerLayerState(mapping->LayerForScrollCorner()); + SetContainerLayerState(mapping->DecorationOutlineLayer()); + SetContainerLayerState(mapping->BackgroundLayer()); auto SetContentsLayerState = [rare_paint_data, &snapped_paint_offset](GraphicsLayer* graphics_layer) { @@ -59,12 +61,23 @@ SetContentsLayerState(mapping->ScrollingContentsLayer()); SetContentsLayerState(mapping->ForegroundLayer()); - if (GraphicsLayer* squashing_layer = mapping->SquashingLayer()) { + if (auto* squashing_layer = mapping->SquashingLayer()) { squashing_layer->SetLayerState( rare_paint_data->PreEffectProperties(), snapped_paint_offset + mapping->SquashingLayerOffsetFromLayoutObject()); } - // TODO(trchen): Complete for all drawable layers. + + if (auto* mask_layer = mapping->MaskLayer()) { + auto state = *rare_paint_data->LocalBorderBoxProperties(); + const auto* properties = rare_paint_data->PaintProperties(); + DCHECK(properties && properties->Mask()); + state.SetEffect(properties->Mask()); + mask_layer->SetLayerState( + std::move(state), + snapped_paint_offset + mask_layer->OffsetFromLayoutObject()); + } + + // TODO(crbug.com/790548): Complete for all drawable layers. } void CompositingLayerPropertyUpdater::Update(const LocalFrameView& frame_view) { @@ -84,7 +97,6 @@ SetOverflowControlLayerState(frame_view.LayerForHorizontalScrollbar()); SetOverflowControlLayerState(frame_view.LayerForVerticalScrollbar()); SetOverflowControlLayerState(frame_view.LayerForScrollCorner()); - // TODO(trchen): Complete for all drawable layers. } } // namespace blink