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

Reply via email to