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

Reply via email to