[webkit-changes] [WebKit/WebKit] 50f865: RemoteGraphicsContextGLProxy::initializeIPC makes ...

mattwoodrow noreply at github.com
Wed May 31 16:44:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 50f865ffbe32f1fc8a092583f719630b62ae7604
      https://github.com/WebKit/WebKit/commit/50f865ffbe32f1fc8a092583f719630b62ae7604
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp

  Log Message:
  -----------
  RemoteGraphicsContextGLProxy::initializeIPC makes a copy of the StreamServerConnection::Handle
https://bugs.webkit.org/show_bug.cgi?id=257519
<rdar://109720377>

Reviewed by Kimmo Kinnunen.

The GPUConnectionToWebProcess::CreateGraphicsContextGL object's constructor doesn't actually move, so we end up making a copy for the IPC message.

The 'serverConnectionHandle' instance is then still alive, and holding on to a MachSendRight.

waitUntilInitialized can then block (for the 30 second timeout) if the GPUP crashes, since notification of the crash doesn't happen until all send rights are destroyed (including the one on the stack).

This change ensures that our copy of the handle is cleared, before trying to wait on the connection.

* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::initializeIPC):

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




More information about the webkit-changes mailing list