[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