[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