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