[webkit-changes] [WebKit/WebKit] e69d18: Log quiet activities when throttler is forced to i...

bnham noreply at github.com
Thu Mar 28 10:12:59 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e69d18ce55643f7f61f977da9bf08c194c2863c2
      https://github.com/WebKit/WebKit/commit/e69d18ce55643f7f61f977da9bf08c194c2863c2
  Author: Ben Nham <nham at apple.com>
  Date:   2024-03-28 (Thu, 28 Mar 2024)

  Changed paths:
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Scripts/webkit/tests/MessageNames.h
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.h

  Log Message:
  -----------
  Log quiet activities when throttler is forced to invalidate all activities
https://bugs.webkit.org/show_bug.cgi?id=271799
rdar://125510942

Reviewed by Chris Dumez.

We have had various bugs where an async IPC starts but never finishes, causing the process to stay
alive for up to 30 seconds after it is supposed to actually suspend (e.g. 274157 at main). Up to now,
those async IPCs start quiet background activities, which log nothing when we are forced to
invalidate all activities. Make these types of bugs easier to debug in the future by logging quiet
activities in ProcessThrottler::invalidateAllActivities.

To do this, I added a new descriptionLiteral function in the IPC namespace, which works since all
message name descriptions are already string literals. I considered a larger patch that changes all
of the message name descriptions from `const char*` to `ASCIILiteral`, but that didn't seem worth
changing since it turns out that almost all uses of the current description function expect the
return type to be `const char*` anyway (e.g. they pass it into a printf-type logging function).

* Source/WebKit/Scripts/webkit/messages.py:
(generate_message_names_header):
* Source/WebKit/Scripts/webkit/tests/MessageNames.h:
(IPC::descriptionLiteral):
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::sendMessage):
* Source/WebKit/UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::invalidateAllActivities):
(WebKit::ProcessThrottlerActivity::ProcessThrottlerActivity):
(WebKit::ProcessThrottlerActivity::invalidate):
* Source/WebKit/UIProcess/ProcessThrottler.h:
(WebKit::ProcessThrottlerActivity::~ProcessThrottlerActivity):
(WebKit::ProcessThrottlerActivity::isQuietActivity const):
(WebKit::ProcessThrottler::foregroundActivity):
(WebKit::ProcessThrottler::backgroundActivity):
(WebKit::ProcessThrottler::quietBackgroundActivity):

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