Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set the RenderView's layer's anchorPoint to 0,0 #7802

Conversation

smfr
Copy link
Contributor

@smfr smfr commented Dec 17, 2022

7c22044

Set the RenderView's layer's anchorPoint to 0,0
https://bugs.webkit.org/show_bug.cgi?id=249517
<rdar://problem/103528523>

Reviewed by Matt Woodrow.

Zooming code gets easier if we always give the RenderView's layer an anchor point of [0,0], instead of the default [0.5,0.5].
This layer is only ever transformed via pinch-zooming, so this does not affect web-exposed behavior. The transform can be set
on both the m_graphicsLayer and m_contentsContainmentLayer (see calls to setAppliesPageScale()).

To avoid the need for > 600 layout test rebaselines, add code to RenderLayerBacking::shouldDumpPropertyForLayer() to
control whether to dump the anchor point on the RenderView's layer; we'll only dump it if it has something other
than the default 0,0 value. Undoing this hack is tracked by webkit.org/b/249600.

Rebaseline some tests that show that zooming already left a 0,0 anchor point on the layers.

* LayoutTests/compositing/canvas/hidpi-canvas-backing-store-invalidation-2-expected.txt:
* LayoutTests/compositing/fixed-with-fixed-layout-expected.txt:
* LayoutTests/compositing/layer-creation/zoomed-clip-intersection-expected.txt:
* LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
* LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
* LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
* LayoutTests/platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
* LayoutTests/platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
* LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt:
* LayoutTests/tiled-drawing/tile-size-slow-zoomed-expected.txt:
* LayoutTests/tiled-drawing/tiled-drawing-zoom-expected.txt:
* LayoutTests/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
* Source/WebCore/page/PageOverlayController.cpp:
(WebCore::PageOverlayController::shouldDumpPropertyForLayer const):
* Source/WebCore/page/PageOverlayController.h:
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateChildrenTransformAndAnchorPoint):
(WebCore::RenderLayerBacking::shouldDumpPropertyForLayer const):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldDumpPropertyForLayer const):
* Source/WebCore/rendering/RenderLayerCompositor.h:

Canonical link: https://commits.webkit.org/258284@main

6c2cc5e

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  πŸ§ͺ win
βœ… πŸ§ͺ bindings βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug βœ… πŸ›  gtk βœ… πŸ›  wincairo
βœ… πŸ§ͺ webkitperl βœ… πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac βœ… πŸ§ͺ gtk-wk2
  πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk1   πŸ§ͺ api-gtk
βœ… πŸ›  tv βœ… πŸ§ͺ mac-wk2
βœ… πŸ›  tv-sim βœ… πŸ§ͺ mac-AS-debug-wk2
βœ… πŸ›  watch βœ… πŸ§ͺ mac-wk2-stress
βœ… πŸ›  πŸ§ͺ merge βœ… πŸ›  watch-sim

@smfr smfr self-assigned this Dec 17, 2022
@smfr smfr added the Compositing Bugs related to layerization for transforms, video, scrolling etc label Dec 17, 2022
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Dec 17, 2022
@smfr smfr removed the merging-blocked Applied to prevent a change from being merged label Dec 19, 2022
@smfr smfr force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from 50b2d14 to 4846a0e Compare December 19, 2022 20:44
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Dec 19, 2022
@smfr smfr removed the merging-blocked Applied to prevent a change from being merged label Dec 20, 2022
@smfr smfr force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from 4846a0e to 7eaa2fb Compare December 20, 2022 00:09
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Dec 20, 2022
@smfr smfr removed the merging-blocked Applied to prevent a change from being merged label Dec 20, 2022
@smfr smfr force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from 7eaa2fb to d8487f9 Compare December 20, 2022 03:41
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Dec 20, 2022
@smfr smfr removed the merging-blocked Applied to prevent a change from being merged label Dec 21, 2022
@smfr smfr force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from d8487f9 to 5950e17 Compare December 21, 2022 00:00
@smfr smfr requested a review from cdumez as a code owner December 21, 2022 00:00
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Dec 21, 2022
@smfr smfr removed the merging-blocked Applied to prevent a change from being merged label Dec 22, 2022
@smfr smfr force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from 5950e17 to f729cb0 Compare December 22, 2022 19:01
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Dec 22, 2022
@smfr smfr removed the merging-blocked Applied to prevent a change from being merged label Dec 23, 2022
@smfr smfr force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from f729cb0 to 6c2cc5e Compare December 23, 2022 00:34
@smfr smfr requested a review from rniwa as a code owner December 23, 2022 00:34
@smfr smfr added the merge-queue Applied to send a pull request to merge-queue label Dec 23, 2022
https://bugs.webkit.org/show_bug.cgi?id=249517
<rdar://problem/103528523>

Reviewed by Matt Woodrow.

Zooming code gets easier if we always give the RenderView's layer an anchor point of [0,0], instead of the default [0.5,0.5].
This layer is only ever transformed via pinch-zooming, so this does not affect web-exposed behavior. The transform can be set
on both the m_graphicsLayer and m_contentsContainmentLayer (see calls to setAppliesPageScale()).

To avoid the need for > 600 layout test rebaselines, add code to RenderLayerBacking::shouldDumpPropertyForLayer() to
control whether to dump the anchor point on the RenderView's layer; we'll only dump it if it has something other
than the default 0,0 value. Undoing this hack is tracked by webkit.org/b/249600.

Rebaseline some tests that show that zooming already left a 0,0 anchor point on the layers.

* LayoutTests/compositing/canvas/hidpi-canvas-backing-store-invalidation-2-expected.txt:
* LayoutTests/compositing/fixed-with-fixed-layout-expected.txt:
* LayoutTests/compositing/layer-creation/zoomed-clip-intersection-expected.txt:
* LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
* LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
* LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
* LayoutTests/platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
* LayoutTests/platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
* LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt:
* LayoutTests/tiled-drawing/tile-size-slow-zoomed-expected.txt:
* LayoutTests/tiled-drawing/tiled-drawing-zoom-expected.txt:
* LayoutTests/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
* Source/WebCore/page/PageOverlayController.cpp:
(WebCore::PageOverlayController::shouldDumpPropertyForLayer const):
* Source/WebCore/page/PageOverlayController.h:
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateChildrenTransformAndAnchorPoint):
(WebCore::RenderLayerBacking::shouldDumpPropertyForLayer const):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldDumpPropertyForLayer const):
* Source/WebCore/rendering/RenderLayerCompositor.h:

Canonical link: https://commits.webkit.org/258284@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch from 6c2cc5e to 7c22044 Compare December 23, 2022 06:56
@webkit-commit-queue
Copy link
Collaborator

Committed 258284@main (7c22044): https://commits.webkit.org/258284@main

Reviewed commits have been landed. Closing PR #7802 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 7c22044 into WebKit:main Dec 23, 2022
@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Dec 23, 2022
@smfr smfr deleted the eng/Set-the-RenderViews-layers-anchorPoint-to-00 branch February 22, 2023 04:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Compositing Bugs related to layerization for transforms, video, scrolling etc
Projects
None yet
5 participants