haikuwebkit/LayoutTests/tiled-drawing/tile-size-slow-zoomed-expec...

26 lines
730 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 1334.00 994.00)
(visible rect 0.00, 0.00 785.00 x 585.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, 0.00 785.00 x 585.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
(anchor 0.00 0.00)
(bounds 785.00 585.00)
(contentsOpaque 1)
(transform [1.70 0.00 0.00 0.00] [0.00 1.70 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
(visible rect 0.00, 0.00 461.76 x 344.12)
Expand compositing coverage rect when scrolling and animating https://bugs.webkit.org/show_bug.cgi?id=144214 rdar://problem/20695926 Reviewed by Darin Adler. Source/WebCore: r183300 added a secondary rect that gets mapped through graphics layers during layer flushing, which represents a rect, in layer coordinates, that represents the portion of this layer that's visible in the viewport. This patch extends that rect based on scrolling and animating, with the extended coverage rect being mapped into descendants (where it's used to determine whether they should detach their backing store). This required moving the responsibility for extending the coverage rect from TileController (where it was used to compute tiled extent), to GraphicsLayerCA. Thus, GraphicsLayerCA now owns the concept of coverage rect, and pushes it onto TileControllers. Test: compositing/tiling/transform-origin-tiled.html * platform/graphics/TiledBacking.h: Coverage rect is now pushed onto TiledBacking from outside; new functions reflect that. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): No need to pass old visible rect to commitLayerChangesBeforeSublayers. (WebCore::accumulatesTransform): (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush): Now calls computeVisibleAndCoverageRect(), then adjustCoverageRect() which adjusts for scrolling and animations. (WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect): Fetch the coverage rect from the TransformState, but we can only use this if mapping it through various transforms didn't clamp it (which can happen with severe rotations in perspective). (WebCore::GraphicsLayerCA::adjustCoverageRect): If this layer represents the page tiled backing, ask the TileController to do coverage adjustment (code which should move into here eventually). For other tiled layers, do motion-based adjustment. This should really be done for all layers (an animating non-tiled layer may contain a tiled layer). (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): The VisibleRectChanged wasn't needed any more; layers only react to changed in coverage rect now. (WebCore::GraphicsLayerCA::recursiveCommitChanges): If adjustCoverageRect() changed the coverage rect, here we push the new rect back into the TransformState so it will affect descendants. (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): (WebCore::GraphicsLayerCA::updateCoverage): Coverage and backing store attachment go hand-in-hand now. (WebCore::GraphicsLayerCA::changeLayerTypeTo): (WebCore::GraphicsLayerCA::computeVisibleRect): Deleted. (WebCore::GraphicsLayerCA::updateBackingStoreAttachment): Deleted. (WebCore::GraphicsLayerCA::updateVisibleRect): Deleted. * platform/graphics/ca/GraphicsLayerCA.h: * platform/graphics/ca/TileController.cpp: (WebCore::TileController::setVisibleRect): Visible rect is only used for scroll performance logging now. (WebCore::TileController::setCoverageRect): (WebCore::TileController::tilesWouldChangeForCoverageRect): (WebCore::TileController::revalidateTiles): (WebCore::TileController::boundsForSize): This is required because when computeTileCoverageRect() is called at the top of committing the owning layer, we haven't yet pushed a new size to the underlying platform layer (which TileController::bounds() consults). (WebCore::TileController::bounds): (WebCore::TileController::computeTileCoverageRect): Have to push the new size in, since the underlying layer hasn't been updated yet. (WebCore::TileController::didRevalidateTiles): (WebCore::TileController::tilesWouldChangeForVisibleRect): Deleted. * platform/graphics/ca/TileController.h: * platform/graphics/ca/TileCoverageMap.cpp: (WebCore::TileCoverageMap::TileCoverageMap): Add a layer to the tile map that shows a dark blue outline for the coverage rect. (WebCore::TileCoverageMap::update): Fix some minor issues with map position when top content inset is non-zero. * platform/graphics/ca/TileCoverageMap.h: * platform/graphics/ca/TileGrid.cpp: Everything is in terms of coverage rect now. (WebCore::TileGrid::tilesWouldChangeForCoverageRect): (WebCore::TileGrid::revalidateTiles): (WebCore::TileGrid::tilesWouldChangeForVisibleRect): Deleted. * platform/graphics/ca/TileGrid.h: * platform/graphics/transforms/TransformState.cpp: (WebCore::TransformState::operator=): (WebCore::TransformState::mappedQuad): Pass direction into mapQuad(). (WebCore::TransformState::mappedSecondaryQuad): Ditto. (WebCore::TransformState::setLastPlanarSecondaryQuad): This function allows a caller to pass in a secondary quad, and get it mapped into the coordinate space of the last "flattening" state (since the TransformState may have in-flight XY offset, or transform). This mapping is achieved by re-using mapQuad(), but in the inverse direction. (WebCore::TransformState::mapQuad): Make direction a parameter. (WebCore::TransformState::flattenWithTransform): This code omitted to map the secondary quad. Failure was detected by tests. * platform/graphics/transforms/TransformState.h: (WebCore::TransformState::isMappingSecondaryQuad): (WebCore::TransformState::direction): (WebCore::TransformState::inverseDirection): (WebCore::TransformState::lastPlanarSecondaryQuad): Deleted. LayoutTests: New baselines for tests dumping layer output, with coverage rect being affected by this changeset. One new test for tiling a layer inside overflow:hidden with transform-origin. * 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/tiling/transform-origin-tiled.html: Added. * 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/visible-rect/iframe-no-layers-expected.txt: * 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-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/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: * platform/mac/compositing/visible-rect/3d-transformed-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/iframe-and-layers-expected.txt: * platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt: * platform/mac/compositing/visible-rect/scrolled-expected.txt: Canonical link: https://commits.webkit.org/162220@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-26 17:24:40 +00:00
(coverage rect 0.00, 0.00 461.76 x 344.12)
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
(intersects coverage rect 1)
(contentsScale 1.70)
(tile cache coverage 0, 0 602 x 584)
Should get rid of TileController's CoverageForSlowScrolling mode https://bugs.webkit.org/show_bug.cgi?id=128339 Reviewed by Simon Fraser. Source/WebCore: This patch gets rid of CoverageForSlowScrolling in the TileController. It also makes sure that margin tiles are properly invalidated on pages with slow repaint objects that cause slow scrolling. When we invalidate because of slow scrolling, don’t clip the update rect to the layer bounds. * page/FrameView.cpp: (WebCore::FrameView::scrollContentsSlowPath): Call new RenderObject paint function repaintSlowRepaintObject() instead of the more-generic repaint(). (WebCore::FrameView::repaintSlowRepaintObjects): Remove CoverageForSlowScrolling. * platform/graphics/TiledBacking.h: * platform/graphics/ca/mac/TileController.h: * platform/graphics/ca/mac/TileController.mm: (WebCore::TileController::tilesWouldChangeForVisibleRect): (WebCore::TileController::computeTileCoverageRect): (WebCore::TileController::revalidateTiles): * rendering/RenderLayerBacking.cpp: (WebCore::computeTileCoverage): Handle repainting a slow repaint object. Don’t clip when we shouldn’t, use the RenderView’s backgroundRect as a repaintRect when this is the root background since that will take the extended background rect into consideration. * rendering/RenderObject.cpp: (WebCore::RenderObject::repaintSlowRepaintObject): * rendering/RenderObject.h: LayoutTests: Slow scrolling no longer creates tiles of a different size. * platform/mac-wk2/tiled-drawing/fixed-background/fixed-non-propagated-body-background-expected.txt: * platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt: * platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt: Canonical link: https://commits.webkit.org/146444@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@163675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-02-08 02:12:43 +00:00
(tile size 512 x 512)
(top left tile 0, 0 tiles grid 2 x 2)
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)
)
)
)