Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ba72767578244c0e851b84ef8cccc6c29139870c
      
https://github.com/WebKit/WebKit/commit/ba72767578244c0e851b84ef8cccc6c29139870c
  Author: Kimmo Kinnunen <kkinnu...@apple.com>
  Date:   2024-08-13 (Tue, 13 Aug 2024)

  Changed paths:
    M LayoutTests/ipc/restrictedendpoints/allow-access-webGPU.html
    M LayoutTests/ipc/restrictedendpoints/deny-access-webGPU.html
    M LayoutTests/ipc/send-filter.html
    M LayoutTests/ipc/send-gpu-GetShareableBitmap-RemoteRenderingBackend.html
    M LayoutTests/ipc/send-gradient.html
    M 
LayoutTests/ipc/send-invalid-sync-stream-message-empty-reply-check-exception.html
    M LayoutTests/ipc/stream-async-with-reply.html
    M LayoutTests/ipc/stream-buffer-read-write.html
    M LayoutTests/ipc/stream-check-autoreleasepool.html
    M LayoutTests/ipc/stream-sync-crash-no-timeout.html
    M LayoutTests/ipc/stream-sync-reply-shared-memory.html
    M Source/WebCore/platform/graphics/cv/GraphicsContextGLCVCocoa.cpp
    M Source/WebKit/Platform/IPC/StreamClientConnection.cpp
    M Source/WebKit/Platform/IPC/StreamClientConnection.h
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.cpp
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.cpp
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCompositorIntegrationProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePresentationContextProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h
    M Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp
    M Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp

  Log Message:
  -----------
  Stream IPC should have per-connection timeout and not per operation timeout
https://bugs.webkit.org/show_bug.cgi?id=277853
rdar://problem/133534897

Reviewed by Geoffrey Garen.

IPC::StreamClientConnection would have per send timeout. Turns out
per-message send timeout is not useful. There are no distinction between
how much to wait when sending message A vs sending message B.

Same case for per-send timeout vs per-wait timeout. Turns out there
are no practical configurability wrt how much to wait to receive message
vs how much wait to send a message. There are no practical ignorable
wait failures in really correct code -- all wait timeouts are lost
senders.

Move the timeout as a parameter to StreamClientConnection.

Subsequent patches will use the parameter to configure the timeout
in more dynamic fashion. The intention is to be able to start WebKit
so that, for example, GPUP connections do not time out, and thus
GPUP can be debugged.

* LayoutTests/ipc/restrictedendpoints/allow-access-webGPU.html:
* LayoutTests/ipc/restrictedendpoints/deny-access-webGPU.html:
* LayoutTests/ipc/send-filter.html:
* LayoutTests/ipc/send-gpu-GetShareableBitmap-RemoteRenderingBackend.html:
* LayoutTests/ipc/send-gradient.html:
* 
LayoutTests/ipc/send-invalid-sync-stream-message-empty-reply-check-exception.html:
* LayoutTests/ipc/stream-async-with-reply.html:
* LayoutTests/ipc/stream-buffer-read-write.html:
* LayoutTests/ipc/stream-check-autoreleasepool.html:
* LayoutTests/ipc/stream-sync-crash-no-timeout.html:
* LayoutTests/ipc/stream-sync-reply-shared-memory.html:
* Source/WebKit/Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::create):
(IPC::StreamClientConnection::StreamClientConnection):
(IPC::StreamClientConnection::flushSentMessages):
* Source/WebKit/Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendWithAsyncReply):
(IPC::StreamClientConnection::trySendStream):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::waitForAndDispatchImmediately):
(IPC::StreamClientConnection::waitForAsyncReplyAndDispatchImmediately):
(IPC::StreamClientConnection::trySendSyncStream):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.cpp:
(WebKit::ShapeDetection::RemoteBarcodeDetectorProxy::create):
(WebKit::ShapeDetection::RemoteBarcodeDetectorProxy::~RemoteBarcodeDetectorProxy):
(WebKit::ShapeDetection::RemoteBarcodeDetectorProxy::getSupportedFormats):
(WebKit::ShapeDetection::RemoteBarcodeDetectorProxy::detect):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.cpp:
(WebKit::ShapeDetection::RemoteFaceDetectorProxy::create):
(WebKit::ShapeDetection::RemoteFaceDetectorProxy::~RemoteFaceDetectorProxy):
(WebKit::ShapeDetection::RemoteFaceDetectorProxy::detect):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.cpp:
(WebKit::ShapeDetection::RemoteTextDetectorProxy::create):
(WebKit::ShapeDetection::RemoteTextDetectorProxy::~RemoteTextDetectorProxy):
(WebKit::ShapeDetection::RemoteTextDetectorProxy::detect):
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::send):
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::waitUntilInitialized):
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
(WebKit::RemoteGraphicsContextGLProxy::send):
(WebKit::RemoteGraphicsContextGLProxy::sendSync):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxy::send):
(WebKit::RemoteImageBufferProxy::sendSync):
(WebKit::RemoteImageBufferProxy::ensureBackend const):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp:
(WebKit::RemoteImageBufferSetProxyFlushFence::create):
(WebKit::RemoteImageBufferSetProxyFlushFence::wait):
(WebKit::RemoteImageBufferSetProxyFlushFence::RemoteImageBufferSetProxyFlushFence):
(WebKit::RemoteImageBufferSetProxy::send):
(WebKit::RemoteImageBufferSetProxy::sendSync):
(WebKit::RemoteImageBufferSetProxy::flushFrontBufferAsync):
(WebKit::RemoteImageBufferSetProxyFlushFence::waitFor): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::send):
(WebKit::RemoteRenderingBackendProxy::sendSync):
(WebKit::RemoteRenderingBackendProxy::sendWithAsyncReply):
(WebKit::RemoteRenderingBackendProxy::connection):
(WebKit::Function<bool):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
* 
Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCompositorIntegrationProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::create):
(WebKit::RemoteGPUProxy::waitUntilInitialized):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePresentationContextProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h:
* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::convertToDouble):
(WebKit::IPCTestingAPI::extractIPCStreamMessageInfo):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendWithAsyncReply):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendSyncMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendIPCStreamTesterSyncCrashOnZero):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::waitForMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::waitForAsyncReplyAndDispatchImmediately):
(WebKit::IPCTestingAPI::JSIPC::createStreamClientConnection):
* Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp:
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::TEST_P):

Canonical link: https://commits.webkit.org/282161@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to