Title: [275240] trunk/Source/WebKit
Revision
275240
Author
[email protected]
Date
2021-03-30 15:01:40 -0700 (Tue, 30 Mar 2021)

Log Message

Address post-commit comments on r275180
https://bugs.webkit.org/show_bug.cgi?id=223915

Reviewed by Kimmo Kinnunen.

* WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
* WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::sharedMemoryForGetImageData):
(WebKit::RemoteRenderingBackendProxy::waitForGetImageDataToComplete):
(WebKit::RemoteRenderingBackendProxy::getDataURLForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getDataForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getBGRADataForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
* WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (275239 => 275240)


--- trunk/Source/WebKit/ChangeLog	2021-03-30 21:51:30 UTC (rev 275239)
+++ trunk/Source/WebKit/ChangeLog	2021-03-30 22:01:40 UTC (rev 275240)
@@ -1,3 +1,22 @@
+2021-03-30  Myles C. Maxfield  <[email protected]>
+
+        Address post-commit comments on r275180
+        https://bugs.webkit.org/show_bug.cgi?id=223915
+
+        Reviewed by Kimmo Kinnunen.
+
+        * WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
+        * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
+        (WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
+        (WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
+        (WebKit::RemoteRenderingBackendProxy::sharedMemoryForGetImageData):
+        (WebKit::RemoteRenderingBackendProxy::waitForGetImageDataToComplete):
+        (WebKit::RemoteRenderingBackendProxy::getDataURLForImageBuffer):
+        (WebKit::RemoteRenderingBackendProxy::getDataForImageBuffer):
+        (WebKit::RemoteRenderingBackendProxy::getBGRADataForImageBuffer):
+        (WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
+        * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
+
 2021-03-30  Jon Lee  <[email protected]>
 
         Remove obsolete WebGL2 feature flag

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h (275239 => 275240)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h	2021-03-30 21:51:30 UTC (rev 275239)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h	2021-03-30 22:01:40 UTC (rev 275240)
@@ -201,7 +201,8 @@
             return nullptr;
         size_t dataSize = imageData->data()->byteLength();
 
-        SharedMemory* sharedMemory = m_remoteRenderingBackendProxy->sharedMemoryForGetImageData(dataSize);
+        IPC::Timeout timeout = 5_s;
+        SharedMemory* sharedMemory = m_remoteRenderingBackendProxy->sharedMemoryForGetImageData(dataSize, timeout);
         if (!sharedMemory)
             return nullptr;
 
@@ -209,7 +210,7 @@
         mutableThis.m_drawingContext.recorder().getImageData(outputFormat, srcRect);
         mutableThis.flushDrawingContextAsync();
 
-        if (m_remoteRenderingBackendProxy->waitForGetImageDataToComplete())
+        if (m_remoteRenderingBackendProxy->waitForGetImageDataToComplete(timeout))
             memcpy(imageData->data()->data(), sharedMemory->data(), dataSize);
         else
             memset(imageData->data()->data(), 0, dataSize);

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp (275239 => 275240)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp	2021-03-30 21:51:30 UTC (rev 275239)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp	2021-03-30 22:01:40 UTC (rev 275240)
@@ -41,9 +41,6 @@
 
 using namespace WebCore;
 
-static constexpr Seconds longIPCTimeout = 5_s;
-static constexpr Seconds shortIPCTimeout = 1_s;
-
 std::unique_ptr<RemoteRenderingBackendProxy> RemoteRenderingBackendProxy::create()
 {
     return std::unique_ptr<RemoteRenderingBackendProxy>(new RemoteRenderingBackendProxy());
@@ -110,7 +107,7 @@
 RemoteRenderingBackendProxy::DidReceiveBackendCreationResult RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend()
 {
     Ref<IPC::Connection> connection = WebProcess::singleton().ensureGPUProcessConnection().connection();
-    if (!connection->waitForAndDispatchImmediately<Messages::RemoteRenderingBackendProxy::DidCreateImageBufferBackend>(m_renderingBackendIdentifier, shortIPCTimeout, IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives))
+    if (!connection->waitForAndDispatchImmediately<Messages::RemoteRenderingBackendProxy::DidCreateImageBufferBackend>(m_renderingBackendIdentifier, 1_s, IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives))
         return DidReceiveBackendCreationResult::TimeoutOrIPCFailure;
     return DidReceiveBackendCreationResult::ReceivedAnyResponse;
 }
@@ -118,7 +115,7 @@
 bool RemoteRenderingBackendProxy::waitForDidFlush()
 {
     Ref<IPC::Connection> connection = WebProcess::singleton().ensureGPUProcessConnection().connection();
-    return connection->waitForAndDispatchImmediately<Messages::RemoteRenderingBackendProxy::DidFlush>(m_renderingBackendIdentifier, shortIPCTimeout, IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives);
+    return connection->waitForAndDispatchImmediately<Messages::RemoteRenderingBackendProxy::DidFlush>(m_renderingBackendIdentifier, 1_s, IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives);
 }
 
 RefPtr<ImageBuffer> RemoteRenderingBackendProxy::createImageBuffer(const FloatSize& size, RenderingMode renderingMode, float resolutionScale, DestinationColorSpace colorSpace, PixelFormat pixelFormat)
@@ -146,7 +143,7 @@
     return nullptr;
 }
 
-SharedMemory* RemoteRenderingBackendProxy::sharedMemoryForGetImageData(size_t dataSize)
+SharedMemory* RemoteRenderingBackendProxy::sharedMemoryForGetImageData(size_t dataSize, IPC::Timeout timeout)
 {
     sendDeferredWakeupMessageIfNeeded();
 
@@ -160,11 +157,11 @@
     IPC::Semaphore semaphore;
 
     if (needsSharedMemory && needsSemaphore)
-        sendSync(Messages::RemoteRenderingBackend::UpdateSharedMemoryAndSemaphoreForGetImageData(dataSize), Messages::RemoteRenderingBackend::UpdateSharedMemoryAndSemaphoreForGetImageData::Reply(handle, semaphore), m_renderingBackendIdentifier, shortIPCTimeout, IPC::SendSyncOption::MaintainOrderingWithAsyncMessages);
+        sendSync(Messages::RemoteRenderingBackend::UpdateSharedMemoryAndSemaphoreForGetImageData(dataSize), Messages::RemoteRenderingBackend::UpdateSharedMemoryAndSemaphoreForGetImageData::Reply(handle, semaphore), m_renderingBackendIdentifier, timeout, IPC::SendSyncOption::MaintainOrderingWithAsyncMessages);
     else if (needsSharedMemory)
-        sendSync(Messages::RemoteRenderingBackend::UpdateSharedMemoryForGetImageData(dataSize), Messages::RemoteRenderingBackend::UpdateSharedMemoryForGetImageData::Reply(handle), m_renderingBackendIdentifier, shortIPCTimeout, IPC::SendSyncOption::MaintainOrderingWithAsyncMessages);
+        sendSync(Messages::RemoteRenderingBackend::UpdateSharedMemoryForGetImageData(dataSize), Messages::RemoteRenderingBackend::UpdateSharedMemoryForGetImageData::Reply(handle), m_renderingBackendIdentifier, timeout, IPC::SendSyncOption::MaintainOrderingWithAsyncMessages);
     else if (needsSemaphore)
-        sendSync(Messages::RemoteRenderingBackend::SemaphoreForGetImageData(), Messages::RemoteRenderingBackend::SemaphoreForGetImageData::Reply(semaphore), m_renderingBackendIdentifier, shortIPCTimeout);
+        sendSync(Messages::RemoteRenderingBackend::SemaphoreForGetImageData(), Messages::RemoteRenderingBackend::SemaphoreForGetImageData::Reply(semaphore), m_renderingBackendIdentifier, timeout);
 
     if (!handle.handle.isNull()) {
         m_getImageDataSharedMemory = SharedMemory::map(handle.handle, SharedMemory::Protection::ReadOnly);
@@ -180,11 +177,11 @@
     return m_getImageDataSharedMemory.get();
 }
 
-bool RemoteRenderingBackendProxy::waitForGetImageDataToComplete()
+bool RemoteRenderingBackendProxy::waitForGetImageDataToComplete(IPC::Timeout timeout)
 {
     ASSERT(m_getImageDataSemaphore);
 #if OS(DARWIN)
-    return m_getImageDataSemaphore->waitFor(longIPCTimeout);
+    return m_getImageDataSemaphore->waitFor(timeout);
 #else
     return true;
 #endif
@@ -201,7 +198,7 @@
     sendDeferredWakeupMessageIfNeeded();
 
     String urlString;
-    sendSync(Messages::RemoteRenderingBackend::GetDataURLForImageBuffer(mimeType, quality, preserveResolution, renderingResourceIdentifier), Messages::RemoteRenderingBackend::GetDataURLForImageBuffer::Reply(urlString), m_renderingBackendIdentifier, shortIPCTimeout);
+    sendSync(Messages::RemoteRenderingBackend::GetDataURLForImageBuffer(mimeType, quality, preserveResolution, renderingResourceIdentifier), Messages::RemoteRenderingBackend::GetDataURLForImageBuffer::Reply(urlString), m_renderingBackendIdentifier, 1_s);
     return urlString;
 }
 
@@ -210,7 +207,7 @@
     sendDeferredWakeupMessageIfNeeded();
 
     Vector<uint8_t> data;
-    sendSync(Messages::RemoteRenderingBackend::GetDataForImageBuffer(mimeType, quality, renderingResourceIdentifier), Messages::RemoteRenderingBackend::GetDataForImageBuffer::Reply(data), m_renderingBackendIdentifier, shortIPCTimeout);
+    sendSync(Messages::RemoteRenderingBackend::GetDataForImageBuffer(mimeType, quality, renderingResourceIdentifier), Messages::RemoteRenderingBackend::GetDataForImageBuffer::Reply(data), m_renderingBackendIdentifier, 1_s);
     return data;
 }
 
@@ -219,7 +216,7 @@
     sendDeferredWakeupMessageIfNeeded();
 
     Vector<uint8_t> data;
-    sendSync(Messages::RemoteRenderingBackend::GetBGRADataForImageBuffer(renderingResourceIdentifier), Messages::RemoteRenderingBackend::GetBGRADataForImageBuffer::Reply(data), m_renderingBackendIdentifier, shortIPCTimeout);
+    sendSync(Messages::RemoteRenderingBackend::GetBGRADataForImageBuffer(renderingResourceIdentifier), Messages::RemoteRenderingBackend::GetBGRADataForImageBuffer::Reply(data), m_renderingBackendIdentifier, 1_s);
     return data;
 }
 
@@ -228,7 +225,7 @@
     sendDeferredWakeupMessageIfNeeded();
 
     ShareableBitmap::Handle handle;
-    auto sendResult = sendSync(Messages::RemoteRenderingBackend::GetShareableBitmapForImageBuffer(imageBuffer, preserveResolution), Messages::RemoteRenderingBackend::GetShareableBitmapForImageBuffer::Reply(handle), m_renderingBackendIdentifier, shortIPCTimeout);
+    auto sendResult = sendSync(Messages::RemoteRenderingBackend::GetShareableBitmapForImageBuffer(imageBuffer, preserveResolution), Messages::RemoteRenderingBackend::GetShareableBitmapForImageBuffer::Reply(handle), m_renderingBackendIdentifier, 1_s);
     if (handle.isNull())
         return { };
     ASSERT_UNUSED(sendResult, sendResult);

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h (275239 => 275240)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h	2021-03-30 21:51:30 UTC (rev 275239)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h	2021-03-30 22:01:40 UTC (rev 275240)
@@ -76,8 +76,8 @@
     void willAppendItem(WebCore::RenderingResourceIdentifier);
     void sendDeferredWakeupMessageIfNeeded();
 
-    SharedMemory* sharedMemoryForGetImageData(size_t dataSize);
-    bool waitForGetImageDataToComplete();
+    SharedMemory* sharedMemoryForGetImageData(size_t dataSize, IPC::Timeout);
+    bool waitForGetImageDataToComplete(IPC::Timeout);
     void destroyGetImageDataSharedMemory();
 
     // IPC::MessageSender.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to