Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 830fba3dbefa27251f85faf82f0147ff7440ed64
      
https://github.com/WebKit/WebKit/commit/830fba3dbefa27251f85faf82f0147ff7440ed64
  Author: Matt Woodrow <[email protected]>
  Date:   2026-10-15 (Thu, 15 Oct 2026)

  Changed paths:
    M Source/WebCore/Configurations/AllowedSPI-legacy.toml
    M Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h
    M Source/WebCore/page/Chrome.cpp
    M Source/WebCore/page/Chrome.h
    M Source/WebCore/page/ChromeClient.h
    M Source/WebCore/platform/GraphicsClient.h
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/ImageBuffer.h
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h
    M Source/WebCore/platform/graphics/cocoa/IOSurface.h
    M Source/WebCore/platform/graphics/cocoa/IOSurface.mm
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.cpp
    M Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteSnapshot.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteSnapshot.h
    M 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h

  Log Message:
  -----------
  Plumb useIOSurfaceWebKitBehavior through to accelerated ImageBuffer contexts
https://bugs.webkit.org/show_bug.cgi?id=327319
<rdar://problem/189859656>

Reviewed by Cameron McCormack.

As we do for CALayer, ask for WebKit behavior when creating the IOSurface 
context for an
accelerated ImageBuffer, in the web process and the GPU process, when the 
useWebKitBehavior
preference is on.

* Source/WebCore/Configurations/AllowedSPI-legacy.toml:
* Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:
* Source/WebCore/page/Chrome.cpp:
(WebCore::Chrome::useIOSurfaceWebKitBehavior const):
* Source/WebCore/page/Chrome.h:
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::useIOSurfaceWebKitBehavior const):
* Source/WebCore/platform/GraphicsClient.h:
(WebCore::GraphicsClient::useIOSurfaceWebKitBehavior const):
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::create):
(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::ensurePlatformContext):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
* Source/WebCore/platform/graphics/cocoa/IOSurface.h:
* Source/WebCore/platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::createPlatformContext):
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::sinkCompletedSnapshotToIOSurface):
* Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.cpp:
(WebKit::ImageBufferShareableAllocator::ImageBufferShareableAllocator):
(WebKit::ImageBufferShareableAllocator::createImageBuffer const):
* Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.h:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp:
(WebKit::RemoteGraphicsContext::drawFilteredImageBuffer):
(WebKit::RemoteGraphicsContext::useIOSurfaceWebKitBehavior const):
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::allocateImageBuffer):
* Source/WebKit/GPUProcess/graphics/RemoteSnapshot.cpp:
(WebKit::RemoteSnapshot::drawToIOSurface):
* Source/WebKit/GPUProcess/graphics/RemoteSnapshot.h:
* 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm:
(WebKit::RemoteLayerWithInProcessRenderingBackingStore::allocateBuffer):
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::useIOSurfaceWebKitBehavior const):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to