Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 39ee5e3e49f12d88a290b4d6326d1387f27122e3
https://github.com/WebKit/WebKit/commit/39ee5e3e49f12d88a290b4d6326d1387f27122e3
Author: Ryan Reno <[email protected]>
Date: 2024-07-02 (Tue, 02 Jul 2024)
Changed paths:
M Source/WebCore/Modules/entriesapi/ErrorCallback.idl
M Source/WebCore/Modules/entriesapi/FileCallback.idl
M Source/WebCore/Modules/entriesapi/FileSystemEntriesCallback.idl
M Source/WebCore/Modules/entriesapi/FileSystemEntryCallback.idl
M Source/WebCore/Modules/geolocation/PositionCallback.idl
M Source/WebCore/Modules/geolocation/PositionErrorCallback.idl
M Source/WebCore/Modules/mediasession/MediaSessionActionHandler.idl
M Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl
M
Source/WebCore/Modules/remoteplayback/RemotePlaybackAvailabilityCallback.idl
M Source/WebCore/Modules/reporting/ReportingObserverCallback.idl
M Source/WebCore/Modules/web-locks/WebLockGrantedCallback.idl
M Source/WebCore/Modules/webaudio/AudioBufferCallback.idl
M Source/WebCore/Modules/webaudio/AudioWorkletProcessorConstructor.idl
M Source/WebCore/Modules/webcodecs/WebCodecsAudioDataOutputCallback.idl
M
Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunkOutputCallback.idl
M
Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunkOutputCallback.idl
M Source/WebCore/Modules/webcodecs/WebCodecsErrorCallback.idl
M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrameOutputCallback.idl
M Source/WebCore/Modules/webdatabase/DatabaseCallback.idl
M Source/WebCore/Modules/webdatabase/SQLStatementCallback.idl
M Source/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl
M Source/WebCore/Modules/webdatabase/SQLTransactionCallback.idl
M Source/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl
M Source/WebCore/Modules/webxr/XRFrameRequestCallback.idl
M Source/WebCore/animation/CustomEffectCallback.idl
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/IDLAttributes.json
M Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h
M Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h
A Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionStrong.cpp
A Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionStrong.h
M
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp
M
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.h
M
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp
M
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h
M
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithVariadic.cpp
M
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithVariadic.h
M Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.h
M Source/WebCore/bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp
M Source/WebCore/bindings/scripts/test/JS/JSTestVoidCallbackFunction.h
M Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep
A Source/WebCore/bindings/scripts/test/TestCallbackFunctionStrong.idl
M Source/WebCore/css/CSSPaintCallback.idl
M Source/WebCore/dom/AbortAlgorithm.idl
M Source/WebCore/dom/CreateHTMLCallback.idl
M Source/WebCore/dom/CreateScriptCallback.idl
M Source/WebCore/dom/CreateScriptURLCallback.idl
M Source/WebCore/dom/IdleRequestCallback.idl
M Source/WebCore/dom/MutationCallback.idl
M Source/WebCore/dom/NodeFilter.idl
M Source/WebCore/dom/RequestAnimationFrameCallback.idl
M Source/WebCore/dom/StringCallback.idl
M Source/WebCore/dom/ViewTransitionUpdateCallback.idl
M Source/WebCore/fileapi/BlobCallback.idl
M Source/WebCore/html/VideoFrameRequestCallback.idl
M Source/WebCore/html/VoidCallback.idl
M Source/WebCore/inspector/RTCLogsCallback.idl
M Source/WebCore/page/IntersectionObserverCallback.idl
M Source/WebCore/page/NavigationInterceptHandler.idl
M Source/WebCore/page/PerformanceObserverCallback.idl
M Source/WebCore/page/ResizeObserverCallback.idl
M Source/WebCore/testing/XRSimulateUserActivationFunction.idl
M Source/WebCore/xml/CustomXPathNSResolver.idl
A filenames
Log Message:
-----------
Make IsWeakCallback the default
https://bugs.webkit.org/show_bug.cgi?id=256269
rdar://108859209
Reviewed by Ryosuke Niwa.
Callbacks are held as Strong handles which make them GC roots by
default. This can cause these functions to leak objects they capture.
In order to opt-out of this behavior and manage their lifetime
manually the extended IDL attribute `IsWeakCallback` was created. There
have been at least two memory leaks fixed by switching callbacks from
Strong to Weak (263868@main and 280557@main). In order to help prevent
these leaks in the future this patch swaps the defualt by replacing
`IsWeakCallback` with `IsStrongCallback`.
For now we leave all the callbacks which were previously strong as such.
* Source/WebCore/Modules/entriesapi/ErrorCallback.idl:
* Source/WebCore/Modules/entriesapi/FileCallback.idl:
* Source/WebCore/Modules/entriesapi/FileSystemEntriesCallback.idl:
* Source/WebCore/Modules/entriesapi/FileSystemEntryCallback.idl:
* Source/WebCore/Modules/geolocation/PositionCallback.idl:
* Source/WebCore/Modules/geolocation/PositionErrorCallback.idl:
* Source/WebCore/Modules/mediasession/MediaSessionActionHandler.idl:
* Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl:
* Source/WebCore/Modules/remoteplayback/RemotePlaybackAvailabilityCallback.idl:
* Source/WebCore/Modules/reporting/ReportingObserverCallback.idl:
* Source/WebCore/Modules/web-locks/WebLockGrantedCallback.idl:
* Source/WebCore/Modules/webaudio/AudioBufferCallback.idl:
* Source/WebCore/Modules/webaudio/AudioWorkletProcessorConstructor.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsAudioDataOutputCallback.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunkOutputCallback.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunkOutputCallback.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsErrorCallback.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrameOutputCallback.idl:
* Source/WebCore/Modules/webdatabase/DatabaseCallback.idl:
* Source/WebCore/Modules/webdatabase/SQLStatementCallback.idl:
* Source/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl:
* Source/WebCore/Modules/webdatabase/SQLTransactionCallback.idl:
* Source/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl:
* Source/WebCore/Modules/webxr/XRFrameRequestCallback.idl:
* Source/WebCore/animation/CustomEffectCallback.idl:
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
* Source/WebCore/bindings/scripts/IDLAttributes.json:
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
(WebCore::JSTestCallbackFunction::JSTestCallbackFunction):
(WebCore::JSTestCallbackFunction::visitJSFunction):
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h:
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:
(WebCore::JSTestCallbackFunctionRethrow::JSTestCallbackFunctionRethrow):
(WebCore::JSTestCallbackFunctionRethrow::visitJSFunction):
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h:
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionStrong.cpp:
Copied from Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp.
(WebCore::JSTestCallbackFunctionStrong::JSTestCallbackFunctionStrong):
(WebCore::JSTestCallbackFunctionStrong::~JSTestCallbackFunctionStrong):
(WebCore::JSTestCallbackFunctionStrong::handleEvent):
(WebCore::toJS):
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionStrong.h:
Copied from Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.h.
(WebCore::toJS):
*
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp:
(WebCore::JSTestCallbackFunctionWithThisObject::JSTestCallbackFunctionWithThisObject):
(WebCore::JSTestCallbackFunctionWithThisObject::visitJSFunction):
*
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.h:
*
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
(WebCore::JSTestCallbackFunctionWithTypedefs::JSTestCallbackFunctionWithTypedefs):
(WebCore::JSTestCallbackFunctionWithTypedefs::visitJSFunction):
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
*
Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithVariadic.cpp:
(WebCore::JSTestCallbackFunctionWithVariadic::JSTestCallbackFunctionWithVariadic):
(WebCore::JSTestCallbackFunctionWithVariadic::visitJSFunction):
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithVariadic.h:
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
(WebCore::JSTestCallbackInterface::JSTestCallbackInterface):
(WebCore::JSTestCallbackInterface::visitJSFunction):
* Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.h:
* Source/WebCore/bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp:
(WebCore::JSTestVoidCallbackFunction::JSTestVoidCallbackFunction):
(WebCore::JSTestVoidCallbackFunction::visitJSFunction):
* Source/WebCore/bindings/scripts/test/JS/JSTestVoidCallbackFunction.h:
* Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep:
* Source/WebCore/bindings/scripts/test/TestCallbackFunctionStrong.idl: Copied
from Source/WebCore/html/VoidCallback.idl.
* Source/WebCore/css/CSSPaintCallback.idl:
* Source/WebCore/dom/AbortAlgorithm.idl:
* Source/WebCore/dom/CreateHTMLCallback.idl:
* Source/WebCore/dom/CreateScriptCallback.idl:
* Source/WebCore/dom/CreateScriptURLCallback.idl:
* Source/WebCore/dom/IdleRequestCallback.idl:
* Source/WebCore/dom/MutationCallback.idl:
* Source/WebCore/dom/NodeFilter.idl:
* Source/WebCore/dom/RequestAnimationFrameCallback.idl:
* Source/WebCore/dom/StringCallback.idl:
* Source/WebCore/dom/ViewTransitionUpdateCallback.idl:
* Source/WebCore/fileapi/BlobCallback.idl:
* Source/WebCore/html/VideoFrameRequestCallback.idl:
* Source/WebCore/html/VoidCallback.idl:
* Source/WebCore/inspector/RTCLogsCallback.idl:
* Source/WebCore/page/IntersectionObserverCallback.idl:
* Source/WebCore/page/NavigationInterceptHandler.idl:
* Source/WebCore/page/PerformanceObserverCallback.idl:
* Source/WebCore/page/ResizeObserverCallback.idl:
* Source/WebCore/testing/XRSimulateUserActivationFunction.idl:
* Source/WebCore/xml/CustomXPathNSResolver.idl:
Canonical link: https://commits.webkit.org/280611@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