Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0951ebda6a7aa5edba8cfb11e83d4aa1c6a893ce
https://github.com/WebKit/WebKit/commit/0951ebda6a7aa5edba8cfb11e83d4aa1c6a893ce
Author: Ben Nham <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes