Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 094fb96f2ba5ca89933443b0f0922c6612cc5e50
      
https://github.com/WebKit/WebKit/commit/094fb96f2ba5ca89933443b0f0922c6612cc5e50
  Author: Per Arne Vollan <[email protected]>
  Date:   2024-02-09 (Fri, 09 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/Launcher/ProcessLauncher.h
    M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm
    M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.cpp

  Log Message:
  -----------
  Take grant on WebKit extension process on launch
https://bugs.webkit.org/show_bug.cgi?id=269071
rdar://122647959

Reviewed by Brent Fulgham and Chris Dumez.

There is currently a race condition on launch of WebKit extension processes 
where it is possible that
an extension process will be suspended before it is able to reply to the XPC 
bootstrap message. This is
because the system is only holding an initial assertion for a short period of 
time, and if the process
has not replied to the XPC bootstrap message within that timeframe, it can 
become suspended and will
then never reply to the bootstrap message, and the UI process will consider 
this process as hung.
This can be addressed by taking a grant on the process and releasing that grant 
when we have received
the XPC reply.

* Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp:
(WebKit::ModelProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/Launcher/ProcessLauncher.h:
(WebKit::ProcessLauncher::releaseLaunchGrant):
* Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::LaunchGrant::LaunchGrant):
(WebKit::LaunchGrant::~LaunchGrant):
(WebKit::ProcessLauncher::launchProcess):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to