Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b7416f7b376405f643dade62ac637af3a4c1e5d1
https://github.com/WebKit/WebKit/commit/b7416f7b376405f643dade62ac637af3a4c1e5d1
Author: Said Abou-Hallawa <[email protected]>
Date: 2026-10-08 (Thu, 08 Oct 2026)
Changed paths:
M Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.h
M Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.mm
M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp
M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.h
M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.messages.in
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextProxy.cpp
Log Message:
-----------
REGRESSION(322274@main): [ iOS ] system-preview/svg-image.html is a constant
crash (CRASH)
https://bugs.webkit.org/show_bug.cgi?id=326522
rdar://189316935
Reviewed by Mike Wyrzykowski.
The problem is in SystemImage, which creates a NativeImage from the SVGImage in
two separate places. While SVGImageCache existed, it cached the NativeImage, so
both call sites got the same one. Without the cache, each call site creates its
own NativeImage.
Before sending the DrawSystemImage message to the GPU process, we first share
the NativeImage with it. We then send the RenderingResourceIdentifier of the
NativeImage. The sharing identifier differs from the drawing identifier. The GPU
process therefore can't find the NativeImage in its cache and terminates the
WebContent process.
The fix is to cache the NativeImage in SystemImage, which does not need to hold
a pointer to the Image. As with DrawNativeImage, the NativeImage is shared
first.
Then its RenderingResourceIdentifier is sent in a new message,
DrawBadgeSystemImage.
* Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.h:
* Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.mm:
(WebCore::ARKitBadgeSystemImage::create):
(WebCore::ARKitBadgeSystemImage::createWithoutImage):
(WebCore::ARKitBadgeSystemImage::draw const):
(WebCore::ARKitBadgeSystemImage::imageIdentifier const): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp:
(WebKit::RemoteGraphicsContext::drawBadgeSystemImage):
(WebKit::RemoteGraphicsContext::drawSystemImage):
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.h:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.messages.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextProxy.cpp:
(WebKit::RemoteGraphicsContextProxy::drawSystemImage):
Canonical link: https://commits.webkit.org/323123@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications