[webkit-changes] [WebKit/WebKit] ad1a65: Fix logic for terminating a child process spamming...

Chris Dumez noreply at github.com
Wed Aug 7 16:59:07 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ad1a65843e9e1fd4264ac34a4777729fa43f943f
      https://github.com/WebKit/WebKit/commit/ad1a65843e9e1fd4264ac34a4777729fa43f943f
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-08-07 (Wed, 07 Aug 2024)

  Changed paths:
    M Source/WebKit/Platform/IPC/Connection.cpp
    M Source/WebKit/Platform/IPC/Connection.h
    M Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm

  Log Message:
  -----------
  Fix logic for terminating a child process spamming us with IPC
https://bugs.webkit.org/show_bug.cgi?id=277746

Reviewed by Per Arne Vollan.

Make the following fixes to the logic:
1. Once the message queue size reaches maxPendingIncomingMessagesKillingThreshold, only
   call dispatchToClientWithIncomingMessagesLock() once to terminate the child process
   on the main thread. We used to dispatch a task for each message over the threshold,
   which was unnecessary.
2. After calling m_client->requestRemoteProcessTermination(), check if Connection::m_wasKilled
   is true. If it's not, call Connection::kill(). This used to be guaranteed when using XPC
   services since calling requestRemoteProcessTermination() would terminate the xpc connection.
   However, when using ExtensionKit (on iOS currently), it no longer kills the XPC connection
   since it is not required to terminate the child extension. This is useful because having
   Connection::m_wasKilled set to true causes Connection::enqueueIncomingMessage() do early
   return instead of doing work for every new incoming message while waiting for the child
   process to exit.

* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::enqueueIncomingMessage):

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