[webkit-changes] [WebKit/WebKit] 3912f3: Have PlatformCALayerRemoteCustom plumb preservesFl...

Nikos Mouchtaris noreply at github.com
Mon Dec 5 12:23:41 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3912f312cb1e86980a0630241041c5ddc80c189f
      https://github.com/WebKit/WebKit/commit/3912f312cb1e86980a0630241041c5ddc80c189f
  Author: Nikolaos Mouchtaris <nmouchtaris at apple.com>
  Date:   2022-12-05 (Mon, 05 Dec 2022)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h
    M Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h
    M Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm
    M Source/WebKit/Platform/cocoa/LayerHostingContext.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PluginView.cpp
    M Source/WebKit/WebProcess/Plugins/PluginView.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h

  Log Message:
  -----------
  Have PlatformCALayerRemoteCustom plumb preservesFlip to UIProcess
https://bugs.webkit.org/show_bug.cgi?id=247341
rdar://101786702

Reviewed by Tim Horton and Simon Fraser.

Since the effects of setGeometryFlipped don't cross a hosting boundary,
it is not propogated to the PDFKit layers being hosted in the WebProcess
when UI-side compositing is on. This causes rendering to look wrong and
scrolling in the wrong direction. To solve this issue, we plumb a bit through
to the UIProcess to set preservesFlip, which allows the value of geometryFlipped
to propogate through layer hosting. We also add a check for ui-side compositing
when creating PDF scrollbars due to a bug where the scrollbars didn't reflect the
geometryFlipped value of its ancestor.

* Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h:
* Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm:
(+[CALayer _web_renderLayerWithContextID:shouldPreserveFlip:]):
(+[CALayer _web_renderLayerWithContextID:]): Deleted.
* Source/WebKit/Platform/cocoa/LayerHostingContext.mm:
(WebKit::LayerHostingContext::createPlatformLayerForHostingContext):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::enterAcceleratedCompositingMode):
(WebKit::PageClientImpl::didFirstLayerFlush):
(WebKit::PageClientImpl::updateAcceleratedCompositingMode):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::populateCreationProperties):

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




More information about the webkit-changes mailing list