Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a0a1e48bd8e0d0a54f2981fce20c2be70186906f
https://github.com/WebKit/WebKit/commit/a0a1e48bd8e0d0a54f2981fce20c2be70186906f
Author: Ryan Reno <[email protected]>
Date: 2024-07-08 (Mon, 08 Jul 2024)
Changed paths:
A
LayoutTests/http/tests/webcodecs/audio-encoder-callbacks-do-not-leak-expected.txt
A LayoutTests/http/tests/webcodecs/audio-encoder-callbacks-do-not-leak.html
A
LayoutTests/http/tests/webcodecs/resources/audio-encoder-callbacks-frame.html
A
LayoutTests/http/tests/webcodecs/resources/video-encoder-callbacks-frame.html
A
LayoutTests/http/tests/webcodecs/video-encoder-callbacks-do-not-leak-expected.txt
A LayoutTests/http/tests/webcodecs/video-encoder-callbacks-do-not-leak.html
M Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.h
M Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.idl
M
Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunkOutputCallback.h
M
Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunkOutputCallback.idl
M
Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunkOutputCallback.h
M
Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunkOutputCallback.idl
M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.h
M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.idl
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
A Source/WebCore/bindings/js/JSWebCodecsAudioEncoderCustom.cpp
A Source/WebCore/bindings/js/JSWebCodecsVideoEncoderCustom.cpp
Log Message:
-----------
WebCodecs Audio and Video Encoder callbacks leak the Document object.
https://bugs.webkit.org/show_bug.cgi?id=276332
rdar://131327288
Reviewed by Ryosuke Niwa.
Similar to the Audio and Video Decoder objects WebCodecs encoders store
refs to their Strong callbacks which leak the Document. This change
makes the output callbacks of the encoders Weak and keeps them alive via
the owning encoder wrappers visitAdditionalChildren.
*
LayoutTests/http/tests/webcodecs/audio-encoder-callbacks-do-not-leak-expected.txt:
Added.
* LayoutTests/http/tests/webcodecs/audio-encoder-callbacks-do-not-leak.html:
Added.
*
LayoutTests/http/tests/webcodecs/resources/audio-encoder-callbacks-frame.html:
Added.
*
LayoutTests/http/tests/webcodecs/resources/video-encoder-callbacks-frame.html:
Added.
*
LayoutTests/http/tests/webcodecs/video-encoder-callbacks-do-not-leak-expected.txt:
Added.
* LayoutTests/http/tests/webcodecs/video-encoder-callbacks-do-not-leak.html:
Added.
* Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.h:
(WebCore::WebCodecsAudioEncoder::outputCallbackConcurrently):
(WebCore::WebCodecsAudioEncoder::errorCallbackConcurrently):
* Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunkOutputCallback.h:
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunkOutputCallback.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunkOutputCallback.h:
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunkOutputCallback.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.h:
(WebCore::WebCodecsVideoEncoder::outputCallbackConcurrently):
(WebCore::WebCodecsVideoEncoder::errorCallbackConcurrently):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.idl:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/JSWebCodecsAudioEncoderCustom.cpp: Added.
(WebCore::JSWebCodecsAudioEncoder::visitAdditionalChildren):
* Source/WebCore/bindings/js/JSWebCodecsVideoEncoderCustom.cpp: Added.
(WebCore::JSWebCodecsVideoEncoder::visitAdditionalChildren):
Canonical link: https://commits.webkit.org/280762@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