[webkit-changes] [WebKit/WebKit] 835950: Cherry-pick 282645 at main (b5502f0dc670). https://bu...

Philippe Normand noreply at github.com
Wed Sep 25 04:03:27 PDT 2024


  Branch: refs/heads/webkitglib/2.46
  Home:   https://github.com/WebKit/WebKit
  Commit: 8359503b846d392673667fb5991bd6515ec057d0
      https://github.com/WebKit/WebKit/commit/8359503b846d392673667fb5991bd6515ec057d0
  Author: Ryan Reno <rreno at apple.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    M Source/WebCore/Modules/reporting/ReportingObserver.cpp

  Log Message:
  -----------
  Cherry-pick 282645 at main (b5502f0dc670). https://bugs.webkit.org/show_bug.cgi?id=278534

    REGRESSION (280886 at main) ReportingObserver can be garbage collected while a task is queued to make report callbacks.
    https://bugs.webkit.org/show_bug.cgi?id=278534
    rdar://133409507

    Reviewed by Brent Fulgham.

    In 280886 at main I tied the lifetime of the ReportingObserver object to
    whether or not it is observing reports by making it an ActiveDOMObject.
    In some cases (especially imported/w3c/web-platform-tests/reporting/disconnect.html)
    the object and its callback can be garbage collected while there's an
    outstanding task to make the callback with its reports which can
    cause a null pointer dereference when attempting to invoke the callback.

    This change will keep the object alive until after the callback has been
    serviced, even if all references are dropped and the ReportingObserver
    has disconnected.

    * Source/WebCore/Modules/reporting/ReportingObserver.cpp:
    (WebCore::ReportingObserver::appendQueuedReportIfCorrectType):

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

Canonical link: https://commits.webkit.org/282416.152@webkitglib/2.46


  Commit: 9aed97a611cba985a0c9cd626f1ae917e945d715
      https://github.com/WebKit/WebKit/commit/9aed97a611cba985a0c9cd626f1ae917e945d715
  Author: Philippe Normand <philn at igalia.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 284212 at main (aab43ebf7ddb). https://bugs.webkit.org/show_bug.cgi?id=280266

    [GStreamer][WebRTC] Changing codec preferences on a transceiver can lead to invalid SDP fmtp parameters in SDP
    https://bugs.webkit.org/show_bug.cgi?id=280266

    Reviewed by Xabier Rodriguez-Calvar.

    In 252497 at main support for VP9 profile2 was added, by keeping track of the fmtp parameters in the
    transceiver codec preferences, using codec-prefixed fields, which were then read by the outgoing
    video source at the moment of configuring the encoder. The issue is that those fields with custom
    prefix can end-up in SDP offers, and they're not spec compliant. So don't use a prefix for those.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:
    (WebCore::toRtpCodecCapability):
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
    (WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType):

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

Canonical link: https://commits.webkit.org/282416.153@webkitglib/2.46


  Commit: 7c24b6e0b6e64e1476220456f797abee12a3e1fa
      https://github.com/WebKit/WebKit/commit/7c24b6e0b6e64e1476220456f797abee12a3e1fa
  Author: Philippe Normand <philn at igalia.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

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

  Log Message:
  -----------
  Cherry-pick 284211 at main (678c69226d9c). https://bugs.webkit.org/show_bug.cgi?id=280269

    REGRESSION(284065 at main): [GStreamer][MediaStream] Assertion failure ASSERTION FAILED: canSafelyBeUsed()
    https://bugs.webkit.org/show_bug.cgi?id=280269

    Reviewed by Xabier Rodriguez-Calvar.

    Using WeakPtr for keeping track of the MediaStreamTrackPrivate in the mediastreamsrc element was a
    mistake because the video frame dispatching can be triggered from a different thread.
    ThreadSafeWeakPtr can't be used either, and actually there's no risk of reference cycles here, so
    use RefPtr.

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

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

Canonical link: https://commits.webkit.org/282416.154@webkitglib/2.46


Compare: https://github.com/WebKit/WebKit/compare/71f816fba474...7c24b6e0b6e6

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


More information about the webkit-changes mailing list