[webkit-changes] [WebKit/WebKit] ecd29c: [GPU Process] Refactor ShareableBitmapConfiguration
Said Abou-Hallawa
noreply at github.com
Mon Apr 3 17:31:29 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ecd29c94a78726d4a23e10222a1b00b5572c8fca
https://github.com/WebKit/WebKit/commit/ecd29c94a78726d4a23e10222a1b00b5572c8fca
Author: Said Abou-Hallawa <said at apple.com>
Date: 2023-04-03 (Mon, 03 Apr 2023)
Changed paths:
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/GPUProcess/graphics/wc/WCScene.cpp
M Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp
M Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp
M Source/WebKit/Shared/ContextMenuContextData.cpp
M Source/WebKit/Shared/ShareableBitmap.cpp
M Source/WebKit/Shared/ShareableBitmap.h
M Source/WebKit/Shared/ShareableBitmap.serialization.in
M Source/WebKit/Shared/ShareableBitmapHandle.cpp
M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
M Source/WebKit/Shared/cairo/ShareableBitmapCairo.cpp
M Source/WebKit/Shared/cg/ShareableBitmapCG.cpp
M Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp
M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp
M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
M Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp
M Source/WebKit/WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp
M Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm
M Source/WebKit/WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp
M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
M Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm
Log Message:
-----------
[GPU Process] Refactor ShareableBitmapConfiguration
https://bugs.webkit.org/show_bug.cgi?id=254925
rdar://107567337
Reviewed by Simon Fraser.
ShareableBitmapConfiguration needs to hold the size of the ShareableBitmap so it
can self calculate the sizeInBytes. Also it should hold and IPC the bitmap properties
instead of calculating them every time they are needed.
The caller should create ShareableBitmap only if sizeInBytes does not have overflow.
So ShareableBitmapConfiguration does not have to return the bitmap properties in
CheckedUint32 but just unsigned.
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getFilteredImageForImageBuffer):
* Source/WebKit/GPUProcess/graphics/wc/WCScene.cpp:
(WebKit::WCScene::update):
* Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::bitmapImageForCurrentTime):
* Source/WebKit/Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::setImage):
(WebKit::ContextMenuContextData::setPotentialQRCodeNodeSnapshotImage):
(WebKit::ContextMenuContextData::setPotentialQRCodeViewportSnapshotImage):
* Source/WebKit/Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmapConfiguration::ShareableBitmapConfiguration):
(WebKit::ShareableBitmapConfiguration::calculateSizeInBytes):
(WebKit::ShareableBitmap::create):
(WebKit::ShareableBitmap::createReadOnly):
(WebKit::ShareableBitmap::createHandle const):
(WebKit::ShareableBitmap::createReadOnlyHandle const):
(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::numBytesForSize): Deleted.
* Source/WebKit/Shared/ShareableBitmap.h:
(WebKit::ShareableBitmapConfiguration::size const):
(WebKit::ShareableBitmapConfiguration::colorSpace const):
(WebKit::ShareableBitmapConfiguration::platformColorSpace const):
(WebKit::ShareableBitmapConfiguration::isOpaque const):
(WebKit::ShareableBitmapConfiguration::bytesPerPixel const):
(WebKit::ShareableBitmapConfiguration::bytesPerRow const):
(WebKit::ShareableBitmapConfiguration::bitmapInfo const):
(WebKit::ShareableBitmapConfiguration::sizeInBytes const):
(WebKit::ShareableBitmap::size const):
(WebKit::ShareableBitmap::bytesPerRow const):
(WebKit::ShareableBitmap::sizeInBytes const):
* Source/WebKit/Shared/ShareableBitmap.serialization.in:
* Source/WebKit/Shared/ShareableBitmapHandle.cpp:
(WebKit::ShareableBitmapHandle::ShareableBitmapHandle):
(WebKit::ShareableBitmapHandle::clear):
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<RefPtr<Image>>::encode):
* Source/WebKit/Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmapConfiguration::validateColorSpace):
(WebKit::ShareableBitmapConfiguration::calculateBytesPerPixel):
(WebKit::ShareableBitmapConfiguration::calculateBytesPerRow):
(WebKit::ShareableBitmap::paint):
(WebKit::ShareableBitmap::createPersistentCairoSurface):
(WebKit::ShareableBitmap::createCairoSurface):
(WebKit::ShareableBitmap::validateConfiguration): Deleted.
(WebKit::ShareableBitmap::calculateBytesPerRow): Deleted.
(WebKit::ShareableBitmap::calculateBytesPerPixel): Deleted.
* Source/WebKit/Shared/cg/ShareableBitmapCG.cpp:
(WebKit::ShareableBitmapConfiguration::validateColorSpace):
(WebKit::wantsExtendedRange):
(WebKit::ShareableBitmapConfiguration::calculateBytesPerPixel):
(WebKit::ShareableBitmapConfiguration::calculateBytesPerRow):
(WebKit::ShareableBitmapConfiguration::calculateBitmapInfo):
(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::paint):
(WebKit::ShareableBitmap::createCGImage const):
(WebKit::ShareableBitmap::validateConfiguration): Deleted.
(WebKit::colorSpace): Deleted.
(WebKit::bitmapInfo): Deleted.
(WebKit::ShareableBitmap::calculateBytesPerRow): Deleted.
(WebKit::ShareableBitmap::calculateBytesPerPixel): Deleted.
* Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::encodeImage):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::convertPlatformImageToBitmap):
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::calculateSafeBackendSize):
(WebKit::ImageBufferShareableBitmapBackend::calculateBytesPerRow):
(WebKit::ImageBufferShareableBitmapBackend::create):
(WebKit::ImageBufferShareableBitmapBackend::configuration): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::createShareableBitmapFromNativeImage):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::snapshot):
* Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:
(WebKit::createShareableBitmap):
* Source/WebKit/WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::convertCairoSurfaceToShareableBitmap):
* Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertDragImageToBitmap):
* Source/WebKit/WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
(WebKit::WebPopupMenu::setUpPlatformData):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::display):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::drawToImage):
* Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm:
(WebKit::WebTextTrackRepresentationCocoa::update):
Canonical link: https://commits.webkit.org/262547@main
More information about the webkit-changes
mailing list