[webkit-changes] [WebKit/WebKit] 790c97: Cherry-pick 260986 at main (a7c8d725eade). https://bu...

Xabier Rodríguez noreply at github.com
Wed Apr 12 17:51:02 PDT 2023


  Branch: refs/heads/webkitglib/2.40
  Home:   https://github.com/WebKit/WebKit
  Commit: 790c977fdf7b8216637ba5f9a33bc407641ed58f
      https://github.com/WebKit/WebKit/commit/790c977fdf7b8216637ba5f9a33bc407641ed58f
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M Source/WebCore/loader/FrameLoader.cpp

  Log Message:
  -----------
  Cherry-pick 260986 at main (a7c8d725eade). https://bugs.webkit.org/show_bug.cgi?id=253128

    Lookalike characters should be removed from the request URL when deciding navigation policy
    https://bugs.webkit.org/show_bug.cgi?id=253128
    rdar://106061388

    Reviewed by Aditya Keerthi.

    Add some logic to adjust the request URL if needed, before proceeding with navigation (and calling
    out to the client layer).

    * Source/WebCore/loader/FrameLoader.cpp:
    (WebCore::FrameLoader::updateRequestAndAddExtraFields):

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


  Commit: 22c6d2a05359cce9ff4a46ff02ae68e93b8fbf94
      https://github.com/WebKit/WebKit/commit/22c6d2a05359cce9ff4a46ff02ae68e93b8fbf94
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261069 at main (558d4317538c). https://bugs.webkit.org/show_bug.cgi?id=253159

    [GStreamer][WebRTC] Logging improvements and disable auto-header-extensions on video payloaders
    https://bugs.webkit.org/show_bug.cgi?id=253159

    Reviewed by Xabier Rodriguez-Calvar.

    Also make sure the WebKit GStreamer elements are registered when creating the end-point, otherwise
    there's the possibility of outgoing video source failing to configure the encoder in case the
    registry scanner hasn't been triggered.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::GStreamerMediaEndpoint):
    (WebCore::GStreamerMediaEndpoint::requestPad):
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:
    (WebCore::createGStreamerPeerConnectionBackend):
    (WebCore::GStreamerPeerConnectionBackend::addTrack):
    (WebCore::GStreamerPeerConnectionBackend::addTransceiverFromTrackOrKind):
    (WebCore::GStreamerPeerConnectionBackend::newRemoteTransceiver):
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
    (WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType):

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


  Commit: 5194391d652ac0d3437029087cc5ee27558c2f99
      https://github.com/WebKit/WebKit/commit/5194391d652ac0d3437029087cc5ee27558c2f99
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    M Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h

  Log Message:
  -----------
  Cherry-pick 261070 at main (c9a7acf64ee3). https://bugs.webkit.org/show_bug.cgi?id=253237

    [GStreamer] GRefPtr template specialization for GstDeviceMonitor
    https://bugs.webkit.org/show_bug.cgi?id=253237

    Reviewed by Xabier Rodriguez-Calvar.

    We're (hopefully) not fixing a leak here, since without specialization the generic
    g_object_ref/unref would be called. But having a specialization for this object is still a good
    thing, allowing for instance the GStreamer leak tracer to correctly track lifetime of device
    monitors.

    Also, drive-by, stop the monitor only if it was successfully started, similarily to the
    CaptureDeviceManager implementation.

    * Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
    (WebCore::maximumNumberOfOutputChannels):
    * Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
    (WTF::adoptGRef):
    (WTF::refGPtr<GstDeviceMonitor>):
    (WTF::derefGPtr<GstDeviceMonitor>):
    * Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h:

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


  Commit: 08263c3ed7b8d72912de87f34ea42af706c1f563
      https://github.com/WebKit/WebKit/commit/08263c3ed7b8d72912de87f34ea42af706c1f563
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.h
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 261074 at main (7878d72b0fd7). https://bugs.webkit.org/show_bug.cgi?id=251428

    [GStreamer][WebRTC] Implement GstMappedRtpBuffer
    https://bugs.webkit.org/show_bug.cgi?id=251428

    Reviewed by Xabier Rodriguez-Calvar.

    With this new RAII object for mapping RTP buffers we don't need to manually unmap anymore.

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


  Commit: 11b647a57eb18bcce675ff006a60f22869cea39a
      https://github.com/WebKit/WebKit/commit/11b647a57eb18bcce675ff006a60f22869cea39a
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    M Source/WebCore/Modules/mediasource/SourceBuffer.cpp

  Log Message:
  -----------
  Cherry-pick 261328 at main (1581c8aa2d3c). https://bugs.webkit.org/show_bug.cgi?id=253074

    [MSE] Skip initial buffering rate computation
    https://bugs.webkit.org/show_bug.cgi?id=253074

    Reviewed by Jer Noble.

    m_timeOfBufferingMonitor is initialized in SourceBuffer at creation
    time. If the first call to monitorBufferingRate() takes too much to
    happen for whatever reason (eg: because the webpage takes too much to
    perform the first append), the computed interval is already going to be
    too big and generate an artificially low m_averageBufferRate.

    To mitigate this, I've added code to initialize m_timeOfBufferingMonitor
    to zero, detect that special value in monitorBufferingRate() and skip
    the first time that the rate computation is done (just assigning the
    "now" time to m_timeOfBufferingMonitor, so when the next update is done,
    the interval is most realistic).

    However, since monitorBufferingRate() calls are only done from
    canPlayThroughRange() and that call might happen only once in some
    layout tests and production scenarios, m_averageBufferRate might not
    reach accurate values on time and make the test fail. To mitigate that,
    I've also added extra calls every time a buffer is appended and every
    time the append completes.

    See: https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/928#issuecomment-1327746356

    * Source/WebCore/Modules/mediasource/SourceBuffer.cpp: Initialize m_timeOfBufferingMonitor to zero, meaning "never updated before".
    (WebCore::SourceBuffer::appendBuffer): Update monitorBufferingRate.
    (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): UpdateMonitorBufferingRate.
    (WebCore::SourceBuffer::monitorBufferingRate): Skip first m_averageBufferRate update.

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


  Commit: b4cdd42746802fbb8bc37407e775ad33ea22730b
      https://github.com/WebKit/WebKit/commit/b4cdd42746802fbb8bc37407e775ad33ea22730b
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    A LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon-expected.txt
    A LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon.html
    M LayoutTests/platform/ios-wk2/TestExpectations
    M Source/WebCore/page/Page.cpp

  Log Message:
  -----------
  Cherry-pick 261516 at main (cb882e942695). https://bugs.webkit.org/show_bug.cgi?id=250119

    Copying text on a GitHub pull request in split mode sometimes lowercases the first letter
    https://bugs.webkit.org/show_bug.cgi?id=250119
    rdar://105603708

    Reviewed by Aditya Keerthi.

    When running lookalike character sanitization upon pasting text, allow the original text to pass
    through unchanged in the case where lookalike character sanitization didn't adjust the URL.

    Test: editing/pasteboard/copy-paste-text-with-trailing-colon.html

    * LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon-expected.txt: Added.
    * LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon.html: Added.
    * LayoutTests/platform/ios-wk2/TestExpectations:

    Mark the test as failing on iOS for now, while I investigate a fix in <https://webkit.org/b/253708>.

    * Source/WebCore/page/Page.cpp:
    (WebCore::Page::sanitizeLookalikeCharacters const):

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


  Commit: 552ed8bc5e2a888d4f178f3bdbdd8c98c523d1ff
      https://github.com/WebKit/WebKit/commit/552ed8bc5e2a888d4f178f3bdbdd8c98c523d1ff
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261571 at main (c5cfffe19659). https://bugs.webkit.org/show_bug.cgi?id=252310

    [GStreamer] Try to detect and recover inconsistent playing state
    https://bugs.webkit.org/show_bug.cgi?id=252310

    Reviewed by Philippe Normand.

    A series of buffer flushings could leave pipeline in an inconsistent state: top-level bin in playing with sinks in
    paused. This happens if flush is triggered in the middle of paused-to-playing transition which was started by gst bin
    async handling of ASYNC_DONE message.

    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
    (WebCore::areAllSinksPlayingForBin):
    (WebCore::MediaPlayerPrivateGStreamer::checkPlayingConsistency):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

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


  Commit: b1ae5757e3d8cd64f22a097d4b94b79a1370fbbd
      https://github.com/WebKit/WebKit/commit/b1ae5757e3d8cd64f22a097d4b94b79a1370fbbd
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261626 at main (e2ccf6b69511). https://bugs.webkit.org/show_bug.cgi?id=253833

    [GStreamer][WebRTC] Ensure end-point pipeline is stopped when destroying
    https://bugs.webkit.org/show_bug.cgi?id=253833

    Reviewed by Xabier Rodriguez-Calvar.

    As subject says, make sure the pipeline is teared down during disposal of the EndPoint.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::~GStreamerMediaEndpoint):
    (WebCore::GStreamerMediaEndpoint::teardownPipeline):
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:

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


  Commit: dbe13ed399dc4d579293a14e3d73ba56b7be58f4
      https://github.com/WebKit/WebKit/commit/dbe13ed399dc4d579293a14e3d73ba56b7be58f4
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261681 at main (2e8371efc38c). https://bugs.webkit.org/show_bug.cgi?id=253955

    [GStreamer][WebRTC] StatsCollector: Update GStreamer version checks
    https://bugs.webkit.org/show_bug.cgi?id=253955

    Reviewed by Xabier Rodriguez-Calvar.

    GStreamer 1.22 is out so no need to check 1.21 anymore.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:
    (WebCore::fillReportCallback):

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


  Commit: d515d9d76d0887a868d5d1ea80ee5190d6b02a0f
      https://github.com/WebKit/WebKit/commit/d515d9d76d0887a868d5d1ea80ee5190d6b02a0f
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261683 at main (758056c72f5c). https://bugs.webkit.org/show_bug.cgi?id=253954

    [GStreamer][WebRTC] Improve DataChannel logs
    https://bugs.webkit.org/show_bug.cgi?id=253954

    Reviewed by Xabier Rodriguez-Calvar.

    The logs now mention one unique identifier per data-channel. This works only when building against
    GStreamer 1.22 though because it requires new macros.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:
    (WebCore::GStreamerDataChannelHandler::GStreamerDataChannelHandler):
    (WebCore::GStreamerDataChannelHandler::~GStreamerDataChannelHandler):
    (WebCore::GStreamerDataChannelHandler::setClient):
    (WebCore::GStreamerDataChannelHandler::sendStringData):
    (WebCore::GStreamerDataChannelHandler::sendRawData):
    (WebCore::GStreamerDataChannelHandler::close):
    (WebCore::GStreamerDataChannelHandler::checkState):
    (WebCore::GStreamerDataChannelHandler::bufferedAmountChanged):
    (WebCore::GStreamerDataChannelHandler::onMessageData):
    (WebCore::GStreamerDataChannelHandler::onMessageString):
    (WebCore::GStreamerDataChannelHandler::onError):
    (WebCore::GStreamerDataChannelHandler::onClose):
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.h:

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


  Commit: 025203d1ad69124d065a132e0b1df978dd1a8c53
      https://github.com/WebKit/WebKit/commit/025203d1ad69124d065a132e0b1df978dd1a8c53
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261684 at main (8f08fa82eddb). https://bugs.webkit.org/show_bug.cgi?id=253000

    [GStreamer][EME] Added support to check support of cryptoblockformat
    https://bugs.webkit.org/show_bug.cgi?id=253000

    Reviewed by Xabier Rodriguez-Calvar.

    Inspired from downstream WPE 2.22 patch:
    https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/e5b91c2bb7732e1047e3f52aa6f6651e0e1f02da

    Fixes YT cert test: "Format Support Tests" -> "1. isTypeSupported cryptoblockformat"

    Also drive-by change suggested by Xabier, remove the application/x-cbcs check in the Thunder
    decryptor as that is now cenc with a cypher-mode.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
    (WebCore::GStreamerRegistryScanner::isContentTypeSupported const):

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


  Commit: b4e1b8bb738da63d1b65f1e40fe677fef975113b
      https://github.com/WebKit/WebKit/commit/b4e1b8bb738da63d1b65f1e40fe677fef975113b
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h

  Log Message:
  -----------
  Cherry-pick 261785 at main (8684905426f0). https://bugs.webkit.org/show_bug.cgi?id=254018

    Expose RealtimeMediaSource fitnessScore as a double
    https://bugs.webkit.org/show_bug.cgi?id=254018
    rdar://problem/106801067

    Reviewed by Eric Carlson.

    We should not silently cast double into unsigned, especially since we are doing comparison on the values.

    * Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
    * Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h:

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


  Commit: 2fde66858fd5978e157ae8e6d59b167a393712ef
      https://github.com/WebKit/WebKit/commit/2fde66858fd5978e157ae8e6d59b167a393712ef
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    M Source/WebCore/Modules/mediasource/MediaSource.cpp
    M Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp

  Log Message:
  -----------
  Cherry-pick 261830 at main (8575978fe5ef). https://bugs.webkit.org/show_bug.cgi?id=254076

    MediaSource duration change algorithm incorrectly update the duration
    https://bugs.webkit.org/show_bug.cgi?id=254076
    rdar://106858912

    Reviewed by Jer Noble.

    Will be covered by existing tests once the MockMediaSource will be
    runnin in the GPU process.

    * Source/WebCore/Modules/mediasource/MediaSource.cpp:
    (WebCore::MediaSource::setDurationInternal):
    * Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp:
    (WebCore::MockMediaSourcePrivate::durationChanged):

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


  Commit: 6a874cf052569f49fb452a80513bd1e91cab00cf
      https://github.com/WebKit/WebKit/commit/6a874cf052569f49fb452a80513bd1e91cab00cf
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick 261914 at main (71eaa127b96b). https://bugs.webkit.org/show_bug.cgi?id=254159

    [GStreamer][PlayReady] Accept init data as sanitized
    https://bugs.webkit.org/show_bug.cgi?id=254159

    Reviewed by Carlos Garcia Campos.

    When getting init datas from adaptive streaming technologies, it can happen that information does not come in pssh form
    and we need to parse it in a custom way.

    * Source/WebCore/Modules/encryptedmedia/InitDataRegistry.cpp:
    (WebCore::isPlayReadySanitizedInitializationData):
    (WebCore::InitDataRegistry::sanitizeCenc):

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


Compare: https://github.com/WebKit/WebKit/compare/c583baa9fe9b...6a874cf05256


More information about the webkit-changes mailing list