Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3dcfec1cff82ddf5d5c0cd6351c4366a50a139b5 https://github.com/WebKit/WebKit/commit/3dcfec1cff82ddf5d5c0cd6351c4366a50a139b5 Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2024-06-07 (Fri, 07 Jun 2024)
Changed paths: M Source/WebKit/Platform/IPC/Connection.cpp M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/WebProcessProxy.messages.in M Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp M Source/WebKit/WebProcess/GPU/GPUProcessConnection.h M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h Log Message: ----------- Try resetting the GPU process if rendering commands time out https://bugs.webkit.org/show_bug.cgi?id=274934 rdar://125143181 Reviewed by Simon Fraser and Cameron McCormack. Terminate GPU process if remote rendering message sends time out. If the GPU procsess side threads are not processing the messages, the sends start failing once the IPC stream buffer fills up. Mark the RemoteRenderingBackendProxy as non-responsive upon first timeout. Send unresponsiveness notification to the UI process. Terminate the GPU process upon receiving the notification. * Source/WebKit/Platform/IPC/Connection.cpp: (IPC::Connection::waitForMessage): * Source/WebKit/Scripts/webkit/messages.py: (handler_function): * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::drawInContext): * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm: * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm: (WebKit::RemoteLayerWithRemoteRenderingBackingStore::createContextAndPaintContents): * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::childConnectionDidBecomeUnresponsive): * Source/WebKit/UIProcess/GPU/GPUProcessProxy.h: * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::gpuProcessConnectionDidBecomeUnresponsive): * Source/WebKit/UIProcess/WebProcessProxy.h: * Source/WebKit/UIProcess/WebProcessProxy.messages.in: * Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp: (WebKit::GPUProcessConnection::didBecomeUnresponsive): (WebKit::GPUProcessConnection::didClose): * Source/WebKit/WebProcess/GPU/GPUProcessConnection.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp: (WebKit::RemoteDisplayListRecorderProxy::send): (WebKit::RemoteDisplayListRecorderProxy::connection const): (WebKit::RemoteDisplayListRecorderProxy::didBecomeUnresponsive const): * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::send): (WebKit::RemoteImageBufferProxy::sendSync): (WebKit::RemoteImageBufferProxy::connection const): (WebKit::RemoteImageBufferProxy::didBecomeUnresponsive const): (WebKit::RemoteImageBufferProxy::ensureBackend const): (WebKit::RemoteImageBufferProxy::streamConnection const): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp: (WebKit::RemoteImageBufferSetProxy::send): (WebKit::RemoteImageBufferSetProxy::sendSync): (WebKit::RemoteImageBufferSetProxy::connection const): (WebKit::RemoteImageBufferSetProxy::didBecomeUnresponsive const): (WebKit::RemoteImageBufferSetProxy::flushFrontBufferAsync): (WebKit::RemoteImageBufferSetProxy::willPrepareForDisplay): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy): (WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection): (WebKit::RemoteRenderingBackendProxy::send): (WebKit::RemoteRenderingBackendProxy::sendSync): (WebKit::RemoteRenderingBackendProxy::didClose): (WebKit::RemoteRenderingBackendProxy::didBecomeUnresponsive): (WebKit::RemoteRenderingBackendProxy::disconnectGPUProcess): (WebKit::RemoteRenderingBackendProxy::releaseImageBuffer): (WebKit::RemoteRenderingBackendProxy::releaseRemoteImageBufferSet): (WebKit::RemoteRenderingBackendProxy::releaseAllDrawingResources): (WebKit::RemoteRenderingBackendProxy::releaseRenderingResource): (WebKit::RemoteRenderingBackendProxy::releaseAllImageResources): (WebKit::RemoteRenderingBackendProxy::prepareImageBufferSetsForDisplay): (WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile): (WebKit::RemoteRenderingBackendProxy::finalizeRenderingUpdate): (WebKit::RemoteRenderingBackendProxy::didPaintLayers): (WebKit::RemoteRenderingBackendProxy::connection): (WebKit::RemoteRenderingBackendProxy::didInitialize): (WebKit::Function<bool): (WebKit::RemoteRenderingBackendProxy::streamConnection): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h: (WebKit::RemoteRenderingBackendProxy::isGPUProcessConnectionClosed const): * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createBarcodeDetector const): (WebKit::WebChromeClient::getBarcodeDetectorSupportedFormats const): (WebKit::WebChromeClient::createFaceDetector const): (WebKit::WebChromeClient::createTextDetector const): * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::updateRendering): (WebKit::RemoteLayerTreeDrawingArea::didCompleteRenderingUpdateDisplayFlush): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush): (WebKit::RemoteLayerTreeDrawingArea::didCompleteRenderingUpdateDisplay): Deleted. * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didFlushLayerTreeAtTime): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::gpuProcessConnectionClosed): (WebKit::WebProcess::gpuProcessConnectionDidBecomeUnresponsive): * Source/WebKit/WebProcess/WebProcess.h: Canonical link: https://commits.webkit.org/279833@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