Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 233820692ce5b0785c5631f10beb51b7fa9d99be
      
https://github.com/WebKit/WebKit/commit/233820692ce5b0785c5631f10beb51b7fa9d99be
  Author: Per Arne Vollan <pvol...@apple.com>
  Date:   2024-08-01 (Thu, 01 Aug 2024)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.messages.in
    M Source/WebKit/ModelProcess/ModelProcess.cpp
    M Source/WebKit/ModelProcess/ModelProcess.h
    M Source/WebKit/ModelProcess/ModelProcess.messages.in
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h
    M Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProxyCocoa.mm
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/Launcher/ProcessLauncher.h
    M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.cpp

  Log Message:
  -----------
  WebKit processes should not suspend during launch and initialization
https://bugs.webkit.org/show_bug.cgi?id=277163
rdar://132590940

Reviewed by Chris Dumez.

Currently, there is a chance that WebKit processes on iOS will suspend between 
launch and initialization.
This is becaues we release the launch grant in 
AuxiliaryProcessProxy::didFinishLaunching, but we do not
take a foreground activity until later. For the WebContent process we do take a 
foreground activity when
initializing the process, but there is a chance the WebContent process can be 
suspended between the launch
and initialization events. For the Networking and GPU process, we do not take a 
foreground activity during
initialization. This is addressed by capturing an activity and launch grant 
when sending the message that
initializes the process, and releasing it after process initialization is 
finished. This is done for all
process types.

* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/ModelProcess/ModelProcess.messages.in:
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::sendMessage):
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::didFinishProcessInitialization):
* Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp:
(WebKit::ModelProcessProxy::ModelProcessProxy):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::initializeWebProcess):
* Source/WebKit/UIProcess/WebProcessProxy.h:

Canonical link: https://commits.webkit.org/281708@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

Reply via email to