Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fea7751ece731c11ca96ae202e371108766c9fdd
https://github.com/WebKit/WebKit/commit/fea7751ece731c11ca96ae202e371108766c9fdd
Author: Chris Dumez <[email protected]>
Date: 2025-04-05 (Sat, 05 Apr 2025)
Changed paths:
M Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm
M Source/WebKit/GPUProcess/mac/GPUProcessMac.mm
M Source/WebKit/NetworkProcess/mac/NetworkProcessMac.mm
M Source/WebKit/SaferCPPExpectations/UnretainedLocalVarsCheckerExpectations
M Source/WebKit/Shared/Cocoa/DefaultWebBrowserChecks.mm
M Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm
M
Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm
M Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm
M Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm
M Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListStore.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKTextManipulationItem.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebPushAction.mm
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
M Source/WebKit/UIProcess/Automation/ios/WebAutomationSessionIOS.mm
M Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm
M Source/WebKit/UIProcess/Cocoa/BrowsingWarningCocoa.mm
M Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm
M Source/WebKit/UIProcess/Cocoa/WKStorageAccessAlert.mm
M
Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm
M
Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestSQLiteStore.mm
M
Source/WebKit/UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm
M Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm
M Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
M Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
M Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
M Source/WebKit/UIProcess/ios/WKPDFView.mm
M Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm
M Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm
M Source/WebKit/UIProcess/ios/forms/WKFormSelectPopover.mm
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm
M Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm
M Source/WebKit/UIProcess/mac/WKPrintingView.mm
M Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm
M Source/WebKit/UIProcess/mac/WebViewImpl.mm
M
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm
M
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPISidebarActionCocoa.mm
M
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm
M
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestCocoa.mm
M
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebNavigationURLFilter.mm
M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
M Source/WebKit/webpushd/WebPushDaemon.mm
M Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm
Log Message:
-----------
Avoid autoreleasing NSStrings in WebKit/ when not strictly necessary
https://bugs.webkit.org/show_bug.cgi?id=291104
Reviewed by Geoffrey Garen.
Avoid autoreleasing NSStrings when possible is good practice due to:
- Performance reasons:
- Cleaning up objects from all over the memory space in an autorelease pool
can be slow.
- Relying on autorelease pool draining to free objects can lead to temporary
memory spikes, as clean up work is delayed.
- Safety:
- Holding a RetainPtr to the object makes lifetime clearer, whereas
autorelease
pool draining is not as clear and can result in use-after-free bugs.
- Easier debugging:
- Memory corruption bugs are harder to debug when it happens during
autorelease
pool drain.
* Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:
(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString):
* Source/WebKit/GPUProcess/mac/GPUProcessMac.mm:
(WebKit::GPUProcess::updateProcessName):
* Source/WebKit/NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::initializeProcessName):
* Source/WebKit/Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::hasProhibitedUsageStrings):
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm:
(WebKit::constructExpectedMessage):
(WebKit::validateArray):
(WebKit::formatList):
(WebKit::validateDictionary):
*
Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm:
(rowFilterStringFromRowKeys):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore
deleteScriptsWithIDs:completionHandler:]):
* Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm:
(-[_WKWebExtensionSQLiteStore _setDatabaseSchemaVersion:]):
(-[_WKWebExtensionSQLiteStore createSavepointWithCompletionHandler:]):
(-[_WKWebExtensionSQLiteStore commitSavepoint:completionHandler:]):
(-[_WKWebExtensionSQLiteStore rollbackToSavepoint:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm:
(+[WKContentRuleList _parseRuleList:]):
* Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListStore.mm:
(-[WKContentRuleListStore
compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):
(-[WKContentRuleListStore
lookUpContentRuleListForIdentifier:completionHandler:]):
(-[WKContentRuleListStore
removeContentRuleListForIdentifier:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateFixedColorExtensionViews]):
* Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector printErrorToConsole:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration description]):
* Source/WebKit/UIProcess/API/Cocoa/_WKTextManipulationItem.mm:
(-[_WKTextManipulationItem _descriptionPreservingPrivacy:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(+[_WKWebAuthenticationPanel
importLocalAuthenticatorWithAccessGroup:credential:error:]):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebPushAction.mm:
(uuidFromPushPartition):
(-[_WKWebPushAction beginBackgroundTaskForHandling]):
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _presentLockdownMode]):
* Source/WebKit/UIProcess/Automation/ios/WebAutomationSessionIOS.mm:
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
* Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm:
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
* Source/WebKit/UIProcess/Cocoa/BrowsingWarningCocoa.mm:
(WebKit::browsingDetailsText):
* Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm:
(WebKit::alertMessageText):
* Source/WebKit/UIProcess/Cocoa/WKStorageAccessAlert.mm:
(-[_WKSSOSiteList tableView:viewForTableColumn:row:]):
(WebKit::presentStorageAccessAlert):
(WebKit::presentStorageAccessAlertQuirk):
(WebKit::presentStorageAccessAlertSSOQuirk):
*
Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm:
(WebKit::if):
(-[_WKWebExtensionDeclarativeNetRequestRule _validateHeaderInfoDictionary:]):
(-[_WKWebExtensionDeclarativeNetRequestRule description]):
*
Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestSQLiteStore.mm:
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore
addRules:completionHandler:]):
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore
deleteRules:completionHandler:]):
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore
_getRulesWithRuleIDs:errorMessage:]):
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore _insertRule:inDatabase:]):
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore _createFreshDatabaseSchema]):
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore _resetDatabaseSchema]):
(-[_WKWebExtensionDeclarativeNetRequestSQLiteStore _isDatabaseEmpty]):
* Source/WebKit/UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
* Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm:
(+[WKInspectorViewController URLForInspectorResource:]):
* Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:
(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::appendLayerDescription):
* Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::platformSetNetworkParameters):
(WebKit::WebsiteDataStore::initializeManagedDomains):
* Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant
_appendAppLinkOpenActionsForURL:actions:elementInfo:]):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView actionSheetAssistant:shareElementWithImage:rect:]):
* Source/WebKit/UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _URLWithPageIndex:]):
* Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm:
(-[WKWebGeolocationPolicyDecider _executeNextChallenge]):
* Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker setHour:minute:]):
* Source/WebKit/UIProcess/ios/forms/WKFormSelectPopover.mm:
(stringWithWritingDirection):
(-[WKSelectTableViewController initWithView:hasGroups:]):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController setLocation:]):
(-[WKFullScreenViewController loadView]):
(-[WKFullScreenViewController _showPhishingAlert]):
* Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm:
(WebKit::DisplayCaptureSessionManager::alertForGetDisplayMedia):
* Source/WebKit/UIProcess/mac/WKPrintingView.mm:
(linkDestinationName):
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
* Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionsController showSuggestionsDropdown:]):
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::pathWithUniqueFilenameForPath):
(WebKit::WebViewImpl::namesOfPromisedFilesDroppedAtDestination):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm:
(WebKit::WebExtensionAPIAction::parseIconPathsDictionary):
(WebKit::WebExtensionAPIAction::parseIconImageDataDictionary):
*
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPISidebarActionCocoa.mm:
(WebKit::parseDetailsStringFromKey):
(WebKit::WebExtensionAPISidebarAction::setIcon):
*
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm:
(WebKit::WebExtensionAPIStorageArea::set):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm:
(WebKit::WebExtensionAPITest::assertResolves):
(WebKit::WebExtensionAPITest::assertSafe):
(WebKit::WebExtensionAPITest::startNextTest):
*
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestCocoa.mm:
(WebKit::webRequestDetailsForResourceLoad):
*
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebNavigationURLFilter.mm:
(-[_WKWebExtensionWebNavigationURLPredicate
initWithTypeString:value:outErrorMessage:]):
* Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityDataDetectorValue:point:]):
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::updateProcessName):
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::platformNotificationCenterBundleIdentifier):
(WebPushD::WebPushDaemon::showNotification):
* Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm:
(WebKit::WebPushToolMain):
Canonical link: https://commits.webkit.org/293324@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes