[webkit-changes] [WebKit/WebKit] 501a16: Add debug logging for process and page state

bnham noreply at github.com
Thu Oct 6 13:34:35 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 501a16433dc7ebb67f2de223f3dd4fbd2af4fe03
      https://github.com/WebKit/WebKit/commit/501a16433dc7ebb67f2de223f3dd4fbd2af4fe03
  Author: Ben Nham <nham at apple.com>
  Date:   2022-10-06 (Thu, 06 Oct 2022)

  Changed paths:
    M Source/WTF/wtf/MemoryPressureHandler.cpp
    M Source/WTF/wtf/MemoryPressureHandler.h
    M Source/WebCore/page/MemoryRelease.cpp
    M Source/WebCore/platform/CountedUserActivity.h
    M Source/WebCore/platform/Logging.h
    M Source/WebCore/platform/UserActivity.cpp
    M Source/WebCore/platform/UserActivity.h
    M Source/WebCore/platform/mac/UserActivityMac.mm
    M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp
    M Source/WebKit/Shared/AuxiliaryProcess.cpp
    M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
    M Source/WebKit/UIProcess/ProcessAssertion.cpp
    M Source/WebKit/UIProcess/ProcessAssertion.h
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  -----------
  Add debug logging for process and page state
https://bugs.webkit.org/show_bug.cgi?id=245244
rdar://problem/99986063

Reviewed by Chris Dumez.

This adds notifyd callbacks that dump state about processes and pages. I've found this useful
recently to debug issues with enabling App Nap and adopting RunningBoard on macOS. I also intend to
use this so that Membuster5 knows which domain is loaded into a given WebContent pid. This will
allow the benchmark to provide per-origin memory footprint data.

I also added logging to UserActivity as we've needed this logging recently to debug and understand
issues with App Nap activation. As part of this I changed ProcessAssertion to take the description
string as a a string literal to make the logging marginally cheaper.

* Source/WTF/wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::singleton):
(WTF::memoryPressureHandlerIfExists):
(WTF::MemoryPressureHandler::processStateDescription):
* Source/WTF/wtf/MemoryPressureHandler.h:
* Source/WebCore/page/MemoryRelease.cpp:
(WebCore::logMemoryStatistics):
* Source/WebCore/platform/CountedUserActivity.h:
(WebCore::CountedUserActivity::CountedUserActivity):
* Source/WebCore/platform/Logging.h:
* Source/WebCore/platform/UserActivity.cpp:
(WebCore::UserActivity::Impl::Impl):
(WebCore::UserActivity::UserActivity):
* Source/WebCore/platform/UserActivity.h:
* Source/WebCore/platform/mac/UserActivityMac.mm:
(WebCore::UserActivity::Impl::Impl):
(WebCore::UserActivity::Impl::beginActivity):
(WebCore::UserActivity::Impl::endActivity):
* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
* Source/WebKit/Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::AuxiliaryProcess):
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::logProcessPoolState):
(WebKit::WebProcessPool::platformInitialize):
* Source/WebKit/UIProcess/ProcessAssertion.cpp:
(WebKit::processAssertionTypeDescription):
* Source/WebKit/UIProcess/ProcessAssertion.h:
* Source/WebKit/UIProcess/ProcessThrottler.cpp:
(WebKit::activityNames):
(WebKit::operator<<):
* Source/WebKit/UIProcess/ProcessThrottler.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::operator<<):
* Source/WebKit/UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::throttler const):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::activityState const):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::additionalStateForDiagnosticReport const):

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




More information about the webkit-changes mailing list