[webkit-changes] [WebKit/WebKit] b175d4: Cherry-pick 256645 at main (dc1660b2260a). https://bu...

youennf noreply at github.com
Fri Jan 27 04:06:52 PST 2023


  Branch: refs/heads/webkitglib/2.38
  Home:   https://github.com/WebKit/WebKit
  Commit: b175d42c8705e42d31f8215352386f1d271ac398
      https://github.com/WebKit/WebKit/commit/b175d42c8705e42d31f8215352386f1d271ac398
  Author: Žan Doberšek <zan at falconsigh.net>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in

  Log Message:
  -----------
  Cherry-pick 256645 at main (dc1660b2260a). https://bugs.webkit.org/show_bug.cgi?id=247881

    [WK2] std::optional<WebKit::NavigatingToAppBoundDomain> parameters shouldn't be marked as enums in IPC messages
    https://bugs.webkit.org/show_bug.cgi?id=247881

    Reviewed by Kimmo Kinnunen.

    The NavigatingToAppBoundDomain enum values wrapped in std::optional<> in various IPC messages shouldn't
    be marked as enums. The enumeration values are handled appropriately during encoding and decoding of
    std::optional<>, whereas the additional marking hampers generation of a reference type as the parameter
    type for each affected message.

    * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
    * Source/WebKit/NetworkProcess/NetworkProcess.messages.in:

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


  Commit: 6b0cd5308aed0ef45a4b970e0788d557020dcf09
      https://github.com/WebKit/WebKit/commit/6b0cd5308aed0ef45a4b970e0788d557020dcf09
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/GStreamer.cmake
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp
    A Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp
    A Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.h

  Log Message:
  -----------
  Cherry-pick 257615 at main (cf92dc1de95a). https://bugs.webkit.org/show_bug.cgi?id=248948

    [GStreamer] Minimal codec parsing module
    https://bugs.webkit.org/show_bug.cgi?id=248948

    Reviewed by Xabier Rodriguez-Calvar.

    This patch exposes API for parsing H.264 profile and level from a codec string, this code existed in
    the registry scanner before but can now be reused for eg. the upcoming WebCodecs backend. A minimal
    VP9 profile parsing utility is also part of this patch.

    The new file is stored in platform/gstreamer, we should gradually add new GStreamer modules there
    when appropriate. Some of the platform/graphics/gstreamer files could also move there at some point.

    * Source/WebCore/platform/GStreamer.cmake:
    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
    (WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const):
    * Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp: Added.
    (WebCore::ensureDebugCategoryInitialized):
    (WebCore::GStreamerCodecUtilities::parseVP9Profile):
    * Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.h: Added.

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


  Commit: 899597131791c72d4b70aad916f4292d45379ac5
      https://github.com/WebKit/WebKit/commit/899597131791c72d4b70aad916f4292d45379ac5
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/editing/pasteboard/copy-content-with-display-none-exiting-ancestors-expected.txt
    A LayoutTests/editing/pasteboard/copy-content-with-display-none-exiting-ancestors.html
    M Source/WebCore/editing/markup.cpp

  Log Message:
  -----------
  Cherry-pick 257977 at main (24540c7a6767). https://bugs.webkit.org/show_bug.cgi?id=249426

    REGRESSION(205039 at main): StyledMarkupAccumulator sometimes does not emit an end tag
    https://bugs.webkit.org/show_bug.cgi?id=249426

    Reviewed by Wenson Hsieh.

    The bug was caused by traverseNodesForSerialization failing to register ancestors that climbed out of
    when enterNode returns false. Fixed the bug by re-using the normal traversal code.

    * LayoutTests/editing/pasteboard/copy-content-with-display-none-exiting-ancestors-expected.txt: Added.
    * LayoutTests/editing/pasteboard/copy-content-with-display-none-exiting-ancestors.html: Added.
    * Source/WebCore/editing/markup.cpp:
    (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

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


  Commit: 7e09144be0c1332cbbcddec51527be676fe060d9
      https://github.com/WebKit/WebKit/commit/7e09144be0c1332cbbcddec51527be676fe060d9
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

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

  Log Message:
  -----------
  Cherry-pick 258044 at main (c75026b5ef15). https://bugs.webkit.org/show_bug.cgi?id=248742

    [GStreamer][MSE] Refactor demuxer handling in AppendPipeline
    https://bugs.webkit.org/show_bug.cgi?id=248742

    Reviewed by Alicia Boya Garcia.

    Instead of a boolean `hasDemuxer` we can check the element metadata for the `Demuxer` classifier.

    * Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
    (WebCore::AppendPipeline::AppendPipeline):

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


  Commit: 8a3d28c205e8fd08284625901e0054f1a2e4874a
      https://github.com/WebKit/WebKit/commit/8a3d28c205e8fd08284625901e0054f1a2e4874a
  Author: Ryan Reno <rreno at apple.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp

  Log Message:
  -----------
  Cherry-pick 258110 at main (0445ac553799). https://bugs.webkit.org/show_bug.cgi?id=249596

    Store CSP delivered via meta tag as a valid HTTP header.
    https://bugs.webkit.org/show_bug.cgi?id=249596
    rdar://103170891

    Reviewed by Brent Fulgham.

    A CSP delivered via a meta tag could have invalid HTTP header values in it. Take for example this:

    <meta http-equiv="Content-Security-Policy" content="
        default-src 'none';
        script-src 'self';
        img-src 'self'">

    The value of the CSP header that the ContentSecurityPolicyDirectiveList will get will be the raw
    string including whitespace and most importantly newline characters. These newline characters are
    invalid characters in an HTTP header[0].

    The parsing algorithm for CSP handles this appropriately and creates a valid CSP for the document. However,
    if a script in the document then creates blob URLs which are navigated to or otherwise fetched, the Network
    process will return a ResourceResponse object with a Content-Security-Policy header that contains the newlines.
    This is caught by the ResourceResponseBase::containsInvalidHTTPHeaders function which causes the fetch to fail.

    To combat this we can simply strip the newline characters from the meta-delivered CSP and store the policy as a
    valid HTTP header.

    [0] https://fetch.spec.whatwg.org/#header-value

    * Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp:
    (WebCore::ContentSecurityPolicyDirectiveList::parse):

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


  Commit: e81cf7ef608b4a33039fc70e29fcada634694d7d
      https://github.com/WebKit/WebKit/commit/e81cf7ef608b4a33039fc70e29fcada634694d7d
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/http/tests/security/contentSecurityPolicy/blob-url-invalid-http-header-expected.txt
    A LayoutTests/http/tests/security/contentSecurityPolicy/blob-url-invalid-http-header.html
    M Source/WebCore/page/csp/ContentSecurityPolicy.cpp

  Log Message:
  -----------
  Cherry-pick 258130 at main (d89d47f7fd45). https://bugs.webkit.org/show_bug.cgi?id=249213

    Images are not loaded in element application
    https://bugs.webkit.org/show_bug.cgi?id=249213

    Reviewed by Xabier Rodriguez-Calvar.

    Element application uses the fetch api to download images and convert
    them to a blob that is then requested. The problem is that the blob
    request is failing due to invalid HTTP header in response. The invalid
    header is Content-Security-Policy that is generated by the blob loader
    using the security context policy. The document policy comes from
    http-equiv meta and contains newlines, which are allowed there, but
    invalid for an HTTP header value.

    Test: http/tests/security/contentSecurityPolicy/blob-url-invalid-http-header.html

    * LayoutTests/http/tests/security/contentSecurityPolicy/blob-url-invalid-http-header-expected.txt: Added.
    * LayoutTests/http/tests/security/contentSecurityPolicy/blob-url-invalid-http-header.html: Added.
    * Source/WebCore/page/csp/ContentSecurityPolicy.cpp:
    (WebCore::ContentSecurityPolicy::responseHeaders const): Make the http header value valid if needed.

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


  Commit: a644f5d738edd81df62337c92621bec9fa2c7278
      https://github.com/WebKit/WebKit/commit/a644f5d738edd81df62337c92621bec9fa2c7278
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/fast/table/table-overflow-crash-expected.txt
    A LayoutTests/fast/table/table-overflow-crash.html
    M Source/WebCore/rendering/RenderTable.cpp

  Log Message:
  -----------
  Cherry-pick 258227 at main (0a821c7d68ea). https://bugs.webkit.org/show_bug.cgi?id=249707

    Make sure rows are updated during simplified layout
    https://bugs.webkit.org/show_bug.cgi?id=249707

    Reviewed by Alan Baradlay.

    Merge - https://src.chromium.org/viewvc/blink?revision=191146&view=revision

    When we are calling RenderTable::simplifiedNormalFlowLayout(), we have to
    make sure that we call section->layoutRows() before we do the
    section->computeOverflowFromCells(). The call to layoutRows is needed because
    it will reset and update the m_forceSlowPaintPathWithOverflowingCell
    flag which causes to fail the ASSERT.

    * Source/WebCore/rendering/RenderTable.cpp:
    (RenderTable::simplifiedNormalFlowLayout): Add "layoutRows" before "computeOverflowFromCells"
    * LayoutTests/fast/table/table-overflow-crash.html: Add Test Case
    * LayoutTests/fast/table/table-overflow-crash-expected.txt: Add Test Case Expectation

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


  Commit: b12785ba05a00d04734a1e0091553459cfa9eaae
      https://github.com/WebKit/WebKit/commit/b12785ba05a00d04734a1e0091553459cfa9eaae
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/fast/multicol/unbreakable-content-taller-than-height-crash-expected.txt
    A LayoutTests/fast/multicol/unbreakable-content-taller-than-height-crash.html
    M Source/WebCore/rendering/RenderMultiColumnSet.cpp

  Log Message:
  -----------
  Cherry-pick 258230 at main (3edf242b588b). https://bugs.webkit.org/show_bug.cgi?id=249705

    Give up on stretching columns if they have already reached max height
    https://bugs.webkit.org/show_bug.cgi?id=249705

    Reviewed by Alan Baradlay.

    Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=192636

    This doesn't change any behavior (column heights were already clamped against
    max height), but it avoids an assertion failure that would occur if no space
    shortage is recorded during a render pass. Unbreakable content (lines) that's
    taller than the column (max) height don't record space shortage, as columns
    cannot be stretched beyond the (max) height anyway.

    * Source/WebCore/rendering/RenderMultiColumnSet.cpp:
    (RenderMultiColumnSet::calculateBalancedHeight): Add if condition to restrict column height
    * LayoutTests/fast/multicol/unbreakable-content-taller-than-height-crash.html: Add Test Case
    * LayoutTests/fast/multicol/unbreakable-content-taller-than-height-crash-expected.txt: Add Test Case Expectation

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


  Commit: b13c06e8117ddc935764a0f70bb68b6bbdf6c03d
      https://github.com/WebKit/WebKit/commit/b13c06e8117ddc935764a0f70bb68b6bbdf6c03d
  Author: Michael Catanzaro <mcatanzaro at redhat.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebKit/UIProcess/Notifications/glib/NotificationService.cpp

  Log Message:
  -----------
  Cherry-pick 258260 at main (1446ba237462). https://bugs.webkit.org/show_bug.cgi?id=248727

    gdesktopappinfo.h not excluded on macOS
    https://bugs.webkit.org/show_bug.cgi?id=248727

    Reviewed by Carlos Garcia Campos.

    Although macOS has most of the gio-unix-2.0 functionality, this
    particular header is an exception and just needs to be handled
    specially.

    MacPorts has a patch to sometimes build with GDesktopAppInfo enabled, so
    it's best to just detect the presence of the header instead of trying to
    enable this code on OS(UNIX_BUT_NOT_MACOS_EXCEPT_SOMETIMES).

    * Source/WTF/wtf/PlatformHave.h:
    * Source/WebKit/UIProcess/Notifications/glib/NotificationService.cpp:
    (WebKit::applicationIcon):

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


  Commit: fc67c8179b486563cdabf294ec8856f8c46e4d0b
      https://github.com/WebKit/WebKit/commit/fc67c8179b486563cdabf294ec8856f8c46e4d0b
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/workers/service/server/RegistrationDatabase.cpp
    M Source/WebCore/workers/service/server/RegistrationDatabase.h
    M Source/WebCore/workers/service/server/RegistrationStore.cpp
    M Source/WebCore/workers/service/server/RegistrationStore.h
    M Source/WebCore/workers/service/server/SWServer.cpp
    M Source/WebCore/workers/service/server/SWServer.h

  Log Message:
  -----------
  Cherry-pick 258268 at main (5ea941c44c07). https://bugs.webkit.org/show_bug.cgi?id=249723

    REGRESSION (258175 at main?): [ iOS Debug ] TestWebKitAPI.InAppBrowserPrivacy.AppBoundDomainAllowsServiceWorkers is a consistent failure
    https://bugs.webkit.org/show_bug.cgi?id=249723
    <rdar://problem/103601970>

    Reviewed by Brady Eidson.

    There was a race condition because we were assuming that SWServer::addRegistrationFromStore always completes immediately.
    This is true most of the time, except during process startup.  So if we remove all service worker registrations as the first
    thing we do with a network process, sometimes we would see a call to SWServer::addRegistration after we thought we had completed
    removing all the service worker registrations, but only if m_hasReceivedAppBoundDomains is false.  This was seen by the API
    test TestWebKitAPI.InAppBrowserPrivacy.AppBoundDomainAllowsServiceWorkers running after a test that left a service worker
    registration on the disk.

    * Source/WebCore/workers/service/server/RegistrationDatabase.cpp:
    (WebCore::RegistrationDatabase::openSQLiteDatabase):
    (WebCore::RegistrationDatabase::importRecordsIfNecessary):
    (WebCore::RegistrationDatabase::schedulePushChanges):
    (WebCore::RegistrationDatabase::doPushChanges):
    (WebCore::RegistrationDatabase::doPushChangesWithOpenDatabase):
    (WebCore::RegistrationDatabase::importRecords):
    (WebCore::RegistrationDatabase::addRegistrationToStore):
    (WebCore::RegistrationDatabase::databaseFailedToOpen):
    (WebCore::RegistrationDatabase::databaseOpenedAndRecordsImported):
    * Source/WebCore/workers/service/server/RegistrationDatabase.h:
    * Source/WebCore/workers/service/server/RegistrationStore.cpp:
    (WebCore::RegistrationStore::addRegistrationFromDatabase):
    * Source/WebCore/workers/service/server/RegistrationStore.h:
    * Source/WebCore/workers/service/server/SWServer.cpp:
    (WebCore::SWServer::addRegistrationFromStore):
    * Source/WebCore/workers/service/server/SWServer.h:

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


  Commit: 7335952db75f79f3b6d9a59eed4ffcd5546e0704
      https://github.com/WebKit/WebKit/commit/7335952db75f79f3b6d9a59eed4ffcd5546e0704
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

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

  Log Message:
  -----------
  Cherry-pick 258293 at main (f28f93033a2c). https://bugs.webkit.org/show_bug.cgi?id=249775

    [GStreamer] ImageDecoder fixes
    https://bugs.webkit.org/show_bug.cgi?id=249775

    Reviewed by Xabier Rodriguez-Calvar.

    Before tearing down the decoder pipeline it is good practice to disconnect all message bus handlers
    and also the decodebin pad-added signal handler.

    * Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
    (WebCore::ImageDecoderGStreamer::InnerDecoder::~InnerDecoder):
    * Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.h:

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


  Commit: 57d646dd06a7555d91af8d0132b92f0f61a81a2a
      https://github.com/WebKit/WebKit/commit/57d646dd06a7555d91af8d0132b92f0f61a81a2a
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/css/CSSSelector.h

  Log Message:
  -----------
  Cherry-pick 258339 at main (a7844f97ea72). https://bugs.webkit.org/show_bug.cgi?id=249902

    Fix CSSSelector copy constructor bug
    https://bugs.webkit.org/show_bug.cgi?id=249902
    rdar://103723429

    Reviewed by Tim Nguyen.

    Typo ("if" instead of "if else") which in some rare
    cases can write garbage in the Data union.

    * Source/WebCore/css/CSSSelector.h:
    (WebCore::CSSSelector::CSSSelector):

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


  Commit: af059576ee5e10f0e6231e0cb60be82556d20ca8
      https://github.com/WebKit/WebKit/commit/af059576ee5e10f0e6231e0cb60be82556d20ca8
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash-expected.txt
    A LayoutTests/editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash.html
    A LayoutTests/platform/mac-wk1/editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash-expected.txt
    M Source/WebCore/editing/ApplyStyleCommand.cpp

  Log Message:
  -----------
  Cherry-pick 258358 at main (43e2b46ed602). https://bugs.webkit.org/show_bug.cgi?id=249898

    Splitting text can leave 'start' and 'end' Positions without renderers

    Splitting text can leave 'start' and 'end' Positions without renderers
    https://bugs.webkit.org/show_bug.cgi?id=249898

    Reviewed by Ryosuke Niwa.

    Merge - https://chromium.googlesource.com/chromium/blink/+/d538920cd38e1a59c914f81f63757642466c4f46

    When establishing new start and end positions in ApplyStyleCommand::applyInlineStyle()
    be sure to return early if either of them end up null, just as we do if either of
    them are null initially.

    In this test case execCommand('CreateLink') adds an anchor HTML element in an SVG
    namespace so the text underneath validly does not receive a renderer. Without a renderer
    the text won't get a visible position value for the command so there's nothing to do but
    bail.

    * Source/WebCore/editing/ApplyStyleCommand.cpp:
    (ApplyStyleCommand::applyInlineStyle): Add early return if 'start' or 'end' positions are null
    (ApplyStyleCommand::shouldSplitTextElement): Add ASSERT for position to be not null
    * LayoutTests/editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash.html: Add Test Case
    * LayoutTests/editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash-expected.txt: Add Test Case Expectation
    * LayoutTests/platform/mac-wk1/editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash-expected.txt

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


  Commit: 55091541b7e48b937565c21b90441197170209e8
      https://github.com/WebKit/WebKit/commit/55091541b7e48b937565c21b90441197170209e8
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WTF/wtf/glib/RunLoopSourcePriority.h
    M Source/WebKit/NetworkProcess/cache/NetworkCacheIOChannel.h
    M Source/WebKit/NetworkProcess/cache/NetworkCacheIOChannelGLib.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp

  Log Message:
  -----------
  Cherry-pick 258379 at main (5b9af92f602e). https://bugs.webkit.org/show_bug.cgi?id=232629

    [GLIB] Many network process crashes when running WPT tests
    https://bugs.webkit.org/show_bug.cgi?id=232629

    Reviewed by Michael Catanzaro.

    Stop using GLib async APIs for network cache IOChannel implementation,
    and use the sync API from a thread instead. The async API ends up doing
    the job in a thread because file streams are not pollable. The problem
    is that the internal GThreadPool tries to change the thread scheduler
    setting and it fails when the current thread uses the idle scheduler,
    which is the case of disk cache background threads. This reverts the
    workaround introduced in 244519 at main.

    * Source/WTF/wtf/glib/RunLoopSourcePriority.h:
    * Source/WebKit/NetworkProcess/cache/NetworkCacheIOChannel.h:
    (WebKit::NetworkCache::IOChannel::isOpened const):
    * Source/WebKit/NetworkProcess/cache/NetworkCacheIOChannelGLib.cpp:
    (WebKit::NetworkCache::IOChannel::IOChannel):
    (WebKit::NetworkCache::IOChannel::read):
    (WebKit::NetworkCache::IOChannel::write):
    (WebKit::NetworkCache::fillDataFromReadBuffer): Deleted.
    (WebKit::NetworkCache::inputStreamReadReadyCallback): Deleted.
    (WebKit::NetworkCache::IOChannel::readSyncInThread): Deleted.
    (WebKit::NetworkCache::outputStreamWriteReadyCallback): Deleted.
    * Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp:
    (WebKit::NetworkCache::Storage::Storage):
    (WebKit::NetworkCache::qosForBackgroundIOQueue): Deleted.

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


  Commit: ed5857e614b0e37b2faad97b179d50b5149db7d5
      https://github.com/WebKit/WebKit/commit/ed5857e614b0e37b2faad97b179d50b5149db7d5
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe-expected.txt
    A LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe.html
    A LayoutTests/http/tests/contentfiltering/resources/lots-of-text.html
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 258394 at main (5d11f0377c18). https://bugs.webkit.org/show_bug.cgi?id=249811

    REGRESSION (248723 at main): Videos on bbc.co.uk fail to load when content filtering is enabled
    https://bugs.webkit.org/show_bug.cgi?id=249811
    rdar://103247851

    Reviewed by Brent Fulgham and Alex Christensen.

    On articles on bbc.co.uk, video elements are embedded inside subframes, and are only interactive
    once the containing subframe has finished loading (i.e. dispatched the "load" event). In the case
    where:

    1.  Content filtering is enabled, and also happens in the network process via the
        `CONTENT_FILTERING_IN_NETWORKING_PROCESS` codepath new in iOS 16/macOS Ventura.

    2.  The subframe is loaded from a disk cache entry (as opposed to over the network, or in memory
        cache).

    ...we end up never dispatching the load event on the subframe, due to the fact that the
    corresponding `WebCore::SubresourceLoader` driving the subframe load never gets notified that
    loading finished. This is because, in following code within the network process (in the codepath
    marked below), we exit early after delivering the cached data to the content filter, before either
    sending `WebResourceLoader::DidReceiveResource` or `WebResourceLoader::DidFinishResourceLoad` (the
    latter of which we use in the case where we don't already have a shareable resource handle). To fix
    this, we simply pull the logic to dispatch `WebResourceLoader::DidFinishResourceLoad` out into a
    separate callback, and invoke it from both places.

    ```
        #if ENABLE(SHAREABLE_RESOURCE)
            if (!entry->shareableResourceHandle().isNull()) {
        #if ENABLE(CONTENT_FILTERING_IN_NETWORKING_PROCESS)
                if (m_contentFilter && !m_contentFilter->continueAfterDataReceived(entry->buffer()->makeContiguous(), entry->buffer()->size())) {
                    m_contentFilter->continueAfterNotifyFinished(m_parameters.request.url());
                    m_contentFilter->stopFilteringMainResource();               // <-------
                    return;
                }
        #endif
                send(Messages::WebResourceLoader::DidReceiveResource(entry->shareableResourceHandle()));
                return;
            }
        #endif
    ```

    Note that we prefer dispatching `DidFinishResourceLoad` over `DidReceiveResource` below (which we
    would normally use in this shareable resource handle codepath), since the resource loader in the web
    process would already have received the data when content filtering is enabled, so sending the
    entire cached resource handle again is redundant.

    Test: http/tests/contentfiltering/load-event-in-allowed-subframe.html

    * LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe-expected.txt: Added.
    * LayoutTests/http/tests/contentfiltering/load-event-in-allowed-subframe.html: Added.
    * LayoutTests/http/tests/contentfiltering/resources/lots-of-text.html: Added.

    Add a new test resource that consists of an HTML page that contains a large amount of text. This
    ensures that we'll attempt to store it in disk cache, which is a necessary part of reproducing this
    bug.

    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::sendResultForCacheEntry):

    Dispatch `WebResourceLoader::DidFinishResourceLoad` in both content filtering codepaths when
    `CONTENT_FILTERING_IN_NETWORKING_PROCESS` is enabled.

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


  Commit: 618d4ac2c359e5446785beb8e7bf8cb42d14677f
      https://github.com/WebKit/WebKit/commit/618d4ac2c359e5446785beb8e7bf8cb42d14677f
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WTF/wtf/URLHelpers.cpp
    M Tools/TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm

  Log Message:
  -----------
  Cherry-pick 258404 at main (71a3b490a749). https://bugs.webkit.org/show_bug.cgi?id=250035

    Don't punycode U+00ED
    https://bugs.webkit.org/show_bug.cgi?id=250035
    rdar://103841792

    Reviewed by Tim Horton.

    It is visually different than 'i' and it is used in several languages that have many native speakers.
    It is also not punycoded in Chrome or Firefox.

    * Source/WTF/wtf/URLHelpers.cpp:
    (WTF::URLHelpers::isLookalikeCharacter):
    * Tools/TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
    (TestWebKitAPI::TEST):

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


  Commit: 44079dc9d44b03edc6631b7b842356b0c6a6cf96
      https://github.com/WebKit/WebKit/commit/44079dc9d44b03edc6631b7b842356b0c6a6cf96
  Author: Don Olmstead <don.olmstead at sony.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/cmake/FindWPE.cmake
    M Source/cmake/OptionsPlayStation.cmake

  Log Message:
  -----------
  Cherry-pick 258421 at main (d2477fc765e2). https://bugs.webkit.org/show_bug.cgi?id=250054

    [CMake] Fix version detection of libwpe
    https://bugs.webkit.org/show_bug.cgi?id=250054

    Reviewed by Michael Catanzaro.

    The wrong header was being searched for the version number. Also the
    regex wasn't correct.

    Bump the version required by PlayStation to be 1.14.

    * Source/cmake/FindWPE.cmake:
    * Source/cmake/OptionsPlayStation.cmake:

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


  Commit: 1b868d373bede773c6d53049a1904ed5b729f44c
      https://github.com/WebKit/WebKit/commit/1b868d373bede773c6d53049a1904ed5b729f44c
  Author: Žan Doberšek <zdobersek at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WTF/wtf/text/StringConcatenate.h
    M Tools/TestWebKitAPI/Tests/WTF/StringConcatenate.cpp

  Log Message:
  -----------
  Cherry-pick 258446 at main (b41ac5266fe9). https://bugs.webkit.org/show_bug.cgi?id=250070

    StringConcatenate's StringTypeAdapter<std::tuple<>> incorrectly writes into a 16-bit destination
    https://bugs.webkit.org/show_bug.cgi?id=250070

    Reviewed by Sam Weinig.

    When StringTypeAdapter<std::tuple<...>> writes into any destination string, the
    offset value shouldn't be multiplied by the size of the string's character type.
    Pointer arithmetic will take care of that on its own.

    Test case in the StringConcatenate suite is provided, covering both 8-bit and
    16-bit strings constructed partially or completely from a tuple object.

    The StringTypeAdapter specialization is also adjusted to only keep a reference
    to the tuple object, and not copy it. Passes over the tuple elements are done
    with lambdas that take arguments through const lvalue references, avoiding any
    copying of the contained elements.

    * Source/WTF/wtf/text/StringConcatenate.h:
    (WTF::StringTypeAdapter<std::tuple<StringTypes::StringTypeAdapter):
    (WTF::StringTypeAdapter<std::tuple<StringTypes::writeTo const):
    (WTF::StringTypeAdapter<std::tuple<StringTypes::computeLength):
    (WTF::StringTypeAdapter<std::tuple<StringTypes::computeIs8Bit):
    * Tools/TestWebKitAPI/Tests/WTF/StringConcatenate.cpp:
    (TestWebKitAPI::TEST):

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


  Commit: 0478e2c8d3588428b73f7a74f3d903c10979f16b
      https://github.com/WebKit/WebKit/commit/0478e2c8d3588428b73f7a74f3d903c10979f16b
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/fast/text/bidi-replace-runs-crash-expected.txt
    A LayoutTests/fast/text/bidi-replace-runs-crash.html
    M Source/WebCore/platform/text/BidiRunList.h

  Log Message:
  -----------
  Cherry-pick 258465 at main (f1fd9e9795a6). https://bugs.webkit.org/show_bug.cgi?id=249968

    Potential Assertion Fix - Fix loop condition in BidiRunList::replaceRunWithRuns
    https://bugs.webkit.org/show_bug.cgi?id=249968

    Reviewed by Alan Baradlay.

    Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=179068

    This patch is to potentially fix an assertion on debug builds by fixing a loop condition in
    BidiRunList::replaceRunWithRuns to check if next run exists before accessing it.

    * Source/WebCore/platform/text/BidiRunList.h:
    (BidiRunList<Run>::replaceRunwithRuns): update 'while' loop
    * LayoutTests/fast/text/bidi-replace-runs-crash.html: Add Test Case
    * LayoutTests/fast/text/bidi-replace-runs-crash-expected.txt: Add Test Case Expectation

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


  Commit: 828a07a6e77e86936f95a575e8bd925a3bf57216
      https://github.com/WebKit/WebKit/commit/828a07a6e77e86936f95a575e8bd925a3bf57216
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebProcess.cpp

  Log Message:
  -----------
  Cherry-pick 258380 at main (ee52175fab81). https://bugs.webkit.org/show_bug.cgi?id=249272

    [WPE][GTK] Robustly handle subprocess leaks
    https://bugs.webkit.org/show_bug.cgi?id=249272

    Reviewed by Michael Catanzaro.

    Call _exit from a secondary thread after the connection is closed if the
    main thread doesn't exit in 10 seconds.

    * Source/WebKit/WebProcess/WebProcess.cpp:
    (WebKit::callExitSoon):
    (WebKit::WebProcess::initializeConnection):

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


  Commit: 868aa8df7bc8eb433d64b264b86f3492a648b625
      https://github.com/WebKit/WebKit/commit/868aa8df7bc8eb433d64b264b86f3492a648b625
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

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

  Log Message:
  -----------
  Cherry-pick 258656 at main (8ffb0f29be5a). https://bugs.webkit.org/show_bug.cgi?id=249937

    [GStreamer][WebRTC] Minor end-point improvements
    https://bugs.webkit.org/show_bug.cgi?id=249937

    Reviewed by Xabier Rodriguez-Calvar.

    Avoid some duplicate error reporting and improved instrumentation for pipeline dumping.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::initializePipeline):
    (WebCore::GStreamerMediaEndpoint::requestAuxiliarySender):

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


  Commit: 019d53f3d4e52a717d137561abf5481c60ced080
      https://github.com/WebKit/WebKit/commit/019d53f3d4e52a717d137561abf5481c60ced080
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

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

  Log Message:
  -----------
  Cherry-pick 258657 at main (776ff1f8adf9). https://bugs.webkit.org/show_bug.cgi?id=249995

    [GStreamer] Misc fixes in video encoder/decoder probing support
    https://bugs.webkit.org/show_bug.cgi?id=249995

    Reviewed by Xabier Rodriguez-Calvar.

    When multiple elements were able to support the given format only the first matching element factory
    was stored in the lookup result. We also now ignore the vpxalphadecodebin wrapper elements when
    probing vpx decoding capabilities. Those elements are meant to be used by decodebin and won't
    negotiate input non-alpha caps.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
    (WebCore::GStreamerRegistryScanner::ElementFactories::hasElementForMediaType const):
    (WebCore::GStreamerRegistryScanner::initializeDecoders):

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


  Commit: f1185dc9769664c193ac38f459ccefd547617d4d
      https://github.com/WebKit/WebKit/commit/f1185dc9769664c193ac38f459ccefd547617d4d
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

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

  Log Message:
  -----------
  Cherry-pick 258658 at main (4c9aa3f06f5d). https://bugs.webkit.org/show_bug.cgi?id=250007

    [GStreamer][WebRTC] Improved msid support
    https://bugs.webkit.org/show_bug.cgi?id=250007

    Reviewed by Xabier Rodriguez-Calvar.

    GstWebRTCBin can now store the MediaStream ID as a pad property. Fallback to previously used CNAME
    otherwise. See also https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3106.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::configureAndLinkSource):
    (WebCore::GStreamerMediaEndpoint::requestPad):
    (WebCore::GStreamerMediaEndpoint::addRemoteStream):
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h:
    (WebCore::RealtimeOutgoingMediaSourceGStreamer::mediaStreamID const):

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


  Commit: 7074b422dd12078573dfb8ca1854a97451e9f1a4
      https://github.com/WebKit/WebKit/commit/7074b422dd12078573dfb8ca1854a97451e9f1a4
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 258659 at main (ecd45a098ed5). https://bugs.webkit.org/show_bug.cgi?id=249940

    [GStreamer][WebRTC] Improved statistics support
    https://bugs.webkit.org/show_bug.cgi?id=249940

    Reviewed by Xabier Rodriguez-Calvar.

    Fill the `kind` attribute in RtpStreamStats and also a few more video frame related attributes for
    inbound rtp stats. In order to support extended stats gathering, the queryDecodedVideoFramesCount()
    virtual method in VideoFrameObserver was replaced by a more generic queryAdditionalStats method.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:
    (WebCore::fillRTCRTPStreamStats):
    (WebCore::fillInboundRTPStreamStats):
    (WebCore::fillRTCTransportStats):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::configureVideoDecoder):
    (WebCore::MediaPlayerPrivateGStreamer::updateVideoSinkStatistics):
    (WebCore::MediaPlayerPrivateGStreamer::videoPlaybackQualityMetrics):
    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
    * Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp:
    (WebCore::RealtimeIncomingVideoSourceGStreamer::stats):

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


  Commit: 29f0db98a3b6ecd20fa55caf108251c4c3e26e25
      https://github.com/WebKit/WebKit/commit/29f0db98a3b6ecd20fa55caf108251c4c3e26e25
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

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

  Log Message:
  -----------
  Cherry-pick 258660 at main (8c81bbe3f8e2). https://bugs.webkit.org/show_bug.cgi?id=249939

    [GStreamer][MediaStream] Minor logging and include fixes
    https://bugs.webkit.org/show_bug.cgi?id=249939

    Reviewed by Xabier Rodriguez-Calvar.

    * Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: The audio sample
    handling and logging is now more coherent with the video frames handling code path.
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeMediaSourceCenterGStreamer.cpp: Remove
    un-needed includes.

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


  Commit: 6239e5c1798dd9e9a051b658db94af3292e0b2ab
      https://github.com/WebKit/WebKit/commit/6239e5c1798dd9e9a051b658db94af3292e0b2ab
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 258662 at main (4f70db078a9a). https://bugs.webkit.org/show_bug.cgi?id=249938

    [GStreamer][MediaStream] Misc media capture improvements
    https://bugs.webkit.org/show_bug.cgi?id=249938

    Reviewed by Xabier Rodriguez-Calvar.

    Video frame metadata was attached only for mock sources. There's no need for a tee in the capturer
    pipeline because there's never more than one client. Multiple observers watch for samples received
    by the sink. And a few other drive-by and coding style cleanups.

    * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
    (WebCore::GStreamerAudioCaptureSource::newSampleCallback):
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp:
    (WebCore::initializeDebugCategory):
    (WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer):
    (WebCore::GStreamerAudioCapturer::createConverter):
    (WebCore::GStreamerAudioCapturer::setSampleRate):
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp:
    (WebCore::GStreamerCapturer::createSource):
    (WebCore::GStreamerCapturer::setupPipeline):
    (WebCore::GStreamerCapturer::makeElement):
    (WebCore::GStreamerCapturer::addSink): Deleted.
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h:
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp:
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:

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


  Commit: 195653202db2df8a2e99252db2dd48532cea9591
      https://github.com/WebKit/WebKit/commit/195653202db2df8a2e99252db2dd48532cea9591
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoEncoder.h

  Log Message:
  -----------
  Cherry-pick 258663 at main (2295aff2e623). https://bugs.webkit.org/show_bug.cgi?id=249936

    [GStreamer][WebRTC] Video encoder capabilities probing support
    https://bugs.webkit.org/show_bug.cgi?id=249936

    Reviewed by Xabier Rodriguez-Calvar.

    The registry scanner is now able to check the H.264 encoding capabilies of the host. Also, when more
    than one platform encoder is capable of encoding to the target format, only the one with the highest
    rank is selected.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
    (WebCore::GStreamerRegistryScanner::fillVideoRtpCapabilities):
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp:
    (webrtcVideoEncoderFindForFormat):
    (webrtcVideoEncoderSupportsFormat):
    (webrtcVideoEncoderSetFormat):
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoEncoder.h:

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


  Commit: b2ae186df54857c2d2b13210644adadae0e49a74
      https://github.com/WebKit/WebKit/commit/b2ae186df54857c2d2b13210644adadae0e49a74
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp

  Log Message:
  -----------
  Cherry-pick 258848 at main (8c38ebd63c97). https://bugs.webkit.org/show_bug.cgi?id=250480

    REGRESSION(258663 at main) [GStreamer] MIME API test crashes due to GStreamer being initialized in UIProcess
    https://bugs.webkit.org/show_bug.cgi?id=250480

    Reviewed by Xabier Rodriguez-Calvar.

    The registry no longer directly registers GStreamer elements. Instead it is done from call-sites,
    such as the WebRTC provider, when needed. Also the scanner is now able to refresh its internal
    state, this is needed in situations where the singleton might have been created before the
    registration of additional elements.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
    (WebCore::registerVideoEncoder):
    (WebCore::registerWebKitGStreamerElements):
    (WebCore::registerWebKitGStreamerVideoEncoder):
    * Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
    (WebCore::GStreamerRegistryScanner::singletonNeedsInitialization):
    (WebCore::GStreamerRegistryScanner::singleton):
    (WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner):
    (WebCore::GStreamerRegistryScanner::refresh):
    (WebCore::GStreamerRegistryScanner::initializeDecoders):
    (WebCore::GStreamerRegistryScanner::initializeEncoders):
    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h:
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp:
    (WebCore::GStreamerWebRTCProvider::initializeVideoEncodingCapabilities):
    * Tools/TestWebKitAPI/glib/TestExpectations.json:

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


  Commit: d1774eeb96d93b07d725022bc399ea9b71e5868a
      https://github.com/WebKit/WebKit/commit/d1774eeb96d93b07d725022bc399ea9b71e5868a
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 258666 at main (9e4ed340f437). https://bugs.webkit.org/show_bug.cgi?id=249941

    [GStreamer][WebRTC] VAAPI encoders support
    https://bugs.webkit.org/show_bug.cgi?id=249941

    Reviewed by Xabier Rodriguez-Calvar.

    Basic support for H.264 and H.265 VAAPI encoders. The H.265 probing is very minimal at the moment.
    Support for VP8/VP9/AV1 will be added later on (I don't have GPUs supporting those codecs).

    Implicitely depends on https://github.com/WebKit/WebKit/pull/8094 and
    https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3616.

    The videorate element in the encoder bin was triggering issues and flakyness in some tests. I think
    it's not really required actually, but a videoscale is good to have though.

    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
    (WebCore::GStreamerRegistryScanner::fillVideoRtpCapabilities):
    * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp:
    (webrtcVideoEncoderSetEncoder):
    (webkit_webrtc_video_encoder_class_init):
    * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:
    (WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType):

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


  Commit: 7b117871bebfdcf66bb1a1ff03d99a85ed6be272
      https://github.com/WebKit/WebKit/commit/7b117871bebfdcf66bb1a1ff03d99a85ed6be272
  Author: Alexander Kanavin <alex at linutronix.de>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/cmake/FindGI.cmake

  Log Message:
  -----------
  Cherry-pick 258828 at main (b95db349375a). https://bugs.webkit.org/show_bug.cgi?id=250195

    Propagate CFLAGS to introspection targets
    https://bugs.webkit.org/show_bug.cgi?id=250195

    Reviewed by Adrian Perez de Castro.

    Otherwise, important things do not get passed to the compiler in cross compiling with a sysroot scenario:

    In file included from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/11.2.0/include-fixed/syslimits.h:7,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/11.2.0/include-fixed/limits.h:34,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/lib/glib-2.0/include/glibconfig.h:11,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/include/glib-2.0/glib/gtypes.h:32,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/include/glib-2.0/glib/galloca.h:32,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/include/glib-2.0/glib.h:30,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/build/Source/JavaScriptCore/tmp-introspectb51ks33n/JavaScriptCore-4.0.c:2:
    /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/11.2.0/include-fixed/limits.h:203:75: error: no include path in which to search for limits.h
      203 | #include_next <limits.h>                /* recurse down to the real one */
          |                                                                           ^
    In file included from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/include/glib-2.0/glib/galloca.h:32,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/include/glib-2.0/glib.h:30,
                     from /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/build/Source/JavaScriptCore/tmp-introspectb51ks33n/JavaScriptCore-4.0.c:2:
    /srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot/usr/include/glib-2.0/glib/gtypes.h:35:10: fatal error: time.h: No such file or directory
       35 | #include <time.h>
          |          ^~~~~~~~
    compilation terminated.
    Traceback (most recent call last):
      File "/srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/lib/python3.10/distutils/unixccompiler.py", line 117, in _compile
        self.spawn(compiler_so + cc_args + [src, '-o', obj] +
      File "/srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/lib/python3.10/distutils/ccompiler.py", line 910, in spawn
        spawn(cmd, dry_run=self.dry_run)
      File "/srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/lib/python3.10/distutils/spawn.py", line 91, in spawn
        raise DistutilsExecError(
    distutils.errors.DistutilsExecError: command '/srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/webkitgtk/2.36.0-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc' failed with exit code 1

    * Source/cmake/FindGI.cmake:

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


  Commit: 1dd4ef7ae5f35d4f840124114f2856fb881367f4
      https://github.com/WebKit/WebKit/commit/1dd4ef7ae5f35d4f840124114f2856fb881367f4
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/sql/SQLiteDatabase.cpp

  Log Message:
  -----------
  Cherry-pick 258673 at main (8217dce03e25). https://bugs.webkit.org/show_bug.cgi?id=249598

    Fix potential VACCUM error by counting destructor
    https://bugs.webkit.org/show_bug.cgi?id=249598

    Reviewed by Ben Nham.

    This patch is to fix error where if vacuum mode is not set-up initially, it can lead to vacuum run being blocked.
    This patch will fix this potential error by counting on destructor.

    * Source/WebCore/platform/sql/SQLiteDatabase.cpp:
    (SQLiteDatabase::turnOnIncrementalAutoVacuum): Add 'int' variable and wrap function and count on destructor on introduced variable

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


  Commit: 3cd56162eedfec161ea1e78c674ea50aed92d117
      https://github.com/WebKit/WebKit/commit/3cd56162eedfec161ea1e78c674ea50aed92d117
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp

  Log Message:
  -----------
  Cherry-pick 258717 at main (e2afda4dd0ab). https://bugs.webkit.org/show_bug.cgi?id=174458

    [Gstreamer][HLS] Unable to play TED videos
    https://bugs.webkit.org/show_bug.cgi?id=174458

    Reviewed by Xabier Rodriguez-Calvar.

    Disable HLS support by default in GStreamer ports. The underlying GStreamer hlsdemux element is not
    receiving much maintenance and its replacement, hlsdemux2, cannot be used by WebKit due to
    sandboxing requirements.

    Most websites should now fallback to MSE if HLS is not supported by the User-Agent. This was checked
    on TED and Apple developer websites.

    HLS support can be re-enabled at runtime by setting the `WEBKIT_GST_ENABLE_HLS_SUPPORT=1`
    environment variable.

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

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


  Commit: 402e377d30ba6dc44564fca8bf0404890bf48c94
      https://github.com/WebKit/WebKit/commit/402e377d30ba6dc44564fca8bf0404890bf48c94
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-01-27 (Fri, 27 Jan 2023)

  Changed paths:
    M Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp

  Log Message:
  -----------
  Cherry-pick 258726 at main (205fbbb4b2d6). https://bugs.webkit.org/show_bug.cgi?id=250373

    Fix buggy assert in WebSWContextManagerConnection::updateAppInitiatedValue
    https://bugs.webkit.org/show_bug.cgi?id=250373
    rdar://problem/104067420

    Reviewed by Chris Dumez.

    We receive the message from a work queue and should account for it.

    * Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:
    (WebKit::WebSWContextManagerConnection::updateAppInitiatedValue):

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


Compare: https://github.com/WebKit/WebKit/compare/65ae701fd309...402e377d30ba


More information about the webkit-changes mailing list