haikuwebkit/LayoutTests/compositing/layer-creation/will-change-layer-creation-...

57 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

will-change should sometimes trigger compositing https://bugs.webkit.org/show_bug.cgi?id=148072 Reviewed by Tim Horton. Source/JavaScriptCore: Include will-change as a reason for compositing. * inspector/protocol/LayerTree.json: Source/WebCore: Implement the compositing side-effects of will-change, if any of the following properties are specified: opacity filter (as -webkit-filter) backdrop-filter (as -webkit-backdrop-filter) transform (on transformable elements only) Tests: compositing/layer-creation/will-change-change.html compositing/layer-creation/will-change-layer-creation.html * inspector/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector about will-change. * rendering/RenderElement.cpp: (WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if will-change includes a compositing trigger property. This gets called before and after setting the style, so this checks both states. (WebCore::RenderElement::shouldWillChangeCreateStackingContext): * rendering/RenderElement.h: (WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index in the style. * rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes a property that applies to inlines. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a property that would trigger compositing on this element, return true. * rendering/RenderLayerCompositor.h: * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in changedContextSensitiveProperties if will-change changes. * rendering/style/RenderStyle.h: Rename for clarity. * rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange. * rendering/style/WillChangeData.cpp: (WebCore::propertyCreatesStackingContext): Subset of properties that create stacking context on any element. (WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that create stacking context on boxes. (WebCore::propertyTriggersCompositing): Properties that trigger compositing on any element. (WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that trigger compositing on boxes. (WebCore::WillChangeData::addFeature): As features are added, manage a set of flags to know if they trigger stacking context or compositing, on inlines and boxes. (WebCore::WillChangeData::createsStackingContext): Deleted. * rendering/style/WillChangeData.h: (WebCore::WillChangeData::canCreateStackingContext): (WebCore::WillChangeData::canCreateStackingContextOnInline): (WebCore::WillChangeData::canTriggerCompositing): (WebCore::WillChangeData::canTriggerCompositingOnInline): Source/WebInspectorUI: Have the web inspector show a correct compositing reason for will-change. This could be improved to indicate which specific value in will-change triggered the compositing. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: (WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons): (WebInspector.LayerTreeDetailsSidebarPanel): LayoutTests: * compositing/layer-creation/will-change-change-expected.txt: Added. * compositing/layer-creation/will-change-change.html: Added. * compositing/layer-creation/will-change-layer-creation-expected.txt: Added. * compositing/layer-creation/will-change-layer-creation.html: Added. Canonical link: https://commits.webkit.org/166194@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-08-17 18:32:49 +00:00
transform opacity transform, background transform, opacity -webkit-filter
opacity
transform
-webkit-filter
transform-style
perspective
background, clip-path, position, z-index, -webkit-mask
(GraphicsLayer
(anchor 0.00 0.00)
(bounds 800.00 600.00)
(children 1
(GraphicsLayer
(bounds 800.00 600.00)
(contentsOpaque 1)
(children 6
(GraphicsLayer
Make GraphicsLayer::dumpProperties dump m_offsetFromRenderer https://bugs.webkit.org/show_bug.cgi?id=180473 Source/WebCore: Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14 Reviewed by Antonio Gomes. No new tests, this is just a new debug info. * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::dumpProperties const): Dump the offset from renderer if nonzero. LayoutTests: Update test expectations to include the "offset from renderer" values. Existing tests insert the output of layerTreeAsText into some divs which may cause the corresponding GraphicsLayers to become slightly taller. We thus make the necessary adjustments. Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14 Reviewed by Antonio Gomes. * compositing/backing/no-backing-for-clip-expected.txt: * compositing/backing/no-backing-for-clip-overlap-expected.txt: * compositing/backing/transform-transition-from-outside-view-expected.txt: * compositing/bounds-in-flipped-writing-mode-expected.txt: * compositing/columns/composited-in-paginated-rl-expected.txt: * compositing/columns/composited-lr-paginated-repaint-expected.txt: * compositing/columns/composited-rl-paginated-repaint-expected.txt: * compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: * compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: * compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: * compositing/contents-format/subpixel-antialiased-text-images-expected.txt: * compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: * compositing/contents-opaque/overflow-hidden-child-layers-expected.txt: * compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt: * compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt: * compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt: * compositing/geometry/bounds-ignores-hidden-expected.txt: * compositing/geometry/clip-expected.txt: * compositing/geometry/clip-inside-expected.txt: * compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: * compositing/geometry/flipped-writing-mode-expected.txt: * compositing/geometry/foreground-layer-expected.txt: * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: * compositing/geometry/limit-layer-bounds-fixed-expected.txt: * compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * compositing/geometry/limit-layer-bounds-opacity-transition-expected.txt: * compositing/geometry/limit-layer-bounds-positioned-expected.txt: * compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt: * compositing/geometry/limit-layer-bounds-transformed-expected.txt: * compositing/iframes/composited-parent-iframe-expected.txt: * compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * compositing/iframes/connect-compositing-iframe-expected.txt: * compositing/iframes/connect-compositing-iframe2-expected.txt: * compositing/iframes/connect-compositing-iframe3-expected.txt: * compositing/iframes/enter-compositing-iframe-expected.txt: * compositing/iframes/iframe-resize-expected.txt: * compositing/iframes/overlapped-iframe-expected.txt: * compositing/iframes/page-cache-layer-tree-expected.txt: * compositing/iframes/scrolling-iframe-expected.txt: * compositing/images/clip-on-directly-composited-image-expected.txt: * compositing/ios/overflow-scroll-touch-tiles-expected.txt: * compositing/layer-creation/fixed-overlap-extent-expected.txt: * compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt: * compositing/layer-creation/fixed-position-under-transform-expected.txt: * compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt: * compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt: * compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt: * compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt: * compositing/layer-creation/overflow-scroll-overlap-expected.txt: * compositing/layer-creation/overlap-animation-clipping-expected.txt: * compositing/layer-creation/overlap-animation-expected.txt: * compositing/layer-creation/overlap-child-layer-expected.txt: * compositing/layer-creation/overlap-transformed-layer-expected.txt: * compositing/layer-creation/overlap-transforms-expected.txt: * compositing/layer-creation/rotate3d-overlap-expected.txt: * compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: * compositing/layer-creation/scale-rotation-transition-overlap-expected.txt: * compositing/layer-creation/stacking-context-overlap-nested-expected.txt: * compositing/layer-creation/translate-animation-overlap-expected.txt: * compositing/layer-creation/translate-scale-animation-overlap-expected.txt: * compositing/layer-creation/translate-scale-transition-overlap-expected.txt: * compositing/layer-creation/translate-transition-overlap-expected.txt: * compositing/layer-creation/will-change-layer-creation-expected.txt: * compositing/overflow/clip-descendents-expected.txt: * compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: * compositing/repaint/fixed-background-scroll-expected.txt: * compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: * compositing/repaint/repaint-on-layer-grouping-change-expected.txt: * compositing/rtl/rtl-absolute-overflow-expected.txt: * compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: * compositing/scrolling/touch-scroll-to-clip-expected.txt: * compositing/tiling/tiled-mask-inwindow-expected.txt: * compositing/tiling/tiled-reflection-inwindow-expected.txt: * compositing/tiling/transform-origin-tiled-expected.txt: * compositing/visible-rect/coverage-clipped-expected.txt: * compositing/visible-rect/coverage-scrolling-expected.txt: * fast/scrolling/ios/overflow-scroll-touch-expected.txt: * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: * platform/gtk/compositing/geometry/composited-in-columns-expected.txt: * platform/gtk/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/gtk/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/gtk/compositing/layer-creation/overlap-animation-expected.txt: * platform/gtk/compositing/layer-creation/will-change-layer-creation-expected.txt: * platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/gtk/compositing/overflow/composited-scrolling-paint-phases-expected.txt: * platform/ios-wk2/compositing/backing/no-backing-for-clip-expected.txt: * platform/ios-wk2/compositing/backing/no-backing-for-clip-overlap-expected.txt: * platform/ios-wk2/compositing/columns/composited-in-paginated-rl-expected.txt: * platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt: * platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt: * platform/ios-wk2/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/ios-wk2/compositing/geometry/composited-in-columns-expected.txt: * platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt: * platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * platform/ios-wk2/compositing/iframes/composited-parent-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe2-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe3-expected.txt: * platform/ios-wk2/compositing/iframes/enter-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/iframe-resize-expected.txt: * platform/ios-wk2/compositing/iframes/leave-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/overlapped-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/page-cache-layer-tree-expected.txt: * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt: * platform/ios-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt: * platform/ios-wk2/compositing/repaint/fixed-background-scroll-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt: * platform/ios-wk2/compositing/scrolling/touch-scroll-to-clip-expected.txt: * platform/ios-wk2/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/ios-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/ios-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/ios-wk2/compositing/tiling/tiled-mask-inwindow-expected.txt: * platform/ios-wk2/compositing/tiling/tiled-reflection-inwindow-expected.txt: * platform/ios-wk2/compositing/tiling/transform-origin-tiled-expected.txt: * platform/ios-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/ios-wk2/compositing/visible-rect/2d-transformed-expected.txt: * platform/ios-wk2/compositing/visible-rect/3d-transformed-expected.txt: * platform/ios-wk2/compositing/visible-rect/clipped-visible-rect-expected.txt: * platform/ios-wk2/compositing/visible-rect/coverage-clipped-expected.txt: * platform/ios-wk2/compositing/visible-rect/coverage-scrolling-expected.txt: * platform/ios-wk2/compositing/visible-rect/flipped-preserve-3d-expected.txt: * platform/ios-wk2/compositing/visible-rect/iframe-and-layers-expected.txt: * platform/ios-wk2/compositing/visible-rect/nested-transform-expected.txt: * platform/ios/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: * platform/ios/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * platform/ios/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * platform/ios/compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: * platform/ios/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/ios/compositing/images/clip-on-directly-composited-image-expected.txt: * platform/ios/compositing/layer-creation/overlap-animation-clipping-expected.txt: * platform/ios/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/ios/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/ios/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: * platform/ios/compositing/visible-rect/3d-transform-style-expected.txt: * platform/ios/compositing/visible-rect/animated-expected.txt: * platform/ios/compositing/visible-rect/animated-from-none-expected.txt: * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt: * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: * platform/mac-elcapitan/compositing/contents-opaque/control-layer-expected.txt: * platform/mac-elcapitan/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-wk1/compositing/tiling/tiled-mask-inwindow-expected.txt: * platform/mac-wk1/compositing/tiling/tiled-reflection-inwindow-expected.txt: * platform/mac-wk1/compositing/tiling/transform-origin-tiled-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: * platform/mac/compositing/contents-opaque/control-layer-expected.txt: * platform/mac/compositing/geometry/composited-in-columns-expected.txt: * platform/mac/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/mac/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/mac/compositing/visible-rect/2d-transformed-expected.txt: * platform/mac/compositing/visible-rect/3d-transform-style-expected.txt: * platform/mac/compositing/visible-rect/3d-transformed-expected.txt: * platform/mac/compositing/visible-rect/animated-expected.txt: * platform/mac/compositing/visible-rect/animated-from-none-expected.txt: * platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt: * platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt: * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt: * platform/mac/compositing/visible-rect/nested-transform-expected.txt: * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt: * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt: Canonical link: https://commits.webkit.org/196699@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-14 09:39:59 +00:00
(offsetFromRenderer width=96 height=0)
will-change should sometimes trigger compositing https://bugs.webkit.org/show_bug.cgi?id=148072 Reviewed by Tim Horton. Source/JavaScriptCore: Include will-change as a reason for compositing. * inspector/protocol/LayerTree.json: Source/WebCore: Implement the compositing side-effects of will-change, if any of the following properties are specified: opacity filter (as -webkit-filter) backdrop-filter (as -webkit-backdrop-filter) transform (on transformable elements only) Tests: compositing/layer-creation/will-change-change.html compositing/layer-creation/will-change-layer-creation.html * inspector/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector about will-change. * rendering/RenderElement.cpp: (WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if will-change includes a compositing trigger property. This gets called before and after setting the style, so this checks both states. (WebCore::RenderElement::shouldWillChangeCreateStackingContext): * rendering/RenderElement.h: (WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index in the style. * rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes a property that applies to inlines. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a property that would trigger compositing on this element, return true. * rendering/RenderLayerCompositor.h: * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in changedContextSensitiveProperties if will-change changes. * rendering/style/RenderStyle.h: Rename for clarity. * rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange. * rendering/style/WillChangeData.cpp: (WebCore::propertyCreatesStackingContext): Subset of properties that create stacking context on any element. (WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that create stacking context on boxes. (WebCore::propertyTriggersCompositing): Properties that trigger compositing on any element. (WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that trigger compositing on boxes. (WebCore::WillChangeData::addFeature): As features are added, manage a set of flags to know if they trigger stacking context or compositing, on inlines and boxes. (WebCore::WillChangeData::createsStackingContext): Deleted. * rendering/style/WillChangeData.h: (WebCore::WillChangeData::canCreateStackingContext): (WebCore::WillChangeData::canCreateStackingContextOnInline): (WebCore::WillChangeData::canTriggerCompositing): (WebCore::WillChangeData::canTriggerCompositingOnInline): Source/WebInspectorUI: Have the web inspector show a correct compositing reason for will-change. This could be improved to indicate which specific value in will-change triggered the compositing. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: (WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons): (WebInspector.LayerTreeDetailsSidebarPanel): LayoutTests: * compositing/layer-creation/will-change-change-expected.txt: Added. * compositing/layer-creation/will-change-change.html: Added. * compositing/layer-creation/will-change-layer-creation-expected.txt: Added. * compositing/layer-creation/will-change-layer-creation.html: Added. Canonical link: https://commits.webkit.org/166194@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-08-17 18:32:49 +00:00
(position 104.00 8.00)
(bounds 52.00 18.00)
(drawsContent 1)
)
(GraphicsLayer
Make GraphicsLayer::dumpProperties dump m_offsetFromRenderer https://bugs.webkit.org/show_bug.cgi?id=180473 Source/WebCore: Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14 Reviewed by Antonio Gomes. No new tests, this is just a new debug info. * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::dumpProperties const): Dump the offset from renderer if nonzero. LayoutTests: Update test expectations to include the "offset from renderer" values. Existing tests insert the output of layerTreeAsText into some divs which may cause the corresponding GraphicsLayers to become slightly taller. We thus make the necessary adjustments. Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14 Reviewed by Antonio Gomes. * compositing/backing/no-backing-for-clip-expected.txt: * compositing/backing/no-backing-for-clip-overlap-expected.txt: * compositing/backing/transform-transition-from-outside-view-expected.txt: * compositing/bounds-in-flipped-writing-mode-expected.txt: * compositing/columns/composited-in-paginated-rl-expected.txt: * compositing/columns/composited-lr-paginated-repaint-expected.txt: * compositing/columns/composited-rl-paginated-repaint-expected.txt: * compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: * compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: * compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: * compositing/contents-format/subpixel-antialiased-text-images-expected.txt: * compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: * compositing/contents-opaque/overflow-hidden-child-layers-expected.txt: * compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt: * compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt: * compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt: * compositing/geometry/bounds-ignores-hidden-expected.txt: * compositing/geometry/clip-expected.txt: * compositing/geometry/clip-inside-expected.txt: * compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: * compositing/geometry/flipped-writing-mode-expected.txt: * compositing/geometry/foreground-layer-expected.txt: * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: * compositing/geometry/limit-layer-bounds-fixed-expected.txt: * compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * compositing/geometry/limit-layer-bounds-opacity-transition-expected.txt: * compositing/geometry/limit-layer-bounds-positioned-expected.txt: * compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt: * compositing/geometry/limit-layer-bounds-transformed-expected.txt: * compositing/iframes/composited-parent-iframe-expected.txt: * compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * compositing/iframes/connect-compositing-iframe-expected.txt: * compositing/iframes/connect-compositing-iframe2-expected.txt: * compositing/iframes/connect-compositing-iframe3-expected.txt: * compositing/iframes/enter-compositing-iframe-expected.txt: * compositing/iframes/iframe-resize-expected.txt: * compositing/iframes/overlapped-iframe-expected.txt: * compositing/iframes/page-cache-layer-tree-expected.txt: * compositing/iframes/scrolling-iframe-expected.txt: * compositing/images/clip-on-directly-composited-image-expected.txt: * compositing/ios/overflow-scroll-touch-tiles-expected.txt: * compositing/layer-creation/fixed-overlap-extent-expected.txt: * compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt: * compositing/layer-creation/fixed-position-under-transform-expected.txt: * compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt: * compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt: * compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt: * compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt: * compositing/layer-creation/overflow-scroll-overlap-expected.txt: * compositing/layer-creation/overlap-animation-clipping-expected.txt: * compositing/layer-creation/overlap-animation-expected.txt: * compositing/layer-creation/overlap-child-layer-expected.txt: * compositing/layer-creation/overlap-transformed-layer-expected.txt: * compositing/layer-creation/overlap-transforms-expected.txt: * compositing/layer-creation/rotate3d-overlap-expected.txt: * compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: * compositing/layer-creation/scale-rotation-transition-overlap-expected.txt: * compositing/layer-creation/stacking-context-overlap-nested-expected.txt: * compositing/layer-creation/translate-animation-overlap-expected.txt: * compositing/layer-creation/translate-scale-animation-overlap-expected.txt: * compositing/layer-creation/translate-scale-transition-overlap-expected.txt: * compositing/layer-creation/translate-transition-overlap-expected.txt: * compositing/layer-creation/will-change-layer-creation-expected.txt: * compositing/overflow/clip-descendents-expected.txt: * compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: * compositing/repaint/fixed-background-scroll-expected.txt: * compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: * compositing/repaint/repaint-on-layer-grouping-change-expected.txt: * compositing/rtl/rtl-absolute-overflow-expected.txt: * compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: * compositing/scrolling/touch-scroll-to-clip-expected.txt: * compositing/tiling/tiled-mask-inwindow-expected.txt: * compositing/tiling/tiled-reflection-inwindow-expected.txt: * compositing/tiling/transform-origin-tiled-expected.txt: * compositing/visible-rect/coverage-clipped-expected.txt: * compositing/visible-rect/coverage-scrolling-expected.txt: * fast/scrolling/ios/overflow-scroll-touch-expected.txt: * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: * platform/gtk/compositing/geometry/composited-in-columns-expected.txt: * platform/gtk/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/gtk/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/gtk/compositing/layer-creation/overlap-animation-expected.txt: * platform/gtk/compositing/layer-creation/will-change-layer-creation-expected.txt: * platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/gtk/compositing/overflow/composited-scrolling-paint-phases-expected.txt: * platform/ios-wk2/compositing/backing/no-backing-for-clip-expected.txt: * platform/ios-wk2/compositing/backing/no-backing-for-clip-overlap-expected.txt: * platform/ios-wk2/compositing/columns/composited-in-paginated-rl-expected.txt: * platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt: * platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt: * platform/ios-wk2/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/ios-wk2/compositing/geometry/composited-in-columns-expected.txt: * platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt: * platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * platform/ios-wk2/compositing/iframes/composited-parent-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe2-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe3-expected.txt: * platform/ios-wk2/compositing/iframes/enter-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/iframe-resize-expected.txt: * platform/ios-wk2/compositing/iframes/leave-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/overlapped-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/page-cache-layer-tree-expected.txt: * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt: * platform/ios-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt: * platform/ios-wk2/compositing/repaint/fixed-background-scroll-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt: * platform/ios-wk2/compositing/scrolling/touch-scroll-to-clip-expected.txt: * platform/ios-wk2/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/ios-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/ios-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/ios-wk2/compositing/tiling/tiled-mask-inwindow-expected.txt: * platform/ios-wk2/compositing/tiling/tiled-reflection-inwindow-expected.txt: * platform/ios-wk2/compositing/tiling/transform-origin-tiled-expected.txt: * platform/ios-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/ios-wk2/compositing/visible-rect/2d-transformed-expected.txt: * platform/ios-wk2/compositing/visible-rect/3d-transformed-expected.txt: * platform/ios-wk2/compositing/visible-rect/clipped-visible-rect-expected.txt: * platform/ios-wk2/compositing/visible-rect/coverage-clipped-expected.txt: * platform/ios-wk2/compositing/visible-rect/coverage-scrolling-expected.txt: * platform/ios-wk2/compositing/visible-rect/flipped-preserve-3d-expected.txt: * platform/ios-wk2/compositing/visible-rect/iframe-and-layers-expected.txt: * platform/ios-wk2/compositing/visible-rect/nested-transform-expected.txt: * platform/ios/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: * platform/ios/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * platform/ios/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * platform/ios/compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: * platform/ios/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/ios/compositing/images/clip-on-directly-composited-image-expected.txt: * platform/ios/compositing/layer-creation/overlap-animation-clipping-expected.txt: * platform/ios/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/ios/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/ios/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: * platform/ios/compositing/visible-rect/3d-transform-style-expected.txt: * platform/ios/compositing/visible-rect/animated-expected.txt: * platform/ios/compositing/visible-rect/animated-from-none-expected.txt: * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt: * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: * platform/mac-elcapitan/compositing/contents-opaque/control-layer-expected.txt: * platform/mac-elcapitan/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-wk1/compositing/tiling/tiled-mask-inwindow-expected.txt: * platform/mac-wk1/compositing/tiling/tiled-reflection-inwindow-expected.txt: * platform/mac-wk1/compositing/tiling/transform-origin-tiled-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: * platform/mac/compositing/contents-opaque/control-layer-expected.txt: * platform/mac/compositing/geometry/composited-in-columns-expected.txt: * platform/mac/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/mac/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/mac/compositing/visible-rect/2d-transformed-expected.txt: * platform/mac/compositing/visible-rect/3d-transform-style-expected.txt: * platform/mac/compositing/visible-rect/3d-transformed-expected.txt: * platform/mac/compositing/visible-rect/animated-expected.txt: * platform/mac/compositing/visible-rect/animated-from-none-expected.txt: * platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt: * platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt: * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt: * platform/mac/compositing/visible-rect/nested-transform-expected.txt: * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt: * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt: Canonical link: https://commits.webkit.org/196699@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-14 09:39:59 +00:00
(offsetFromRenderer width=337 height=0)
will-change should sometimes trigger compositing https://bugs.webkit.org/show_bug.cgi?id=148072 Reviewed by Tim Horton. Source/JavaScriptCore: Include will-change as a reason for compositing. * inspector/protocol/LayerTree.json: Source/WebCore: Implement the compositing side-effects of will-change, if any of the following properties are specified: opacity filter (as -webkit-filter) backdrop-filter (as -webkit-backdrop-filter) transform (on transformable elements only) Tests: compositing/layer-creation/will-change-change.html compositing/layer-creation/will-change-layer-creation.html * inspector/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector about will-change. * rendering/RenderElement.cpp: (WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if will-change includes a compositing trigger property. This gets called before and after setting the style, so this checks both states. (WebCore::RenderElement::shouldWillChangeCreateStackingContext): * rendering/RenderElement.h: (WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index in the style. * rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes a property that applies to inlines. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a property that would trigger compositing on this element, return true. * rendering/RenderLayerCompositor.h: * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in changedContextSensitiveProperties if will-change changes. * rendering/style/RenderStyle.h: Rename for clarity. * rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange. * rendering/style/WillChangeData.cpp: (WebCore::propertyCreatesStackingContext): Subset of properties that create stacking context on any element. (WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that create stacking context on boxes. (WebCore::propertyTriggersCompositing): Properties that trigger compositing on any element. (WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that trigger compositing on boxes. (WebCore::WillChangeData::addFeature): As features are added, manage a set of flags to know if they trigger stacking context or compositing, on inlines and boxes. (WebCore::WillChangeData::createsStackingContext): Deleted. * rendering/style/WillChangeData.h: (WebCore::WillChangeData::canCreateStackingContext): (WebCore::WillChangeData::canCreateStackingContextOnInline): (WebCore::WillChangeData::canTriggerCompositing): (WebCore::WillChangeData::canTriggerCompositingOnInline): Source/WebInspectorUI: Have the web inspector show a correct compositing reason for will-change. This could be improved to indicate which specific value in will-change triggered the compositing. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: (WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons): (WebInspector.LayerTreeDetailsSidebarPanel): LayoutTests: * compositing/layer-creation/will-change-change-expected.txt: Added. * compositing/layer-creation/will-change-change.html: Added. * compositing/layer-creation/will-change-layer-creation-expected.txt: Added. * compositing/layer-creation/will-change-layer-creation.html: Added. Canonical link: https://commits.webkit.org/166194@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-08-17 18:32:49 +00:00
(position 345.00 8.00)
(bounds 122.00 18.00)
(drawsContent 1)
)
(GraphicsLayer
Make GraphicsLayer::dumpProperties dump m_offsetFromRenderer https://bugs.webkit.org/show_bug.cgi?id=180473 Source/WebCore: Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14 Reviewed by Antonio Gomes. No new tests, this is just a new debug info. * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::dumpProperties const): Dump the offset from renderer if nonzero. LayoutTests: Update test expectations to include the "offset from renderer" values. Existing tests insert the output of layerTreeAsText into some divs which may cause the corresponding GraphicsLayers to become slightly taller. We thus make the necessary adjustments. Patch by Frederic Wang <fwang@igalia.com> on 2017-12-14 Reviewed by Antonio Gomes. * compositing/backing/no-backing-for-clip-expected.txt: * compositing/backing/no-backing-for-clip-overlap-expected.txt: * compositing/backing/transform-transition-from-outside-view-expected.txt: * compositing/bounds-in-flipped-writing-mode-expected.txt: * compositing/columns/composited-in-paginated-rl-expected.txt: * compositing/columns/composited-lr-paginated-repaint-expected.txt: * compositing/columns/composited-rl-paginated-repaint-expected.txt: * compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: * compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: * compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: * compositing/contents-format/subpixel-antialiased-text-images-expected.txt: * compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: * compositing/contents-opaque/overflow-hidden-child-layers-expected.txt: * compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt: * compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt: * compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt: * compositing/geometry/bounds-ignores-hidden-expected.txt: * compositing/geometry/clip-expected.txt: * compositing/geometry/clip-inside-expected.txt: * compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: * compositing/geometry/flipped-writing-mode-expected.txt: * compositing/geometry/foreground-layer-expected.txt: * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: * compositing/geometry/limit-layer-bounds-fixed-expected.txt: * compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * compositing/geometry/limit-layer-bounds-opacity-transition-expected.txt: * compositing/geometry/limit-layer-bounds-positioned-expected.txt: * compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt: * compositing/geometry/limit-layer-bounds-transformed-expected.txt: * compositing/iframes/composited-parent-iframe-expected.txt: * compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * compositing/iframes/connect-compositing-iframe-expected.txt: * compositing/iframes/connect-compositing-iframe2-expected.txt: * compositing/iframes/connect-compositing-iframe3-expected.txt: * compositing/iframes/enter-compositing-iframe-expected.txt: * compositing/iframes/iframe-resize-expected.txt: * compositing/iframes/overlapped-iframe-expected.txt: * compositing/iframes/page-cache-layer-tree-expected.txt: * compositing/iframes/scrolling-iframe-expected.txt: * compositing/images/clip-on-directly-composited-image-expected.txt: * compositing/ios/overflow-scroll-touch-tiles-expected.txt: * compositing/layer-creation/fixed-overlap-extent-expected.txt: * compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt: * compositing/layer-creation/fixed-position-under-transform-expected.txt: * compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt: * compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt: * compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt: * compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt: * compositing/layer-creation/overflow-scroll-overlap-expected.txt: * compositing/layer-creation/overlap-animation-clipping-expected.txt: * compositing/layer-creation/overlap-animation-expected.txt: * compositing/layer-creation/overlap-child-layer-expected.txt: * compositing/layer-creation/overlap-transformed-layer-expected.txt: * compositing/layer-creation/overlap-transforms-expected.txt: * compositing/layer-creation/rotate3d-overlap-expected.txt: * compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: * compositing/layer-creation/scale-rotation-transition-overlap-expected.txt: * compositing/layer-creation/stacking-context-overlap-nested-expected.txt: * compositing/layer-creation/translate-animation-overlap-expected.txt: * compositing/layer-creation/translate-scale-animation-overlap-expected.txt: * compositing/layer-creation/translate-scale-transition-overlap-expected.txt: * compositing/layer-creation/translate-transition-overlap-expected.txt: * compositing/layer-creation/will-change-layer-creation-expected.txt: * compositing/overflow/clip-descendents-expected.txt: * compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: * compositing/repaint/fixed-background-scroll-expected.txt: * compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: * compositing/repaint/repaint-on-layer-grouping-change-expected.txt: * compositing/rtl/rtl-absolute-overflow-expected.txt: * compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: * compositing/scrolling/touch-scroll-to-clip-expected.txt: * compositing/tiling/tiled-mask-inwindow-expected.txt: * compositing/tiling/tiled-reflection-inwindow-expected.txt: * compositing/tiling/transform-origin-tiled-expected.txt: * compositing/visible-rect/coverage-clipped-expected.txt: * compositing/visible-rect/coverage-scrolling-expected.txt: * fast/scrolling/ios/overflow-scroll-touch-expected.txt: * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: * platform/gtk/compositing/geometry/composited-in-columns-expected.txt: * platform/gtk/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/gtk/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/gtk/compositing/layer-creation/overlap-animation-expected.txt: * platform/gtk/compositing/layer-creation/will-change-layer-creation-expected.txt: * platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/gtk/compositing/overflow/composited-scrolling-paint-phases-expected.txt: * platform/ios-wk2/compositing/backing/no-backing-for-clip-expected.txt: * platform/ios-wk2/compositing/backing/no-backing-for-clip-overlap-expected.txt: * platform/ios-wk2/compositing/columns/composited-in-paginated-rl-expected.txt: * platform/ios-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt: * platform/ios-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt: * platform/ios-wk2/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/ios-wk2/compositing/geometry/composited-in-columns-expected.txt: * platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt: * platform/ios-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * platform/ios-wk2/compositing/iframes/composited-parent-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe2-expected.txt: * platform/ios-wk2/compositing/iframes/connect-compositing-iframe3-expected.txt: * platform/ios-wk2/compositing/iframes/enter-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/iframe-resize-expected.txt: * platform/ios-wk2/compositing/iframes/leave-compositing-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/overlapped-iframe-expected.txt: * platform/ios-wk2/compositing/iframes/page-cache-layer-tree-expected.txt: * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt: * platform/ios-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt: * platform/ios-wk2/compositing/repaint/fixed-background-scroll-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/ios-wk2/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt: * platform/ios-wk2/compositing/scrolling/touch-scroll-to-clip-expected.txt: * platform/ios-wk2/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/ios-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/ios-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/ios-wk2/compositing/tiling/tiled-mask-inwindow-expected.txt: * platform/ios-wk2/compositing/tiling/tiled-reflection-inwindow-expected.txt: * platform/ios-wk2/compositing/tiling/transform-origin-tiled-expected.txt: * platform/ios-wk2/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/ios-wk2/compositing/visible-rect/2d-transformed-expected.txt: * platform/ios-wk2/compositing/visible-rect/3d-transformed-expected.txt: * platform/ios-wk2/compositing/visible-rect/clipped-visible-rect-expected.txt: * platform/ios-wk2/compositing/visible-rect/coverage-clipped-expected.txt: * platform/ios-wk2/compositing/visible-rect/coverage-scrolling-expected.txt: * platform/ios-wk2/compositing/visible-rect/flipped-preserve-3d-expected.txt: * platform/ios-wk2/compositing/visible-rect/iframe-and-layers-expected.txt: * platform/ios-wk2/compositing/visible-rect/nested-transform-expected.txt: * platform/ios/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: * platform/ios/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * platform/ios/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * platform/ios/compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: * platform/ios/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/ios/compositing/images/clip-on-directly-composited-image-expected.txt: * platform/ios/compositing/layer-creation/overlap-animation-clipping-expected.txt: * platform/ios/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/ios/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/ios/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: * platform/ios/compositing/visible-rect/3d-transform-style-expected.txt: * platform/ios/compositing/visible-rect/animated-expected.txt: * platform/ios/compositing/visible-rect/animated-from-none-expected.txt: * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt: * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: * platform/mac-elcapitan/compositing/contents-opaque/control-layer-expected.txt: * platform/mac-elcapitan/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: * platform/mac-wk1/compositing/tiling/tiled-mask-inwindow-expected.txt: * platform/mac-wk1/compositing/tiling/tiled-reflection-inwindow-expected.txt: * platform/mac-wk1/compositing/tiling/transform-origin-tiled-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: * platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: * platform/mac/compositing/contents-opaque/control-layer-expected.txt: * platform/mac/compositing/geometry/composited-in-columns-expected.txt: * platform/mac/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/mac/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/mac/compositing/visible-rect/2d-transformed-expected.txt: * platform/mac/compositing/visible-rect/3d-transform-style-expected.txt: * platform/mac/compositing/visible-rect/3d-transformed-expected.txt: * platform/mac/compositing/visible-rect/animated-expected.txt: * platform/mac/compositing/visible-rect/animated-from-none-expected.txt: * platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt: * platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt: * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt: * platform/mac/compositing/visible-rect/nested-transform-expected.txt: * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt: * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt: Canonical link: https://commits.webkit.org/196699@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-14 09:39:59 +00:00
(offsetFromRenderer width=478 height=0)
will-change should sometimes trigger compositing https://bugs.webkit.org/show_bug.cgi?id=148072 Reviewed by Tim Horton. Source/JavaScriptCore: Include will-change as a reason for compositing. * inspector/protocol/LayerTree.json: Source/WebCore: Implement the compositing side-effects of will-change, if any of the following properties are specified: opacity filter (as -webkit-filter) backdrop-filter (as -webkit-backdrop-filter) transform (on transformable elements only) Tests: compositing/layer-creation/will-change-change.html compositing/layer-creation/will-change-layer-creation.html * inspector/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Tell the inspector about will-change. * rendering/RenderElement.cpp: (WebCore::RenderElement::adjustStyleDifference): Need to trigger a recomposite if will-change includes a compositing trigger property. This gets called before and after setting the style, so this checks both states. (WebCore::RenderElement::shouldWillChangeCreateStackingContext): * rendering/RenderElement.h: (WebCore::RenderElement::willChangeCreatesStackingContext): Helper function that RenderInline uses to determine if it needs to create a RenderLayer, since RenderInline doesn't get automatic layer RenderLayers as a side effect of having non-auto z-index in the style. * rendering/RenderInline.h: Need to trigger a RenderLayer if will-change includes a property that applies to inlines. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Call requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::reasonsForCompositing): Include requiresCompositingForWillChange(). (WebCore::RenderLayerCompositor::requiresCompositingForWillChange): If will-change contains a property that would trigger compositing on this element, return true. * rendering/RenderLayerCompositor.h: * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::changeRequiresLayout): Set ContextSensitivePropertyWillChange in changedContextSensitiveProperties if will-change changes. * rendering/style/RenderStyle.h: Rename for clarity. * rendering/style/RenderStyleConstants.h: Add ContextSensitivePropertyWillChange. * rendering/style/WillChangeData.cpp: (WebCore::propertyCreatesStackingContext): Subset of properties that create stacking context on any element. (WebCore::propertyCreatesStackingContextOnBoxesOnly): Additional properties that create stacking context on boxes. (WebCore::propertyTriggersCompositing): Properties that trigger compositing on any element. (WebCore::propertyTriggersCompositingOnBoxesOnly): Additional properties that trigger compositing on boxes. (WebCore::WillChangeData::addFeature): As features are added, manage a set of flags to know if they trigger stacking context or compositing, on inlines and boxes. (WebCore::WillChangeData::createsStackingContext): Deleted. * rendering/style/WillChangeData.h: (WebCore::WillChangeData::canCreateStackingContext): (WebCore::WillChangeData::canCreateStackingContextOnInline): (WebCore::WillChangeData::canTriggerCompositing): (WebCore::WillChangeData::canTriggerCompositingOnInline): Source/WebInspectorUI: Have the web inspector show a correct compositing reason for will-change. This could be improved to indicate which specific value in will-change triggered the compositing. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: (WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons): (WebInspector.LayerTreeDetailsSidebarPanel): LayoutTests: * compositing/layer-creation/will-change-change-expected.txt: Added. * compositing/layer-creation/will-change-change.html: Added. * compositing/layer-creation/will-change-layer-creation-expected.txt: Added. * compositing/layer-creation/will-change-layer-creation.html: Added. Canonical link: https://commits.webkit.org/166194@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-08-17 18:32:49 +00:00
(position 486.00 8.00)
(bounds 85.00 18.00)
(drawsContent 1)
)
(GraphicsLayer
(position 18.00 36.00)
(bounds 764.00 18.00)
(contentsOpaque 1)
(drawsContent 1)
)
(GraphicsLayer
(position 18.00 64.00)
(bounds 764.00 18.00)
(contentsOpaque 1)
(drawsContent 1)
)
(GraphicsLayer
(position 18.00 92.00)
(bounds 764.00 18.00)
(contentsOpaque 1)
(drawsContent 1)
)
)
)
)
)