Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 40c110f3827900735328b80bbd98d0a223583ce8
https://github.com/WebKit/WebKit/commit/40c110f3827900735328b80bbd98d0a223583ce8
Author: Kimmo Kinnunen <[email protected]>
Date: 2026-03-02 (Mon, 02 Mar 2026)
Changed paths:
M Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp
M Source/WebCore/PlatformMac.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/SourcesCocoa.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/editing/cocoa/EditorCocoa.mm
M Source/WebCore/html/HTMLCanvasElement.cpp
M Source/WebCore/html/OffscreenCanvas.cpp
M Source/WebCore/inspector/InspectorCanvas.cpp
M Source/WebCore/inspector/agents/InspectorLayerTreeAgent.cpp
M Source/WebCore/inspector/agents/InspectorPageAgent.cpp
M Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp
M Source/WebCore/page/FrameConsoleClient.cpp
M Source/WebCore/platform/MIMETypeRegistry.cpp
M Source/WebCore/platform/SourcesCairo.txt
M Source/WebCore/platform/SourcesSkia.txt
M Source/WebCore/platform/graphics/ImageBuffer.cpp
M Source/WebCore/platform/graphics/ImageBuffer.h
A Source/WebCore/platform/graphics/ImageUtilities.cpp
M Source/WebCore/platform/graphics/ImageUtilities.h
M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp
R Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp
R Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.h
A Source/WebCore/platform/graphics/cairo/ImageUtilitiesCairo.cpp
M Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp
M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp
R Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.cpp
R Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h
M Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.cpp
M Source/WebCore/platform/graphics/cg/ShareableBitmapCG.mm
M Source/WebCore/platform/graphics/cv/CVUtilities.mm
M Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp
R Source/WebCore/platform/graphics/skia/ImageBufferUtilitiesSkia.cpp
R Source/WebCore/platform/graphics/skia/ImageBufferUtilitiesSkia.h
A Source/WebCore/platform/graphics/skia/ImageUtilitiesSkia.cpp
M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
M Source/WebCore/workers/WorkerConsoleClient.cpp
M Source/WebKit/Shared/API/c/cg/WKImageCG.cpp
M
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
Log Message:
-----------
NativeImage should be encodable to blob and data url
https://bugs.webkit.org/show_bug.cgi?id=308706
rdar://171238751
Reviewed by Simon Fraser.
Move ImageBuffer::toData(...) to encodeData(const NativeImage&,...).
Add overloads for ImageBuffer.
NativeImage is the real object being encoded. Integrating the
functionality with ImageBuffer causes redundant conversions to
ImageBuffer that lose information as not all images are representable
in ImageBuffer.
This is work towards being able to use NativeImage as the representation
of canvas rendering context rendering. Future commits will change
various signatures of CanvasBase and related classes, to return
NativeImage instead of ImageBuffer. These functions are used to access
the canvas image for blob and data url encoding.
* Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):
* Source/WebCore/PlatformMac.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/editing/cocoa/EditorCocoa.mm:
* Source/WebCore/html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toDataURL):
(WebCore::HTMLCanvasElement::toBlob):
* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::convertToBlob):
* Source/WebCore/inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::getContentAsDataURL):
(WebCore::InspectorCanvas::indexForData):
(WebCore::InspectorCanvas::buildArrayForCanvasPattern):
* Source/WebCore/inspector/agents/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::requestContent):
* Source/WebCore/inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::snapshotNode):
(WebCore::InspectorPageAgent::snapshotRect):
* Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp:
(WebCore::PageTimelineAgent::captureScreenshot):
* Source/WebCore/page/FrameConsoleClient.cpp:
(WebCore::FrameConsoleClient::screenshot):
* Source/WebCore/platform/MIMETypeRegistry.cpp:
* Source/WebCore/platform/SourcesCairo.txt:
* Source/WebCore/platform/SourcesSkia.txt:
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::copyImageBufferToOpaqueNativeImage): Deleted.
(WebCore::ImageBuffer::toDataURL const): Deleted.
(WebCore::ImageBuffer::toData const): Deleted.
(WebCore::ImageBuffer::toDataURL): Deleted.
(WebCore::ImageBuffer::toData): Deleted.
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/platform/graphics/ImageUtilities.cpp: Added.
(WebCore::encodeData):
(WebCore::encodeDataURL):
* Source/WebCore/platform/graphics/ImageUtilities.h:
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
* Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.h: Removed.
* Source/WebCore/platform/graphics/cairo/ImageUtilitiesCairo.cpp: Renamed from
Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp.
(WebCore::platformEncodeData):
* Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp:
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
* Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.cpp: Removed.
* Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h: Removed.
* Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.cpp:
(WebCore::transcodeImages):
(WebCore::verifyImageBufferIsBigEnough):
(WebCore::jpegUTI):
(WebCore::utiFromImageBufferMIMEType):
(WebCore::imagePropertiesForDestinationUTIAndQuality):
(WebCore::encode):
(WebCore::encodeToVector):
(WebCore::encodeData):
(WebCore::encodeDataURL):
(WebCore::platformEncodeData):
* Source/WebCore/platform/graphics/cg/ShareableBitmapCG.mm:
* Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:
* Source/WebCore/platform/graphics/skia/ImageBufferUtilitiesSkia.h: Removed.
* Source/WebCore/platform/graphics/skia/ImageUtilitiesSkia.cpp: Renamed from
Source/WebCore/platform/graphics/skia/ImageBufferUtilitiesSkia.cpp.
(WebCore::platformEncodeData):
* Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::takePhotoInternal):
* Source/WebCore/workers/WorkerConsoleClient.cpp:
(WebCore::WorkerConsoleClient::screenshot):
* Source/WebKit/Shared/API/c/cg/WKImageCG.cpp:
(WKImageCreateDataURLFromImage):
*
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsCaptureVisibleTab):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateAttachmentIcon):
Canonical link: https://commits.webkit.org/308505@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications