Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3c735f970e7496da3cc01f093c2b21ba2c1b7c62
      
https://github.com/WebKit/WebKit/commit/3c735f970e7496da3cc01f093c2b21ba2c1b7c62
  Author: Youenn Fablet <[email protected]>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M Source/WebCore/Modules/streams/ReadableStream.cpp
    M Source/WebCore/Modules/streams/ReadableStream.h
    M Source/WebCore/Modules/streams/StreamTeeUtilities.cpp

  Log Message:
  -----------
  WPT byte stream tee tests are flaky on bots
https://bugs.webkit.org/show_bug.cgi?id=300015
rdar://problem/161803361

Reviewed by Chris Dumez.

When being teed, a stream A might be collected while its children (B and C) 
will still be alive.
In that case, A will no longer protect its pull/cancel JS callbacks, although 
they will be called when B or C do pull/cancel.
To make sure we keep marking A's pull/cancel JS callbacks as lon as B and C are 
alive, we are now keeping a strong ref from B and C to A.
We are then visiting A whenever visiting B or C.

The strong reference from B and C to A is not harmfull (we could even use a 
WeakPtr) since B and C hold references to their TeeState which holds a 
reference to A.

Covered by byte stream tee WPT tests.

Canonical link: https://commits.webkit.org/300928@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