haikuwebkit/LayoutTests/tiled-drawing/tile-coverage-after-scroll-...

24 lines
616 B
Plaintext
Raw Permalink Normal View History

(GraphicsLayer
Top content inset: Margin tiles should not display in the inset area when pinned to the top of the page https://bugs.webkit.org/show_bug.cgi?id=132535 -and corresponding- <rdar://problem/16613039> Reviewed by Simon Fraser. Source/WebCore: Prior to this change, topContentInset was implemented by positioning RenderLayerCompositor’s m_rootContentLayer based on the inset value. In order to ensure that no content is displayed in the inset area when we are pinned to the top of the page, we’ll have to take a different approach. In this patch, when you are pinned to the top of the page, the m_rootContentLayer is positioned at (0,0), much like it would be without an inset, but the m_clip layer IS positioned at (0, topContentInset). Then for all y-scroll values between 0 and topContentInset, the positions of the clip layer and the contents layer are adjusted so that the clip layer approaches a position of (0,0), and the root layer approaches a position of (0, topContentInset). This makes sure that any content above the top the document is aways clipped out of the inset area. In order to achieve this, the scrolling thread needs to know about the topContentInset, the clip layer, and the root contents layer. AsyncScrollingCoordinator::updateScrollingNode() now takes an additional parameter for the clip layer. Also export the topContentInset symbol for UI-side compositing. * WebCore.exp.in: Here is the new computation. Implemented in one spot that can be called from the scrolling thread, AsyncScrollingCoordinator and RenderLayerCompositor. * page/FrameView.cpp: (WebCore::FrameView::yPositionForInsetClipLayer): (WebCore::FrameView::yPositionForRootContentLayer): * page/FrameView.h: Set the topContentInset, the insetClipLayer, and the scrolledContentsLayer when appropriate. * page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange): Set or sync the positions for the inset layer and the contents layer. (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): (WebCore::AsyncScrollingCoordinator::updateScrollingNode): * page/scrolling/AsyncScrollingCoordinator.h: Convenience functions for getting the clipLayer() and the rootContentLayer() from the RenderLayerCompositor. * page/scrolling/ScrollingCoordinator.cpp: (WebCore::ScrollingCoordinator::insetClipLayerForFrameView): (WebCore::ScrollingCoordinator::rootContentLayerForFrameView): * page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::updateScrollingNode): ScrollingStateScrolling nodes have two new members now. m_insetClipLayer and m_topContentInset. We can use m_scrolledContentsLayer for the rootContentsLayer since previously that member was not used for FrameViews; it was only used for accelerated overflow:scroll nodes. * page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): (WebCore::ScrollingStateScrollingNode::setTopContentInset): (WebCore::ScrollingStateScrollingNode::setInsetClipLayer): * page/scrolling/ScrollingStateScrollingNode.h: Similarly, ScrollingTreeScrollingNode has two new members for m_topContentInset and m_clipLayer. * page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode): (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren): * page/scrolling/ScrollingTreeScrollingNode.h: (WebCore::ScrollingTreeScrollingNode::topContentInset): * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren): Compute positions for the two new layers. (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): Now use the static FrameView functions to compute the positions for these layers. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::frameViewDidChangeSize): (WebCore::RenderLayerCompositor::positionForClipLayer): (WebCore::RenderLayerCompositor::clipLayer): (WebCore::RenderLayerCompositor::rootContentLayer): (WebCore::RenderLayerCompositor::updateRootLayerPosition): (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): (WebCore::RenderLayerCompositor::ensureRootLayer): (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): * rendering/RenderLayerCompositor.h: Source/WebKit2: Encode and decode the ScrollingStateScrollingNode’s m_topContentInset even though we don’t use it for anything yet. Since the headerLayer and footerLayer are not encoded or decoded yet, I did not encode/decode the insetClipLayer yet, which, like the header and footer layers, would not yet be used. * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateScrollingNode>::encode): (ArgumentCoder<ScrollingStateScrollingNode>::decode): LayoutTests: Anchor point! * compositing/absolute-inside-out-of-view-fixed-expected.txt: * compositing/animation/filling-animation-overlap-at-end-expected.txt: * compositing/animation/filling-animation-overlap-expected.txt: * compositing/animation/layer-for-filling-animation-expected.txt: * compositing/backing/backface-visibility-in-3dtransformed-expected.txt: * compositing/backing/no-backing-for-clip-expected.txt: * compositing/backing/no-backing-for-clip-overhang-expected.txt: * compositing/backing/no-backing-for-clip-overlap-expected.txt: * compositing/backing/no-backing-for-perspective-expected.txt: * compositing/bounds-in-flipped-writing-mode-expected.txt: * compositing/clip-child-by-non-stacking-ancestor-expected.txt: * compositing/columns/ancestor-clipped-in-paginated-expected.txt: * compositing/columns/clipped-in-paginated-expected.txt: * compositing/columns/composited-columns-expected.txt: * compositing/columns/composited-columns-vertical-rl-expected.txt: * compositing/columns/composited-in-paginated-expected.txt: * compositing/columns/composited-in-paginated-rl-expected.txt: * compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt: * compositing/columns/composited-lr-paginated-repaint-expected.txt: * compositing/columns/composited-nested-columns-expected.txt: * compositing/columns/composited-rl-paginated-repaint-expected.txt: * compositing/columns/hittest-composited-in-paginated-expected.txt: * compositing/columns/rotated-in-paginated-expected.txt: * compositing/columns/untransformed-composited-in-paginated-expected.txt: * compositing/contents-opaque/background-clip-expected.txt: * compositing/contents-opaque/background-color-expected.txt: * compositing/contents-opaque/body-background-painted-expected.txt: * compositing/contents-opaque/body-background-skipped-expected.txt: * compositing/contents-opaque/filter-expected.txt: * compositing/contents-opaque/hidden-with-visible-child-expected.txt: * compositing/contents-opaque/hidden-with-visible-text-expected.txt: * compositing/contents-opaque/layer-opacity-expected.txt: * compositing/contents-opaque/layer-transform-expected.txt: * compositing/contents-opaque/overflow-hidden-child-layers-expected.txt: * compositing/contents-opaque/visibility-hidden-expected.txt: * compositing/contents-scale/animating-expected.txt: * compositing/contents-scale/rounded-contents-scale-expected.txt: * compositing/contents-scale/scaled-ancestor-expected.txt: * compositing/contents-scale/simple-scale-expected.txt: * compositing/contents-scale/z-translate-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-layer-expected.txt: * compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt: * compositing/geometry/ancestor-overflow-change-expected.txt: * compositing/geometry/bounds-clipped-composited-child-expected.txt: * compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * compositing/geometry/bounds-ignores-hidden-expected.txt: * compositing/geometry/clip-expected.txt: * compositing/geometry/clip-inside-expected.txt: * compositing/geometry/composited-in-columns-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/layer-due-to-layer-children-deep-switch-expected.txt: * compositing/geometry/layer-due-to-layer-children-switch-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-overflow-root-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/geometry/limit-layer-bounds-transformed-overflow-expected.txt: * compositing/geometry/negative-text-indent-with-overflow-hidden-layer-expected.txt: * compositing/geometry/preserve-3d-switching-expected.txt: * compositing/iframes/become-composited-nested-iframes-expected.txt: * compositing/iframes/become-overlapped-iframe-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/iframe-size-from-zero-expected.txt: * compositing/iframes/invisible-nested-iframe-hide-expected.txt: * compositing/iframes/overlapped-iframe-expected.txt: * compositing/iframes/overlapped-iframe-iframe-expected.txt: * compositing/iframes/overlapped-nested-iframes-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/layer-creation/animation-overlap-with-children-expected.txt: * compositing/layer-creation/fixed-position-and-transform-expected.txt: * compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: * compositing/layer-creation/fixed-position-out-of-view-expected.txt: * compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt: * compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt: * compositing/layer-creation/fixed-position-transformed-into-view-expected.txt: * compositing/layer-creation/fixed-position-under-transform-expected.txt: * compositing/layer-creation/no-compositing-for-fixed-position-under-transform-expected.txt: * compositing/layer-creation/no-compositing-for-preserve-3d-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-clipping-expected.txt: * compositing/layer-creation/overlap-transformed-3d-expected.txt: * compositing/layer-creation/overlap-transformed-and-clipped-expected.txt: * compositing/layer-creation/overlap-transformed-layer-expected.txt: * compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt: * compositing/layer-creation/overlap-transforms-expected.txt: * compositing/layer-creation/rotate3d-overlap-expected.txt: * compositing/layer-creation/scroll-partial-update-expected.txt: * compositing/layer-creation/spanOverlapsCanvas-expected.txt: * compositing/layer-creation/stacking-context-overlap-expected.txt: * compositing/layer-creation/stacking-context-overlap-nested-expected.txt: * compositing/layer-creation/translatez-overlap-expected.txt: * compositing/masks/mask-layer-size-expected.txt: * compositing/overflow-trumps-transform-style-expected.txt: * compositing/overflow/clip-descendents-expected.txt: * compositing/overflow/content-gains-scrollbars-expected.txt: * compositing/overflow/content-loses-scrollbars-expected.txt: * compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: * compositing/overflow/overflow-scrollbar-layers-expected.txt: * compositing/overflow/resize-painting-expected.txt: * compositing/plugins/no-backing-store-expected.txt: * compositing/plugins/small-to-large-composited-plugin-expected.txt: * compositing/regions/fixed-in-named-flow-clip-descendant-expected.txt: * compositing/regions/fixed-in-named-flow-expected.txt: * compositing/regions/fixed-in-named-flow-from-abs-in-named-flow-expected.txt: * compositing/regions/fixed-in-named-flow-from-outflow-expected.txt: * compositing/regions/fixed-in-named-flow-got-transformed-parent-expected.txt: * compositing/regions/fixed-in-named-flow-lost-transformed-parent-expected.txt: * compositing/regions/fixed-in-named-flow-overlap-composited-expected.txt: * compositing/regions/fixed-in-named-flow-transformed-parent-expected.txt: * compositing/regions/fixed-transformed-in-named-flow-expected.txt: * compositing/repaint/absolute-painted-into-composited-ancestor-expected.txt: * compositing/repaint/fixed-background-scroll-expected.txt: * compositing/repaint/positioned-movement-expected.txt: * compositing/repaint/repaint-on-layer-grouping-change-expected.txt: * compositing/repaint/resize-repaint-expected.txt: * compositing/rtl/rtl-absolute-expected.txt: * compositing/rtl/rtl-absolute-overflow-expected.txt: * compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * compositing/rtl/rtl-fixed-expected.txt: * compositing/rtl/rtl-fixed-overflow-expected.txt: * compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * compositing/rtl/rtl-relative-expected.txt: * compositing/tiled-layers-hidpi-expected.txt: * compositing/visibility/layer-visible-content-expected.txt: * platform/mac-wk2/compositing/contents-opaque/body-background-painted-expected.txt: * platform/mac-wk2/compositing/contents-opaque/body-background-skipped-expected.txt: * platform/mac-wk2/compositing/repaint/fixed-background-scroll-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-absolute-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-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-wk2/compositing/tiling/tile-cache-zoomed-expected.txt: * platform/mac-wk2/compositing/tiling/tiled-layer-resize-expected.txt: * platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-expected.txt: * platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-background-no-image-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-body-layer-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-opacity-html-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-positioned-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-transformed-html-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-html-background-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-non-propagated-body-background-expected.txt: * platform/mac-wk2/tiled-drawing/simple-document-with-margin-tiles-expected.txt: * platform/mac-wk2/tiled-drawing/sticky/sticky-layers-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-speculative-expected.txt: * platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt: * platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt: * platform/mac/compositing/canvas/accelerated-canvas-compositing-expected.txt: * platform/mac/compositing/geometry/fixed-position-composited-switch-expected.txt: * platform/mac/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/mac/compositing/iframes/resizer-expected.txt: * platform/mac/compositing/images/direct-image-object-fit-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/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt: * platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt: * platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt: * platform/mac/compositing/repaint/invalidations-on-composited-layers-expected.txt: * platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/mac/compositing/tiling/crash-reparent-tiled-layer-expected.txt: * platform/mac/compositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/mac/compositing/tiling/huge-layer-img-expected.txt: * platform/mac/compositing/tiling/huge-layer-with-layer-children-expected.txt: * platform/mac/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt: * platform/mac/compositing/tiling/tiled-layer-resize-expected.txt: * platform/mac/compositing/video/video-object-fit-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-by-viewport-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/iframe-no-layers-expected.txt: * platform/mac/compositing/visible-rect/nested-transform-expected.txt: * platform/mac/compositing/visible-rect/scrolled-expected.txt: Canonical link: https://commits.webkit.org/150565@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@168244 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-05-04 20:40:40 +00:00
(anchor 0.00 0.00)
(bounds 785.00 5021.00)
(visible rect 0.00, 3000.00 785.00 x 600.00)
Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached https://bugs.webkit.org/show_bug.cgi?id=144165 Reviewed by Dean Jackson. New results for platform/mac-wk2/tiled-drawing tests that dump layer trees. * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/simple-document-with-margin-tiles-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-speculative-expected.txt: * platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt: * platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt: * platform/mac-wk2/tiled-drawing/visible-rect-content-inset-expected.txt: Canonical link: https://commits.webkit.org/162167@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-25 01:02:59 +00:00
(coverage rect 0.00, 3000.00 785.00 x 600.00)
(intersects coverage rect 1)
Hardware accelerated CSS transitions appear pixelated when scaled up using transform https://bugs.webkit.org/show_bug.cgi?id=27684 <rdar://problem/6134606> Source/WebCore: Reviewed by Dean Jackson. Take transforms and animations into account when computing the contentsScale for a layer, so that scaled-up layers remain sharp most of the time. In its recursiveCommitChanges() tree walk, GraphicsLayerCA now tracks a root-relative transform, and extracts from that transform the X and Y scales which it uses to scale the backing store. If the layer has transform animations on it, we keep around a transformation matrix for the animation endpoints (or keyframes), pick up the state that has the larger impact on the root-relative scale, and use that as the layer's transform, and the transform when recursing over descendants. Tests: compositing/contents-scale/animating.html compositing/contents-scale/scaled-ancestor.html compositing/contents-scale/simple-scale.html compositing/contents-scale/z-translate.html * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::maxScaleFromTransform): Decompose the transform if necesssary to extract the X and Y scale components. (WebCore::GraphicsLayerCA::GraphicsLayerCA): Initialize m_rootRelativeScaleFactor. (WebCore::GraphicsLayerCA::flushCompositingState): Supply a TransformationMatrix for the root of the recursion. (WebCore::GraphicsLayerCA::layerTransform): This code was factored out of computeVisibleRect(), and optionally takes a custom transform. (WebCore::GraphicsLayerCA::computeVisibleRect): Use the layerTransform() function. (WebCore::GraphicsLayerCA::updateRootRelativeScale): Given a transform from the root, find the max scale factor by multiplying the various animation endpoint matrices and picking the one with the biggest impact on scale. Use this to set m_rootRelativeScaleFactor, and set the flag to say that we need to update contentsScale. (WebCore::GraphicsLayerCA::recursiveCommitChanges): (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): After updating animations, call updateRootRelativeScale() to update m_rootRelativeScaleFactor. (WebCore::GraphicsLayerCA::updateAnimations): We have a side table of animation name to TransformationMatrix, so figure out which entries can be removed from that side table, and remove them. (WebCore::GraphicsLayerCA::setAnimationOnLayer): (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Store the matrices for animation endpoints/keyframes in the m_animationTransforms side table. We don't store them directly in LayerPropertyAnimation because we just want the final matrix for a transform list, and using a side table makes ownership easier to manage. (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact): goes through the matrices for the running animation endpoints/keyframes, and multiplies each with the transform up to this layer to find the matrix with the larger impact on scale. (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints): Returns a vector of TransformationMatrix for the from and to states. (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes): Returns a vector of TransformationMatrix for the keyframes. (WebCore::GraphicsLayerCA::updateContentsScale): Include m_rootRelativeScaleFactor in the scale factor computation. (WebCore::GraphicsLayerCA::dumpAdditionalProperties): If we're dumping visible rects, also dump the contentsScale. Convenient at these are useful to look at together, and I didn't want to pollute Internals with yet more flags. * platform/graphics/ca/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation): Formatting. LayoutTests: Reviewed by Dean Jackson. New tests that dump contentsScale under various scaling scenarios: * compositing/contents-scale/animating-expected.txt: Added. * compositing/contents-scale/animating.html: Added. * compositing/contents-scale/scaled-ancestor-expected.txt: Added. * compositing/contents-scale/scaled-ancestor.html: Added. * compositing/contents-scale/simple-scale-expected.txt: Added. * compositing/contents-scale/simple-scale.html: Added. * compositing/contents-scale/z-translate-expected.txt: Added. * compositing/contents-scale/z-translate.html: Added. These tests had Mac-specific results (which include visible rects and now contents scale) in the cross-platform directory, so cleaned up the cross-platform results and moved the Mac results to platform-mac. * compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt: * compositing/visible-rect/2d-transformed-expected.txt: * compositing/visible-rect/3d-transform-style-expected.txt: * compositing/visible-rect/3d-transformed-expected.txt: * compositing/visible-rect/animated-expected.txt: * compositing/visible-rect/animated-from-none-expected.txt: * compositing/visible-rect/clipped-by-viewport-expected.txt: * compositing/visible-rect/clipped-visible-rect-expected.txt: * compositing/visible-rect/flipped-preserve-3d-expected.txt: * compositing/visible-rect/iframe-and-layers-expected.txt: * compositing/visible-rect/nested-transform-expected.txt: * compositing/visible-rect/scrolled-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt: * platform/mac/compositing/visible-rect/2d-transformed-expected.txt: Copied from LayoutTests/compositing/visible-rect/2d-transformed-expected.txt. * platform/mac/compositing/visible-rect/3d-transform-style-expected.txt: Copied from LayoutTests/compositing/visible-rect/3d-transform-style-expected.txt. * platform/mac/compositing/visible-rect/3d-transformed-expected.txt: Copied from LayoutTests/compositing/visible-rect/3d-transformed-expected.txt. * platform/mac/compositing/visible-rect/animated-expected.txt: Copied from LayoutTests/compositing/visible-rect/animated-expected.txt. * platform/mac/compositing/visible-rect/animated-from-none-expected.txt: Copied from LayoutTests/compositing/visible-rect/animated-from-none-expected.txt. * platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt: Copied from LayoutTests/compositing/visible-rect/clipped-by-viewport-expected.txt. * platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt: Copied from LayoutTests/compositing/visible-rect/clipped-visible-rect-expected.txt. * platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt: Copied from LayoutTests/compositing/visible-rect/flipped-preserve-3d-expected.txt. * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt: Copied from LayoutTests/compositing/visible-rect/iframe-and-layers-expected.txt. * platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt: * platform/mac/compositing/visible-rect/nested-transform-expected.txt: Copied from LayoutTests/compositing/visible-rect/nested-transform-expected.txt. * platform/mac/compositing/visible-rect/scrolled-expected.txt: Copied from LayoutTests/compositing/visible-rect/scrolled-expected.txt. Canonical link: https://commits.webkit.org/139518@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155998 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-09-17 21:33:48 +00:00
(contentsScale 1.00)
(children 1
(GraphicsLayer
(bounds 785.00 5021.00)
Print GraphicsLayer::m_contentsOpaque if non-default (true) https://bugs.webkit.org/show_bug.cgi?id=108354 Reviewed by Simon Fraser. Source/WebCore: No new tests. This change facilitates testing of GraphicsLayer opaqueness. * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::dumpProperties): LayoutTests: * compositing/absolute-inside-out-of-view-fixed-expected.txt: * compositing/backing/no-backing-for-clip-expected.txt: * compositing/backing/no-backing-for-clip-overlap-expected.txt: * compositing/backing/no-backing-for-perspective-expected.txt: * compositing/bounds-in-flipped-writing-mode-expected.txt: * compositing/clip-child-by-non-stacking-ancestor-expected.txt: * compositing/columns/composited-in-paginated-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-layer-expected.txt: * compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt: * compositing/geometry/ancestor-overflow-change-expected.txt: * compositing/geometry/bounds-clipped-composited-child-expected.txt: * compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt: * compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * compositing/geometry/bounds-ignores-hidden-expected.txt: * compositing/geometry/clip-expected.txt: * compositing/geometry/clip-inside-expected.txt: * compositing/geometry/composited-in-columns-expected.txt: * compositing/geometry/fixed-position-composited-switch-expected.txt: * compositing/geometry/flipped-writing-mode-expected.txt: * compositing/geometry/foreground-layer-expected.txt: * compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt: * compositing/geometry/layer-due-to-layer-children-switch-expected.txt: * compositing/geometry/limit-layer-bounds-clipping-ancestor-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-overflow-root-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/geometry/limit-layer-bounds-transformed-overflow-expected.txt: * compositing/geometry/preserve-3d-switching-expected.txt: * compositing/iframes/become-composited-nested-iframes-expected.txt: * compositing/iframes/become-overlapped-iframe-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/iframe-size-from-zero-expected.txt: * compositing/iframes/invisible-nested-iframe-hide-expected.txt: * compositing/iframes/invisible-nested-iframe-show-expected.txt: * compositing/iframes/overlapped-iframe-expected.txt: * compositing/iframes/overlapped-iframe-iframe-expected.txt: * compositing/iframes/overlapped-nested-iframes-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/layer-creation/animation-overlap-with-children-expected.txt: * compositing/layer-creation/fixed-position-and-transform-expected.txt: * compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: * compositing/layer-creation/fixed-position-out-of-view-expected.txt: * compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt: * compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt: * compositing/layer-creation/fixed-position-under-transform-expected.txt: * compositing/layer-creation/no-compositing-for-fixed-position-under-transform-expected.txt: * compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: * compositing/layer-creation/overflow-scroll-overlap-expected.txt: * compositing/layer-creation/overlap-animation-clipping-expected.txt: * compositing/layer-creation/overlap-animation-container-expected.txt: * compositing/layer-creation/overlap-animation-expected.txt: * compositing/layer-creation/overlap-child-layer-expected.txt: * compositing/layer-creation/overlap-clipping-expected.txt: * compositing/layer-creation/overlap-transformed-3d-expected.txt: * compositing/layer-creation/overlap-transformed-and-clipped-expected.txt: * compositing/layer-creation/overlap-transformed-layer-expected.txt: * compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt: * compositing/layer-creation/overlap-transforms-expected.txt: * compositing/layer-creation/rotate3d-overlap-expected.txt: * compositing/layer-creation/scroll-partial-update-expected.txt: * compositing/layer-creation/spanOverlapsCanvas-expected.txt: * compositing/layer-creation/stacking-context-overlap-expected.txt: * compositing/layer-creation/stacking-context-overlap-nested-expected.txt: * compositing/layer-creation/translatez-overlap-expected.txt: * compositing/masks/mask-layer-size-expected.txt: * compositing/overflow-trumps-transform-style-expected.txt: * compositing/overflow/clip-descendents-expected.txt: * compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * compositing/overflow/content-gains-scrollbars-expected.txt: * compositing/overflow/content-loses-scrollbars-expected.txt: * compositing/overflow/overflow-auto-with-touch-expected.txt: * compositing/overflow/overflow-auto-with-touch-toggle-expected.txt: * compositing/overflow/overflow-overlay-with-touch-expected.txt: * compositing/overflow/overflow-scrollbar-layers-expected.txt: * compositing/overflow/resize-painting-expected.txt: * compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: * compositing/overflow/scrolling-without-painting-expected.txt: * compositing/overflow/textarea-scroll-touch-expected.txt: * compositing/overflow/updating-scrolling-content-expected.txt: * compositing/plugins/no-backing-store-expected.txt: * compositing/plugins/small-to-large-composited-plugin-expected.txt: * compositing/repaint/invalidations-on-composited-layers-expected.txt: * compositing/repaint/resize-repaint-expected.txt: * compositing/rtl/rtl-absolute-expected.txt: * compositing/rtl/rtl-absolute-overflow-expected.txt: * compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * compositing/rtl/rtl-fixed-expected.txt: * compositing/rtl/rtl-fixed-overflow-expected.txt: * compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * compositing/rtl/rtl-iframe-absolute-expected.txt: * compositing/rtl/rtl-iframe-absolute-overflow-expected.txt: * compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.txt: * compositing/rtl/rtl-iframe-fixed-expected.txt: * compositing/rtl/rtl-iframe-fixed-overflow-expected.txt: * compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.txt: * compositing/rtl/rtl-iframe-relative-expected.txt: * compositing/rtl/rtl-relative-expected.txt: * compositing/tiled-layers-hidpi-expected.txt: * compositing/tiling/backface-preserve-3d-tiled-expected.txt: * compositing/tiling/crash-reparent-tiled-layer-expected.txt: * compositing/tiling/huge-layer-add-remove-child-expected.txt: * compositing/tiling/huge-layer-expected.txt: * compositing/tiling/huge-layer-img-expected.txt: * compositing/tiling/huge-layer-resize-expected.txt: * compositing/tiling/huge-layer-with-layer-children-expected.txt: * compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: * compositing/tiling/rotated-tiled-clamped-expected.txt: * compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * compositing/tiling/tile-cache-zoomed-expected.txt: * compositing/tiling/tiled-layer-resize-expected.txt: * compositing/visibility/layer-visible-content-expected.txt: * compositing/visibility/visibility-image-layers-dynamic-expected.txt: * compositing/visible-rect/2d-transformed-expected.txt: * compositing/visible-rect/3d-transform-style-expected.txt: * compositing/visible-rect/3d-transformed-expected.txt: * compositing/visible-rect/animated-expected.txt: * compositing/visible-rect/animated-from-none-expected.txt: * compositing/visible-rect/clipped-by-viewport-expected.txt: * compositing/visible-rect/clipped-visible-rect-expected.txt: * compositing/visible-rect/iframe-and-layers-expected.txt: * compositing/visible-rect/iframe-no-layers-expected.txt: * compositing/visible-rect/nested-transform-expected.txt: * compositing/visible-rect/scrolled-expected.txt: * css3/compositing/should-have-compositing-layer-expected.txt: * css3/filters/filtered-compositing-descendant-expected.txt: * platform/chromium-android/compositing/layer-creation/overflow-scrolling-touch-expected.txt: * platform/chromium-linux-x86/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/chromium-linux-x86/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * platform/chromium-linux-x86/platform/chromium/virtual/softwarecompositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium-linux-x86/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium-linux-x86/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium-linux-x86/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium-linux/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/chromium-linux/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * platform/chromium-linux/platform/chromium/virtual/softwarecompositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium-linux/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium-linux/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium-linux/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium-mac/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/chromium-mac/compositing/repaint/invalidations-on-composited-layers-expected.txt: * platform/chromium-mac/compositing/tiling/crash-reparent-tiled-layer-expected.txt: * platform/chromium-mac/compositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/chromium-mac/compositing/tiling/huge-layer-with-layer-children-expected.txt: * platform/chromium-mac/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: * platform/chromium-mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/chromium-mac/css3/filters/composited-during-animation-layertree-expected.txt: * platform/chromium-mac/css3/filters/composited-during-transition-layertree-expected.txt: * platform/chromium-mac/platform/chromium/virtual/gpu/compositedscrolling/overflow/scrolling-without-painting-expected.txt: * platform/chromium-mac/platform/chromium/virtual/gpu/compositedscrolling/overflow/textarea-scroll-touch-expected.txt: * platform/chromium-mac/platform/chromium/virtual/gpu/compositedscrolling/overflow/updating-scrolling-content-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/repaint/invalidations-on-composited-layers-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/chromium-mac/platform/chromium/virtual/softwarecompositing/tiling/huge-layer-with-layer-children-expected.txt: * platform/chromium-mac/platform/chromium/virtual/threaded/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/chromium-win-xp/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/chromium-win-xp/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * platform/chromium-win-xp/platform/chromium/virtual/softwarecompositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium-win-xp/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium-win-xp/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium-win-xp/platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium-win/compositing/backing/no-backing-for-clip-expected.txt: * platform/chromium-win/compositing/backing/no-backing-for-clip-overlap-expected.txt: * platform/chromium-win/compositing/backing/no-backing-for-perspective-expected.txt: * platform/chromium-win/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/chromium-win/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * platform/chromium-win/compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt: * platform/chromium-win/compositing/geometry/layer-due-to-layer-children-switch-expected.txt: * platform/chromium-win/compositing/geometry/limit-layer-bounds-overflow-root-expected.txt: * platform/chromium-win/compositing/geometry/preserve-3d-switching-expected.txt: * platform/chromium-win/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/chromium-win/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: * platform/chromium-win/compositing/layer-creation/scroll-partial-update-expected.txt: * platform/chromium-win/compositing/tiling/crash-reparent-tiled-layer-expected.txt: * platform/chromium-win/compositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/chromium-win/compositing/tiling/huge-layer-expected.txt: * platform/chromium-win/compositing/tiling/huge-layer-resize-expected.txt: * platform/chromium-win/compositing/tiling/huge-layer-with-layer-children-expected.txt: * platform/chromium-win/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: * platform/chromium-win/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/chromium-win/css3/filters/composited-during-animation-layertree-expected.txt: * platform/chromium-win/css3/filters/composited-during-transition-layertree-expected.txt: * platform/chromium/TestExpectations: * platform/chromium/compositing/backing/no-backing-for-clip-expected.txt: * platform/chromium/compositing/backing/no-backing-for-clip-overlap-expected.txt: * platform/chromium/compositing/backing/no-backing-for-perspective-expected.txt: * platform/chromium/compositing/canvas/accelerated-canvas-compositing-expected.txt: * platform/chromium/compositing/columns/composited-in-paginated-expected.txt: * platform/chromium/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: * platform/chromium/compositing/filters/sw-shadow-overlaps-hw-layer-expected.txt: * platform/chromium/compositing/force-compositing-mode/force-composite-empty-expected.txt: * platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer-expected.txt: * platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer-expected.txt: * platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing-expected.txt: * platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer-expected.txt: * platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing-expected.txt: * platform/chromium/compositing/geometry/ancestor-overflow-change-expected.txt: * platform/chromium/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/chromium/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: * platform/chromium/compositing/geometry/clip-expected.txt: * platform/chromium/compositing/geometry/clip-inside-expected.txt: * platform/chromium/compositing/geometry/composited-in-columns-expected.txt: * platform/chromium/compositing/geometry/fixed-position-composited-switch-expected.txt: * platform/chromium/compositing/geometry/flipped-writing-mode-expected.txt: * platform/chromium/compositing/geometry/foreground-layer-expected.txt: * platform/chromium/compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt: * platform/chromium/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt: * platform/chromium/compositing/geometry/limit-layer-bounds-overflow-root-expected.txt: * platform/chromium/compositing/geometry/limit-layer-bounds-positioned-expected.txt: * platform/chromium/compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt: * platform/chromium/compositing/geometry/limit-layer-bounds-transformed-expected.txt: * platform/chromium/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: * platform/chromium/compositing/geometry/preserve-3d-switching-expected.txt: * platform/chromium/compositing/iframes/become-composited-nested-iframes-expected.txt: * platform/chromium/compositing/iframes/become-overlapped-iframe-expected.txt: * platform/chromium/compositing/iframes/composited-parent-iframe-expected.txt: * platform/chromium/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * platform/chromium/compositing/iframes/connect-compositing-iframe-expected.txt: * platform/chromium/compositing/iframes/connect-compositing-iframe2-expected.txt: * platform/chromium/compositing/iframes/connect-compositing-iframe3-expected.txt: * platform/chromium/compositing/iframes/enter-compositing-iframe-expected.txt: * platform/chromium/compositing/iframes/iframe-resize-expected.txt: * platform/chromium/compositing/iframes/iframe-size-from-zero-expected.txt: * platform/chromium/compositing/iframes/invisible-nested-iframe-hide-expected.txt: * platform/chromium/compositing/iframes/overlapped-iframe-expected.txt: * platform/chromium/compositing/iframes/overlapped-iframe-iframe-expected.txt: * platform/chromium/compositing/iframes/overlapped-nested-iframes-expected.txt: * platform/chromium/compositing/iframes/resizer-expected.txt: * platform/chromium/compositing/iframes/scrolling-iframe-expected.txt: * platform/chromium/compositing/layer-creation/fixed-position-and-transform-expected.txt: * platform/chromium/compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: * platform/chromium/compositing/layer-creation/fixed-position-out-of-view-expected.txt: * platform/chromium/compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt: * platform/chromium/compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt: * platform/chromium/compositing/layer-creation/fixed-position-under-transform-expected.txt: * platform/chromium/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: * platform/chromium/compositing/layer-creation/overflow-scroll-overlap-expected.txt: * platform/chromium/compositing/layer-creation/overlap-animation-clipping-expected.txt: * platform/chromium/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/chromium/compositing/layer-creation/overlap-animation-expected.txt: * platform/chromium/compositing/layer-creation/overlap-child-layer-expected.txt: * platform/chromium/compositing/layer-creation/overlap-clipping-expected.txt: * platform/chromium/compositing/layer-creation/overlap-transformed-3d-expected.txt: * platform/chromium/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt: * platform/chromium/compositing/layer-creation/overlap-transformed-layer-expected.txt: * platform/chromium/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt: * platform/chromium/compositing/layer-creation/overlap-transforms-expected.txt: * platform/chromium/compositing/layer-creation/scroll-partial-update-expected.txt: * platform/chromium/compositing/layer-creation/spanOverlapsCanvas-expected.txt: * platform/chromium/compositing/layer-creation/stacking-context-overlap-expected.txt: * platform/chromium/compositing/layer-creation/stacking-context-overlap-nested-expected.txt: * platform/chromium/compositing/layer-creation/translatez-overlap-expected.txt: * platform/chromium/compositing/overflow-trumps-transform-style-expected.txt: * platform/chromium/compositing/overflow/clip-descendents-expected.txt: * platform/chromium/compositing/overflow/content-gains-scrollbars-expected.txt: * platform/chromium/compositing/overflow/content-loses-scrollbars-expected.txt: * platform/chromium/compositing/overflow/overflow-scrollbar-layers-expected.txt: * platform/chromium/compositing/overflow/resize-painting-expected.txt: * platform/chromium/compositing/rtl/rtl-absolute-expected.txt: * platform/chromium/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/chromium/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: * platform/chromium/compositing/rtl/rtl-fixed-expected.txt: * platform/chromium/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/chromium/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/chromium/compositing/rtl/rtl-iframe-absolute-expected.txt: * platform/chromium/compositing/rtl/rtl-iframe-fixed-expected.txt: * platform/chromium/compositing/rtl/rtl-iframe-relative-expected.txt: * platform/chromium/compositing/rtl/rtl-relative-expected.txt: * platform/chromium/compositing/tiling/huge-layer-img-expected.txt: * platform/chromium/css3/filters/filtered-compositing-descendant-expected.txt: * platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/content-gains-scrollbars-expected.txt: * platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-auto-with-touch-toggle-expected.txt: * platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-scrollbar-layers-expected.txt: * platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/resize-painting-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/overflow/content-gains-scrollbars-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/overflow/overflow-scrollbar-layers-expected.txt: * platform/chromium/platform/chromium/virtual/softwarecompositing/overflow/resize-painting-expected.txt: * platform/efl/compositing/geometry/foreground-layer-expected.txt: * platform/efl/compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: * platform/efl/compositing/repaint/invalidations-on-composited-layers-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-fixed-expected.txt: * platform/mac-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-background-no-image-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-body-layer-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-opacity-html-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-positioned-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-transformed-html-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-html-background-expected.txt: * platform/mac-wk2/tiled-drawing/fixed-background/fixed-non-propagated-body-background-expected.txt: * platform/mac-wk2/tiled-drawing/fixed/four-bars-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt: * platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt: * platform/mac/TestExpectations: * platform/mac/compositing/canvas/accelerated-canvas-compositing-expected.txt: * platform/mac/compositing/geometry/fixed-position-composited-switch-expected.txt: * platform/mac/compositing/iframes/resizer-expected.txt: * platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/mac/compositing/repaint/invalidations-on-composited-layers-expected.txt: * platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt: * platform/mac/compositing/tiling/crash-reparent-tiled-layer-expected.txt: * platform/mac/compositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/mac/compositing/tiling/huge-layer-expected.txt: * platform/mac/compositing/tiling/huge-layer-img-expected.txt: * platform/mac/compositing/tiling/huge-layer-resize-expected.txt: * platform/mac/compositing/tiling/huge-layer-with-layer-children-expected.txt: * platform/mac/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt: * platform/mac/compositing/tiling/tiled-layer-resize-expected.txt: * platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt: * platform/mac/css3/filters/composited-during-animation-layertree-expected.txt: * platform/qt-5.0-wk2/compositing/columns/composited-in-paginated-expected.txt: * platform/qt-5.0-wk2/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/become-composited-nested-iframes-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/become-overlapped-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/composited-parent-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/connect-compositing-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/connect-compositing-iframe2-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/connect-compositing-iframe3-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/enter-compositing-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/iframe-resize-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/leave-compositing-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/overlapped-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/overlapped-nested-iframes-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/page-cache-layer-tree-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/resizer-expected.txt: * platform/qt-5.0-wk2/compositing/iframes/scrolling-iframe-expected.txt: * platform/qt-5.0-wk2/compositing/layer-creation/fixed-position-and-transform-expected.txt: * platform/qt-5.0-wk2/compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: * platform/qt-5.0-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt: * platform/qt-5.0-wk2/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: * platform/qt-5.0-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: * platform/qt-5.0-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-absolute-overflow-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-fixed-overflow-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-iframe-fixed-overflow-expected.txt: * platform/qt-5.0-wk2/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.txt: * platform/qt-5.0-wk2/compositing/tiled-layers-hidpi-expected.txt: * platform/qt-5.0-wk2/compositing/tiling/crash-reparent-tiled-layer-expected.txt: * platform/qt-5.0-wk2/compositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/qt-5.0-wk2/compositing/tiling/huge-layer-with-layer-children-expected.txt: * platform/qt-5.0-wk2/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: * platform/qt-5.0-wk2/css3/filters/composited-during-animation-layertree-expected.txt: * platform/qt/compositing/backing/no-backing-for-clip-expected.txt: * platform/qt/compositing/backing/no-backing-for-clip-overlap-expected.txt: * platform/qt/compositing/backing/no-backing-for-perspective-expected.txt: * platform/qt/compositing/geometry/preserve-3d-switching-expected.txt: * platform/qt/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/qt/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: * platform/qt/compositing/layer-creation/overlap-animation-container-expected.txt: * platform/qt/compositing/overflow/clip-descendents-expected.txt: * platform/qt/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: * platform/qt/css3/compositing/should-have-compositing-layer-expected.txt: * platform/qt/css3/filters/composited-during-transition-layertree-expected.txt: * platform/win/compositing/iframes/composited-iframe-expected.txt: * platform/win/compositing/iframes/invisible-nested-iframe-show-expected.txt: * platform/win/compositing/iframes/overlapped-iframe-iframe-expected.txt: * platform/win/compositing/tiling/huge-layer-add-remove-child-expected.txt: * platform/win/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/win/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: Canonical link: https://commits.webkit.org/126896@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-02-01 21:16:42 +00:00
(contentsOpaque 1)
(visible rect 0.00, 3000.00 785.00 x 600.00)
Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached https://bugs.webkit.org/show_bug.cgi?id=144165 Reviewed by Dean Jackson. New results for platform/mac-wk2/tiled-drawing tests that dump layer trees. * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt: * platform/mac-wk2/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/simple-document-with-margin-tiles-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-speculative-expected.txt: * platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt: * platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt: * platform/mac-wk2/tiled-drawing/visible-rect-content-inset-expected.txt: Canonical link: https://commits.webkit.org/162167@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-25 01:02:59 +00:00
(coverage rect 0.00, 3000.00 785.00 x 600.00)
(intersects coverage rect 1)
Hardware accelerated CSS transitions appear pixelated when scaled up using transform https://bugs.webkit.org/show_bug.cgi?id=27684 <rdar://problem/6134606> Source/WebCore: Reviewed by Dean Jackson. Take transforms and animations into account when computing the contentsScale for a layer, so that scaled-up layers remain sharp most of the time. In its recursiveCommitChanges() tree walk, GraphicsLayerCA now tracks a root-relative transform, and extracts from that transform the X and Y scales which it uses to scale the backing store. If the layer has transform animations on it, we keep around a transformation matrix for the animation endpoints (or keyframes), pick up the state that has the larger impact on the root-relative scale, and use that as the layer's transform, and the transform when recursing over descendants. Tests: compositing/contents-scale/animating.html compositing/contents-scale/scaled-ancestor.html compositing/contents-scale/simple-scale.html compositing/contents-scale/z-translate.html * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::maxScaleFromTransform): Decompose the transform if necesssary to extract the X and Y scale components. (WebCore::GraphicsLayerCA::GraphicsLayerCA): Initialize m_rootRelativeScaleFactor. (WebCore::GraphicsLayerCA::flushCompositingState): Supply a TransformationMatrix for the root of the recursion. (WebCore::GraphicsLayerCA::layerTransform): This code was factored out of computeVisibleRect(), and optionally takes a custom transform. (WebCore::GraphicsLayerCA::computeVisibleRect): Use the layerTransform() function. (WebCore::GraphicsLayerCA::updateRootRelativeScale): Given a transform from the root, find the max scale factor by multiplying the various animation endpoint matrices and picking the one with the biggest impact on scale. Use this to set m_rootRelativeScaleFactor, and set the flag to say that we need to update contentsScale. (WebCore::GraphicsLayerCA::recursiveCommitChanges): (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): After updating animations, call updateRootRelativeScale() to update m_rootRelativeScaleFactor. (WebCore::GraphicsLayerCA::updateAnimations): We have a side table of animation name to TransformationMatrix, so figure out which entries can be removed from that side table, and remove them. (WebCore::GraphicsLayerCA::setAnimationOnLayer): (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Store the matrices for animation endpoints/keyframes in the m_animationTransforms side table. We don't store them directly in LayerPropertyAnimation because we just want the final matrix for a transform list, and using a side table makes ownership easier to manage. (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact): goes through the matrices for the running animation endpoints/keyframes, and multiplies each with the transform up to this layer to find the matrix with the larger impact on scale. (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints): Returns a vector of TransformationMatrix for the from and to states. (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes): Returns a vector of TransformationMatrix for the keyframes. (WebCore::GraphicsLayerCA::updateContentsScale): Include m_rootRelativeScaleFactor in the scale factor computation. (WebCore::GraphicsLayerCA::dumpAdditionalProperties): If we're dumping visible rects, also dump the contentsScale. Convenient at these are useful to look at together, and I didn't want to pollute Internals with yet more flags. * platform/graphics/ca/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation): Formatting. LayoutTests: Reviewed by Dean Jackson. New tests that dump contentsScale under various scaling scenarios: * compositing/contents-scale/animating-expected.txt: Added. * compositing/contents-scale/animating.html: Added. * compositing/contents-scale/scaled-ancestor-expected.txt: Added. * compositing/contents-scale/scaled-ancestor.html: Added. * compositing/contents-scale/simple-scale-expected.txt: Added. * compositing/contents-scale/simple-scale.html: Added. * compositing/contents-scale/z-translate-expected.txt: Added. * compositing/contents-scale/z-translate.html: Added. These tests had Mac-specific results (which include visible rects and now contents scale) in the cross-platform directory, so cleaned up the cross-platform results and moved the Mac results to platform-mac. * compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: * compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt: * compositing/visible-rect/2d-transformed-expected.txt: * compositing/visible-rect/3d-transform-style-expected.txt: * compositing/visible-rect/3d-transformed-expected.txt: * compositing/visible-rect/animated-expected.txt: * compositing/visible-rect/animated-from-none-expected.txt: * compositing/visible-rect/clipped-by-viewport-expected.txt: * compositing/visible-rect/clipped-visible-rect-expected.txt: * compositing/visible-rect/flipped-preserve-3d-expected.txt: * compositing/visible-rect/iframe-and-layers-expected.txt: * compositing/visible-rect/nested-transform-expected.txt: * compositing/visible-rect/scrolled-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt: * platform/mac/compositing/visible-rect/2d-transformed-expected.txt: Copied from LayoutTests/compositing/visible-rect/2d-transformed-expected.txt. * platform/mac/compositing/visible-rect/3d-transform-style-expected.txt: Copied from LayoutTests/compositing/visible-rect/3d-transform-style-expected.txt. * platform/mac/compositing/visible-rect/3d-transformed-expected.txt: Copied from LayoutTests/compositing/visible-rect/3d-transformed-expected.txt. * platform/mac/compositing/visible-rect/animated-expected.txt: Copied from LayoutTests/compositing/visible-rect/animated-expected.txt. * platform/mac/compositing/visible-rect/animated-from-none-expected.txt: Copied from LayoutTests/compositing/visible-rect/animated-from-none-expected.txt. * platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt: Copied from LayoutTests/compositing/visible-rect/clipped-by-viewport-expected.txt. * platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt: Copied from LayoutTests/compositing/visible-rect/clipped-visible-rect-expected.txt. * platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt: Copied from LayoutTests/compositing/visible-rect/flipped-preserve-3d-expected.txt. * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt: Copied from LayoutTests/compositing/visible-rect/iframe-and-layers-expected.txt. * platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt: * platform/mac/compositing/visible-rect/nested-transform-expected.txt: Copied from LayoutTests/compositing/visible-rect/nested-transform-expected.txt. * platform/mac/compositing/visible-rect/scrolled-expected.txt: Copied from LayoutTests/compositing/visible-rect/scrolled-expected.txt. Canonical link: https://commits.webkit.org/139518@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155998 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-09-17 21:33:48 +00:00
(contentsScale 1.00)
Create fewer tiles when page is loading https://bugs.webkit.org/show_bug.cgi?id=114294 Source/WebCore: Reviewed by Anders Carlsson. We currently create speculative tiles immediately. Page is often changing rapidly during loading and keeping the speculative tiles up to date creates extra work. Tests: platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative.html platform/mac-wk2/tiled-drawing/tile-coverage-speculative.html * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadProgressingStatusChanged): * page/FrameView.cpp: (WebCore::FrameView::adjustTiledBackingCoverage): (WebCore::FrameView::setWasScrolledByUser): User scrolling enables speculative tiling no matter what the load status. * page/FrameView.h: * rendering/RenderLayerBacking.cpp: (WebCore::computeTileCoverage): (WebCore::RenderLayerBacking::adjustTiledBackingCoverage): Cover only the viewport during loading. LayoutTests: Reviewed by Anders Carlsson. Reduced initial tile counts and new tests for speculative tiles. * platform/mac-wk2/tiled-drawing/fixed-background/fixed-background-no-image-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt: Added. * platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative.html: Added. * platform/mac-wk2/tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-speculative-expected.txt: Added. * platform/mac-wk2/tiled-drawing/tile-coverage-speculative.html: Added. * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt: * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt: * platform/mac-wk2/tiled-drawing/use-tiled-drawing-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-body-layer-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-opacity-html-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-positioned-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-transformed-html-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-zoomed-expected.txt: * platform/mac/platform/mac-wk2/tiled-drawing/fixed-background/fixed-html-background-expected.txt: Canonical link: https://commits.webkit.org/132710@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@148089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-04-10 11:34:53 +00:00
(tile cache coverage 0, 2560 785 x 1536)
Use larger tiles when possible to reduce per-tile painting overhead https://bugs.webkit.org/show_bug.cgi?id=154985 Reviewed by Zalan Bujtas. Source/WebCore: r197541 inadvertently missed FrameView changes that push scrollability data onto the TiledBacking, so didn't actually change behavior (hence the 512x512 tiles in the failing tests). Also remove m_tileSizeAtLastRevalidate from TileGrid; it's replaced by a simpler test. * page/FrameView.cpp: (WebCore::FrameView::addedOrRemovedScrollbar): * platform/graphics/ca/TileGrid.cpp: (WebCore::TileGrid::revalidateTiles): (WebCore::TileGrid::TileGrid): Deleted. * platform/graphics/ca/TileGrid.h: LayoutTests: * tiled-drawing/background-transparency-toggle-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt: * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * tiled-drawing/tile-coverage-after-scroll-expected.txt: * tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt: * tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * tiled-drawing/tile-coverage-speculative-expected.txt: * tiled-drawing/tile-size-unscrollable-expected.txt: * tiled-drawing/tile-size-vertically-scrollable-expected.txt: * tiled-drawing/visible-rect-content-inset-expected.txt: Canonical link: https://commits.webkit.org/173128@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@197594 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-03-04 23:32:22 +00:00
(tile size 785 x 512)
(top left tile 0, 5 tiles grid 1 x 3)
Correctly set the "inWindow" flag for TileControllers that aren't the page tiles, and clarify "usingTiledBacking" logic https://bugs.webkit.org/show_bug.cgi?id=167774 Reviewed by Tim Horton. Source/WebCore: RenderLayerBacking had some very confusing "usingTiledCacheLayer" uses. Its member variable, m_usingTiledCacheLayer, really meant "m_isMainFrameLayerWithTiledBacking" so make it so. It had a usingTiledBacking(), which returned the same thing, which this patch replaces with isMainFrameLayerWithTiledBacking(). The fact that usingTiledBacking() was only true for the page tiled layer tripped up RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants(), which would only ever call setIsInWindow() on the page tiled layer. These changes fix that. Also make a way for tests to unparent the web view via UIScriptController, and dump out the "in window" status of TileBackings when dumping tile caches. Test: tiled-drawing/tiled-backing-in-window.html * platform/graphics/TiledBacking.h: * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::dumpAdditionalProperties): * platform/graphics/ca/TileController.h: * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::RenderLayerBacking): (WebCore::computePageTiledBackingCoverage): (WebCore::RenderLayerBacking::adjustTiledBackingCoverage): (WebCore::RenderLayerBacking::setTiledBackingHasMargins): (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): (WebCore::RenderLayerBacking::shouldClipCompositedBounds): (WebCore::RenderLayerBacking::updateDescendantClippingLayer): (WebCore::RenderLayerBacking::updateRootLayerConfiguration): (WebCore::RenderLayerBacking::paintsIntoWindow): (WebCore::computeTileCoverage): Deleted. * rendering/RenderLayerBacking.h: * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::flushPendingLayerChanges): (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged): (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants): (WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing): (WebCore::RenderLayerCompositor::documentUsesTiledBacking): Tools: Implement UIScriptController removeViewFromWindow() and addViewToWindow(), and hook up for Mac WK1 and WK2, and iOS WK2. It takes a callback because view state updates to the web process are async, so the callback fires after the web process gets the new state. * DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::removeViewFromWindow): (WTR::UIScriptController::addViewToWindow): * DumpRenderTree/mac/DumpRenderTree.mm: (createWebViewAndOffscreenWindow): (resetWebViewToConsistentStateBeforeTesting): * DumpRenderTree/mac/DumpRenderTreeMac.h: * DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::removeViewFromWindow): (WTR::UIScriptController::addViewToWindow): * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::removeViewFromWindow): (WTR::UIScriptController::addViewToWindow): * TestRunnerShared/UIScriptContext/UIScriptController.h: * WebKitTestRunner/PlatformWebView.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (WTR::PlatformWebView::removeFromWindow): (WTR::PlatformWebView::addToWindow): * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::removeViewFromWindow): (WTR::UIScriptController::addViewToWindow): * WebKitTestRunner/mac/PlatformWebViewMac.mm: (WTR::PlatformWebView::removeFromWindow): (WTR::PlatformWebView::addToWindow): * WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::removeViewFromWindow): (WTR::UIScriptController::addViewToWindow): LayoutTests: Rebase to include the "in window" output. tiled-drawing/background-transparency-toggle.html was sensitive to the length of the output, so give the body a fixed size. * compositing/tiling/offscreen-tiled-layer-expected.txt: * compositing/tiling/transform-origin-tiled-expected.txt: * platform/mac-wk1/compositing/tiling/offscreen-tiled-layer-expected.txt: * platform/mac-wk1/compositing/tiling/transform-origin-tiled-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-wk2/compositing/tiling/tile-cache-zoomed-expected.txt: * platform/mac-wk2/compositing/tiling/tiled-layer-resize-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt: * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: * platform/mac/compositing/tiling/tiled-layer-resize-expected.txt: * tiled-drawing/background-transparency-toggle-expected.txt: * tiled-drawing/background-transparency-toggle.html: * tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt: * tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt: * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt: * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt: * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt: * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt: * tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt: * tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-transformed-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt: * tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt: * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt: * tiled-drawing/simple-document-with-margin-tiles-expected.txt: * tiled-drawing/tile-coverage-after-scroll-expected.txt: * tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt: * tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt: * tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * tiled-drawing/tile-coverage-speculative-expected.txt: * tiled-drawing/tile-coverage-view-exposed-rect-expected.txt: * tiled-drawing/tile-size-both-scrollable-expected.txt: * tiled-drawing/tile-size-horizontally-scrollable-expected.txt: * tiled-drawing/tile-size-slow-zoomed-expected.txt: * tiled-drawing/tile-size-unscrollable-expected.txt: * tiled-drawing/tile-size-vertically-scrollable-expected.txt: * tiled-drawing/tile-size-view-exposed-rect-expected.txt: * tiled-drawing/tiled-backing-in-window-expected.txt: Added. * tiled-drawing/tiled-backing-in-window.html: Added. * tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt: * tiled-drawing/tiled-drawing-zoom-expected.txt: * tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt: * tiled-drawing/use-tiled-drawing-expected.txt: * tiled-drawing/visible-rect-content-inset-expected.txt: Canonical link: https://commits.webkit.org/184865@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-02-04 01:53:38 +00:00
(in window 1)
)
)
)