Branch: refs/heads/webkitglib/2.44
  Home:   https://github.com/WebKit/WebKit
  Commit: c683dc77add674d8b77a776cc6b0d0a6c61f2c18
      
https://github.com/WebKit/WebKit/commit/c683dc77add674d8b77a776cc6b0d0a6c61f2c18
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-29 (Mon, 29 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 276412@main (da50e63df7f3). 
https://bugs.webkit.org/show_bug.cgi?id=271243

    [GStreamer][WebRTC] webrtc/connection-state.html started failing after 
update to 1.24.0
    https://bugs.webkit.org/show_bug.cgi?id=271243
    <rdar://problem/125014192>

    Reviewed by Xabier Rodriguez-Calvar.

    The `doneGatheringCandidates()` method is called by the 
PeerConnectionBackend when it's notified
    from gst-webrtc that the ICE gathering is finished, so we don't need to 
call it ourselves. The
    end-of-candidates SDP attribute shouldn't appear in the offer/answer the 
end-point reports either.
    This is covered by the webrtc/libwebrtc/descriptionGetters.html test.

    * LayoutTests/platform/glib/TestExpectations:
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::fetchDescription):
    (WebCore::GStreamerMediaEndpoint::doSetLocalDescription):
    (WebCore::GStreamerMediaEndpoint::doSetRemoteDescription):
    (WebCore::GStreamerMediaEndpoint::onIceCandidate):

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

Canonical link: https://commits.webkit.org/274313.306@webkitglib/2.44


  Commit: f4c108b7b1b841bf883f05af505dccc176bcf564
      
https://github.com/WebKit/WebKit/commit/f4c108b7b1b841bf883f05af505dccc176bcf564
  Author: Ahmad Saleem <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt
    M Source/WebCore/Modules/mediastream/RTCSctpTransport.h

  Log Message:
  -----------
  Cherry-pick 279039@main (868f20242ed9). 
https://bugs.webkit.org/show_bug.cgi?id=274025

    `m_maxMessageSize` should be `infinity()` instead of `max()` in 
`RTCSctpTransport.h`

    https://bugs.webkit.org/show_bug.cgi?id=274025
    rdar://problem/128306030

    Reviewed by Youenn Fablet.

    This patch aligns WebKit with web specification [1]:

    [1] https://w3c.github.io/webrtc-pc/#dfn-update-the-data-max-message-size

    "If both remoteMaxMessageSize and canSendSize are 0, set
    [[MaxMessageSize]] to the positive Infinity value."

    * Source/WebCore/Modules/mediastream/RTCSctpTransport.h:
    (double m_maxMessageSize):
    * 
LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
 Rebaselined

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

Canonical link: https://commits.webkit.org/274313.307@webkitglib/2.44


  Commit: 4954333c2945eca30e9dc0d8acb0651100c95003
      
https://github.com/WebKit/WebKit/commit/4954333c2945eca30e9dc0d8acb0651100c95003
  Author: Enrique Ocaña González <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 277541@main (40cfa6a61706). 
https://bugs.webkit.org/show_bug.cgi?id=272167

    [GStreamer] Ignore sinks position while seeking
    https://bugs.webkit.org/show_bug.cgi?id=272167

    Reviewed by Alicia Boya Garcia.

    After removing MSE data, sinks get flushed and are not able to return
    valid playback time. Some implementation return invalid time, 0.00 or
    even some random value. This value may be then reported up to
    HTMLMediaElement and that may be confusing to web applications.

    This commit doesn't trust sinks position when pipeline is not prerolled,
    as behavor is different across devices. The last cached position is used
    instead.

    To reflect better what's actually happening, isPipelineSeeking() has been
    renamed as isPipelineWaitingPreroll() and the condition now also includes
    pending states higher than paused.

    Original author: Andrzej Surdej (https://github.com/asurdej-comcast)

    See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1302

    * 
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::isPipelineWaitingPreroll const): 
Renamed from isPipelineSeeking().
    (WebCore::MediaPlayerPrivateGStreamer::play): isPipelineSeeking() now named 
as isPipelineWaitingPreroll().
    (WebCore::MediaPlayerPrivateGStreamer::paused const): Ditto.
    (WebCore::MediaPlayerPrivateGStreamer::changePipelineState): Ditto.
    (WebCore::MediaPlayerPrivateGStreamer::playbackPosition const): Use 
GST_CLOCK_TIME_NONE when the pipeline isn't prerolled. This will force the 
usage of the target seek time (if possible) or the last cached position (in the 
worst case).
    (WebCore::MediaPlayerPrivateGStreamer::isPipelineSeeking const): Deleted. 
Renamed to isPipelineWaitingPreroll().
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 
isPipelineSeeking() now named as isPipelineWaitingPreroll().
    * 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
    (WebCore::MediaPlayerPrivateGStreamerMSE::updateStates): 
isPipelineSeeking() now named as isPipelineWaitingPreroll().

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

Canonical link: https://commits.webkit.org/274313.308@webkitglib/2.44


  Commit: 4224d948394c37bcdf6626ae397bfdc87fcec428
      
https://github.com/WebKit/WebKit/commit/4224d948394c37bcdf6626ae397bfdc87fcec428
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    A 
LayoutTests/media/media-source/media-source-video-play-holds-sleep-assertion-expected.txt
    A 
LayoutTests/media/media-source/media-source-video-play-holds-sleep-assertion.html
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
    M 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
    M 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h

  Log Message:
  -----------
  Cherry-pick 279943@main (6a650e644b1c). 
https://bugs.webkit.org/show_bug.cgi?id=219354

    [GStreamer][MSE] SleepDisabler not reliably created when playing YouTube 
videos
    https://bugs.webkit.org/show_bug.cgi?id=219354

    Reviewed by Xabier Rodriguez-Calvar.

    When playing videos the display screensaver should be disabled, and when 
the video is paused it
    should be re-enabled. This is mostly useful on desktop systems. The sleep 
disabler is handled by
    HTMLMediaElement.

    Until this patch display sleep wasn't consistently disabled as a result of 
playback request. By
    notifying the MediaPlayer of successful GStreamer pipeline state changes 
the HTMLMediaElement gets
    another opportunity to update the sleep disabling state. This is done 
already in the
    MediaPlayerPrivateGStreamer::updateStates() method, but for some reason the 
MSE player has a
    different implementation of that method.

    Test: media/media-source/media-source-video-play-holds-sleep-assertion.html

    * 
LayoutTests/media/media-source/media-source-video-play-holds-sleep-assertion-expected.txt:
 Added.
    * 
LayoutTests/media/media-source/media-source-video-play-holds-sleep-assertion.html:
 Added.
    * LayoutTests/platform/mac-wk1/TestExpectations:
    * LayoutTests/platform/mac-wk2/TestExpectations:
    * Source/WebCore/html/HTMLMediaElement.cpp:
    (WebCore::HTMLMediaElement::progressEventTimerFired):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
    * 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
    (WebCore::MediaPlayerPrivateGStreamerMSE::pause):
    (WebCore::MediaPlayerPrivateGStreamerMSE::checkPlayingConsistency):
    (WebCore::MediaPlayerPrivateGStreamerMSE::setShouldDisableSleep):
    (WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
    (WebCore::MediaPlayerPrivateGStreamerMSE::timeIsProgressing const):
    * 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

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

Canonical link: https://commits.webkit.org/274313.309@webkitglib/2.44


  Commit: 58600bd00cb31d99936a843fdcb916d56bee6633
      
https://github.com/WebKit/WebKit/commit/58600bd00cb31d99936a843fdcb916d56bee6633
  Author: Youenn Fablet <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt
    M Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp
    M Source/WebCore/Modules/mediastream/PeerConnectionBackend.h
    M Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
    M Source/WebCore/Modules/mediastream/RTCPeerConnection.h
    M Source/WebCore/Modules/mediastream/RTCSctpTransport.cpp
    M Source/WebCore/Modules/mediastream/RTCSctpTransport.h
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
    M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp

  Log Message:
  -----------
  Cherry-pick 279111@main (a270d67c5341). 
https://bugs.webkit.org/show_bug.cgi?id=274442

    Most of WPT webrtc/RTCSctpTransport-maxMessageSize.html tests are failing
    https://bugs.webkit.org/show_bug.cgi?id=274442
    rdar://128444396

    Reviewed by Philippe Normand.

    We implement https://w3c.github.io/webrtc-pc/#sctp-transport-update-mms.
    This is called when successfully applying a SDP description as per 
specification.
    In this implementation, the assumption is that canSendSize is 0.
    The specific value of 65536 is handled by libwebrtc.

    * 
LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
    * Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:
    (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
    (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
    * Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:
    * Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:
    (WebCore::RTCPeerConnection::updateSctpBackend):
    * Source/WebCore/Modules/mediastream/RTCPeerConnection.h:
    * Source/WebCore/Modules/mediastream/RTCSctpTransport.cpp:
    (WebCore::RTCSctpTransport::onStateChanged):
    (WebCore::RTCSctpTransport::updateMaxMessageSize):
    * Source/WebCore/Modules/mediastream/RTCSctpTransport.h:
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::doSetLocalDescription):
    (WebCore::GStreamerMediaEndpoint::doSetRemoteDescription):
    * Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
    (WebCore::SctpTransportState::maxMessageSize const):
    (WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
    (WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

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

Canonical link: https://commits.webkit.org/274313.310@webkitglib/2.44


  Commit: c770aa725ac83fc4ce1a802091ffc07113db6122
      
https://github.com/WebKit/WebKit/commit/c770aa725ac83fc4ce1a802091ffc07113db6122
  Author: Georges Basile Stavracas Neto <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp

  Log Message:
  -----------
  Cherry-pick 280770@main (e949df8b32a3). 
https://bugs.webkit.org/show_bug.cgi?id=240522

    [GTK][WPE][a11y] Allow receiving event listener signals from the a11y bus
    https://bugs.webkit.org/show_bug.cgi?id=240522

    Reviewed by Michael Catanzaro.

    When a process - usually an AT - registers event listeners, AT-SPI
    broadcasts the EventListenerRegistered signal so that clients know
    about it. The EventListenerDeregistered signal is broadcasted when
    event listeners are removed.

    The web process monitors for these signal so that it can reduce the
    number of signal emissions on the a11y bus. Now consider that the web
    process runs in a sandbox (most of the time anyway), either by using
    Bubblewrap directly, or flatpak-spawn. These sandboxing mechanisms
    filter D-Bus messages and signals, including on the a11y bus. And
    here's the problem: both of them end up preventing the web process to
    receive the event listener signals!

    As a consequence, the web process never learns when the user turns
    on or off the screen reader, or auxiliary accessibility programs.
    And without that knowledge, the web process doesn't emit any event
    necessary for proper accessibility.

    Allow the Bubblewrap sandbox to receive the EventListenerRegistered
    and EventListenerDeregistered signals from org.a11y.atspi.Registry.
    This is safe, as there is insufficient information in these signals
    for any malicious usage, and the bus name in the messages are already
    from apps that purposefully advertise themselves.

    A similar patch is proposed for Flatpak, and there's nothing to be
    done from WebKit side to influence that.

    * Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp:
    (WebKit::XDGDBusProxy::accessibilityProxy):

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

Canonical link: https://commits.webkit.org/274313.311@webkitglib/2.44


  Commit: f72290bf2fb0bec419e7c9383e5a68b47ed09832
      
https://github.com/WebKit/WebKit/commit/f72290bf2fb0bec419e7c9383e5a68b47ed09832
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 279570@main (ddfc6ce0fa86). 
https://bugs.webkit.org/show_bug.cgi?id=274825

    [GStreamer][MediaStream] Stream collection fixes
    https://bugs.webkit.org/show_bug.cgi?id=274825

    Reviewed by Xabier Rodriguez-Calvar.

    Our MediaStream source element answers to GST_QUERY_SELECTABLE queries but 
until this patch it
    wasn't sending collection events on its pad(s). It still worked by luck in 
GStreamer versions older
    than 1.25/1.26, decodebin3 would still create a parsebin internally.

    * 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
    (webkitMediaStreamSrcEnsureStreamCollection):
    (webkitMediaStreamSrcPostStreamCollection):
    (webkitMediaStreamSrcAddPad):
    (webkitMediaStreamSrcPadProbeCb):
    (webkitMediaStreamSrcAddTrack):
    (ProbeData::ProbeData): Deleted.

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

Canonical link: https://commits.webkit.org/274313.312@webkitglib/2.44


  Commit: aa46101021f259803ddcd1b6235ef6367a88fd01
      
https://github.com/WebKit/WebKit/commit/aa46101021f259803ddcd1b6235ef6367a88fd01
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 279567@main (4b149650aebe). 
https://bugs.webkit.org/show_bug.cgi?id=274893

    [GStreamer][MediaRecorder] Pipeline remains in global registry if 
stopRecording is called
    https://bugs.webkit.org/show_bug.cgi?id=274893

    Reviewed by Xabier Rodriguez-Calvar.

    Clearing the GStreamer pipeline without un-registering it from the global 
registry would result in a
    memory leak.

    * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp:
    (WebCore::MediaRecorderPrivateBackend::stopRecording):

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

Canonical link: https://commits.webkit.org/274313.313@webkitglib/2.44


  Commit: 28ee9f4373b72967a48cf674f9b987214f9dce5d
      
https://github.com/WebKit/WebKit/commit/28ee9f4373b72967a48cf674f9b987214f9dce5d
  Author: Carlos Bentzen <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp
    M Source/WebCore/Modules/mediastream/PeerConnectionBackend.h
    M Source/WebCore/platform/mediastream/RTCRtpTransceiverDirection.h

  Log Message:
  -----------
  Cherry-pick 279742@main (4d1937351919). 
https://bugs.webkit.org/show_bug.cgi?id=275146

    [WebRTC] Add debug logging of TransceiverStates
    https://bugs.webkit.org/show_bug.cgi?id=275146

    Reviewed by Philippe Normand.

    Add debug logging of TransceiverStates, to aid debugging while moving
    the GStreamer backend out of m_pendingTrackEvents in PeerConnectionBackend.

    * Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:
    (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
    (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
    (WebCore::toJSONObject):
    (WebCore::toJSONArray):
    (WebCore::toJSONString):
    
(WTF::LogArgument<WebCore::PeerConnectionBackend::TransceiverState>::toString):
    
(WTF::LogArgument<WebCore::PeerConnectionBackend::TransceiverStates>::toString):
    * Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:
    (WebCore::PeerConnectionBackend::DescriptionStates::isolatedCopy):
    * Source/WebCore/platform/mediastream/RTCRtpTransceiverDirection.h:

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

Canonical link: https://commits.webkit.org/274313.314@webkitglib/2.44


  Commit: 55a685f16ce324b1c1aaabcae77d7bfbfbb054d4
      
https://github.com/WebKit/WebKit/commit/55a685f16ce324b1c1aaabcae77d7bfbfbb054d4
  Author: Carlos Bentzen <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    A LayoutTests/webrtc/msid-setCodecPreferences-expected.txt
    A LayoutTests/webrtc/msid-setCodecPreferences.html
    M 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp

  Log Message:
  -----------
  Cherry-pick 279746@main (6d7fa27729b7). 
https://bugs.webkit.org/show_bug.cgi?id=275157

    [GStreamer][WebRTC] Missing a=msid in offer after setting codec preferences
    https://bugs.webkit.org/show_bug.cgi?id=275157

    Reviewed by Philippe Normand.

    When setting codec preferences on GstWebRTCRTPTransceiver, the caps object
    did not contain an "a-msid" field, which causes the offer created by the
    webrtcbin containing that transceiver to not include an `a=msid` line for 
it.

    The issue is fixed by reusing the `a-msid` field from the pre-existent
    codec preference, if one exists.

    * LayoutTests/webrtc/msid-setCodecPreferences-expected.txt: Added.
    * LayoutTests/webrtc/msid-setCodecPreferences.html: Added.
    * 
Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:
    (WebCore::getMsidFromCurrentCodecPreferences):
    (WebCore::GStreamerRtpTransceiverBackend::setCodecPreferences):

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

Canonical link: https://commits.webkit.org/274313.315@webkitglib/2.44


  Commit: d6ce942513281221ee709fdb229b7eceef040689
      
https://github.com/WebKit/WebKit/commit/d6ce942513281221ee709fdb229b7eceef040689
  Author: Michael Catanzaro <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M LayoutTests/loader/stateobjects/pushstate-size-expected.txt
    M LayoutTests/loader/stateobjects/pushstate-size-iframe-expected.txt
    M Source/WebCore/history/HistoryItem.cpp
    M Source/WebCore/history/HistoryItem.h
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/loader/HistoryController.h
    M Source/WebCore/page/History.cpp
    M Source/WebCore/page/History.h
    M Source/WebCore/page/History.idl
    M Source/WebKit/Shared/WebBackForwardListItem.h
    M Source/WebKit/UIProcess/API/C/WKBackForwardListItemRef.cpp
    M Source/WebKit/UIProcess/API/C/WKBackForwardListItemRef.h
    M Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.h
    M Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.mm
    M Source/WebKit/UIProcess/API/glib/WebKitBackForwardListItem.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitBackForwardListItem.h.in
    M Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp
    M Source/WebKitLegacy/mac/History/HistoryPropertyList.mm
    M Source/WebKitLegacy/mac/History/WebHistory.mm
    M Source/WebKitLegacy/mac/History/WebHistoryItem.mm
    M Source/WebKitLegacy/mac/History/WebHistoryItemInternal.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
    M Tools/MiniBrowser/gtk/BrowserWindow.c
    M Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardListTests.mm
    M Tools/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp

  Log Message:
  -----------
  Revert "Ignore the “title” argument to 
history.pushState()/history.replaceState()"

This reverts commit 4ef4b65d33f45734ad3c6cbc7f2fe0dda17051bc.

For context, see: https://github.com/WebKit/WebKit/pull/29643
Canonical link: https://commits.webkit.org/274313.316@webkitglib/2.44


  Commit: 49b43b599a81d849875d7dca99a6e6460306af62
      
https://github.com/WebKit/WebKit/commit/49b43b599a81d849875d7dca99a6e6460306af62
  Author: Xabier Rodriguez-Calvar <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    A 
LayoutTests/media/media-source/media-source-seek-back-after-ended-expected.txt
    A LayoutTests/media/media-source/media-source-seek-back-after-ended.html
    M 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp

  Log Message:
  -----------
  Cherry-pick 279901@main (d36ed108e92f). 
https://bugs.webkit.org/show_bug.cgi?id=275104

    [MSE][GStreamer] allow fallback to seeked position on seek finish
    https://bugs.webkit.org/show_bug.cgi?id=275104

    Reviewed by Philippe Normand.

    MediaPlayerPrivateGStreamer may report incorrect position (last cached) 
immediately after seek. This can happen when
    didPreroll is called on async-done with pipeline still in async transition 
to playing state: current: PAUSED, pending:
    PLAYING, result: ASYNC. r277541 disables querying position from the sinks 
in this case resulting in last cached
    value (before seek) to be returned. Which confuses some tests from YouTube 
WV SFR/HFR suite, and makes it trigger
    multiple seeks one after another.

    The proposed change works around the problem by allowing fall back to last 
seeked position until pipeline preroll
    completes. Similar to MediaPlayerPrivateGStreamer::finishSeek().

    Patch by Eugene Mutavchi <[email protected]>.

    * 
LayoutTests/media/media-source/media-source-seek-back-after-ended-expected.txt: 
Added.
    * LayoutTests/media/media-source/media-source-seek-back-after-ended.html: 
Added.
    * LayoutTests/platform/mac-wk1/TestExpectations:
    * 
Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
    (WebCore::MediaPlayerPrivateGStreamerMSE::didPreroll):

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

Canonical link: https://commits.webkit.org/274313.317@webkitglib/2.44


  Commit: 38145711a5fb1d32b64ed2ca7314fe36c6c9c264
      
https://github.com/WebKit/WebKit/commit/38145711a5fb1d32b64ed2ca7314fe36c6c9c264
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp

  Log Message:
  -----------
  Cherry-pick 279942@main (2d3841081a44). 
https://bugs.webkit.org/show_bug.cgi?id=275205

    [GStreamer] Crash in WebCore::VideoFrameGStreamer::createWrappedSample when 
used by ImageDecoderGStreamer
    https://bugs.webkit.org/show_bug.cgi?id=275205

    Reviewed by Xabier Rodriguez-Calvar.

    The issue here was that events were not correctly dispatched in nested 
GStreamer element harnesses,
    leading to situations where a video decoder would receive an audio caps 
event, for instance. The VA
    and libav decoders cope well with that situation, but the openh264 decoder 
just accepted those audio
    caps (which is a bug in that decoder).

    The solution is to pass events from upstream to downstream harness, if 
there is one. That's how
    samples are also handled.

    * Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp:
    (WebCore::GStreamerElementHarness::Stream::Stream):

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

Canonical link: https://commits.webkit.org/274313.318@webkitglib/2.44


  Commit: a9adbc01b6feb0652759c7e9dc7027c18ba34b72
      
https://github.com/WebKit/WebKit/commit/a9adbc01b6feb0652759c7e9dc7027c18ba34b72
  Author: Michael Catanzaro <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WTF/wtf/UniStdExtras.h
    M Source/WTF/wtf/playstation/UniStdExtrasPlayStation.cpp
    M Source/WTF/wtf/unix/UniStdExtrasUnix.cpp
    M Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp

  Log Message:
  -----------
  Cherry-pick 280858@main (23af623a3a7e). 
https://bugs.webkit.org/show_bug.cgi?id=275690

    [WPE][GTK] IPC socket should use SOCK_CLOEXEC on Linux
    https://bugs.webkit.org/show_bug.cgi?id=275690

    Reviewed by Carlos Garcia Campos.

    Instead of creating the IPC socket without CLOEXEC and then setting it
    afterwards if requested, instead create the socket with CLOEXEC and
    unset it afterwards if not requested. This closes the race window where
    the socket may leak into a subprocess spawned by another thread (which
    seems unlikely, but you never know what applications will do).

    In practice, this ensures the server socket will never leak to a
    subprocess. The client socket might still get leaked because CLOEXEC has
    to get unset at some point for the child process to receive the socket.

    * Source/WTF/wtf/UniStdExtras.h:
    * Source/WTF/wtf/playstation/UniStdExtrasPlayStation.cpp:
    (WTF::unsetCloseOnExec):
    * Source/WTF/wtf/unix/UniStdExtrasUnix.cpp:
    (WTF::unsetCloseOnExec):
    * Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:
    (IPC::createPlatformConnection):

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

Canonical link: https://commits.webkit.org/274313.319@webkitglib/2.44


  Commit: e70730772e1cab669d426391a610584cb6194a93
      
https://github.com/WebKit/WebKit/commit/e70730772e1cab669d426391a610584cb6194a93
  Author: Michael Catanzaro <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebKit/Platform/IPC/IPCUtilities.h
    M Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp
    M Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp
    M Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp
    M Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.h
    M Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp

  Log Message:
  -----------
  Cherry-pick 281488@main (c3c75352f0ee). 
https://bugs.webkit.org/show_bug.cgi?id=262794

    [WPE][GTK] Web process cache suspend/resume does not work, 
WebProcessProxy::processIdentifier is not the pid of the actual web process
    https://bugs.webkit.org/show_bug.cgi?id=262794

    Reviewed by Carlos Garcia Campos.

    We'll use Unix credentials to send the actual pid of the child process
    to the parent process.

    This could be done using the WebKit IPC connection, but the code is
    much simpler if we create a separate socket for this.

    * Source/WebKit/Platform/IPC/IPCUtilities.h:
    * Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:
    (IPC::createPlatformConnection):
    (IPC::sendPIDToPeer):
    (IPC::readPIDFromPeer):
    * Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp:
    (WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
    * Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp:
    (WebKit::flatpakSpawn):
    * Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.h:
    * Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
    (WebKit::ProcessLauncher::launchProcess):

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

Canonical link: https://commits.webkit.org/274313.320@webkitglib/2.44


  Commit: 4696320dd4a06afb63c0c49694629707fc2333ec
      
https://github.com/WebKit/WebKit/commit/4696320dd4a06afb63c0c49694629707fc2333ec
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 280210@main (9d5844679af8). 
https://bugs.webkit.org/show_bug.cgi?id=253807

    [GTK][GStreamer] VA+DMABuf videos flicker
    https://bugs.webkit.org/show_bug.cgi?id=253807

    Reviewed by Xabier Rodriguez-Calvar.

    By requesting a video frame allocation pool containing at least 3 frames, 
the risks of flickering
    when rendering should be reduced.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:
    (WebKitVideoSinkProbe::doProbe):

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

Canonical link: https://commits.webkit.org/274313.321@webkitglib/2.44


  Commit: eb64621c5a4f923c35630668e9ad81326636a7d1
      
https://github.com/WebKit/WebKit/commit/eb64621c5a4f923c35630668e9ad81326636a7d1
  Author: Alicia Boya Garcia <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 276341@main (b4ac73768e74). 
https://bugs.webkit.org/show_bug.cgi?id=270980

    [MSE][GStreamer] Do more pipeline dumps in WebKitMediaSrc
    https://bugs.webkit.org/show_bug.cgi?id=270980

    Reviewed by Philippe Normand.

    This patch adds more points where, if requested,
    WebKitMediaSourceGStreamer will dump the playback pipeline.

    It also refactors pipeline dumping into a separate function for improved
    clarity and code reuse.

    Pipeline dumps that were produced before by WebKitMediaSourceGStreamer:

    - playback-pipeline-before-playback-{trackId}
    - playback-pipeline-pushing-buffer-failed-{trackId}

    Pipeline dumps that are produced after the patch:

    - playback-pipeline-{trackId}-first-frame-before
    - playback-pipeline-{trackId}-first-frame-after
    - playback-pipeline-{trackId}-pushing-buffer-failed
    - playback-pipeline-{trackId}-flush-start-before
    - playback-pipeline-{trackId}-flush-start-after
    - playback-pipeline-{trackId}-flush-stop-before
    - playback-pipeline-{trackId}-flush-stop-after

    Track ID has also been moved left in the name to bring attention to it.

    * 
Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
    (dumpPipeline):
    (webKitMediaSrcLoop):
    (webKitMediaSrcStreamFlush):

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

Canonical link: https://commits.webkit.org/274313.322@webkitglib/2.44


  Commit: e0430b6972f1e94a87c76500564411a252693a29
      
https://github.com/WebKit/WebKit/commit/e0430b6972f1e94a87c76500564411a252693a29
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 280297@main (0b3e3c5ec50b). 
https://bugs.webkit.org/show_bug.cgi?id=275778

    [GStreamer][MSE] Improved error handling in webkitmediasrc
    https://bugs.webkit.org/show_bug.cgi?id=275778

    Reviewed by Alicia Boya Garcia.

    If we fail to push a buffer downstream we should post an error on the bus, 
GST_ELEMENT_ERROR takes
    care of that. In that case the error message will be handled in the player, 
which will also dump the
    pipeline graph, so there is no need to do that anymore from the source 
element.

    Driving-by, the pipeline dumps generated by webkitmediasrc are now named 
according to the pipeline
    they belong to, instead of hardcoding "playback-pipeline".

    * 
Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
    (dumpPipeline):
    (webKitMediaSrcLoop):

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

Canonical link: https://commits.webkit.org/274313.323@webkitglib/2.44


  Commit: 2eb2905cf2cd7ab16e1779453e0e7d7ea77f9f42
      
https://github.com/WebKit/WebKit/commit/2eb2905cf2cd7ab16e1779453e0e7d7ea77f9f42
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebKit/gtk/gtk3-webkitgtk.toml.in
    M Source/WebKit/gtk/gtk4-webkitgtk.toml.in
    M Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in
    M Source/WebKit/wpe/wpe-web-process-extension.toml.in
    M Source/WebKit/wpe/wpewebkit.toml.in

  Log Message:
  -----------
  Cherry-pick 280572@main (6a465d3ecf85). 
https://bugs.webkit.org/show_bug.cgi?id=276119

    [WPE][GTK] Source links in generated API documentation are incorrect
    https://bugs.webkit.org/show_bug.cgi?id=276119

    Reviewed by Michael Catanzaro.

    gi-docgen strips the last URL path component not ending with a slash, 
apparently. So the source
    links were missing the "main" part.

    * Source/WebKit/gtk/gtk3-webkitgtk.toml.in:
    * Source/WebKit/gtk/gtk4-webkitgtk.toml.in:
    * Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in:
    * Source/WebKit/wpe/wpe-web-process-extension.toml.in:
    * Source/WebKit/wpe/wpewebkit.toml.in:

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

Canonical link: https://commits.webkit.org/274313.324@webkitglib/2.44


  Commit: a81b084a83036d43fa3efc27eb4f919326df2d32
      
https://github.com/WebKit/WebKit/commit/a81b084a83036d43fa3efc27eb4f919326df2d32
  Author: Roope Salmi <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebKit/UIProcess/gtk/PointerLockManager.cpp
    M Source/WebKit/UIProcess/gtk/PointerLockManager.h
    M Source/WebKit/UIProcess/gtk/PointerLockManagerX11.cpp
    M Source/WebKit/UIProcess/gtk/PointerLockManagerX11.h

  Log Message:
  -----------
  Cherry-pick 280623@main (637888b2d2a3). 
https://bugs.webkit.org/show_bug.cgi?id=273876

    [GTK] Fix pointer lock on X11
    https://bugs.webkit.org/show_bug.cgi?id=273876

    Reviewed by Carlos Garcia Campos.

    The XGrabPointer call was returning AlreadyGrabbed. This is apparently
    because there is an active passive grab when the mouse is pressed down,
    that comes via X Input Extensions (XI2) and not X Core. The XGrabPointer
    implementation returns AlreadyGrabbed when the "grabtype" differs, i.e.
    "XI" or "CORE". The passive grab may have changed into a touch grab at
    some point, which goes through XI2.

    My solution is to call XUngrabPointer before trying to grab it.

    Fixing this uncovered a secondary issue: the coordinates given to
    XWarpPointer were incorrect. I get the actual root-relative coordinates
    with XQueryPointer during lock() instead of trying to convert from
    m_initialPoint. (That would require handling the offset of the widget
    inside the window and DPI scaling.)

    I then got a continuous stream of MouseEvents even when the mouse was
    stationary due to float rounding differences. In didReceiveMotionEvent,
    I added a check that the delta coordinates are non-zero when rounded to
    integers, so no events are sent with delta 0.

    There are slight errors and differences in how movementX/Y values behave
    when locked vs unlocked. These should be addressed separately.

    Tested manually with -DUSE_GTK4=ON,OFF, GDK_SCALE=1,2.

    * Source/WebKit/UIProcess/gtk/PointerLockManager.cpp:
    (WebKit::PointerLockManager::handleMotion):
    * Source/WebKit/UIProcess/gtk/PointerLockManager.h:
    * Source/WebKit/UIProcess/gtk/PointerLockManagerX11.cpp:
    (WebKit::PointerLockManagerX11::lock):
    (WebKit::PointerLockManagerX11::didReceiveMotionEvent):
    * Source/WebKit/UIProcess/gtk/PointerLockManagerX11.h:

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

Canonical link: https://commits.webkit.org/274313.325@webkitglib/2.44


  Commit: 5c1d0983fcdafff05a7c7b295c213dcd331df333
      
https://github.com/WebKit/WebKit/commit/5c1d0983fcdafff05a7c7b295c213dcd331df333
  Author: Enrique Ocaña González <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 280813@main (04cc4a4e2fc2). 
https://bugs.webkit.org/show_bug.cgi?id=276251

    [MSE][GStreamer] block data flow until source pad is exposed
    https://bugs.webkit.org/show_bug.cgi?id=276251

    Reviewed by Xabier Rodriguez-Calvar.

    In WebKitMediaSrc, there could be a race between main thread (linking
    typefind element, see gsturisourcebin.c:setup_typefind) and streaming
    thread (pushing data). webKitMediaSrcLoop does wait for source pad to
    linked. However, there is no guarantee that peer pad is already active
    at that point. This may lead to data loss while peer the pad is being
    activated.

    This change blocks downstream flow during pad addition, allowing
    urisourcebin to link/activate typefind sink pad.

    See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1355

    Original patch by Eugene Mutavchi <[email protected]>.

    * 
Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
    (webKitMediaSrcEmitStreams): Add blocking probes to the Streams Pads, which 
will be removed after the pad has been added to the element.

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

Canonical link: https://commits.webkit.org/274313.326@webkitglib/2.44


  Commit: 1e175bbc401993af4b10841bcd8d110a5a84ae69
      
https://github.com/WebKit/WebKit/commit/1e175bbc401993af4b10841bcd8d110a5a84ae69
  Author: Michael Catanzaro <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M Source/WebCore/platform/glib/UserAgentQuirks.cpp

  Log Message:
  -----------
  Cherry-pick 281402@main (5965f597b3e1). 
https://bugs.webkit.org/show_bug.cgi?id=277144

    [WPE][GTK] Unsupported browser warning on Google Docs
    https://bugs.webkit.org/show_bug.cgi?id=277144

    Reviewed by Carlos Garcia Campos.

    Updating the Chrome quirk should fix this bug. We can also update the
    Firefox quirk for good measure. Let's try to stay ahead of the game by
    using an unsubtle high version number.

    * Source/WebCore/platform/glib/UserAgentQuirks.cpp:
    (WebCore::UserAgentQuirks::stringForQuirk):

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

Canonical link: https://commits.webkit.org/274313.327@webkitglib/2.44


  Commit: 875fd605bd852ac41ca90169feb5fb267cd8ab8a
      
https://github.com/WebKit/WebKit/commit/875fd605bd852ac41ca90169feb5fb267cd8ab8a
  Author: Philippe Normand <[email protected]>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

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

  Log Message:
  -----------
  Cherry-pick 280808@main (5a41131cab31). 
https://bugs.webkit.org/show_bug.cgi?id=276296

    [GStreamer] Paused pipelines accumulate when scrolling on Reddit pages with 
many videos
    https://bugs.webkit.org/show_bug.cgi?id=276296

    Reviewed by Xabier Rodriguez-Calvar.

    Dispose the GStreamer pipeline if the destination 
TextureMapperPlatformLayerProxy becomes inactive,
    meaning that either the compositor is gone or the target layer no longer 
exists.

    * 
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
    (WebCore::MediaPlayerPrivateGStreamer::tearDown):
    (WebCore::MediaPlayerPrivateGStreamer::isPipelineWaitingPreroll const):
    (WebCore::MediaPlayerPrivateGStreamer::buffered const):
    (WebCore::MediaPlayerPrivateGStreamer::pausedTimerFired):
    (WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
    (WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
    (WebCore::MediaPlayerPrivateGStreamer::setVisibleInViewport):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

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

Canonical link: https://commits.webkit.org/274313.328@webkitglib/2.44


Compare: https://github.com/WebKit/WebKit/compare/cf9ddb5095a8...875fd605bd85

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