Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: 7b1f7e96bd5cc0113c463b898338792ad4bc2d0e
      
https://github.com/WebKit/WebKit/commit/7b1f7e96bd5cc0113c463b898338792ad4bc2d0e
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M Source/WebCore/platform/encryptedmedia/CDMProxy.h

  Log Message:
  -----------
  Cherry-pick 313873@main (6a02a758cba4). 
https://bugs.webkit.org/show_bug.cgi?id=315557

    [EME] Increase key wait timeout to 10 seconds
    https://bugs.webkit.org/show_bug.cgi?id=315557

    Reviewed by Xabier Rodriguez-Calvar.

    Seven seconds were not sufficient on some embedded device providing a 
Widevine L3 CDM, so increase
    the timeout to 10 seconds.

    * Source/WebCore/platform/encryptedmedia/CDMProxy.h:

    Canonical link: https://commits.webkit.org/313873@main

Canonical link: https://commits.webkit.org/305877.711@webkitglib/2.52


  Commit: 159dc1a71fcdfc429916a42c8d405390fdec64c5
      
https://github.com/WebKit/WebKit/commit/159dc1a71fcdfc429916a42c8d405390fdec64c5
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M Source/WebCore/platform/encryptedmedia/CDMProxy.h
    M Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyThunder.cpp
    M Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp

  Log Message:
  -----------
  Cherry-pick 313876@main (4c8616689118). 
https://bugs.webkit.org/show_bug.cgi?id=315558

    [EME][OCDM] Prevent spurious keystatuses event when all keys expired
    https://bugs.webkit.org/show_bug.cgi?id=315558

    Reviewed by Xabier Rodriguez-Calvar.

    If the keystore is empty, generating an empty status vector would trigger a 
new keystatuses event
    potentially overriding the previous one. Manually tested with a Widevine L3 
CDM. This is sadly not
    testable because there's no notion of key expiration in ClearKey.

    Driving-by, improve GStreamer logging a bit in CDMProxyThunder.

    * Source/WebCore/platform/encryptedmedia/CDMProxy.h:
    (WebCore::KeyStoreBase::isEmpty const):
    * Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
    (WebCore::CDMProxyThunder::getDecryptionSession const):
    * Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp:
    (WebCore::CDMInstanceSessionThunder::updateLicense):

    Canonical link: https://commits.webkit.org/313876@main

Canonical link: https://commits.webkit.org/305877.712@webkitglib/2.52


  Commit: 5cfea315b67d8d11fb403818fa441f10ebd6ef8b
      
https://github.com/WebKit/WebKit/commit/5cfea315b67d8d11fb403818fa441f10ebd6ef8b
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceAgent.cpp

  Log Message:
  -----------
  Cherry-pick 314018@main (8af0c2d1ea00). 
https://bugs.webkit.org/show_bug.cgi?id=315571

    [GStreamer][WebRTC][Rice] webrtc/datachannel/multiple-connections.html 
still flaky crashing in Debug
    https://bugs.webkit.org/show_bug.cgi?id=315571

    Reviewed by Xabier Rodriguez-Calvar.

    Don't attempt to notify incoming data after the ICE agent was closed.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceAgent.cpp:
    (webkitGstWebRTCIceAgentIsClosed):
    (webkitGstWebRTCIceAgentClose):
    (webkitGstWebRTCIceAgentConfigure):

    Canonical link: https://commits.webkit.org/314018@main

Canonical link: https://commits.webkit.org/305877.713@webkitglib/2.52


  Commit: b20042980bf725104f10070c317b0588f99c6a91
      
https://github.com/WebKit/WebKit/commit/b20042980bf725104f10070c317b0588f99c6a91
  Author: Simon Pena <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    A 
LayoutTests/media/encrypted-media/mock-getSupportedCapabilitiesForAudioVideoType-expected.txt
    A 
LayoutTests/media/encrypted-media/mock-getSupportedCapabilitiesForAudioVideoType.html
    M Source/WebCore/platform/encryptedmedia/CDMPrivate.cpp
    M Source/WebCore/platform/network/ParsedContentType.h
    M Source/WebCore/testing/MockCDMFactory.cpp
    M Source/WebCore/testing/MockCDMFactory.h
    M Source/WebCore/testing/MockCDMFactory.idl

  Log Message:
  -----------
  Cherry-pick 314032@main (932c6b3792a1). 
https://bugs.webkit.org/show_bug.cgi?id=315667

    [EME] getSupportedCapabilitiesForAudioVideoType can accidentally include 
unsupported capabilities
    https://bugs.webkit.org/show_bug.cgi?id=315667

    Reviewed by Philippe Normand.

    A local copy of accumulatedConfiguration is created where we append the
    requestedCapability, then supportsConfigurationWithRestrictions is
    queried. This means that requestedCapabilities cannot be accidentally
    added when they aren't supported.

    Tested on HBO Max, which was incorrectly serving HEVC content on a system
    that didn't support it, and added a new test verifying this behaviour
    after extending the MockCDMFactory to support this.

    * 
LayoutTests/media/encrypted-media/mock-getSupportedCapabilitiesForAudioVideoType-expected.txt:
 Added.
    * 
LayoutTests/media/encrypted-media/mock-getSupportedCapabilitiesForAudioVideoType.html:
 Added.
    * Source/WebCore/platform/encryptedmedia/CDMPrivate.cpp:
    (WebCore::CDMPrivate::getSupportedCapabilitiesForAudioVideoType):
    * Source/WebCore/platform/network/ParsedContentType.h:
    * Source/WebCore/testing/MockCDMFactory.cpp:
    (WebCore::MockCDM::supportsConfigurationWithRestrictions const):
    * Source/WebCore/testing/MockCDMFactory.h:
    (WebCore::MockCDMFactory::setUnsupportedVideoCodecs):
    * Source/WebCore/testing/MockCDMFactory.idl:

    Canonical link: https://commits.webkit.org/314032@main

Canonical link: https://commits.webkit.org/305877.714@webkitglib/2.52


  Commit: 5d7fb54ee9f17f81c3174b91fafc35dc775780f4
      
https://github.com/WebKit/WebKit/commit/5d7fb54ee9f17f81c3174b91fafc35dc775780f4
  Author: Simon Pena <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    A 
LayoutTests/media/encrypted-media/mock-MediaKeySession-concurrent-close-expected.txt
    A 
LayoutTests/media/encrypted-media/mock-MediaKeySession-concurrent-close.html
    M Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp

  Log Message:
  -----------
  Cherry-pick 314350@main (eb9354ae86c5). 
https://bugs.webkit.org/show_bug.cgi?id=315842

    [EME] Protect MediaKeySession::sessionClosed from concurrent calls
    https://bugs.webkit.org/show_bug.cgi?id=315842

    Reviewed by Xabier Rodriguez-Calvar.

    Add an additional m_closed check in MediaKeySession::sessionClosed to
    account from multiple queued counts to close().

    Test: media/encrypted-media/mock-MediaKeySession-concurrent-close.html

    * 
LayoutTests/media/encrypted-media/mock-MediaKeySession-concurrent-close-expected.txt:
 Added.
    * 
LayoutTests/media/encrypted-media/mock-MediaKeySession-concurrent-close.html: 
Added.
    * Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp:
    (WebCore::MediaKeySession::sessionClosed):

    Canonical link: https://commits.webkit.org/314350@main

Canonical link: https://commits.webkit.org/305877.715@webkitglib/2.52


  Commit: af8b8e7dc7305e8cbf255d338543ffab443d7a38
      
https://github.com/WebKit/WebKit/commit/af8b8e7dc7305e8cbf255d338543ffab443d7a38
  Author: Simon Pena <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    A 
LayoutTests/media/encrypted-media/mock-MediaKeySession-backforwardcache-prune-crash-expected.txt
    A 
LayoutTests/media/encrypted-media/mock-MediaKeySession-backforwardcache-prune-crash.html
    A 
LayoutTests/media/encrypted-media/resources/mock-MediaKeySession-backforwardcache-prune-helper.html
    M Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp

  Log Message:
  -----------
  Cherry-pick 314352@main (b09929827ab5). 
https://bugs.webkit.org/show_bug.cgi?id=315849

    [EME] Crash pruning a back/forward-cached page that owns an open 
MediaKeySession
    https://bugs.webkit.org/show_bug.cgi?id=315849

    Reviewed by Xabier Rodriguez-Calvar.

    Invoking session.sessionClosed during document teardown can trigger an
    assertion in a deferred promise (JSDOMPromiseDeferred --
    !activeDOMObjectsAreSuspended() ||
    scriptExecutionContext()->eventLoop().isSuspended()).

    By queueing it, we can ensure the task is dropped if the event loop is
    stopped.

    Test: 
media/encrypted-media/mock-MediaKeySession-backforwardcache-prune-crash.html

    * 
LayoutTests/media/encrypted-media/mock-MediaKeySession-backforwardcache-prune-crash-expected.txt:
 Added.
    * 
LayoutTests/media/encrypted-media/mock-MediaKeySession-backforwardcache-prune-crash.html:
 Added.
    * 
LayoutTests/media/encrypted-media/resources/mock-MediaKeySession-backforwardcache-prune-helper.html:
 Added.
    * Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp:
    (WebCore::MediaKeySession::stop):

    Canonical link: https://commits.webkit.org/314352@main

Canonical link: https://commits.webkit.org/305877.716@webkitglib/2.52


  Commit: d007e5b4a9d952531f7229e143fb96fa7d2f61e7
      
https://github.com/WebKit/WebKit/commit/d007e5b4a9d952531f7229e143fb96fa7d2f61e7
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h
    M 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp
    M 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h

  Log Message:
  -----------
  Cherry-pick 314285@main (cf5066c74642). 
https://bugs.webkit.org/show_bug.cgi?id=315917

    [GStreamer][WebRTC] webrtc/getDisplayMedia-pc-resolution.html almost 
consistently times out
    https://bugs.webkit.org/show_bug.cgi?id=315917

    Reviewed by Xabier Rodriguez-Calvar.

    The timeout was happening in the penultimate sub-test that calls 
replaceTrack before generating an
    offer. In that situation the outgoing media track bin isn't fully linked 
and doesn't have a
    transceiver yet. The transceiver codec-preferences were not updated so the 
attempt to link outgoing
    sources in the end-point after creating the offer left an unlinked outgoing 
media track bin, because
    the msid SDP attribute wasn't matched properly.

    The proposed fix is to iterate over the webrtcbin transceivers after the 
replaceTrack call and
    update a-msid attributes on their codec-preferences caps when appropriate.

    * LayoutTests/platform/glib/TestExpectations:
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::linkOutgoingSources):
    (WebCore::GStreamerMediaEndpoint::trackWasReplaced):
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
    * 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:
    (WebCore::GStreamerPeerConnectionBackend::trackWasReplaced):
    * 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h:
    * 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp:
    (WebCore::GStreamerRtpSenderBackend::replaceTrack):
    * 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp:
    (WebCore::RealtimeOutgoingMediaSourceGStreamer::replaceTrack):
    * 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h:

    Canonical link: https://commits.webkit.org/314285@main

Canonical link: https://commits.webkit.org/305877.717@webkitglib/2.52


  Commit: 52c54a667a6a59987b905bb976fc136b393c15ee
      
https://github.com/WebKit/WebKit/commit/52c54a667a6a59987b905bb976fc136b393c15ee
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp

  Log Message:
  -----------
  Cherry-pick 314283@main (1961e19bf3e5). 
https://bugs.webkit.org/show_bug.cgi?id=315923

    [GStreamer][WebRTC] Reported video source stats have incorrect 
frames-per-second value
    https://bugs.webkit.org/show_bug.cgi?id=315923

    Reviewed by Xabier Rodriguez-Calvar.

    The stats collector expects this caps field to be a double, not unsigned.

    * 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

    Canonical link: https://commits.webkit.org/314283@main

Canonical link: https://commits.webkit.org/305877.718@webkitglib/2.52


  Commit: 6786ce5aaaea54f8844509e02faa0836dc4bf3d5
      
https://github.com/WebKit/WebKit/commit/6786ce5aaaea54f8844509e02faa0836dc4bf3d5
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h

  Log Message:
  -----------
  Cherry-pick 314281@main (387b2d3ec9c2). 
https://bugs.webkit.org/show_bug.cgi?id=315759

    [GStreamer][WebRTC] webrtc/getDisplayMedia-pc-resolution.html is flaky 
crashing
    https://bugs.webkit.org/show_bug.cgi?id=315759

    Reviewed by Xabier Rodriguez-Calvar.

    Make sure the m_frameRate GStreamerIncomingTrackProcessor member variable 
is initialized. This is a
    prospective fix for a flaky crash I cannot reproduce, where the stats 
collector would attempt to
    create a -nan double to an IDLDouble.

    * LayoutTests/platform/glib/TestExpectations:
    * 
Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h:

    Canonical link: https://commits.webkit.org/314281@main

Canonical link: https://commits.webkit.org/305877.719@webkitglib/2.52


  Commit: 70aadedb63340708a0a66694a8864a2c22e3601a
      
https://github.com/WebKit/WebKit/commit/70aadedb63340708a0a66694a8864a2c22e3601a
  Author: Philippe Normand <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 314284@main (30cef1151ab3). 
https://bugs.webkit.org/show_bug.cgi?id=315943

    REGRESSION(313830@main): [GStreamer] 
imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
 fails
    https://bugs.webkit.org/show_bug.cgi?id=315943

    Reviewed by Xabier Rodriguez-Calvar.

    Since that commit the video sink GRefPtr is cleared along with the 
pipeline, so at EOS
    updateVideoSinkStatistics() was returning false and no playback quality 
metrics were reported
    anymore. We now attempt to update the stats only if playback hasn't ended 
yet.

    * 
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::videoPlaybackQualityMetrics):

    Canonical link: https://commits.webkit.org/314284@main

Canonical link: https://commits.webkit.org/305877.720@webkitglib/2.52


  Commit: e182502ede3ab5fa25495d5c34157280f4276f8f
      
https://github.com/WebKit/WebKit/commit/e182502ede3ab5fa25495d5c34157280f4276f8f
  Author: Simon Pena <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    M Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp

  Log Message:
  -----------
  Cherry-pick 314438@main (25e4e199bf08). 
https://bugs.webkit.org/show_bug.cgi?id=316101

    REGRESSION(314352@main): [EME] Deferring MediaKeySession teardown leaks the 
CDM session into the next test
    https://bugs.webkit.org/show_bug.cgi?id=316101

    Reviewed by Xabier Rodriguez-Calvar.

    This makes MediaKeySession teardown synchronous again, instead avoiding
    the promise resolution when we are tearing down.

    Tests clearkey-mp4-playback-destroy-persistent-license.https.html and
    clearkey-mp4-playback-retrieve-persistent-license.https.html cover the
    CDM session leaking scenario, while
    mock-MediaKeySession-backforwardcache-prune-crash.html verifies that
    the promise is not incorrectly resolved.

    * Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp:
    (WebCore::MediaKeySession::sessionClosed):
    (WebCore::MediaKeySession::stop):

    Canonical link: https://commits.webkit.org/314438@main

Canonical link: https://commits.webkit.org/305877.721@webkitglib/2.52


  Commit: aec9d2ad958e716ab4bca4bf03007e6edac7323f
      
https://github.com/WebKit/WebKit/commit/aec9d2ad958e716ab4bca4bf03007e6edac7323f
  Author: Przemyslaw Gorszkowski <[email protected]>
  Date:   2026-06-07 (Sun, 07 Jun 2026)

  Changed paths:
    A 
LayoutTests/fast/mediastream/captureStream/canvas-rvfc-metadata-expected.txt
    A LayoutTests/fast/mediastream/captureStream/canvas-rvfc-metadata.html
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 314533@main (82c645da79b5). 
https://bugs.webkit.org/show_bug.cgi?id=316190

    [GStreamer] mediaTime from requestVideoFrameCallback is wrong in case of 
captureCanvas as source
    https://bugs.webkit.org/show_bug.cgi?id=316190

    Reviewed by Philippe Normand.

    Canvas capture frames have their PTS stamped with the absolute GStreamer
    system clock time. Because the default GstSegment has start=0, calling
    gst_segment_to_stream_time on such a buffer returns the raw clock value
    (system uptime in seconds), not a stream-relative position.
    To fix that and set the correct value of mediaTime in VideoFrameMetadata
    provided by requestVideoFrameCallback, this change detects canvas frames
    via their VideoFrameContentHint and uses currentTime() instead.

    A new layout test fast/mediastream/captureStream/canvas-rvfc-metadata.html
    validates the metadata fields returned by requestVideoFrameCallback for a
    canvas captureStream, including that mediaTime is stream-relative and not
    an absolute clock value.

    Test: fast/mediastream/captureStream/canvas-rvfc-metadata.html
    * 
LayoutTests/fast/mediastream/captureStream/canvas-rvfc-metadata-expected.txt: 
Added.
    * LayoutTests/fast/mediastream/captureStream/canvas-rvfc-metadata.html: 
Added.
    * 
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::videoFrameMetadata):

    Canonical link: https://commits.webkit.org/314533@main

Canonical link: https://commits.webkit.org/305877.722@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/31deefad901e...aec9d2ad958e

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to