[webkit-changes] [WebKit/WebKit] 0951eb: Add memory footprint notification callbacks
bnham
noreply at github.com
Thu Feb 15 08:05:56 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0951ebda6a7aa5edba8cfb11e83d4aa1c6a893ce
https://github.com/WebKit/WebKit/commit/0951ebda6a7aa5edba8cfb11e83d4aa1c6a893ce
Author: Ben Nham <nham at apple.com>
Date: 2024-02-15 (Thu, 15 Feb 2024)
Changed paths:
M Source/WTF/wtf/MemoryPressureHandler.cpp
M Source/WTF/wtf/MemoryPressureHandler.h
M Source/WebKit/Shared/WebProcessCreationParameters.h
M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
M Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp
M Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/UIProcess/WebProcessProxy.messages.in
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
M Source/WebKit/WebProcess/WebProcess.cpp
M Tools/TestWebKitAPI/SourcesCocoa.txt
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
A Tools/TestWebKitAPI/Tests/WebKitCocoa/MemoryFootprintThreshold.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/SnapshotStore.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPageHasMediaStreamingActivity.mm
Log Message:
-----------
Add memory footprint notification callbacks
https://bugs.webkit.org/show_bug.cgi?id=269317
rdar://problem/122908959
Reviewed by Brady Eidson.
We want to observe when sites in the field exceed various key memory footprint thresholds (e.g. 2GB,
4GB, etc.). To do this, we let the embedder specify those thresholds in _WKProcessPoolConfiguration.
We also add a _WKWebsiteDataStore delegate method that is called when WebContent's footprint exceeds
those thresholds.
Theis notification only works on the Mac, since they require the use of the periodic memory monitor
(which is only enabled on Mac).
* Source/WTF/wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::setMemoryFootprintPollIntervalForTesting):
(WTF::MemoryPressureHandler::setMemoryFootprintNotificationThresholds):
(WTF::MemoryPressureHandler::measurementTimerFired):
* Source/WTF/wtf/MemoryPressureHandler.h:
* Source/WebKit/Shared/WebProcessCreationParameters.h:
* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
* Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
* Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration setMemoryFootprintPollIntervalForTesting:]):
(-[_WKProcessPoolConfiguration memoryFootprintPollIntervalForTesting]):
(-[_WKProcessPoolConfiguration memoryFootprintNotificationThresholds]):
(-[_WKProcessPoolConfiguration setMemoryFootprintNotificationThresholds:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didExceedMemoryFootprintThreshold):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.messages.in:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h:
(WebKit::WebsiteDataStoreClient::didExceedMemoryFootprintThreshold):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::setMemoryFootprintNotificationThresholds):
(WebKit::WebsiteDataStoreConfiguration::memoryFootprintNotificationThresholds):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* Tools/TestWebKitAPI/SourcesCocoa.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/MemoryFootprintThreshold.mm: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSuspendAllMediaPlayback.mm:
Canonical link: https://commits.webkit.org/274733@main
More information about the webkit-changes
mailing list