Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ab926d67967c8bd903746ff95aaeec64fcf43fbb https://github.com/WebKit/WebKit/commit/ab926d67967c8bd903746ff95aaeec64fcf43fbb Author: Matt Woodrow <mattwood...@apple.com> Date: 2022-11-28 (Mon, 28 Nov 2022)
Changed paths: M Source/WebCore/html/ImageBitmap.cpp M Source/WebCore/html/ImageBitmapBacking.cpp M Source/WebCore/html/ImageBitmapBacking.h M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/html/OffscreenCanvas.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/NativeImage.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h Log Message: ----------- Read remote images back into local images before sending them to other threads. https://bugs.webkit.org/show_bug.cgi?id=248416 Reviewed by Kimmo Kinnunen. We currently can't use RemoteRenderingBackendProxy from other threads, so sending RemoteImageBufferProxys to other threads leaves us in an invalid state. This reads them back into local images before transferring so that we can access the contents. * Source/WebCore/html/ImageBitmap.cpp: (WebCore::ImageBitmap::detachBitmaps): (WebCore::ImageBitmap::~ImageBitmap): * Source/WebCore/html/ImageBitmapBacking.cpp: (WebCore::ImageBitmapBacking::takeImageBufferForDifferentThread): * Source/WebCore/html/ImageBitmapBacking.h: * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::OffscreenCanvas::detach): (WebCore::OffscreenCanvas::commitToPlaceholderCanvas): (WebCore::OffscreenCanvas::takeImageBufferForDifferentThread const): (WebCore::OffscreenCanvas::takeImageBuffer const): Deleted. * Source/WebCore/html/OffscreenCanvas.h: * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::cloneForDifferentThread): (WebCore::ImageBuffer::sinkIntoBufferForDifferentThread): * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebCore/platform/graphics/NativeImage.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::drawConsuming): (WebKit::RemoteImageBufferProxy::sinkIntoNativeImage): (WebKit::RemoteImageBufferProxy::sinkIntoBufferForDifferentThread): (WebKit::RemoteImageBufferProxy::cloneForDifferentThread): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: Canonical link: https://commits.webkit.org/257103@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes