Title: [265725] trunk/Source/WebKit
Revision
265725
Author
[email protected]
Date
2020-08-14 18:46:04 -0700 (Fri, 14 Aug 2020)

Log Message

Convert remaining SharedMemory::Handle to SharedMemory::IPCHandle
https://bugs.webkit.org/show_bug.cgi?id=215471
<rdar://problem/67024177>

Reviewed by David Kilzer.

Use the new struct for sending SharedMemory::Handle objects via IPC, so
we can include the exact size of data (SharedMemory::Handle::size()
rounds up to the nearest page), and verify these sizes match when decoding.

In many cases, the size is not sent as a separate argument via IPC, so
we can initialize the IPCHandle object with SharedMemory::Handle::size().

We can remove the additional size parameter when it exists, because
we are now passing IPCHandle which should include the size value.

* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):
* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:
* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:
* GPUProcess/webrtc/RemoteMediaRecorder.cpp:
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
* GPUProcess/webrtc/RemoteMediaRecorder.h:
* GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
Send SharedMemory::IPCHandle object instead of SharedMemory::Handle
over IPC.

* NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:
(WebKit::WebSWOriginStore::sendStoreHandle):
Since no additional size parameter is being sent in this function, we
can use handle.size() as the IPCHandle::dataSize parameter.

* Platform/SharedMemory.h:
Remove encode/decode functions in SharedMemory::Handle.

* Platform/cocoa/SharedMemoryCocoa.cpp:
(WebKit::SharedMemory::Handle::encode const): Deleted.
(WebKit::SharedMemory::Handle::decode): Deleted.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):
* Platform/win/SharedMemoryWin.cpp:
(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):
(WebKit::SharedMemory::Handle::encode const): Deleted.
(WebKit::SharedMemory::Handle::decode): Deleted.
Remove SharedMemory::Handle encode/decode functions so we will not
ever send a SharedMemory::Handle object over IPC accidentally in the future.

* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::encode const):
(WebKit::ShareableBitmap::Handle::decode):
Keep m_size here because it is an IntSize object and is useful to
check width/height parameters in the SharableBitmap object.

* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::Handle::encode const):
(WebKit::ShareableResource::Handle::decode):
* Shared/WebCompiledContentRuleListData.cpp:
(WebKit::WebCompiledContentRuleListData::encode const):
(WebKit::WebCompiledContentRuleListData::decode):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):
* Shared/WebHitTestResultData.cpp:
(WebKit::WebHitTestResultData::encode const):
(WebKit::WebHitTestResultData::decode):
More cases of converting between SharedMemory::Handle and
SharedMemory::IPCHandle when encoding/decoding.

* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
* UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::sendStoreHandleToProcess):
* WebProcess/GPU/media/RemoteAudioBusData.h:
(WebKit::RemoteAudioBusData::encode const):
(WebKit::RemoteAudioBusData::decode):
Since no additional size parameter is being sent in this function, we
can use handle.size() as the IPCHandle::dataSize parameter.

* WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
(WebKit::AudioMediaStreamTrackRenderer::storageChanged):
* WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
(WebKit::MediaRecorderPrivate::storageChanged):
* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::setSWOriginTableSharedMemory):
* WebProcess/Storage/WebSWClientConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
* WebProcess/WebPage/VisitedLinkTableController.h:
* WebProcess/WebPage/VisitedLinkTableController.messages.in:
* WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::audioStorageChanged):
* WebProcess/cocoa/RemoteCaptureSampleManager.h:
* WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
More cases of converting between SharedMemory::Handle and
SharedMemory::IPCHandle when encoding/decoding.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (265724 => 265725)


--- trunk/Source/WebKit/ChangeLog	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/ChangeLog	2020-08-15 01:46:04 UTC (rev 265725)
@@ -1,3 +1,104 @@
+2020-08-14  Kate Cheney  <[email protected]>
+
+        Convert remaining SharedMemory::Handle to SharedMemory::IPCHandle
+        https://bugs.webkit.org/show_bug.cgi?id=215471
+        <rdar://problem/67024177>
+
+        Reviewed by David Kilzer.
+
+        Use the new struct for sending SharedMemory::Handle objects via IPC, so
+        we can include the exact size of data (SharedMemory::Handle::size()
+        rounds up to the nearest page), and verify these sizes match when decoding.
+
+        In many cases, the size is not sent as a separate argument via IPC, so
+        we can initialize the IPCHandle object with SharedMemory::Handle::size().
+
+        We can remove the additional size parameter when it exists, because
+        we are now passing IPCHandle which should include the size value.
+
+        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
+        (WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):
+        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:
+        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:
+        * GPUProcess/webrtc/RemoteMediaRecorder.cpp:
+        (WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
+        * GPUProcess/webrtc/RemoteMediaRecorder.h:
+        * GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
+        Send SharedMemory::IPCHandle object instead of SharedMemory::Handle
+        over IPC. 
+
+        * NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:
+        (WebKit::WebSWOriginStore::sendStoreHandle):
+        Since no additional size parameter is being sent in this function, we
+        can use handle.size() as the IPCHandle::dataSize parameter.
+
+        * Platform/SharedMemory.h:
+        Remove encode/decode functions in SharedMemory::Handle.
+
+        * Platform/cocoa/SharedMemoryCocoa.cpp:
+        (WebKit::SharedMemory::Handle::encode const): Deleted.
+        (WebKit::SharedMemory::Handle::decode): Deleted.
+        * Platform/unix/SharedMemoryUnix.cpp:
+        (WebKit::SharedMemory::IPCHandle::encode const):
+        (WebKit::SharedMemory::IPCHandle::decode):
+        * Platform/win/SharedMemoryWin.cpp:
+        (WebKit::SharedMemory::IPCHandle::encode const):
+        (WebKit::SharedMemory::IPCHandle::decode):
+        (WebKit::SharedMemory::Handle::encode const): Deleted.
+        (WebKit::SharedMemory::Handle::decode): Deleted.
+        Remove SharedMemory::Handle encode/decode functions so we will not
+        ever send a SharedMemory::Handle object over IPC accidentally in the future.
+
+        * Shared/ShareableBitmap.cpp:
+        (WebKit::ShareableBitmap::Handle::encode const):
+        (WebKit::ShareableBitmap::Handle::decode):
+        Keep m_size here because it is an IntSize object and is useful to
+        check width/height parameters in the SharableBitmap object.
+
+        * Shared/ShareableResource.cpp:
+        (WebKit::ShareableResource::Handle::encode const):
+        (WebKit::ShareableResource::Handle::decode):
+        * Shared/WebCompiledContentRuleListData.cpp:
+        (WebKit::WebCompiledContentRuleListData::encode const):
+        (WebKit::WebCompiledContentRuleListData::decode):
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::encodeSharedBuffer):
+        (IPC::decodeSharedBuffer):
+        * Shared/WebHitTestResultData.cpp:
+        (WebKit::WebHitTestResultData::encode const):
+        (WebKit::WebHitTestResultData::decode):
+        More cases of converting between SharedMemory::Handle and
+        SharedMemory::IPCHandle when encoding/decoding.
+
+        * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
+        * UIProcess/VisitedLinkStore.cpp:
+        (WebKit::VisitedLinkStore::sendStoreHandleToProcess):
+        * WebProcess/GPU/media/RemoteAudioBusData.h:
+        (WebKit::RemoteAudioBusData::encode const):
+        (WebKit::RemoteAudioBusData::decode):
+        Since no additional size parameter is being sent in this function, we
+        can use handle.size() as the IPCHandle::dataSize parameter.
+
+        * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
+        (WebKit::AudioMediaStreamTrackRenderer::storageChanged):
+        * WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
+        (WebKit::MediaRecorderPrivate::storageChanged):
+        * WebProcess/Storage/WebSWClientConnection.cpp:
+        (WebKit::WebSWClientConnection::setSWOriginTableSharedMemory):
+        * WebProcess/Storage/WebSWClientConnection.h:
+        * WebProcess/Storage/WebSWClientConnection.messages.in:
+        * WebProcess/WebPage/VisitedLinkTableController.cpp:
+        (WebKit::VisitedLinkTableController::setVisitedLinkTable):
+        * WebProcess/WebPage/VisitedLinkTableController.h:
+        * WebProcess/WebPage/VisitedLinkTableController.messages.in:
+        * WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
+        (WebKit::RemoteCaptureSampleManager::audioStorageChanged):
+        * WebProcess/cocoa/RemoteCaptureSampleManager.h:
+        * WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
+        More cases of converting between SharedMemory::Handle and
+        SharedMemory::IPCHandle when encoding/decoding.
+
+
 2020-08-14  Per Arne Vollan  <[email protected]>
 
         [Cocoa] Avoid changing XPC target queue inside XPC event handler

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp (265724 => 265725)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -95,7 +95,7 @@
     m_renderer->setVolume(value);
 }
 
-void RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged(const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
+void RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged(const SharedMemory::IPCHandle& ipcHandle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
 {
     ASSERT(m_ringBuffer);
     if (!m_ringBuffer)
@@ -103,7 +103,7 @@
 
     m_description = description;
 
-    if (handle.isNull()) {
+    if (ipcHandle.handle.isNull()) {
         m_ringBuffer->deallocate();
         storage().setReadOnly(false);
         storage().setStorage(nullptr);
@@ -110,7 +110,7 @@
         return;
     }
 
-    auto memory = SharedMemory::map(handle, SharedMemory::Protection::ReadOnly);
+    auto memory = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadOnly);
     storage().setStorage(WTFMove(memory));
     storage().setReadOnly(true);
 

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h (265724 => 265725)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -56,7 +56,7 @@
     void stop();
     void clear();
     void setVolume(float);
-    void audioSamplesStorageChanged(const SharedMemory::Handle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
+    void audioSamplesStorageChanged(const SharedMemory::IPCHandle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
     void audioSamplesAvailable(MediaTime, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame);
 
     SharedRingBufferStorage& storage();

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in (265724 => 265725)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in	2020-08-15 01:46:04 UTC (rev 265725)
@@ -30,7 +30,7 @@
 
     SetVolume(float value)
 
-    AudioSamplesStorageChanged(WebKit::SharedMemory::Handle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
+    AudioSamplesStorageChanged(WebKit::SharedMemory::IPCHandle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
     AudioSamplesAvailable(MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
 }
 

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp (265724 => 265725)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -64,7 +64,7 @@
     return static_cast<SharedRingBufferStorage&>(m_ringBuffer->storage());
 }
 
-void RemoteMediaRecorder::audioSamplesStorageChanged(const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
+void RemoteMediaRecorder::audioSamplesStorageChanged(const SharedMemory::IPCHandle& ipcHandle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
 {
     ASSERT(m_ringBuffer);
     if (!m_ringBuffer)
@@ -72,7 +72,7 @@
 
     m_description = description;
 
-    if (handle.isNull()) {
+    if (ipcHandle.handle.isNull()) {
         m_ringBuffer->deallocate();
         storage().setReadOnly(false);
         storage().setStorage(nullptr);
@@ -79,7 +79,7 @@
         return;
     }
 
-    auto memory = SharedMemory::map(handle, SharedMemory::Protection::ReadOnly);
+    auto memory = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadOnly);
     storage().setStorage(WTFMove(memory));
     storage().setReadOnly(true);
 

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.h (265724 => 265725)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -63,7 +63,7 @@
     RemoteMediaRecorder(GPUConnectionToWebProcess&, MediaRecorderIdentifier, Ref<WebCore::MediaRecorderPrivateWriter>&&, bool recordAudio);
 
     // IPC::MessageReceiver
-    void audioSamplesStorageChanged(const SharedMemory::Handle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
+    void audioSamplesStorageChanged(const SharedMemory::IPCHandle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
     void audioSamplesAvailable(MediaTime, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame);
     void videoSampleAvailable(WebCore::RemoteVideoSample&&);
     void fetchData(CompletionHandler<void(IPC::DataReference&&, const String& mimeType)>&&);

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.messages.in (265724 => 265725)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.messages.in	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.messages.in	2020-08-15 01:46:04 UTC (rev 265725)
@@ -24,7 +24,7 @@
 #if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM) && HAVE(AVASSETWRITERDELEGATE)
 
 messages -> RemoteMediaRecorder NotRefCounted {
-    AudioSamplesStorageChanged(WebKit::SharedMemory::Handle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
+    AudioSamplesStorageChanged(WebKit::SharedMemory::IPCHandle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
     AudioSamplesAvailable(MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
     VideoSampleAvailable(WebCore::RemoteVideoSample sample)
     FetchData() -> (IPC::DataReference buffer, String mimeType) Async

Modified: trunk/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp (265724 => 265725)


--- trunk/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -87,7 +87,12 @@
     if (!m_store.createSharedMemoryHandle(handle))
         return;
 
-    connection.send(Messages::WebSWClientConnection::SetSWOriginTableSharedMemory(handle));
+#if OS(DARWIN) || OS(WINDOWS)
+    uint64_t dataSize = handle.size();
+#else
+    uint64_t dataSize = 0;
+#endif
+    connection.send(Messages::WebSWClientConnection::SetSWOriginTableSharedMemory(SharedMemory::IPCHandle { WTFMove(handle), dataSize }));
 }
 
 void WebSWOriginStore::didInvalidateSharedMemory()

Modified: trunk/Source/WebKit/Platform/SharedMemory.h (265724 => 265725)


--- trunk/Source/WebKit/Platform/SharedMemory.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Platform/SharedMemory.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -79,9 +79,6 @@
 
         void clear();
 
-        void encode(IPC::Encoder&) const;
-        static WARN_UNUSED_RETURN bool decode(IPC::Decoder&, Handle&);
-
 #if USE(UNIX_DOMAIN_SOCKETS)
         IPC::Attachment releaseAttachment() const;
         void adoptAttachment(IPC::Attachment&&);

Modified: trunk/Source/WebKit/Platform/cocoa/SharedMemoryCocoa.cpp (265724 => 265725)


--- trunk/Source/WebKit/Platform/cocoa/SharedMemoryCocoa.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Platform/cocoa/SharedMemoryCocoa.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -88,31 +88,6 @@
     m_size = 0;
 }
 
-void SharedMemory::Handle::encode(IPC::Encoder& encoder) const
-{
-    encoder << static_cast<uint64_t>(m_size);
-    encoder << IPC::MachPort(m_port, MACH_MSG_TYPE_MOVE_SEND);
-    m_port = MACH_PORT_NULL;
-}
-
-bool SharedMemory::Handle::decode(IPC::Decoder& decoder, Handle& handle)
-{
-    ASSERT(!handle.m_port);
-    ASSERT(!handle.m_size);
-
-    uint64_t size;
-    if (!decoder.decode(size))
-        return false;
-
-    IPC::MachPort machPort;
-    if (!decoder.decode(machPort))
-        return false;
-    
-    handle.m_size = size;
-    handle.m_port = machPort.port();
-    return true;
-}
-
 void SharedMemory::IPCHandle::encode(IPC::Encoder& encoder) const
 {
     encoder << static_cast<uint64_t>(handle.m_size);

Modified: trunk/Source/WebKit/Platform/unix/SharedMemoryUnix.cpp (265724 => 265725)


--- trunk/Source/WebKit/Platform/unix/SharedMemoryUnix.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Platform/unix/SharedMemoryUnix.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -88,23 +88,6 @@
     return true;
 }
 
-void SharedMemory::Handle::encode(IPC::Encoder& encoder) const
-{
-    encoder << releaseAttachment();
-}
-
-bool SharedMemory::Handle::decode(IPC::Decoder& decoder, Handle& handle)
-{
-    ASSERT_ARG(handle, handle.isNull());
-
-    IPC::Attachment attachment;
-    if (!decoder.decode(attachment))
-        return false;
-
-    handle.adoptAttachment(WTFMove(attachment));
-    return true;
-}
-
 IPC::Attachment SharedMemory::Handle::releaseAttachment() const
 {
     return WTFMove(m_attachment);

Modified: trunk/Source/WebKit/Platform/win/SharedMemoryWin.cpp (265724 => 265725)


--- trunk/Source/WebKit/Platform/win/SharedMemoryWin.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Platform/win/SharedMemoryWin.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -103,18 +103,6 @@
     return true;
 }
 
-void SharedMemory::Handle::encode(IPC::Encoder& encoder) const
-{
-    encoder << static_cast<uint64_t>(m_size);
-
-    encodeHandle(encoder, m_handle);
-
-    // Hand off ownership of our HANDLE to the receiving process. It will close it for us.
-    // FIXME: If the receiving process crashes before it receives the memory, the memory will be
-    // leaked. See <http://webkit.org/b/47502>.
-    m_handle = 0;
-}
-
 void SharedMemory::Handle::encodeHandle(IPC::Encoder& encoder, HANDLE handle)
 {
     encoder << reinterpret_cast<uint64_t>(handle);
@@ -151,24 +139,6 @@
     return success;
 }
 
-bool SharedMemory::Handle::decode(IPC::Decoder& decoder, Handle& handle)
-{
-    ASSERT_ARG(handle, !handle.m_handle);
-    ASSERT_ARG(handle, !handle.m_size);
-
-    uint64_t size;
-    if (!decoder.decode(size))
-        return false;
-
-    auto processSpecificHandle = decodeHandle(decoder);
-    if (!processSpecificHandle)
-        return false;
-
-    handle.m_handle = processSpecificHandle.value();
-    handle.m_size = size;
-    return true;
-}
-
 Optional<HANDLE> SharedMemory::Handle::decodeHandle(IPC::Decoder& decoder)
 {
     uint64_t sourceHandle;

Modified: trunk/Source/WebKit/Shared/ShareableBitmap.cpp (265724 => 265725)


--- trunk/Source/WebKit/Shared/ShareableBitmap.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Shared/ShareableBitmap.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -43,7 +43,8 @@
 
 void ShareableBitmap::Handle::encode(IPC::Encoder& encoder) const
 {
-    encoder << m_handle;
+    SharedMemory::IPCHandle ipcHandle(WTFMove(m_handle), numBytesForSize(m_size, m_configuration).unsafeGet());
+    encoder << ipcHandle;
     encoder << m_size;
     encoder << m_configuration;
 }
@@ -50,7 +51,8 @@
 
 bool ShareableBitmap::Handle::decode(IPC::Decoder& decoder, Handle& handle)
 {
-    if (!decoder.decode(handle.m_handle))
+    SharedMemory::IPCHandle ipcHandle;
+    if (!decoder.decode(ipcHandle))
         return false;
     if (!decoder.decode(handle.m_size))
         return false;
@@ -58,6 +60,8 @@
         return false;
     if (!decoder.decode(handle.m_configuration))
         return false;
+    
+    handle.m_handle = WTFMove(ipcHandle.handle);
     return true;
 }
 

Modified: trunk/Source/WebKit/Shared/ShareableResource.cpp (265724 => 265725)


--- trunk/Source/WebKit/Shared/ShareableResource.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Shared/ShareableResource.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -40,19 +40,20 @@
 
 void ShareableResource::Handle::encode(IPC::Encoder& encoder) const
 {
-    encoder << m_handle;
+    encoder << SharedMemory::IPCHandle { WTFMove(m_handle), m_size };
     encoder << m_offset;
-    encoder << m_size;
 }
 
 bool ShareableResource::Handle::decode(IPC::Decoder& decoder, Handle& handle)
 {
-    if (!decoder.decode(handle.m_handle))
+    SharedMemory::IPCHandle ipcHandle;
+    if (!decoder.decode(ipcHandle))
         return false;
     if (!decoder.decode(handle.m_offset))
         return false;
-    if (!decoder.decode(handle.m_size))
-        return false;
+
+    handle.m_size = ipcHandle.dataSize;
+    handle.m_handle = WTFMove(ipcHandle.handle);
     return true;
 }
 

Modified: trunk/Source/WebKit/Shared/WebCompiledContentRuleListData.cpp (265724 => 265725)


--- trunk/Source/WebKit/Shared/WebCompiledContentRuleListData.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Shared/WebCompiledContentRuleListData.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -38,7 +38,14 @@
 {
     SharedMemory::Handle handle;
     data->createHandle(handle, SharedMemory::Protection::ReadOnly);
-    encoder << handle;
+    
+    // FIXME: Add the exact data size being sent over IPC to the WebCompiledContentRuleListData() constructor to be encoded here.
+#if OS(DARWIN) || OS(WINDOWS)
+    uint64_t dataSize = handle.size();
+#else
+    uint64_t dataSize = 0;
+#endif
+    encoder << SharedMemory::IPCHandle { WTFMove(handle), dataSize };
 
     encoder << conditionsApplyOnlyToDomainOffset;
     encoder << actionsOffset;
@@ -53,10 +60,10 @@
 
 Optional<WebCompiledContentRuleListData> WebCompiledContentRuleListData::decode(IPC::Decoder& decoder)
 {
-    SharedMemory::Handle handle;
-    if (!decoder.decode(handle))
+    SharedMemory::IPCHandle ipcHandle;
+    if (!decoder.decode(ipcHandle))
         return WTF::nullopt;
-    RefPtr<SharedMemory> data = "" SharedMemory::Protection::ReadOnly);
+    RefPtr<SharedMemory> data = "" SharedMemory::Protection::ReadOnly);
 
     Optional<unsigned> conditionsApplyOnlyToDomainOffset;
     decoder >> conditionsApplyOnlyToDomainOffset;

Modified: trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp (265724 => 265725)


--- trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -140,10 +140,10 @@
         encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(element.segment->data()), element.segment->size(), 1);
 #else
     SharedMemory::Handle handle;
-    auto sharedMemoryBuffer = SharedMemory::allocate(buffer->size());
-    memcpy(sharedMemoryBuffer->data(), buffer->data(), buffer->size());
+    auto sharedMemoryBuffer = SharedMemory::allocate(bufferSize);
+    memcpy(sharedMemoryBuffer->data(), buffer->data(), bufferSize);
     sharedMemoryBuffer->createHandle(handle, SharedMemory::Protection::ReadOnly);
-    encoder << handle;
+    encoder << SharedMemory::IPCHandle { WTFMove(handle), bufferSize };
 #endif
 }
 
@@ -167,15 +167,11 @@
 
     buffer = SharedBuffer::create(WTFMove(data));
 #else
-    SharedMemory::Handle handle;
-    if (!decoder.decode(handle))
+    SharedMemory::IPCHandle ipcHandle;
+    if (!decoder.decode(ipcHandle))
         return false;
 
-    // SharedMemory::Handle::size() is rounded up to the nearest page.
-    if (bufferSize > handle.size())
-        return false;
-
-    auto sharedMemoryBuffer = SharedMemory::map(handle, SharedMemory::Protection::ReadOnly);
+    auto sharedMemoryBuffer = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadOnly);
     if (!sharedMemoryBuffer)
         return false;
 

Modified: trunk/Source/WebKit/Shared/WebHitTestResultData.cpp (265724 => 265725)


--- trunk/Source/WebKit/Shared/WebHitTestResultData.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/Shared/WebHitTestResultData.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -120,9 +120,9 @@
     WebKit::SharedMemory::Handle imageHandle;
     if (imageSharedMemory && imageSharedMemory->data())
         imageSharedMemory->createHandle(imageHandle, WebKit::SharedMemory::Protection::ReadOnly);
-    encoder << imageHandle;
-    encoder << imageSize;
 
+    encoder << WebKit::SharedMemory::IPCHandle { WTFMove(imageHandle), imageSize };
+
     bool hasLinkTextIndicator = linkTextIndicator;
     encoder << hasLinkTextIndicator;
     if (hasLinkTextIndicator)
@@ -152,22 +152,21 @@
         || !decoder.decode(hitTestResultData.dictionaryPopupInfo))
         return false;
 
-    WebKit::SharedMemory::Handle imageHandle;
+    WebKit::SharedMemory::IPCHandle imageHandle;
     if (!decoder.decode(imageHandle))
         return false;
 
-    if (!imageHandle.isNull())
-        hitTestResultData.imageSharedMemory = WebKit::SharedMemory::map(imageHandle, WebKit::SharedMemory::Protection::ReadOnly);
-
-    if (!decoder.decode(hitTestResultData.imageSize))
-        return false;
-
-    if (hitTestResultData.imageSharedMemory) {
-        // SharedMemory:size() is rounded up to the nearest page.
-        if (hitTestResultData.imageSize > hitTestResultData.imageSharedMemory->size())
+    hitTestResultData.imageSize = imageHandle.dataSize;
+    if (imageHandle.handle.isNull()) {
+        if (hitTestResultData.imageSize)
             return false;
-    } else if (hitTestResultData.imageSize)
-        return false;
+    } else {
+        hitTestResultData.imageSharedMemory = WebKit::SharedMemory::map(imageHandle.handle, WebKit::SharedMemory::Protection::ReadOnly);
+        if (!hitTestResultData.imageSharedMemory)
+            return false;
+        if (!hitTestResultData.imageSize)
+            return false;
+    }
 
     bool hasLinkTextIndicator;
     if (!decoder.decode(hasLinkTextIndicator))

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp (265724 => 265725)


--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -202,7 +202,14 @@
         SharedMemory::Handle handle;
         if (storage)
             storage->createHandle(handle, SharedMemory::Protection::ReadOnly);
-        m_connection->send(Messages::RemoteCaptureSampleManager::AudioStorageChanged(m_id, handle, m_description, m_numberOfFrames), 0);
+
+        // FIXME: Send the actual data size with IPCHandle.
+#if OS(DARWIN) || OS(WINDOWS)
+        uint64_t dataSize = handle.size();
+#else
+        uint64_t dataSize = 0;
+#endif
+        m_connection->send(Messages::RemoteCaptureSampleManager::AudioStorageChanged(m_id, SharedMemory::IPCHandle { WTFMove(handle),  dataSize }, m_description, m_numberOfFrames), 0);
     }
 
     bool preventSourceFromStopping()

Modified: trunk/Source/WebKit/UIProcess/VisitedLinkStore.cpp (265724 => 265725)


--- trunk/Source/WebKit/UIProcess/VisitedLinkStore.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/UIProcess/VisitedLinkStore.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -118,7 +118,13 @@
     if (!m_linkHashStore.createSharedMemoryHandle(handle))
         return;
 
-    process.send(Messages::VisitedLinkTableController::SetVisitedLinkTable(handle), identifier());
+    // FIXME: Get the actual size of data being sent from m_linkHashStore and send it in the SharedMemory::IPCHandle object.
+#if OS(DARWIN) || OS(WINDOWS)
+    uint64_t dataSize = handle.size();
+#else
+    uint64_t dataSize = 0;
+#endif
+    process.send(Messages::VisitedLinkTableController::SetVisitedLinkTable(SharedMemory::IPCHandle { WTFMove(handle), dataSize }), identifier());
 }
 
 void VisitedLinkStore::didInvalidateSharedMemory()

Modified: trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioBusData.h (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioBusData.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioBusData.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -46,7 +46,7 @@
         for (size_t i = 0; i < channelBuffers.size(); ++i) {
             SharedMemory::Handle handle;
             channelBuffers[i]->createHandle(handle, SharedMemory::Protection::ReadWrite);
-            encoder << handle;
+            encoder << SharedMemory::IPCHandle { WTFMove(handle), channelBuffers[i]->size() };
         }
     }
 
@@ -63,11 +63,13 @@
             return false;
 
         for (size_t i = 0; i < size; ++i) {
-            SharedMemory::Handle handle;
-            if (!decoder.decode(handle))
+            SharedMemory::IPCHandle ipcHandle;
+            if (!decoder.decode(ipcHandle))
                 return false;
-            if (auto memory = SharedMemory::map(handle, SharedMemory::Protection::ReadWrite))
+            if (auto memory = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadWrite))
                 result.channelBuffers.append(memory.releaseNonNull());
+            else
+                return false;
         }
 
         return true;

Modified: trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -106,7 +106,14 @@
     SharedMemory::Handle handle;
     if (storage)
         storage->createHandle(handle, SharedMemory::Protection::ReadOnly);
-    m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::AudioSamplesStorageChanged { handle, m_description, static_cast<uint64_t>(m_numberOfFrames) }, m_identifier);
+    
+    // FIXME: Send the actual data size with IPCHandle.
+#if OS(DARWIN) || OS(WINDOWS)
+    uint64_t dataSize = handle.size();
+#else
+    uint64_t dataSize = 0;
+#endif
+    m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::AudioSamplesStorageChanged { SharedMemory::IPCHandle { WTFMove(handle), dataSize }, m_description, static_cast<uint64_t>(m_numberOfFrames) }, m_identifier);
 }
 
 }

Modified: trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -113,7 +113,14 @@
     SharedMemory::Handle handle;
     if (storage)
         storage->createHandle(handle, SharedMemory::Protection::ReadOnly);
-    m_connection->send(Messages::RemoteMediaRecorder::AudioSamplesStorageChanged { handle, m_description, static_cast<uint64_t>(m_numberOfFrames) }, m_identifier);
+
+    // FIXME: Send the actual data size with IPCHandle.
+#if OS(DARWIN) || OS(WINDOWS)
+    uint64_t dataSize = handle.size();
+#else
+    uint64_t dataSize = 0;
+#endif
+    m_connection->send(Messages::RemoteMediaRecorder::AudioSamplesStorageChanged { SharedMemory::IPCHandle { WTFMove(handle), dataSize }, m_description, static_cast<uint64_t>(m_numberOfFrames) }, m_identifier);
 }
 
 void MediaRecorderPrivate::fetchData(CompletionHandler<void(RefPtr<WebCore::SharedBuffer>&&, const String& mimeType)>&& completionHandler)

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -133,9 +133,9 @@
     return m_swOriginTable->contains(origin);
 }
 
-void WebSWClientConnection::setSWOriginTableSharedMemory(const SharedMemory::Handle& handle)
+void WebSWClientConnection::setSWOriginTableSharedMemory(const SharedMemory::IPCHandle& ipcHandle)
 {
-    m_swOriginTable->setSharedMemory(handle);
+    m_swOriginTable->setSharedMemory(ipcHandle.handle);
 }
 
 void WebSWClientConnection::setSWOriginTableIsImported()

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.h (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -98,7 +98,7 @@
     IPC::Connection* messageSenderConnection() const final;
     uint64_t messageSenderDestinationID() const final { return 0; }
 
-    void setSWOriginTableSharedMemory(const SharedMemory::Handle&);
+    void setSWOriginTableSharedMemory(const SharedMemory::IPCHandle&);
     void setSWOriginTableIsImported();
 
     void clear();

Modified: trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in	2020-08-15 01:46:04 UTC (rev 265725)
@@ -35,7 +35,7 @@
     NotifyClientsOfControllerChange(HashSet<WebCore::DocumentIdentifier> contextIdentifiers, struct WebCore::ServiceWorkerData newController)
 
     SetSWOriginTableIsImported()
-    SetSWOriginTableSharedMemory(WebKit::SharedMemory::Handle handle)
+    SetSWOriginTableSharedMemory(WebKit::SharedMemory::IPCHandle handle)
     PostMessageToServiceWorkerClient(WebCore::DocumentIdentifier destinationContextIdentifier, struct WebCore::MessageWithMessagePorts message, struct WebCore::ServiceWorkerData source, String sourceOrigin)
 
     DidMatchRegistration(uint64_t matchRequestIdentifier, Optional<WebCore::ServiceWorkerRegistrationData> data)

Modified: trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -84,9 +84,9 @@
     WebProcess::singleton().parentProcessConnection()->send(Messages::VisitedLinkStore::AddVisitedLinkHashFromPage(webPage.webPageProxyIdentifier(), linkHash), m_identifier);
 }
 
-void VisitedLinkTableController::setVisitedLinkTable(const SharedMemory::Handle& handle)
+void VisitedLinkTableController::setVisitedLinkTable(const SharedMemory::IPCHandle& ipcHandle)
 {
-    auto sharedMemory = SharedMemory::map(handle, SharedMemory::Protection::ReadOnly);
+    auto sharedMemory = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadOnly);
     if (!sharedMemory)
         return;
 

Modified: trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.h (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -47,7 +47,7 @@
     // IPC::MessageReceiver.
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
 
-    void setVisitedLinkTable(const SharedMemory::Handle&);
+    void setVisitedLinkTable(const SharedMemory::IPCHandle&);
     void visitedLinkStateChanged(const Vector<WebCore::SharedStringHash>&);
     void allVisitedLinkStateChanged();
     void removeAllVisitedLinks();

Modified: trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.messages.in (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.messages.in	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.messages.in	2020-08-15 01:46:04 UTC (rev 265725)
@@ -21,7 +21,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 messages -> VisitedLinkTableController {
-    SetVisitedLinkTable(WebKit::SharedMemory::Handle handle)
+    SetVisitedLinkTable(WebKit::SharedMemory::IPCHandle ipcHandle)
     VisitedLinkStateChanged(Vector<WebCore::SharedStringHash> linkHashes)
     AllVisitedLinkStateChanged()
     RemoveAllVisitedLinks()

Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp	2020-08-15 01:46:04 UTC (rev 265725)
@@ -87,7 +87,7 @@
     m_queue->dispatch(WTFMove(callback));
 }
 
-void RemoteCaptureSampleManager::audioStorageChanged(WebCore::RealtimeMediaSourceIdentifier identifier, const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
+void RemoteCaptureSampleManager::audioStorageChanged(WebCore::RealtimeMediaSourceIdentifier identifier, const SharedMemory::IPCHandle& ipcHandle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
 {
     ASSERT(!WTF::isMainRunLoop());
 
@@ -96,7 +96,7 @@
         RELEASE_LOG_ERROR(WebRTC, "Unable to find source %llu for storageChanged", identifier.toUInt64());
         return;
     }
-    iterator->value->setStorage(handle, description, numberOfFrames);
+    iterator->value->setStorage(ipcHandle.handle, description, numberOfFrames);
 }
 
 void RemoteCaptureSampleManager::audioSamplesAvailable(WebCore::RealtimeMediaSourceIdentifier identifier, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)

Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h	2020-08-15 01:46:04 UTC (rev 265725)
@@ -55,7 +55,7 @@
     void dispatchToThread(Function<void()>&&) final;
 
     // Messages
-    void audioStorageChanged(WebCore::RealtimeMediaSourceIdentifier, const SharedMemory::Handle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
+    void audioStorageChanged(WebCore::RealtimeMediaSourceIdentifier, const SharedMemory::IPCHandle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
     void audioSamplesAvailable(WebCore::RealtimeMediaSourceIdentifier, MediaTime, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame);
 
     void setConnection(IPC::Connection*);

Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.messages.in (265724 => 265725)


--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.messages.in	2020-08-15 01:24:02 UTC (rev 265724)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.messages.in	2020-08-15 01:46:04 UTC (rev 265725)
@@ -24,7 +24,7 @@
 #if ENABLE(MEDIA_STREAM)
 
 messages -> RemoteCaptureSampleManager NotRefCounted {
-    AudioStorageChanged(WebCore::RealtimeMediaSourceIdentifier id, WebKit::SharedMemory::Handle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
+    AudioStorageChanged(WebCore::RealtimeMediaSourceIdentifier id, WebKit::SharedMemory::IPCHandle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
     AudioSamplesAvailable(WebCore::RealtimeMediaSourceIdentifier id, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to