[webkit-changes] [WebKit/WebKit] f6f4d7: GPU process is terminated during debugging

Kimmo Kinnunen noreply at github.com
Thu Aug 15 02:28:54 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f6f4d72c2769ddb8b63fa5986bc70f5427d214ee
      https://github.com/WebKit/WebKit/commit/f6f4d72c2769ddb8b63fa5986bc70f5427d214ee
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2024-08-15 (Thu, 15 Aug 2024)

  Changed paths:
    M Introduction.md
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h

  Log Message:
  -----------
  GPU process is terminated during debugging
https://bugs.webkit.org/show_bug.cgi?id=277731
rdar://133372529

Reviewed by Mike Wyrzykowski.

GPU process would not be debuggable due to WCP timing out a send or wait
to GPUP. This would cause following distinct problems
- WCP would ask UI to terminate GPUP
- Even if GPUP was not terminated, the WCP would already be in undefined
  state due to timing out a send or a wait.

Add a setting ChildProcessDebuggabilityEnabled which should be set when
the developer is intending to stop the GPU process in debugger.

The added implementation will set stream IPC connection timeout to
infinity. Later commits will modify other, less frequent normal IPC
sendSync and wait timeouts.

Run with:
  lldb -w -n GPU.Development -o c
  run-webkit-tests --internal-feature=ChildProcessDebuggabilityEnabled --no-timeout test.html

  run-minibrowser
  Set "Internal -> Child Process Debuggability" and restart

* Source/WTF/Scripts/GeneratePreferences.rb:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::create):
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::create):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::gpuProcessTimeoutDuration const):
(WebKit::WebProcess::setGPUProcessDebuggabilityEnabled):
* Source/WebKit/WebProcess/WebProcess.h:

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list