Skip to content

Commit

Permalink
Move SharedMemory from WebKit down to WebCore
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=268521

Reviewed by Alex Christensen.

Move SharedMemory from WebKit down to WebCore. This will make our life easier
for serializing certain WebCore types (e.g. Image) for IPC.

* Source/WebCore/PlatformMac.cmake:
* Source/WebCore/PlatformPlayStation.cmake:
* Source/WebCore/PlatformWin.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/SourcesGTK.txt:
* Source/WebCore/SourcesWPE.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/Logging.h:
* Source/WebCore/platform/SharedMemory.cpp: Renamed from Source/WebKit/Platform/SharedMemory.cpp.
(WebCore::SharedMemoryHandle::SharedMemoryHandle):
(WebCore::SharedMemory::copyBuffer):
(WebCore::SharedMemory::createSharedBuffer const):
(WebCore::SharedMemoryHandle::takeOwnershipOfMemory const):
(WebCore::SharedMemoryHandle::setOwnershipOfMemory const):
* Source/WebCore/platform/SharedMemory.h: Renamed from Source/WebKit/Platform/SharedMemory.h.
(WebCore::SharedMemoryHandle::size const):
(WebCore::SharedMemory::size const):
(WebCore::SharedMemory::data const):
(WebCore::SharedMemory::handle const):
(WebCore::SharedMemory::protection const):
* Source/WebCore/platform/cocoa/SharedMemoryCocoa.cpp: Renamed from Source/WebKit/Platform/cocoa/SharedMemoryCocoa.cpp.
(WebCore::toVMMemoryLedger):
(WebCore::SharedMemoryHandle::takeOwnershipOfMemory const):
(WebCore::SharedMemoryHandle::setOwnershipOfMemory const):
(WebCore::toPointer):
(WebCore::toVMAddress):
(WebCore::SharedMemory::allocate):
(WebCore::machProtection):
(WebCore::makeMemoryEntry):
(WebCore::SharedMemory::wrapMap):
(WebCore::SharedMemory::map):
(WebCore::SharedMemory::~SharedMemory):
(WebCore::SharedMemory::createHandle):
(WebCore::SharedMemory::createSendRight const):
* Source/WebCore/platform/unix/SharedMemoryUnix.cpp: Renamed from Source/WebKit/Platform/unix/SharedMemoryUnix.cpp.
(WebCore::SharedMemoryHandle::releaseHandle):
(WebCore::accessModeMMap):
(WebCore::createSharedMemory):
(WebCore::SharedMemory::allocate):
(WebCore::SharedMemory::map):
(WebCore::SharedMemory::wrapMap):
(WebCore::SharedMemory::~SharedMemory):
(WebCore::SharedMemory::createHandle):
* Source/WebCore/platform/win/SharedMemoryWin.cpp: Renamed from Source/WebKit/Platform/win/SharedMemoryWin.cpp.
(WebCore::SharedMemory::allocate):
(WebCore::accessRights):
(WebCore::SharedMemory::map):
(WebCore::SharedMemory::~SharedMemory):
(WebCore::SharedMemory::createHandle):
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp:
(WebKit::RemoteImageBuffer::getPixelBufferWithNewMemory):
* Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h:
* Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
(WebKit::RemoteRenderingBackend::setSharedMemoryForGetPixelBuffer):
(WebKit::RemoteRenderingBackend::sharedMemoryForGetPixelBuffer const):
* Source/WebKit/GPUProcess/graphics/ShareablePixelBuffer.cpp:
* Source/WebKit/GPUProcess/graphics/ShareablePixelBuffer.h:
(WebKit::ShareablePixelBuffer::data const):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp:
(WebKit::RemoteDevice::setSharedVideoFrameMemory):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.messages.in:
* Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:
(WebKit::RemoteAudioDestinationManager::createAudioDestination):
* Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.h:
* Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.messages.in:
* Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:
* Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.messages.in:
* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h:
* Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h:
* Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
* Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.h:
* Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
* Source/WebKit/NetworkProcess/cache/NetworkCacheData.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheDataCocoa.mm:
(WebKit::NetworkCache::Data::tryCreateSharedMemory const):
* Source/WebKit/NetworkProcess/cache/NetworkCacheDataCurl.cpp:
* Source/WebKit/NetworkProcess/cache/NetworkCacheDataGLib.cpp:
* Source/WebKit/Platform/IPC/JSIPCBinding.h:
* Source/WebKit/Platform/IPC/SharedBufferReference.cpp:
(IPC::SharedBufferReference::sharedCopy const):
* Source/WebKit/Platform/IPC/SharedBufferReference.h:
(IPC::SharedBufferReference::SharedBufferReference):
* Source/WebKit/Platform/IPC/SharedBufferReference.serialization.in:
* Source/WebKit/Platform/IPC/StreamClientConnectionBuffer.h:
(IPC::StreamClientConnectionBuffer::create):
(IPC::StreamClientConnectionBuffer::StreamClientConnectionBuffer):
* Source/WebKit/Platform/IPC/StreamConnectionBuffer.cpp:
(IPC::StreamConnectionBuffer::StreamConnectionBuffer):
(IPC::StreamConnectionBuffer::createHandle):
* Source/WebKit/Platform/IPC/StreamConnectionBuffer.h:
* Source/WebKit/Platform/IPC/StreamServerConnection.serialization.in:
* Source/WebKit/Platform/IPC/StreamServerConnectionBuffer.h:
(IPC::StreamServerConnectionBuffer::map):
* Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
(IPC::Connection::sendOutgoingMessage):
* Source/WebKit/Platform/IPC/win/IPCSemaphoreWin.cpp:
* Source/WebKit/Platform/SharedMemory.serialization.in:
* Source/WebKit/Platform/Sources.txt:
* Source/WebKit/Platform/SourcesCocoa.txt:
* Source/WebKit/PlatformPlayStation.cmake:
* Source/WebKit/PlatformWin.cmake:
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_must_be_moved):
* Source/WebKit/Shared/Cocoa/SharedCARingBuffer.h:
(WebKit::ConsumerSharedCARingBufferHandle::takeOwnershipOfMemory):
* Source/WebKit/Shared/Cocoa/SharedCARingBuffer.serialization.in:
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::Font>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::Font>::decodePlatformData):
* Source/WebKit/Shared/IPCStreamTester.cpp:
(WebKit::IPCStreamTester::syncMessageReturningSharedMemory1):
* Source/WebKit/Shared/IPCStreamTester.h:
* Source/WebKit/Shared/IPCStreamTester.messages.in:
* Source/WebKit/Shared/IPCTester.h:
* Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.h:
* Source/WebKit/Shared/ShareableBitmap.cpp:
* Source/WebKit/Shared/ShareableBitmap.h:
(WebKit::ShareableBitmapHandle::handle):
* Source/WebKit/Shared/ShareableBitmap.serialization.in:
* Source/WebKit/Shared/ShareableResource.h:
* Source/WebKit/Shared/ShareableResource.serialization.in:
* Source/WebKit/Shared/SharedStringHashStore.h:
* Source/WebKit/Shared/SharedStringHashTable.cpp:
* Source/WebKit/Shared/SharedStringHashTableReadOnly.cpp:
* Source/WebKit/Shared/SharedStringHashTableReadOnly.h:
(WebKit::SharedStringHashTableReadOnly::sharedMemory const):
* Source/WebKit/Shared/WebCompiledContentRuleListData.cpp:
(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):
* Source/WebKit/Shared/WebCompiledContentRuleListData.h:
(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):
* Source/WebKit/Shared/WebCompiledContentRuleListData.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::FontCustomPlatformData>::encode):
(IPC::ArgumentCoder<FontCustomPlatformData>::decode):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebHitTestResultData.cpp:
(WebKit::WebHitTestResultData::WebHitTestResultData):
(WebKit::WebHitTestResultData::getImageSharedMemoryHandle const):
* Source/WebKit/Shared/WebHitTestResultData.h:
* Source/WebKit/Shared/WebHitTestResultData.serialization.in:
* Source/WebKit/Shared/WebImage.h:
* Source/WebKit/SourcesGTK.txt:
* Source/WebKit/SourcesWPE.txt:
* Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp:
* Source/WebKit/UIProcess/API/APIHitTestResult.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
(convertAndAddHighlight):
(-[WKWebView _restoreAppHighlights:]):
(-[WKWebView _restoreAndScrollToAppHighlight:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView requestSnapshot]):
* Source/WebKit/UIProcess/API/gtk/WebKitPrintOperation.cpp:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _snapshotRectAfterScreenUpdates:rectInViewCoordinates:intoImageOfWidth:completionHandler:]):
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/WebPasteboardProxy.cpp:
* Source/WebKit/UIProcess/WebPasteboardProxy.h:
* Source/WebKit/UIProcess/WebPasteboardProxy.messages.in:
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView _createImage:printFormatter:]):
* Source/WebKit/UIProcess/mac/WKPrintingView.mm:
(pageDidDrawToImage):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/GPUProcessConnection.h:
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:
(WebKit::ImageBufferBackendHandleSharing::takeBackendHandle):
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:
(WebKit::WebGPU::RemoteDeviceProxy::importExternalTexture):
* Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h:
* Source/WebKit/WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.h:
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::takeOwnershipOfMemory):
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h:
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
* Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.h:
* Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.h:
* Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.messages.in:
* Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.h:
* Source/WebKit/WebProcess/Gamepad/WebGamepad.h:
* Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.h:
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in:
* Source/WebKit/WebProcess/Storage/WebSWOriginTable.h:
* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:
(IPC::jsValueForDecodedArgumentValue):
* Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.h:
* Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.messages.in:
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::drawPagesForPrintingDuringDOMPrintOperation):
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h:

Canonical link: https://commits.webkit.org/273951@main
  • Loading branch information
cdumez committed Feb 1, 2024
1 parent ecb4508 commit 6c0bb66
Show file tree
Hide file tree
Showing 140 changed files with 333 additions and 367 deletions.
1 change: 1 addition & 0 deletions Source/WebCore/Headers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1757,6 +1757,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS
platform/SerializedPlatformDataCueValue.h
platform/SharedBuffer.h
platform/SharedBufferChunkReader.h
platform/SharedMemory.h
platform/SharedStringHash.h
platform/SimpleCaretAnimator.h
platform/SleepDisabler.h
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/PlatformMac.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ list(APPEND WebCore_SOURCES
platform/cocoa/RuntimeApplicationChecksCocoa.mm
platform/cocoa/SearchPopupMenuCocoa.mm
platform/cocoa/SharedBufferCocoa.mm
platform/cocoa/SharedMemoryCocoa.cpp
platform/cocoa/SystemBattery.mm
platform/cocoa/SystemVersion.mm
platform/cocoa/TelephoneNumberDetectorCocoa.cpp
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/PlatformPlayStation.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ list(APPEND WebCore_SOURCES
platform/text/LocaleICU.cpp

platform/unix/LoggingUnix.cpp
platform/unix/SharedMemoryUnix.cpp

rendering/playstation/RenderThemePlayStation.cpp
)
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/PlatformWin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ list(APPEND WebCore_SOURCES
platform/win/PlatformMouseEventWin.cpp
platform/win/PlatformScreenWin.cpp
platform/win/SearchPopupMenuDB.cpp
platform/win/SharedMemoryWin.cpp
platform/win/SystemInfo.cpp
platform/win/UserAgentWin.cpp
platform/win/WCDataObject.cpp
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/Sources.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2143,6 +2143,7 @@ platform/ScrollingMomentumCalculator.cpp
platform/SerializedPlatformDataCue.cpp
platform/SharedBuffer.cpp
platform/SharedBufferChunkReader.cpp
platform/SharedMemory.cpp
platform/SharedStringHash.cpp
platform/SimpleCaretAnimator.cpp
platform/SleepDisabler.cpp
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/SourcesCocoa.txt
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ platform/cocoa/RemoteCommandListenerCocoa.mm
platform/cocoa/RuntimeApplicationChecksCocoa.mm
platform/cocoa/SearchPopupMenuCocoa.mm
platform/cocoa/SharedBufferCocoa.mm
platform/cocoa/SharedMemoryCocoa.cpp
platform/cocoa/SystemVersion.mm
platform/cocoa/TelephoneNumberDetectorCocoa.cpp
platform/cocoa/TextRecognitionResultCocoa.mm
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/SourcesGTK.txt
Original file line number Diff line number Diff line change
Expand Up @@ -113,5 +113,6 @@ platform/text/enchant/TextCheckerEnchant.cpp
platform/text/hyphen/HyphenationLibHyphen.cpp

platform/unix/LoggingUnix.cpp
platform/unix/SharedMemoryUnix.cpp

platform/xdg/MIMETypeRegistryXdg.cpp
1 change: 1 addition & 0 deletions Source/WebCore/SourcesWPE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ platform/text/Hyphenation.cpp
platform/text/LocaleICU.cpp

platform/unix/LoggingUnix.cpp
platform/unix/SharedMemoryUnix.cpp

platform/wpe/PlatformScreenWPE.cpp

Expand Down
20 changes: 11 additions & 9 deletions Source/WebCore/WebCore.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1574,8 +1574,8 @@
4430D00D2575A8A50046D401 /* HighlightRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 44E88E50236A56AC009B4847 /* HighlightRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
4431EABA2AB9D54300E92FFA /* LegacyRenderSVGResourceContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4431EAB92AB9D54300E92FFA /* LegacyRenderSVGResourceContainer.h */; };
44355FDA2AF29A0C001ED218 /* RenderSVGResourceMarkerInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 44355FD72AF29A0B001ED218 /* RenderSVGResourceMarkerInlines.h */; };
44355FDC2AF29A0C001ED218 /* RenderSVGResourceMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = 44355FD92AF29A0B001ED218 /* RenderSVGResourceMarker.h */; };
44355FDA2AF29A0C001FC319 /* RenderSVGResourceMaskerInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 44355FD72AF29A0B001FC319 /* RenderSVGResourceMaskerInlines.h */; };
44355FDC2AF29A0C001ED218 /* RenderSVGResourceMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = 44355FD92AF29A0B001ED218 /* RenderSVGResourceMarker.h */; };
44355FDC2AF29A0C001FC319 /* RenderSVGResourceMasker.h in Headers */ = {isa = PBXBuildFile; fileRef = 44355FD92AF29A0B001FC319 /* RenderSVGResourceMasker.h */; };
4442169D2AC312AD00215D06 /* LegacyRenderSVGResourceClipperInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4442169C2AC312AC00215D06 /* LegacyRenderSVGResourceClipperInlines.h */; };
444F1AD32B0B860B00F8B95B /* LegacyRenderSVGResourceSolidColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 444F1AD12B0B860B00F8B95B /* LegacyRenderSVGResourceSolidColor.h */; };
Expand Down Expand Up @@ -1685,6 +1685,7 @@
468344E01EDDFAAA00B7795B /* DOMRectList.h in Headers */ = {isa = PBXBuildFile; fileRef = 468344DE1EDDFA5F00B7795B /* DOMRectList.h */; settings = {ATTRIBUTES = (Private, ); }; };
4683DF402767DF98007D00C8 /* JSShadowRealmGlobalScopeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4683DF3E2767DF98007D00C8 /* JSShadowRealmGlobalScopeBase.h */; };
4683DF412767E91A007D00C8 /* ShadowRealmGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4683DF3B2767DF26007D00C8 /* ShadowRealmGlobalScope.h */; settings = {ATTRIBUTES = (Private, ); }; };
4688C4B92B6B06F2003533C9 /* SharedMemory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4688C4B72B6B06F2003533C9 /* SharedMemory.h */; settings = {ATTRIBUTES = (Private, ); }; };
4688E98027B6B45000567CD2 /* CoreLocationGeolocationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 4688E97F27B6B44400567CD2 /* CoreLocationGeolocationProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
4688EE3C26DD2610002AF5C4 /* CrossOriginMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 4688EE3A26DD260C002AF5C4 /* CrossOriginMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
46893B8427E8D74C002CC13D /* PartitionedSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = 46893B8327E8D716002CC13D /* PartitionedSecurityOrigin.h */; settings = {ATTRIBUTES = (Private, ); }; };
Expand Down Expand Up @@ -4078,12 +4079,6 @@
A1F76B5B1F44D3B20014C318 /* PaymentComplete.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F76B581F44D3B20014C318 /* PaymentComplete.h */; };
A31C4E4F16E02AB4002F7957 /* OESTextureHalfFloat.h in Headers */ = {isa = PBXBuildFile; fileRef = A31C4E4E16E02AB4002F7957 /* OESTextureHalfFloat.h */; };
A31C4E5416E02B40002F7957 /* JSOESTextureHalfFloat.h in Headers */ = {isa = PBXBuildFile; fileRef = A31C4E5316E02B40002F7957 /* JSOESTextureHalfFloat.h */; };
A327F7B12B55519E0056A0E4 /* TrustedHTML.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32DCAEAA06CF46D3B1B8048C /* TrustedHTML.cpp */; };
A327F7B22B5552410056A0E4 /* TrustedScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32DCA370FA13034072AC5C43 /* TrustedScript.cpp */; };
A327F7B32B5552410056A0E4 /* TrustedScriptURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32DCA34F74DFCA903EBDBD93 /* TrustedScriptURL.cpp */; };
A327F7B42B5552410056A0E4 /* TrustedTypePolicy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32DCA218C1287ACD5006A93B /* TrustedTypePolicy.cpp */; };
A327F7B52B5552410056A0E4 /* TrustedTypePolicyFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A395DE882B347E4C002DA61A /* TrustedTypePolicyFactory.cpp */; };
A327F7B62B5552610056A0E4 /* WindowOrWorkerGlobalScopeTrustedTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A33A51222B31E6AA00284449 /* WindowOrWorkerGlobalScopeTrustedTypes.cpp */; };
A396B1C829232B4F00469612 /* LibWebRTCVPXVideoDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = A396B1C429232B4F00469612 /* LibWebRTCVPXVideoDecoder.h */; settings = {ATTRIBUTES = (Private, ); }; };
A396B1CA29232B4F00469612 /* LibWebRTCVPXVideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = A396B1C629232B4F00469612 /* LibWebRTCVPXVideoEncoder.h */; settings = {ATTRIBUTES = (Private, ); }; };
A39F8E232A1ECC2700967C09 /* ScrollbarGutter.h in Headers */ = {isa = PBXBuildFile; fileRef = A39F8E212A1ECBFC00967C09 /* ScrollbarGutter.h */; settings = {ATTRIBUTES = (Private, ); }; };
Expand Down Expand Up @@ -10438,10 +10433,10 @@
4431EAB92AB9D54300E92FFA /* LegacyRenderSVGResourceContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyRenderSVGResourceContainer.h; sourceTree = "<group>"; };
4431EABB2AB9D56000E92FFA /* LegacyRenderSVGResourceContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyRenderSVGResourceContainer.cpp; sourceTree = "<group>"; };
44355FD72AF29A0B001ED218 /* RenderSVGResourceMarkerInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMarkerInlines.h; sourceTree = "<group>"; };
44355FD82AF29A0B001ED218 /* RenderSVGResourceMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMarker.cpp; sourceTree = "<group>"; };
44355FD92AF29A0B001ED218 /* RenderSVGResourceMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMarker.h; sourceTree = "<group>"; };
44355FD72AF29A0B001FC319 /* RenderSVGResourceMaskerInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMaskerInlines.h; sourceTree = "<group>"; };
44355FD82AF29A0B001ED218 /* RenderSVGResourceMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMarker.cpp; sourceTree = "<group>"; };
44355FD82AF29A0B001FC319 /* RenderSVGResourceMasker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMasker.cpp; sourceTree = "<group>"; };
44355FD92AF29A0B001ED218 /* RenderSVGResourceMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMarker.h; sourceTree = "<group>"; };
44355FD92AF29A0B001FC319 /* RenderSVGResourceMasker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMasker.h; sourceTree = "<group>"; };
4437C4A724E2AE5F00095128 /* LazyLoadFrameObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LazyLoadFrameObserver.h; sourceTree = "<group>"; };
4437C4A924E2AE5F00095128 /* LazyLoadFrameObserver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = LazyLoadFrameObserver.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -10678,6 +10673,9 @@
4683DF3C2767DF26007D00C8 /* ShadowRealmGlobalScope.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ShadowRealmGlobalScope.idl; sourceTree = "<group>"; };
4683DF3D2767DF98007D00C8 /* JSShadowRealmGlobalScopeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSShadowRealmGlobalScopeBase.cpp; sourceTree = "<group>"; };
4683DF3E2767DF98007D00C8 /* JSShadowRealmGlobalScopeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSShadowRealmGlobalScopeBase.h; sourceTree = "<group>"; };
4688C4B42B6B0697003533C9 /* SharedMemoryCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedMemoryCocoa.cpp; sourceTree = "<group>"; };
4688C4B62B6B06F1003533C9 /* SharedMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedMemory.cpp; sourceTree = "<group>"; };
4688C4B72B6B06F2003533C9 /* SharedMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedMemory.h; sourceTree = "<group>"; };
4688E97D27B6B44300567CD2 /* CoreLocationGeolocationProvider.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CoreLocationGeolocationProvider.mm; sourceTree = "<group>"; };
4688E97F27B6B44400567CD2 /* CoreLocationGeolocationProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreLocationGeolocationProvider.h; sourceTree = "<group>"; };
4688EE3A26DD260C002AF5C4 /* CrossOriginMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CrossOriginMode.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -30475,6 +30473,7 @@
0E7058F31BC5CCD70045A507 /* SearchPopupMenuCocoa.h */,
0E7058ED1BC5BC190045A507 /* SearchPopupMenuCocoa.mm */,
1A4A95510B4EDCFF002D8C3C /* SharedBufferCocoa.mm */,
4688C4B42B6B0697003533C9 /* SharedMemoryCocoa.cpp */,
41DC04FB27A83C92008CF968 /* SharedVideoFrameInfo.h */,
41DC04FD27A83C93008CF968 /* SharedVideoFrameInfo.mm */,
C1692DD423D23AE0006E88F7 /* SystemBattery.h */,
Expand Down Expand Up @@ -33928,6 +33927,8 @@
1A4A954C0B4EDCCB002D8C3C /* SharedBuffer.h */,
51FA2ED7274F78370011C15D /* SharedBufferChunkReader.cpp */,
51FA2ED6274F78370011C15D /* SharedBufferChunkReader.h */,
4688C4B62B6B06F1003533C9 /* SharedMemory.cpp */,
4688C4B72B6B06F2003533C9 /* SharedMemory.h */,
834DFACE1F7DAE5700C2725B /* SharedStringHash.cpp */,
834DFACC1F7DAE5600C2725B /* SharedStringHash.h */,
93309EA0099EB78C0056E581 /* SharedTimer.h */,
Expand Down Expand Up @@ -41932,6 +41933,7 @@
1A4A954E0B4EDCCB002D8C3C /* SharedBuffer.h in Headers */,
51FA2EDF27506FDE0011C15D /* SharedBufferChunkReader.h in Headers */,
510A91DC24CF46FE00BFD89C /* SharedGamepadValue.h in Headers */,
4688C4B92B6B06F2003533C9 /* SharedMemory.h in Headers */,
CD36C16B260A65CC00C8C529 /* SharedRoutingArbitrator.h in Headers */,
834DFAD01F7DAE5D00C2725B /* SharedStringHash.h in Headers */,
93309EA3099EB78C0056E581 /* SharedTimer.h in Headers */,
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/platform/Logging.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ namespace WebCore {
M(Threading) \
M(URLParser) \
M(Viewports) \
M(VirtualMemory) \
M(WebAudio) \
M(WebGL) \
M(WebRTC) \
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 Apple Inc. All rights reserved.
* Copyright (C) 2019-2024 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Expand All @@ -26,12 +26,9 @@
#include "config.h"
#include "SharedMemory.h"

#include "ArgumentCoders.h"
#include <WebCore/SharedBuffer.h>
#include "SharedBuffer.h"

namespace WebKit {

using namespace WebCore;
namespace WebCore {

SharedMemoryHandle::SharedMemoryHandle(SharedMemoryHandle::Type&& handle, size_t size)
: m_handle(WTFMove(handle))
Expand Down Expand Up @@ -81,4 +78,4 @@ void SharedMemoryHandle::setOwnershipOfMemory(const ProcessIdentity&, MemoryLedg
}
#endif

} // namespace WebKit
} // namespace WebCore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2010-2019 Apple Inc. All rights reserved.
* Copyright (C) 2010-2024 Apple Inc. All rights reserved.
* Copyright (C) 2017 Sony Interactive Entertainment Inc.
*
* Redistribution and use in source and binary forms, with or without
Expand All @@ -26,6 +26,7 @@

#pragma once

#include <wtf/ArgumentCoder.h>
#include <wtf/Forward.h>
#include <wtf/ThreadSafeRefCounted.h>

Expand All @@ -41,21 +42,11 @@
#include <wtf/MachSendRight.h>
#endif

namespace IPC {
class Decoder;
class Encoder;
class Connection;

template<typename, typename> struct ArgumentCoder;
}

namespace WebCore {

class FragmentedSharedBuffer;
class ProcessIdentity;
class SharedBuffer;
}

namespace WebKit {

enum class MemoryLedger { None, Default, Network, Media, Graphics, Neural };

Expand All @@ -72,16 +63,16 @@ class SharedMemoryHandle {

SharedMemoryHandle(SharedMemoryHandle&&) = default;
explicit SharedMemoryHandle(const SharedMemoryHandle&) = default;
SharedMemoryHandle(SharedMemoryHandle::Type&&, size_t);
WEBCORE_EXPORT SharedMemoryHandle(SharedMemoryHandle::Type&&, size_t);

SharedMemoryHandle& operator=(SharedMemoryHandle&&) = default;

size_t size() const { return m_size; }

// Take ownership of the memory for process memory accounting purposes.
void takeOwnershipOfMemory(MemoryLedger) const;
WEBCORE_EXPORT void takeOwnershipOfMemory(MemoryLedger) const;
// Transfer ownership of the memory for process memory accounting purposes.
void setOwnershipOfMemory(const WebCore::ProcessIdentity&, MemoryLedger) const;
WEBCORE_EXPORT void setOwnershipOfMemory(const WebCore::ProcessIdentity&, MemoryLedger) const;

#if USE(UNIX_DOMAIN_SOCKETS)
UnixFileDescriptor releaseHandle();
Expand All @@ -90,9 +81,6 @@ class SharedMemoryHandle {
private:
friend struct IPC::ArgumentCoder<SharedMemoryHandle, void>;
friend class SharedMemory;
#if USE(UNIX_DOMAIN_SOCKETS)
friend class IPC::Connection;
#endif

Type m_handle;
size_t m_size { 0 };
Expand All @@ -105,18 +93,18 @@ class SharedMemory : public ThreadSafeRefCounted<SharedMemory> {
enum class Protection : bool { ReadOnly, ReadWrite };

// FIXME: Change these factory functions to return Ref<SharedMemory> and crash on failure.
static RefPtr<SharedMemory> allocate(size_t);
static RefPtr<SharedMemory> copyBuffer(const WebCore::FragmentedSharedBuffer&);
static RefPtr<SharedMemory> map(Handle&&, Protection);
WEBCORE_EXPORT static RefPtr<SharedMemory> allocate(size_t);
WEBCORE_EXPORT static RefPtr<SharedMemory> copyBuffer(const WebCore::FragmentedSharedBuffer&);
WEBCORE_EXPORT static RefPtr<SharedMemory> map(Handle&&, Protection);
#if USE(UNIX_DOMAIN_SOCKETS)
static RefPtr<SharedMemory> wrapMap(void*, size_t, int fileDescriptor);
WEBCORE_EXPORT static RefPtr<SharedMemory> wrapMap(void*, size_t, int fileDescriptor);
#elif OS(DARWIN)
static RefPtr<SharedMemory> wrapMap(void*, size_t, Protection);
WEBCORE_EXPORT static RefPtr<SharedMemory> wrapMap(void*, size_t, Protection);
#endif

~SharedMemory();
WEBCORE_EXPORT ~SharedMemory();

std::optional<Handle> createHandle(Protection);
WEBCORE_EXPORT std::optional<Handle> createHandle(Protection);

size_t size() const { return m_size; }
void* data() const
Expand All @@ -133,11 +121,11 @@ class SharedMemory : public ThreadSafeRefCounted<SharedMemory> {
Protection protection() const { return m_protection; }
#endif

Ref<WebCore::SharedBuffer> createSharedBuffer(size_t) const;
WEBCORE_EXPORT Ref<WebCore::SharedBuffer> createSharedBuffer(size_t) const;

private:
#if OS(DARWIN)
WTF::MachSendRight createSendRight(Protection) const;
MachSendRight createSendRight(Protection) const;
#endif

size_t m_size;
Expand All @@ -156,4 +144,4 @@ class SharedMemory : public ThreadSafeRefCounted<SharedMemory> {
#endif
};

} // namespace WebKit
} // namespace WebCore
Loading

0 comments on commit 6c0bb66

Please sign in to comment.