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