[webkit-changes] [WebKit/WebKit] 883375: Branch WebKitGTK for 2.32
Michael Catanzaro
noreply at github.com
Thu Dec 1 12:18:57 PST 2022
Branch: refs/heads/webkitgtk/2.32
Home: https://github.com/WebKit/WebKit
Commit: 8833751b3e0cddf3f55edbc5bf1f5bd53e069d97
https://github.com/WebKit/WebKit/commit/8833751b3e0cddf3f55edbc5bf1f5bd53e069d97
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-02-26 (Fri, 26 Feb 2021)
Changed paths:
Log Message:
-----------
Branch WebKitGTK for 2.32
Commit: e3b801fc4408025f3b01a2240e17435a5b4d0ec6
https://github.com/WebKit/WebKit/commit/e3b801fc4408025f3b01a2240e17435a5b4d0ec6
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-02-26 (Fri, 26 Feb 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.90 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS:Add release notes for 2.31.90.
Commit: 274d445e63808b16d44621e8af6651040047ade8
https://github.com/WebKit/WebKit/commit/274d445e63808b16d44621e8af6651040047ade8
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-09 (Tue, 09 Mar 2021)
Changed paths:
M Tools/ChangeLog
M Tools/TestWebKitAPI/PlatformWPE.cmake
Log Message:
-----------
Merge r273551 - Unreviewed, WPE build fix after SDK r273544 deployment
* TestWebKitAPI/PlatformWPE.cmake: GLib include path was missing in the TestJavaScriptCore
build.
Commit: 5f1d38ad93ba836326210e1897694d95ff6c0b47
https://github.com/WebKit/WebKit/commit/5f1d38ad93ba836326210e1897694d95ff6c0b47
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-03-09 (Tue, 09 Mar 2021)
Changed paths:
M Source/WebCore/CMakeLists.txt
M Source/WebCore/ChangeLog
M Source/WebKit/ChangeLog
Log Message:
-----------
Merge r272721 - Non unified build fixes for mid February 2021
https://bugs.webkit.org/show_bug.cgi?id=221749
Reviewed by Youenn Fablet.
Source/WebCore:
* CMakeLists.txt:
* Modules/mediastream/SFrameUtils.cpp:
* Modules/mediastream/STUNMessageParsing.h:
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventTargetFactory.in:
* inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
* workers/DedicatedWorkerGlobalScope.cpp:
* workers/Worker.cpp:
Source/WebKit:
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
* GPUProcess/media/RemoteCDMInstanceProxy.cpp:
Commit: 11193047b79c1c548c39f832eb0f90498fdd200d
https://github.com/WebKit/WebKit/commit/11193047b79c1c548c39f832eb0f90498fdd200d
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-03-09 (Tue, 09 Mar 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/wasm/WasmGlobal.h
M Source/JavaScriptCore/wasm/WasmTable.h
M Source/WebCore/CMakeLists.txt
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Event.cpp
M Source/WebCore/dom/EventContext.cpp
M Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp
M Source/WebCore/platform/network/soup/SoupNetworkSession.cpp
M Source/WebCore/rendering/RenderLayerModelObject.cpp
M Source/WebCore/rendering/RenderModel.cpp
Log Message:
-----------
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
* wasm/WasmGlobal.h: Add missing SlotVisitorMacros.h header.
* wasm/WasmTable.h: Ditto.
Source/WebCore:
* CMakeLists.txt: Build ScrollingMomentumCalculator.cpp in the test support library.
* dom/Event.cpp: Add missing TouchList.h header.
* dom/EventContext.cpp: Add missing EventNames.h header.
* page/scrolling/ScrollSnapOffsetsInfo.cpp: Add missing Logging.h header.
* platform/network/soup/SoupNetworkSession.cpp: Add missing SoupVersioning.h header.
* rendering/RenderLayerModelObject.cpp: Add missing RenderLayerScrollableArea.h header.
* rendering/RenderModel.cpp: Move inclusion of "config.h" before ENABLE() check.
Commit: 42361e84ffde74602de67011bd713a1a31c2c95d
https://github.com/WebKit/WebKit/commit/42361e84ffde74602de67011bd713a1a31c2c95d
Author: Alberto Garcia <berto at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Platform/IPC/StreamConnectionBuffer.h
Log Message:
-----------
Merge r273643 - [GTK] Fails to build in i386: static assertion failed: divisor must be a power of two
https://bugs.webkit.org/show_bug.cgi?id=222480
Reviewed by Carlos Garcia Campos.
* Platform/IPC/StreamConnectionBuffer.h:
(IPC::StreamConnectionBuffer::headerSize):
Commit: fa44d228bbdca7db0d55d6427081b1c02e700675
https://github.com/WebKit/WebKit/commit/fa44d228bbdca7db0d55d6427081b1c02e700675
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/WebProcess.messages.in
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp
M Tools/TestWebKitAPI/glib/TestExpectations.json
Log Message:
-----------
Merge r273735 - REGRESSION(r263094): [GTK][WPE] API test /webkit/WebKitWebContext/languages is failing
https://bugs.webkit.org/show_bug.cgi?id=188111
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-03-02
Reviewed by Michael Catanzaro.
Source/WebKit:
The GLib API allows to change the user preferred languages after the web process is created. Since r263094 we
are no loner sending the new overrides to the web process. Instead of calling overrideUserPreferredLanguages()
we now set the overrides in the WebProcessPool configuration, so that we can remove the language observer.
* UIProcess/API/glib/WebKitWebContext.cpp:
(webkit_web_context_set_preferred_languages): Use WebProcessPool::setOverrideLanguages() instead of
overrideUserPreferredLanguages().
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool) Remove the language observer registration.
(WebKit::WebProcessPool::~WebProcessPool): Remove the language observer unregistration.
(WebKit::WebProcessPool::setOverrideLanguages): Update the language overrides in the configuration and notify
all processes.
(WebKit::WebProcessPool::languageChanged): Deleted.
* UIProcess/WebProcessPool.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::userPreferredLanguagesChanged const): Call overrideUserPreferredLanguages() again here.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
Tools:
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
(testWebContextLanguages): Invalid locale is ignored now instead of throwing a exception.
* TestWebKitAPI/glib/TestExpectations.json: Remove test expectation now that it passes again.
Commit: 50f9b46d3311474755d9b8722c798c6989e93d25
https://github.com/WebKit/WebKit/commit/50f9b46d3311474755d9b8722c798c6989e93d25
Author: Kate Cheney <katherine_cheney at apple.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt
A LayoutTests/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html
A LayoutTests/http/tests/security/contentSecurityPolicy/report-document-uri-blob-expected.txt
A LayoutTests/http/tests/security/contentSecurityPolicy/report-document-uri-blob.html
A LayoutTests/platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt
M LayoutTests/platform/win/TestExpectations
A LayoutTests/platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt
M Source/WebCore/ChangeLog
M Source/WebCore/page/csp/ContentSecurityPolicy.cpp
M Source/WebCore/page/csp/ContentSecurityPolicy.h
M Source/WebKit/ChangeLog
M Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
M Source/WebKit/NetworkProcess/NetworkLoadChecker.h
M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp
M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h
M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
M Source/WebKit/NetworkProcess/PingLoad.cpp
M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
A Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm
R Tools/TestWebKitAPI/Tests/WebKitCocoa/OverrideContentSecurityPolicy.mm
A Tools/TestWebKitAPI/Tests/WebKitCocoa/csp-document-uri-report.html
Log Message:
-----------
Merge r273820 - Report the correct document uri in the case of a ContentSecurityPolicyClient
https://bugs.webkit.org/show_bug.cgi?id=222489
<rdar://problem/73774118>
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html
http/tests/security/contentSecurityPolicy/report-document-uri-blob.html
Previously we were setting the document URI to be the blocked URI in
the case where we were using a ContentSecurityPolicyClient and didn't
have access to the document URL. This patch passes the document URL
to the network process when loading a resource so we can properly set
the document URI in this case.
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::shouldReportProtocolOnly):
(WebCore::ContentSecurityPolicy::deprecatedURLForReporting const):
(WebCore::ContentSecurityPolicy::reportViolation const):
Follow spec guidelines https://www.w3.org/TR/CSP2/#violation-reports
and set the document URI to be the URI's scheme if it is a globally
unique identifier.
In the case where we are using a client and don't have the document
URL, we should at least strip the blocked URL before reporting to align
with the spec.
* page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::setDocumentURL):
Source/WebKit:
Pass the document URL from the Network Process when we schedule a load
in case we need to report a CSP violation in NetworkLoadChecker.
* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):
The regular toString() method sets file:// URLs to null. We should use
toRawString() so we can report the scheme if the source origin is a
local file, as per the W3C spec.
* NetworkProcess/NetworkLoadChecker.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
* NetworkProcess/NetworkResourceLoadParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
Tools:
Rename OverrideContentSecurityPolicy.mm to ContentSecurityPolicy.mm
so we can use it for more general purpose CSP testing.
Add a test for document-uri reporting for file:, data: and about: protocols.
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/OverrideContentSecurityPolicy.mm.
(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/csp-document-uri-report.html: Added.
LayoutTests:
Layout test coverage for redirects using a ContentSecurityPolicyClient
and blob files.
* http/tests/security/contentSecurityPolicy/report-document-uri-blob-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/report-document-uri-blob.html: Added.
* http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html: Added.
* platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
* platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
* platform/win/TestExpectations:
Blob URLs timeout on win.
Commit: 9fc4bdad4cf4c52f0794899677d33da398a4224b
https://github.com/WebKit/WebKit/commit/9fc4bdad4cf4c52f0794899677d33da398a4224b
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/Variant.h
Log Message:
-----------
Merge r273841 - std::is_literal_type causes -Wdeprecated-declarations warning with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=220662
<rdar://problem/73509470>
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-03-03
Reviewed by Darin Adler.
Ignore the warning. It would be better to not use the deprecated std::is_literal_type, but
this works for now.
* wtf/Variant.h:
Commit: abed001159a292de4985d78347a315144f3e907c
https://github.com/WebKit/WebKit/commit/abed001159a292de4985d78347a315144f3e907c
Author: Youenn Fablet <youennf at gmail.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/http/wpt/fetch/navigation-post-to-get-origin-expected.txt
A LayoutTests/http/wpt/fetch/navigation-post-to-get-origin.html
A LayoutTests/http/wpt/fetch/resources/echo-origin.py
M Source/WebCore/ChangeLog
M Source/WebCore/loader/DocumentLoader.cpp
Log Message:
-----------
Merge r273905 - In case of POST navigation redirected by a 302, the 'Origin' header is kept in the redirected request
https://bugs.webkit.org/show_bug.cgi?id=222653
<rdar://problem/74983521>
Reviewed by Alex Christensen.
Source/WebCore:
Remove Origin header if the navigation request goes from POST to GET.
This aligns with other browsers and removes some known interop issues.
This is consistent with WebKit not sending Origin headers for GET navigations.
Test: http/wpt/fetch/navigation-post-to-get-origin.html
* loader/DocumentLoader.cpp:
(WebCore::isRedirectToGetAfterPost):
(WebCore::DocumentLoader::willSendRequest):
LayoutTests:
* http/wpt/fetch/echo-origin.py: Added.
* http/wpt/fetch/navigation-post-to-get-origin-expected.txt: Added.
* http/wpt/fetch/navigation-post-to-get-origin.html: Added.
Commit: b8b6d7b79a37469e79c1a43b7578e6350704158a
https://github.com/WebKit/WebKit/commit/b8b6d7b79a37469e79c1a43b7578e6350704158a
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
Log Message:
-----------
Merge r273713 - Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch()
https://bugs.webkit.org/show_bug.cgi?id=222577
Reviewed by Geoffrey Garen.
Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch() instead of duplicating
the code. It was error-prone to have 2 separate code paths whether the process exited due to a crash or a
termination request. It led to Bug 222574 for example because we added some logic to remove the process from
the cache in processDidTerminateOrFailedToLaunch() but had failed to do so in requestTermination().
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::requestTermination):
* UIProcess/WebProcessProxy.h:
Commit: 06322ef198b6197ea8c667f737396a43af142146
https://github.com/WebKit/WebKit/commit/06322ef198b6197ea8c667f737396a43af142146
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm
Log Message:
-----------
Merge r273997 - Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809
Reviewed by Michael Catanzaro.
Source/WebKit:
There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessTermination):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
Tools:
Add API test coverage.
* TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(TEST):
Commit: 5b932dfae427201a1962e56a3c9e9ce987c574d7
https://github.com/WebKit/WebKit/commit/5b932dfae427201a1962e56a3c9e9ce987c574d7
Author: Commit Queue <commit-queue at webkit.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/UserAgentQuirks.cpp
M Source/WebCore/platform/glib/UserAgentGLib.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp
Log Message:
-----------
Merge r274070 - Unreviewed, reverting r273084.
https://bugs.webkit.org/show_bug.cgi?id=222905
User agent quirks still needed after all
Reverted changeset:
"[GTK] Remove all Google user agent quirks except for Google
Docs"
https://bugs.webkit.org/show_bug.cgi?id=222039
https://trac.webkit.org/changeset/273084
Commit: 53994e7ce86e181b08547ddda24f41fc2454c5a6
https://github.com/WebKit/WebKit/commit/53994e7ce86e181b08547ddda24f41fc2454c5a6
Author: Commit Queue <commit-queue at webkit.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/UserAgentQuirks.cpp
Log Message:
-----------
Merge r274073 - Unreviewed, reverting r273197.
https://bugs.webkit.org/show_bug.cgi?id=222909
Revert of r273084 broke building on Linux platforms
Reverted changeset:
"Remove unused isGoogle function"
https://bugs.webkit.org/show_bug.cgi?id=222227
https://trac.webkit.org/changeset/273197
Commit: d815eec11c959f0fd52d90afa191c01ebce9b533
https://github.com/WebKit/WebKit/commit/d815eec11c959f0fd52d90afa191c01ebce9b533
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/UserAgentQuirks.cpp
M Source/WebCore/platform/UserAgentQuirks.h
M Source/WebCore/platform/glib/UserAgentGLib.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp
Log Message:
-----------
Merge r274210 - [WPE][GTK] Introduce NeedsUnbrandedUserAgent quirk and use it for accounts.google.com, docs.google.com, and drive.google.com
https://bugs.webkit.org/show_bug.cgi?id=222978
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-03-10
Reviewed by Carlos Garcia Campos.
Source/WebCore:
This is a follow-up to bug #222039. I simplified our Google user agent quirks too much in
that bug, breaking accounts.google.com, docs.google.com, and drive.google.com for clients
that set application name and version in the user agent. What we really need here is an
empty quirk in order to ensure our most boring standard user agent is used without any
application branding or customizations. But we no longer need to fake platform or browser,
as was required in the past.
Additionaly, clean up the code a bit. We shouldn't need to compute domain and baseDomain
many separate times, for instance. There's also no need to perform string operations to
add the WebKit version to the user agent, since the version has been frozen for several
years now and is likely to remain frozen indefinitely. Finally, remove some forgotten
leftovers of our Internet Explorer and Windows quirks that were previously used for Google
Docs.
* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::isGoogle): Deleted.
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.
* platform/UserAgentQuirks.h:
* platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):
(WebCore::versionForUAString): Deleted.
Tools:
* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasEmptyQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.
Commit: d661aacdb4f6b6e643f9ea6dc311f50c180866d0
https://github.com/WebKit/WebKit/commit/d661aacdb4f6b6e643f9ea6dc311f50c180866d0
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitAuthenticationRequest.cpp
M Source/WebKit/UIProcess/API/glib/WebKitSecurityOrigin.cpp
M Source/WebKit/UIProcess/API/glib/WebKitSecurityOriginPrivate.h
M Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitSecurityOrigin.h
M Source/WebKit/UIProcess/API/wpe/WebKitSecurityOrigin.h
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp
Log Message:
-----------
Merge r274270 - REGRESSION(r272469): [WPE][GTK] Epiphany UI process crashes when downloading PDFs, WebKitSecurityOrigin should use SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=222943
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-03-11
Reviewed by Alex Christensen.
Source/WebKit:
Since r272469, WebCore::SecurityOrigin no longer accepts custom protocols except those
registered with LegacySchemeRegistry. WebPage registers all custom protocols, but
WebPageProxy does not, so WebCore::SecurityOrigin now only supports custom protocols in the
web process, not the UI process. This causes Epiphany to crash when the protocol of its
WebKitSecurityOrigin is unexpectedly NULL.
Alex wants to reduce usage of WebCore::SecurityOrigin outside the web process, so instead of
registering custom protocols with LegacySchemeRegistry in the UI process -- making it harder
to eventually get rid of LegacySchemeRegistry -- we will transition WebKitSecurityOrigin
from WebCore::SecurityOrigin to WebCore::SecurityOriginData, which is a simple data store
for <protocol, host, port>. This is mostly sufficient to implement WebKitSecurityOrigin,
except for webkit_security_origin_is_opaque(). I considered multiple ways to handle this,
but ultimately decided to just deprecate it. Epiphany is the only client using this function
in order to implement a WebKitSecurityOrigin equality operation, and it does so using
origins that should never be opaque, so there are no compatibility concerns here.
* UIProcess/API/glib/WebKitAuthenticationRequest.cpp:
(webkit_authentication_request_get_security_origin):
* UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(_WebKitSecurityOrigin::_WebKitSecurityOrigin):
(webkitSecurityOriginCreate):
(webkitSecurityOriginGetSecurityOriginData):
(webkit_security_origin_new):
(webkit_security_origin_new_for_uri):
(webkit_security_origin_get_protocol):
(webkit_security_origin_get_host):
(webkit_security_origin_get_port):
(webkit_security_origin_is_opaque):
(webkit_security_origin_to_string):
(webkitSecurityOriginGetSecurityOrigin): Deleted.
* UIProcess/API/glib/WebKitSecurityOriginPrivate.h:
* UIProcess/API/glib/WebKitWebContext.cpp:
(addOriginToMap):
* UIProcess/API/gtk/WebKitSecurityOrigin.h:
* UIProcess/API/wpe/WebKitSecurityOrigin.h:
Tools:
Add a test to ensure security origins can be successfully created for custom protocols.
Also, update the tests to accomodate the deprecation of webkit_security_origin_is_opaque().
Notably, origins for data:// URIs are no longer special.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
(testSecurityOriginBasicConstructor):
(testSecurityOriginURIConstructor):
(testSecurityOriginDefaultPort):
(testSecurityOriginFileURI):
(testSecurityOriginDataURI):
(testCustomProtocolOrigin):
(beforeAll):
(testOpaqueSecurityOrigin): Deleted.
Commit: 1f5fed36397e0ce965c8bef7284dae8ebbb2cb2b
https://github.com/WebKit/WebKit/commit/1f5fed36397e0ce965c8bef7284dae8ebbb2cb2b
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitSecurityOrigin.cpp
Log Message:
-----------
Merge r274290 - REGRESSION(r274270): Broke WebKitSecurityOrigin docs
https://bugs.webkit.org/show_bug.cgi?id=223077
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-03-11
Reviewed by Darin Adler.
* UIProcess/API/glib/WebKitSecurityOrigin.cpp:
Commit: 2ca51fb094db0e173470a34eb18e76c3c05c18ec
https://github.com/WebKit/WebKit/commit/2ca51fb094db0e173470a34eb18e76c3c05c18ec
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h
M Source/WebKit/UIProcess/API/wpe/webkit.h
Log Message:
-----------
[WPE] WebKitMediaKeySystemPermissionRequest.h missing in top-level header
https://bugs.webkit.org/show_bug.cgi?id=223076
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-11
Reviewed by Adrian Perez de Castro.
* UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Fix copy/paste mistake from GTK version of this
header.
* UIProcess/API/wpe/webkit.h: The WebKitMediaKeySystemPermissionRequest header has to be
included here so apps can consume this new API.
Commit: 053b0bca4f9b068c6530790cc4d9e3182865eced
https://github.com/WebKit/WebKit/commit/053b0bca4f9b068c6530790cc4d9e3182865eced
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M ChangeLog
M Source/WTF/ChangeLog
M Source/WTF/wtf/Platform.h
M Source/WTF/wtf/URL.h
M Source/WebCore/ChangeLog
M Source/WebCore/platform/network/soup/SoupNetworkSession.cpp
M Source/cmake/OptionsGTK.cmake
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Merge r274275 - Unreviewed. [GTK][WPE] Bump libsoup3 version to 2.99.3
.:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Bring back support for logging body data.
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::setupLogger):
Source/WTF:
* wtf/Platform.h:
* wtf/URL.h:
Commit: 1fa5d5c82b44e8de4e7e5aa41627ba8ea4788429
https://github.com/WebKit/WebKit/commit/1fa5d5c82b44e8de4e7e5aa41627ba8ea4788429
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M ChangeLog
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/PlatformGTK.cmake
M Source/PlatformGTK.cmake
M Source/WebKit/ChangeLog
M Source/WebKit/PlatformGTK.cmake
M Source/WebKit/gtk/webkit2gtk-web-extension.pc.in
M Source/WebKit/gtk/webkit2gtk.pc.in
M Source/cmake/OptionsGTK.cmake
M Tools/ChangeLog
M Tools/gtk/manifest.txt.in
Log Message:
-----------
Merge r274330 - [GTK] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223067
Reviewed by Adrian Perez de Castro.
.:
Use 4.1 as the API version when building with soup3 and keep using 5.0 for GTK4. Also make it impossible to
build with GTK4 and soup2.
* Source/PlatformGTK.cmake:
* Source/cmake/OptionsGTK.cmake:
Source/JavaScriptCore:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for the gtkdoc configuration file.
* PlatformGTK.cmake:
Source/WebKit:
* PlatformGTK.cmake: Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for gtkdoc config files
* gtk/webkit2gtk-web-extension.pc.in: Add variables for gtk pkg-config file and libsoup version.
* gtk/webkit2gtk.pc.in: Ditto.
Tools:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION.
* gtk/manifest.txt.in:
Commit: b4c3d33fa9083842764ab0abd31004f394c387ed
https://github.com/WebKit/WebKit/commit/b4c3d33fa9083842764ab0abd31004f394c387ed
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Tools/buildstream/ChangeLog
M Tools/buildstream/elements/sdk/libsoup3.bst
Log Message:
-----------
Merge r274277 - [Flatpak SDK] Update libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223066
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-11
Reviewed by Carlos Garcia Campos.
* elements/sdk/libsoup3.bst: Bump to version 2.99.2.
Commit: 9c9e64961bb0ca7ffa4566654096767cfd47160b
https://github.com/WebKit/WebKit/commit/9c9e64961bb0ca7ffa4566654096767cfd47160b
Author: Dingzhong Chen <wsxy162 at gmail.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M Source/WebCore/platform/gtk/po/ChangeLog
M Source/WebCore/platform/gtk/po/zh_CN.po
Log Message:
-----------
Merge r274063 - [GTK] Update Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=222845
Patch by Dingzhong Chen <wsxy162 at gmail.com> on 2021-03-08
Reviewed by Carlos Garcia Campos.
* zh_CN.po:
Commit: 701e3e47bccc57d3ed6b01b70e117ef56a6e2a76
https://github.com/WebKit/WebKit/commit/701e3e47bccc57d3ed6b01b70e117ef56a6e2a76
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.91 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS: Add release notes for 2.31.91.
Commit: e5c5ac6c4ce8024bf9752ac46cf68430881f4d01
https://github.com/WebKit/WebKit/commit/e5c5ac6c4ce8024bf9752ac46cf68430881f4d01
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-03-12 (Fri, 12 Mar 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/wpe/NEWS
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.31.91 release
.:
* Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
* wpe/NEWS: Add release notes for 2.31.91, and also the missing ones
for 2.31.90.
Commit: 177995ed26f0383a52860f7a5d88355180f21c8e
https://github.com/WebKit/WebKit/commit/177995ed26f0383a52860f7a5d88355180f21c8e
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp
Log Message:
-----------
Merge r273558 - Unreviewed, address post-landing review feedback for r273542.
Update a comment and fix a check that was reversed.
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):
Commit: e542b26c2db5023869d7d9195a8e5b4bbf4a05e4
https://github.com/WebKit/WebKit/commit/e542b26c2db5023869d7d9195a8e5b4bbf4a05e4
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.h
Log Message:
-----------
Merge r274358 - [GStreamer] Crashes deep in GStreamer under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=222763
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-12
Reviewed by Xabier Rodriguez-Calvar.
Rely on select-streams event to configure only the first video stream of the collection
received on the bus. The select-stream decodebin3 signal is not recommended, and seems
broken anyway, because no selecting audio streams was still leading to audio decode pads
being added, leading to crashes.
* platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::InnerDecoder::selectStream): Deleted.
* platform/graphics/gstreamer/ImageDecoderGStreamer.h:
Commit: c20f796fc19a0a5b2cb74a476ae7e7988130f431
https://github.com/WebKit/WebKit/commit/c20f796fc19a0a5b2cb74a476ae7e7988130f431
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/SecurityOriginData.cpp
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitSecurityOrigin.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp
Log Message:
-----------
Merge r274375 - REGRESSION(r274270): [WPE][GTK] Broke Epiphany test /embed/ephy-web-view/error-pages-not-stored-in-history
https://bugs.webkit.org/show_bug.cgi?id=223140
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-03-12
Reviewed by Alex Christensen.
Source/WebCore:
If the SecurityOriginData has no protocol or host, return an empty string instead of "://"
* page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::toString const):
Source/WebKit:
Convert empty strings to NULL.
* UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(webkit_security_origin_to_string):
Tools:
Improve WebKitSecurityOrigin tests a bit.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
(testCustomProtocolOrigin): Drive-by improvement: check webkit_security_origin_to_string().
(testBogusURI): Added, tests for this bug.
(beforeAll):
Commit: 2092f95e9180bc3d99cab90a468f566bb5216cf5
https://github.com/WebKit/WebKit/commit/2092f95e9180bc3d99cab90a468f566bb5216cf5
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Merge r274423 - REGRESSION(r233845): EME Keysystem permission when MediaStream is disabled
https://bugs.webkit.org/show_bug.cgi?id=223185
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-15
Reviewed by Eric Carlson.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame): This method is required for
EME build configurations, not MediaStream...
Commit: bb7ea47da666d5e737be7f3ad689580b7376cfa4
https://github.com/WebKit/WebKit/commit/bb7ea47da666d5e737be7f3ad689580b7376cfa4
Author: Angelos Oikonomopoulos <angelos at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/Scripts/resolve-asm-file-conflicts.rb
Log Message:
-----------
Merge r274428 - postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
https://bugs.webkit.org/show_bug.cgi?id=223136
Reviewed by Michael Catanzaro.
When parsing .file assembler directives (for the purpose of
deduplicating the file slots), also accept
.file "path/to/CWD" "path/to/include"
that seems to be emitted by GCC in some configurations. This also
uses Pathname.cleanpath on the resulting path to canonicalize the
paths. We could use .realpath, but since we only run this on the
paths in a single compilation unit and the first component is
supposed to be the CWD, this both seems unnecessary and would
complicate our selftests.
* Scripts/resolve-asm-file-conflicts.rb:
Commit: 9bc9cdc1fb1cbece7c47589d8c892a89f17fa5db
https://github.com/WebKit/WebKit/commit/9bc9cdc1fb1cbece7c47589d8c892a89f17fa5db
Author: Khem Raj <raj.khem at gmail.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M ChangeLog
M Source/JavaScriptCore/CMakeLists.txt
M Source/JavaScriptCore/ChangeLog
M Source/WTF/ChangeLog
M Source/WTF/wtf/CMakeLists.txt
M Source/WebKit/CMakeLists.txt
M Source/WebKit/ChangeLog
M Source/cmake/WebKitCompilerFlags.cmake
Log Message:
-----------
Merge r274476 - [CMake] Build fails on RISC-V with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=222959
Patch by Khem Raj <raj.khem at gmail.com> on 2021-03-16
Reviewed by Carlos Alberto Lopez Perez.
.:
Check for 1 byte atomic operations along with 64bit ones, some
architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free
* Source/cmake/WebKitCompilerFlags.cmake:
Source/JavaScriptCore:
Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC
* CMakeLists.txt:
Source/WebKit:
Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.
* CMakeLists.txt:
Source/WTF:
Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.
* wtf/CMakeLists.txt:
Commit: 09189aafd7bd6aa0bb0212a0ba02efbc76ed398e
https://github.com/WebKit/WebKit/commit/09189aafd7bd6aa0bb0212a0ba02efbc76ed398e
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/GLContext.h
M Source/WebCore/platform/graphics/GraphicsContext.h
M Source/WebKit/ChangeLog
M Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
M Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h
M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp
Log Message:
-----------
Merge r274869 - [GTK] X11 build fixes
https://bugs.webkit.org/show_bug.cgi?id=223577
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-23
Reviewed by Adrian Perez de Castro.
Source/WebCore:
X11 headers define a bunch of macros with common terms, interfering with WebCore and WTF
enum values. As a workaround, we explicitly undef them.
* platform/graphics/GLContext.h:
* platform/graphics/GraphicsContext.h:
Source/WebKit:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::createGLContext): GLNativeWindowType might be a long unsigned
int, which can't be reinterpret casted to uin64_t on 32-bit platforms.
* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Use
WebCore::Region to prevent clashes with X11's Region.
(WebKit::DrawingAreaCoordinatedGraphics::scroll):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::display):
Commit: 86bb9059283cdd642e353f483bb02daaebea8c67
https://github.com/WebKit/WebKit/commit/86bb9059283cdd642e353f483bb02daaebea8c67
Author: Pablo Saavedra <psaavedra at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
Log Message:
-----------
Merge r274937 - [WPE] Build error in ARMv7 invalid 'static_cast' for GLNativeWindowType
https://bugs.webkit.org/show_bug.cgi?id=223684
Fixes this error:
error: invalid 'static_cast' from type 'uintptr_t' {aka 'unsigned
int'} to type 'GLNativeWindowType' {aka 'void*'}
; an invalid 'static_cast' from type error for ARMv7 (rpi3 and mesa driver)
by using the same solution chosen in
https://bugs.webkit.org/show_bug.cgi?id=179511:
EGLNativeWindowType can be aliased to a different type depending (at least) on the EGL
implementation, its build options, and the libepoxy build options. Using "static_cast"
works when it is a numeric value and the width of the value needs to be optionally
extended to 64 bits (e.g. the EGL type is "int" in a 32-bit CPU) but not for pointers,
and using "reinterpret_cast" works when the size of a pointer is 64 bits but not in other
cases. Therefore it seems reasonable to use a plain C cast expression to solve this
particular situation.
https://trac.webkit.org/changeset/274869/webkit
Reviewed by Philippe Normand.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::createGLContext):
Commit: b56b63228d56a91b532c671b1012be9cda61818e
https://github.com/WebKit/WebKit/commit/b56b63228d56a91b532c671b1012be9cda61818e
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/gtk/TestExpectations
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
M Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h
M Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h
Log Message:
-----------
Merge r274870 - [MSE][GStreamer] SIGSEV in webKitMediaSrcFreeStream
https://bugs.webkit.org/show_bug.cgi?id=220091
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-23
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The pipeline used by the MSE player is now able reload the MediaSource from the beginning if
a seek to 0 was requested. The problem was that uridecodebin was creating a new source
element and notifying the player which was then trying to dispose underlying platform track
informations, and also related appsrc elements. The latter was specially problematic because
the appsrc elements ownership was badly handled (elements added to a bin should not be
reused, unless an extra ref is added), leading to racy crashes.
So now when uridecodebin creates a new source element, the player detects this is a new
source and transfers track-related informations to the new element. Additionally, new appsrc
elements are created for the new element and track signals emitted so that the player is
still fully aware of the MSE tracks topology.
No new tests but two existing tests are now passing.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::open):
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
* platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::addSourceBuffer):
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcFinalize):
(webKitMediaSrcChangeState):
(webKitMediaSrcFreeStream):
(webKitMediaSrcRestoreTracks):
(webKitMediaSrcSignalTracks):
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
LayoutTests:
* platform/gtk/TestExpectations: Unflag now-passing tests.
Commit: 5822a7fbf326f7525c4704a5f9b29624bc672761
https://github.com/WebKit/WebKit/commit/5822a7fbf326f7525c4704a5f9b29624bc672761
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M LayoutTests/ChangeLog
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
Log Message:
-----------
Merge r274976 - REGRESSION(r274870) fast/canvas/webgl/texImage2D-mse-flipY-true.html and fast/canvas/webgl/texImage2D-mse-flipY-false.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=223674
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-24
Reviewed by Kenneth Russell.
Source/WebCore:
When the srcObject is directly set on a media element, the corresponding URL might still be
empty, so we need to ensure the URI corresponding to the MediaSource blob is not empty,
otherwise uridecodebin would fail to create the right source element.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
LayoutTests:
* platform/glib/TestExpectations:
Commit: 1dc5356d2bb4175fb70276d7ae577ec9344e7760
https://github.com/WebKit/WebKit/commit/1dc5356d2bb4175fb70276d7ae577ec9344e7760
Author: Žan Doberšek <zdobersek at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
Log Message:
-----------
Merge r274943 - [GStreamer] Use imxvideoconvert_g2d element inside the sink when available
https://bugs.webkit.org/show_bug.cgi?id=223693
Patch by Zan Dobersek <zdobersek at igalia.com> on 2021-03-24
Reviewed by Philippe Normand.
On some iMX platforms we require the use of imxvideoconvert_g2d element
in order to properly convert the visual buffers before they can be
rendered through our pipeline. We expect to require this buffer if it's
present in the GStreamer plugin registry on the system.
We search for this element and, if found, add it to the sink and
position it at the beginning, before the glupload element.
Based on an approach outlined by Gabriel Valcazar.
* platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
Commit: 099085ee14a0d43a410948f8608473d7fb1da44d
https://github.com/WebKit/WebKit/commit/099085ee14a0d43a410948f8608473d7fb1da44d
Author: Alberto Garcia <berto at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/posix/ThreadingPOSIX.cpp
Log Message:
-----------
Merge r275014 - REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069
Reviewed by Carlos Garcia Campos.
Replace an existing signal handler instead of aborting.
* wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::initializePlatformThreading):
Commit: 08bb70827b8c8227bb735f0be4577aa80be1858d
https://github.com/WebKit/WebKit/commit/08bb70827b8c8227bb735f0be4577aa80be1858d
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/JavaScriptCore/API/glib/JSCCallbackFunction.cpp
M Source/JavaScriptCore/API/glib/JSCContext.cpp
M Source/JavaScriptCore/ChangeLog
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp
Log Message:
-----------
Merge r275031 - [GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.
* API/glib/JSCCallbackFunction.cpp:
(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):
* API/glib/JSCContext.cpp:
(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):
Tools:
Add test cases.
* TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(valueToString):
(testJSCFunction):
(testJSCClass):
Commit: 9b60464875555463b5ed56e59677e0b6d71279d8
https://github.com/WebKit/WebKit/commit/9b60464875555463b5ed56e59677e0b6d71279d8
Author: Piotr Drąg <piotrdrag at gmail.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/platform/gtk/po/ChangeLog
M Source/WebCore/platform/gtk/po/pl.po
Log Message:
-----------
Merge r274624 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.32
https://bugs.webkit.org/show_bug.cgi?id=223149
Patch by Piotr Drąg <piotrdrag at gmail.com> on 2021-03-18
Rubber-stamped by Carlos Garcia Campos.
* pl.po:
Commit: 79e2c6d0a1b8eca71eaa084bbbb572a1ead25a75
https://github.com/WebKit/WebKit/commit/79e2c6d0a1b8eca71eaa084bbbb572a1ead25a75
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
M Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreX11.cpp
Log Message:
-----------
Merge r274354 - [GTK] GTK4 crashes with XVFB: GLXBadWindow
https://bugs.webkit.org/show_bug.cgi?id=223108
Reviewed by Žan Doberšek.
Source/WebCore:
* platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::supportsGLX const): Check if GLX extension is supported and return the base error code.
* platform/graphics/x11/PlatformDisplayX11.h:
Source/WebKit:
Handle GLXBadWindow errors in AcceleratedBackingStoreX11.
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::checkRequirements):
(WebKit::glxErrorCode):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
Commit: ae1e969fbd8615a8a55110d930ec2e1d29729ed8
https://github.com/WebKit/WebKit/commit/ae1e969fbd8615a8a55110d930ec2e1d29729ed8
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/FastMalloc.cpp
M Source/WTF/wtf/FastMalloc.h
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
M Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp
M Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp
M Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp
Log Message:
-----------
Merge r274479 - [GTK][WPE] Stop using g_memdup
https://bugs.webkit.org/show_bug.cgi?id=223189
Reviewed by Philippe Normand.
Source/WebCore:
Add gstBufferNewWrappedFast() to create a GstBuffer wrapping data allocated with fast malloc and use it when
possible in combination with fastMemDup() instead of g_memdup().
* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::gstBufferNewWrappedFast):
* platform/graphics/gstreamer/GStreamerCommon.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::dataReceived):
* platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):
* platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
Source/WebKit:
* UIProcess/API/glib/WebKitWebResource.cpp:
(webkit_web_resource_get_data_finish): Use g_malloc + memcpy instead of g_memdup.
* UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_save_finish): Use fastMemDup instead g_memdup.
Source/WTF:
Add fastMemDup() to replace g_memdup() that is now deprecated in GLib because of the possibility of overflow
when converting from size_t to unsigned int. There's a replacement in GLib already, but we would need to depend
on very new GLib version, so better use fastMemDup() when possible. In cases where we still need to use GLib
allocator, we can simply call g_malloc() + memcpy().
* wtf/FastMalloc.cpp:
(WTF::fastMemDup):
* wtf/FastMalloc.h:
Commit: 4710d4c6cbeda1a74751a8bf017706978b08f605
https://github.com/WebKit/WebKit/commit/4710d4c6cbeda1a74751a8bf017706978b08f605
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp
Log Message:
-----------
Merge r274640 - [SOUP] SOUP3 crashes inside soup_message_set_request_body
https://bugs.webkit.org/show_bug.cgi?id=223236
Reviewed by Adrian Perez de Castro.
Make WebKitFormDataInputStream implement GPollableInputStream.
* platform/network/soup/WebKitFormDataInputStream.cpp:
(webkitFormDataInputStreamNew):
(webkitFormDataInputStreamCanPoll):
(webkitFormDataInputStreamIsReadable):
(webkitFormDataInputStreamCreateSource):
(webkitFormDataInputStreamPollableInterfaceInit):
Commit: 13821d76a119f6481135e5e3a11590f688098f8f
https://github.com/WebKit/WebKit/commit/13821d76a119f6481135e5e3a11590f688098f8f
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-25 (Thu, 25 Mar 2021)
Changed paths:
M ChangeLog
M Source/PlatformWPE.cmake
M Source/WebKit/ChangeLog
M Source/WebKit/PlatformWPE.cmake
M Source/WebKit/wpe/wpe-web-extension-uninstalled.pc.in
M Source/WebKit/wpe/wpe-web-extension.pc.in
M Source/WebKit/wpe/wpe-webkit-uninstalled.pc.in
M Source/WebKit/wpe/wpe-webkit.pc.in
M Source/cmake/OptionsWPE.cmake
M Tools/ChangeLog
M Tools/wpe/manifest.txt.in
Log Message:
-----------
Merge r274641 - [WPE] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223437
Reviewed by Adrian Perez de Castro.
.:
Use 1.1 as the API version when building with soup3.
* Source/PlatformWPE.cmake:
* Source/cmake/OptionsWPE.cmake:
Source/WebKit:
* PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for gtkdoc config files.
* wpe/wpe-web-extension-uninstalled.pc.in: Add variable for libsoup version.
* wpe/wpe-web-extension.pc.in: Ditto.
* wpe/wpe-webkit-uninstalled.pc.in: Ditto.
* wpe/wpe-webkit.pc.in: Ditto.
Tools:
Use WPE_API_DOC_VERSION instead of WPE_API_VERSION.
* wpe/manifest.txt.in:
Commit: 288e5bdeda304461cd26b1f9eaf953f6a41fbc54
https://github.com/WebKit/WebKit/commit/288e5bdeda304461cd26b1f9eaf953f6a41fbc54
Author: Alejandro G. Castro <alex at igalia.com>
Date: 2021-03-26 (Fri, 26 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp
Log Message:
-----------
[GTK][WPE] Wrong frame scrolled when view is horizontally scrolled with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=222900
Patch by Alejandro G. Castro <alex at igalia.com> on 2021-03-26
Reviewed by Carlos Garcia Campos.
We need to use the scrolling offset in the parent when collecting
the descendant layers at a point. We substract the boundsOrigin to
make sure we transform the point considering the scrolling offset.
* page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
(WebCore::collectDescendantLayersAtPoint):
Commit: 1956a51f7e9ddd2ae358f5b71247317e32e4bd50
https://github.com/WebKit/WebKit/commit/1956a51f7e9ddd2ae358f5b71247317e32e4bd50
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-03-26 (Fri, 26 Mar 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/network/soup/AuthenticationChallengeSoup.cpp
Log Message:
-----------
Merge r275085 - REGRESSION(r272301): [SOUP] default port attribute when persisting credential information with libsecret
https://bugs.webkit.org/show_bug.cgi?id=223782
Reviewed by Adrian Perez de Castro.
Use the default port instead of 0 when the URL omits the port.
* platform/network/soup/AuthenticationChallengeSoup.cpp:
(WebCore::protectionSpaceFromSoupAuthAndURL):
Commit: c232b250ba69bcdbc125547adf06be239f31ee1f
https://github.com/WebKit/WebKit/commit/c232b250ba69bcdbc125547adf06be239f31ee1f
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-03-26 (Fri, 26 Mar 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.0 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS: Add release notes for 2.32.0
Commit: a0612b0b8d16bcc47d6d486fae5468618ef82b53
https://github.com/WebKit/WebKit/commit/a0612b0b8d16bcc47d6d486fae5468618ef82b53
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-03-26 (Fri, 26 Mar 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/wpe/NEWS
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.0 release
.:
* Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
* wpe/NEWS: Add release notes for 2.32.0
Commit: c7373e08c7a2839d38e7d82b7a8a44f9624f9ac3
https://github.com/WebKit/WebKit/commit/c7373e08c7a2839d38e7d82b7a8a44f9624f9ac3
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-04-16 (Fri, 16 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/loader/DocumentThreadableLoader.cpp
Log Message:
-----------
Unreviewed non-unified build fix.
* loader/DocumentThreadableLoader.cpp: Add missing FrameLoader.h header.
Commit: ac4026553f52c4e5a1ea56eaad9e643e7fb3268d
https://github.com/WebKit/WebKit/commit/ac4026553f52c4e5a1ea56eaad9e643e7fb3268d
Author: Ross Kirsling <ross.kirsling at sony.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/Sources.txt
M Source/JavaScriptCore/runtime/IntlSegmenter.cpp
M Source/JavaScriptCore/runtime/IntlSegmenter.h
M Source/JavaScriptCore/runtime/IntlSegments.cpp
A Source/JavaScriptCore/runtime/IntlWorkaround.cpp
Log Message:
-----------
Merge r275856 - ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
https://bugs.webkit.org/show_bug.cgi?id=224093
Reviewed by Yusuke Suzuki.
In a shining example of "disappointing library practices", ICU 69 deprecates ubrk_safeClone in favor of
a new *draft* API ubrk_clone, meaning that no function with this functionality is exposed by default.
This patch introduces a function cloneUBreakIterator to abstract over this change; however, since we need to:
1. confine the effects of disabling U_HIDE_DRAFT_API to a non-unified implementation file
2. still be able to include ubrk.h from IntlSegmenter.h to instantiate ICUDeleter<ubrk_close> (*not* `clone`!)
...the new helper function is introduced in a *headerless* implementation file, IntlWorkaround.cpp.
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* runtime/IntlSegmenter.cpp:
(JSC::IntlSegmenter::segment const):
* runtime/IntlSegmenter.h:
* runtime/IntlSegments.cpp:
(JSC::IntlSegments::createSegmentIterator):
* runtime/IntlWorkaround.cpp: Added.
(JSC::cloneUBreakIterator):
Commit: 3cd2ce5704ec96b487f6fe0cc21fee6b34e12657
https://github.com/WebKit/WebKit/commit/3cd2ce5704ec96b487f6fe0cc21fee6b34e12657
Author: Ross Kirsling <ross.kirsling at sony.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/runtime/IntlSegmenter.cpp
M Source/JavaScriptCore/runtime/IntlSegmenter.h
M Source/JavaScriptCore/runtime/IntlSegments.cpp
M Source/JavaScriptCore/runtime/IntlWorkaround.cpp
A Source/JavaScriptCore/runtime/IntlWorkaround.h
Log Message:
-----------
Merge r275920 - Move cloneUBreakIterator declaration to IntlWorkaround.h
https://bugs.webkit.org/show_bug.cgi?id=224511
Reviewed by Yusuke Suzuki.
Follow up to r275856. There's ultimately no reason IntlWorkaround.cpp needs to be headerless;
this was tied to some confusion about how to successfully include ubrk.h in two different ways.
* JavaScriptCore.xcodeproj/project.pbxproj:
* runtime/IntlSegmenter.cpp:
* runtime/IntlSegmenter.h:
* runtime/IntlSegments.cpp:
* runtime/IntlWorkaround.cpp:
* runtime/IntlWorkaround.h: Added.
Commit: 0e1ba8a99dc1474449392ce335104c222d64c327
https://github.com/WebKit/WebKit/commit/0e1ba8a99dc1474449392ce335104c222d64c327
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/media/media-source/media-source-no-preload-set-duration-crash-expected.txt
A LayoutTests/media/media-source/media-source-no-preload-set-duration-crash.html
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp
Log Message:
-----------
Merge r275821 - [MSE][GStreamer] Crash in WebCore::PlaybackPipeline::addSourceBuffer when setting duration and preload is set to none
https://bugs.webkit.org/show_bug.cgi?id=224260
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-12
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Disable delayed loading for the GStreamer MSE player, we want the MSE source element to be
configured ASAP, otherwise the playback pipeline will fail in various ways (duration
notifications sent too early, crashes in addSourceBuffer, crashes in attachTracks, and so
on).
Test: media/media-source/media-source-no-preload-set-duration-crash.html
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
LayoutTests:
* media/media-source/media-source-no-preload-set-duration-crash-expected.txt: Added.
* media/media-source/media-source-no-preload-set-duration-crash.html: Added.
Commit: 5fbff58a34b241196efa7ae97a1fe8e1429834e4
https://github.com/WebKit/WebKit/commit/5fbff58a34b241196efa7ae97a1fe8e1429834e4
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Merge r275634 - [GTK] webkit://gpu should print runtime libwpe and wpebackend-fdo versions
https://bugs.webkit.org/show_bug.cgi?id=224298
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-04-07
Reviewed by Adrian Perez de Castro.
.:
* Source/cmake/OptionsGTK.cmake:
Source/WebKit:
* UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
Commit: 07942423f1eaf730c35bf5324502f0d61ddb6e7a
https://github.com/WebKit/WebKit/commit/07942423f1eaf730c35bf5324502f0d61ddb6e7a
Author: Alicia Boya Garcia <aboya at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Log Message:
-----------
Merge r275528 - [GStreamer] At EOS, change position to match duration, not the other way around.
https://bugs.webkit.org/show_bug.cgi?id=224237
Reviewed by Philippe Normand.
The criteria used to check if playback has finished is currentTime >=
duration. Currently MediaPlayerPrivateGStreamer::didEnd() ensures this
in an awkward way: by changing the duration so that it matches
currentTime, rather than the other way around.
This meant a duration change at the end of playback most of the time,
with a slightly different duration each time, since currentTime is
cached periodically.
This patch reworks that function to work more naturally and less racy:
First, only if the stream doesn't have a set duration (e.g. live
stream), we set a duration to currentTime, as defined in the spec.
Second, at EOS we update currentTime to match duration, rather than
the other way around.
This patch doesn't introduce changes in test results.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
Commit: 91daea808bd9c55288fb6de2670a17c560d33878
https://github.com/WebKit/WebKit/commit/91daea808bd9c55288fb6de2670a17c560d33878
Author: Enrique Ocaña González <eocanha at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/encryptedmedia/CDMProxy.cpp
M Source/WebCore/platform/encryptedmedia/CDMProxy.h
M Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp
M Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.h
M Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyThunder.cpp
M Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyThunder.h
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp
Log Message:
-----------
Merge r275599 - [EME][GStreamer] Abort decryptor operations immediately and without errors on flush
https://bugs.webkit.org/show_bug.cgi?id=223742
Reviewed by Xabier Rodriguez-Calvar.
A decryptor transformInPlace() operation can cause potentially long waits in
two situations:
- transformInPlace() is waiting to get the cdmProxy.
- The CDMProxy::decrypt() method is internally waiting for a specific key to
become available.
If a seek operation is performed during those long waits, the main thread will
be blocked until the seek finishes the conditions those long waits are waiting
for will never be fulfilled (because the operations that complete them happen
in the main thread, which is blocked), the internal wait timeouts will trigger
and the decoder will trigger an unrecoverable error.
The solution for this is to break the waits by issuing the right notifications,
and to detect the flushes performed by the seek, distinguising this special
"abort" case from a regular error, so that the situation is no longer
unrecoverable.
This solution involves changes in several layers. A public
CDMProxy::abortWaitingForKey() method is exposed to allow the decryptor to
awake the inner waitFor() that checks for the key. The cdmProxy wait is also
awaken in case there's no cdmProxy available yet.
In order to distinguish if the awakenings are caused by real errors (no
cdmProxy, no key available) or by a flush operation (caused by the seek), the
decryptor first needs to keep track of the "flushing" state and allow other
objects to know about it. CDMProxy is one of those objects, but due to layer
limitations it can't directly ask about it to the decryptor (it can't "see"
it).
A new CDMProxyDecryptionClient interface is created, and the decryptor will
hold an implementation of it (as CDMProxyDecryptorClientImplementation).
CDMProxy can then know the client isAborting(), and the client will know the
decryptor and will ask about it.
As the pipeline, and thus the decryptor, can be destroyed at any moment,
the client holds a WeakPtr to the decryptor and will only ask if isAborting()
if the pointer is still alive.
* platform/encryptedmedia/CDMProxy.cpp:
(WebCore::CDMProxy::abortWaitingForKey const): Notify waiting threads.
(WebCore::CDMProxy::tryWaitForKeyHandle const): Take a client and ask it if it's aborting.
(WebCore::CDMProxy::getOrWaitForKeyHandle const): Pass the client along.
(WebCore::CDMProxy::getOrWaitForKeyValue const): Ditto.
* platform/encryptedmedia/CDMProxy.h: Declaration and usage of the CDMProxyDecryptionClient interface.
* platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:
(WebCore::CDMProxyClearKey::cencSetDecryptionKey): Pass the client along from the context.
* platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Store client in the cencDecryptContext.
* platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
(WebCore::CDMProxyThunder::getDecryptionSession const): Pass the client along from the context.
(WebCore::CDMProxyThunder::decrypt): Abort operations aren't an error, so just trigger a warning if there's no session.
* platform/graphics/gstreamer/eme/CDMProxyThunder.h: Store client in DecryptionContext.
* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(CDMProxyDecryptionClientImplementation::CDMProxyDecryptionClientImplementation): Implementation of the CDMProxyDecryptionClient interface.
(CDMProxyDecryptionClientImplementation::isAborting): Ask if the decryptor is flushing.
(constructed): Initialize the client.
(transformInPlace): Check the flush status after waiting for the CDMProxy and for the decryption performed by the subclasses. Release the lock when not needed.
(isCDMProxyAvailable): Renamed mutex to be more generic.
(attachCDMProxy): Ditto. Also renamed condition for the same reason.
(sinkEventHandler): Manage isFlushing status and awake waits for cdmProxy or for session depending on the lifecycle stage.
(webKitMediaCommonEncryptionDecryptIsFlushing): Expose isFlushing status.
(webKitMediaCommonEncryptionDecryptGetCDMProxyDecryptionClient): Return Weak reference to the client.
(changeState): Renamed condition.
(setContext): Renamed mutex.
* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: New getters for isFlushing and the client.
* platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
Commit: d7a0b2fdd54e0e0546a7800e1df0cfd401ad1bca
https://github.com/WebKit/WebKit/commit/d7a0b2fdd54e0e0546a7800e1df0cfd401ad1bca
Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h
Log Message:
-----------
Merge r275654 - Unreviewed. Fixed build warning.
* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Avoid C-linkage warning.
Commit: 1a5471fd47c7fab775b23215ccf758fe54d1ca3e
https://github.com/WebKit/WebKit/commit/1a5471fd47c7fab775b23215ccf758fe54d1ca3e
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp
Log Message:
-----------
Merge r275757 - Unreviewed, GStreamer Thunder decryptor build fix after r275599
* platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt):
Commit: f15cd7f86aa12487f24e723625a81216e158ea4a
https://github.com/WebKit/WebKit/commit/f15cd7f86aa12487f24e723625a81216e158ea4a
Author: Enrique Ocaña González <eocanha at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
Log Message:
-----------
Merge r275596 - [GStreamer] Only seek to change the rate un updatePlaybackRate() when needed
https://bugs.webkit.org/show_bug.cgi?id=224235
Reviewed by Alicia Boya Garcia.
A seek is used by MediaPlayerPrivateGStreamer to update the playback
rate used in the pipeline. There's a special case when the rate is 0.0.
This actually means "paused" and, when set, the pipeline is changed to
PAUSED and no updatePlaybackRate() call is made because of an early
return (and therefore, no seek). When the rate is restored to a
non-zero value, the pipeline is set again to PLAYING, but a
call to updatePlaybackRate() is done, which implies an unconditional
seek.
It should be possible to do the seek in updatePlaybackRate() only if the
rate changed with respect to the original one, instead of always doing
it. This would avoid unneeded seeks, which are complex operations that
can trigger collateral issues such as the one addressed in
https://bugs.webkit.org/show_bug.cgi?id=223742.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate): Only seek when the playback rate hasn't changed.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Document m_lastPlaybackRate purpose.
Commit: 0e46081369702b5a7c66a3a73378091ea7be9428
https://github.com/WebKit/WebKit/commit/0e46081369702b5a7c66a3a73378091ea7be9428
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-28 (Wed, 28 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/mediastream/CaptureDevice.h
M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp
M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/UserMediaProcessManager.cpp
M Source/WebKit/UIProcess/UserMediaProcessManager.h
M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h
Log Message:
-----------
Merge r275871 - [GStreamer] CaptureDevice monitor used from UIProcess
https://bugs.webkit.org/show_bug.cgi?id=222888
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-13
Source/WebCore:
Reviewed by Youenn Fablet .
Move the device observer infrastructure from the WebKit UserMediaProcessManager to the
RealtimeMediaSourceCenter.
* platform/mediastream/CaptureDevice.h:
(WebCore::haveDevicesChanged):
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
(WebCore::RealtimeMediaSourceCenter::Observer::~Observer):
(WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::captureDevicesChanged):
(WebCore::RealtimeMediaSourceCenter::triggerDevicesChangedObservers):
(WebCore::RealtimeMediaSourceCenter::setDevicesChangedObserver): Deleted.
* platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::Observer::devicesChanged):
Source/WebKit:
Reviewed by Youenn Fablet.
GStreamer ports aim to reduce usage of the GStreamer library in the UIProcess and thus
should not relay capture devicechange monitoring to the UIProcess. For the long term we plan
to migrate media processing to the GPUProcess but for now we have to maintain the media
pipelines in the WebProcess. Initializing GStreamer in multiple processes (including the
UIProcess) has a significant performance impact on embedded platforms, that's why we try to
avoid it as much as possible.
The device monitoring code from the UserMediaProcessManager was partly moved to the
RealtimeMediaSourceCenter so that it can be easily reused by GStreamer ports from the
UserMediaPermissionRequestManager.
* UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::UserMediaProcessManager):
(WebKit::UserMediaProcessManager::updateCaptureDevices):
(WebKit::UserMediaProcessManager::devicesChanged):
(WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices):
* UIProcess/UserMediaProcessManager.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::UserMediaPermissionRequestManager):
(WebKit::UserMediaPermissionRequestManager::updateCaptureDevices):
(WebKit::UserMediaPermissionRequestManager::DeviceObserver::devicesChanged):
(WebKit::UserMediaPermissionRequestManager::addDeviceChangeObserver):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
(WebKit::UserMediaPermissionRequestManager::DeviceObserver::DeviceObserver):
Commit: e0e0f379e4c84d570290dcc043da07d0c9e47abd
https://github.com/WebKit/WebKit/commit/e0e0f379e4c84d570290dcc043da07d0c9e47abd
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp
Log Message:
-----------
Merge r275510 - [GStreamer][MediaStream] AudioSource triggering critical warnings
https://bugs.webkit.org/show_bug.cgi?id=224180
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
Keep track of audio channel offsets and store them as metadata in audio buffers. This is
used by downstream elements such as the audio convert elements.
* Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:
(WebCore::copyBusData):
(WebCore::MediaStreamAudioSource::consumeAudio):
Commit: 37b7f26fe8e1b5932cd76aea890d5f39efbe1717
https://github.com/WebKit/WebKit/commit/37b7f26fe8e1b5932cd76aea890d5f39efbe1717
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M LayoutTests/ChangeLog
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
Log Message:
-----------
Merge r275412 - REGRESSION(r268176): [GStreamer] media/video-orientation-canvas.html fails
https://bugs.webkit.org/show_bug.cgi?id=223850
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore:
The GL pipeline used by the player is now able to handle image rotation tags itself. Manual
handling of the image rotation tags is now performed only when the pipeline is not able to
do it by itself.
* platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
LayoutTests:
* platform/gtk/TestExpectations: Unflag now-passing test.
Commit: 70c237bea215a7f135fca50ce2b4005ab122ca10
https://github.com/WebKit/WebKit/commit/70c237bea215a7f135fca50ce2b4005ab122ca10
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M LayoutTests/ChangeLog
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Log Message:
-----------
Merge r275755 - [GStreamer] fast/canvas/canvas-createPattern-video-loading.html is failing since r218170
https://bugs.webkit.org/show_bug.cgi?id=173410
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-09
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
When a flush has been requested by the GL video sink, allocate a new copy of the sample
which has to be released. The copy is necessary so that the video dimensions can still be
fetched and also for canvas rendering. The release is necessary because the sample might
have been allocated by a hardware decoder and memory might have to be reclaimed by a
non-sysmem buffer pool.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):
LayoutTests:
* platform/gtk/TestExpectations: Unflag now-passing test.
Commit: 1ede568fce4817032c53d7c641219e64ff69a06b
https://github.com/WebKit/WebKit/commit/1ede568fce4817032c53d7c641219e64ff69a06b
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp
Log Message:
-----------
Merge r273618 - [WPE][GTK] Bogus Response.{status,ok} for successful fetch() requests to a custom URI scheme handler
https://bugs.webkit.org/show_bug.cgi?id=222471
Reviewed by Carlos Garcia Campos.
No new tests needed.
* UIProcess/API/glib/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestReadCallback): Mark response as having status "200 OK" when
webkit_uri_scheme_request_finish() gets passed a GInputStream.
Commit: 801455547d2e2ec6729be73ff21790c4caa74b03
https://github.com/WebKit/WebKit/commit/801455547d2e2ec6729be73ff21790c4caa74b03
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp
Log Message:
-----------
Merge r275512 - [GTK][GStreamer] Web Audio - Media element source - Audio is cracking.
https://bugs.webkit.org/show_bug.cgi?id=196293
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
The provider client might request samples faster than the current clock speed, so this sink
should process buffers as fast as possible. The cracks were consequence of the audio sink of
the AudioDestination starving off.
* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
Commit: ae7c209b9bec25cbe77254b1691b0e9ce6027249
https://github.com/WebKit/WebKit/commit/ae7c209b9bec25cbe77254b1691b0e9ce6027249
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
Log Message:
-----------
Merge r273644 - [GStreamer][Playbin3] Stream collection handling fixes
https://bugs.webkit.org/show_bug.cgi?id=222322
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-01
Reviewed by Xabier Rodriguez-Calvar.
The track orphaning trying to avoid un-necessary track addition/removals was making the
whole thing inconsistent with the final stream collection. Also stream-collection messages
don't need to be handled from a synchronous GstBus handler, this should be needed for
need-context messages only, so the corresponding code has been refactored.
This patch also includes changes and cleanups for the mediastreamsrc element, needed after
the stream collection handling fixes. Most notably the element now keeps an internal list of
tracks, in addition to observing the MediaStreamPrivate for topology changes. Also it emits
a new stream collection whenever a new source pad has been added.
No new tests, but this patch fixes flakyness of http/tests/media/hls/hls-audio-tracks.html
when the pipeline is driven by playbin3.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::setPipeline):
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleNeedContextMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(stopObservingTracks):
(webkitMediaStreamSrcDispose):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcTrackEnded):
Commit: bbecd2a96bc62eb18e4cbebd67a8878da895b8a0
https://github.com/WebKit/WebKit/commit/bbecd2a96bc62eb18e4cbebd67a8878da895b8a0
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h
Log Message:
-----------
Merge r275514 - [GStreamer][WebRTC] Audio is not played from an audio element when the srcObject object has unstarted video tracks
https://bugs.webkit.org/show_bug.cgi?id=209163
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Ensure no MediaStream (active) video tracks can be added in a pipeline representing an <audio> element.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::hasFirstSampleReachedSink const):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChanged):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcSetStream):
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
LayoutTests:
* platform/glib/TestExpectations: Unflag now-passing test.
Commit: 94ec4131a1f9279a2062c2bd97c122ec53ab15c9
https://github.com/WebKit/WebKit/commit/94ec4131a1f9279a2062c2bd97c122ec53ab15c9
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp
Log Message:
-----------
Unreviewed build fix after r276749
* Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:
(WebCore::copyBusData): Remove usage of DisableMallocRestrictionsForCurrentThreadScope
guard, which is a type not available in the 2.32 release branch.
Commit: f5d8768f34e20982ca04f69e87ae45746958ab3a
https://github.com/WebKit/WebKit/commit/f5d8768f34e20982ca04f69e87ae45746958ab3a
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.h
Log Message:
-----------
Merge r275516 - REGRESSION(r274358) [GStreamer] http/tests/images/mp4-partial-load.html is flaky crashing inside GStreamer
https://bugs.webkit.org/show_bug.cgi?id=223636
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-06
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore:
Ensure the GStreamer messages are always processed synchronously, even when the handler is
called from another thread. Without blocking in the latter case, the select-streams event
might be sent to decodebin too late. It has to be sent as a synchronous reaction to the
stream-collection message.
* platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
* platform/graphics/gstreamer/ImageDecoderGStreamer.h:
LayoutTests:
* platform/glib/TestExpectations: Update tests expectations.
* platform/gtk/TestExpectations: Ditto.
Commit: 19cef56eac7fa4733944bfa59c24bad4db182eee
https://github.com/WebKit/WebKit/commit/19cef56eac7fa4733944bfa59c24bad4db182eee
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
Log Message:
-----------
Merge r275600 - [GStreamer] Videos start playing muted in epiphany with no unmute icon visible in tab, webkit_web_view_get_is_muted() returns incorrect results
https://bugs.webkit.org/show_bug.cgi?id=223195
Patch by Philippe Normand <pnormand at igalia.com> on 2021-04-07
Source/WebCore:
Reviewed by Eric Carlson.
For GStreamer ports the semantics of IsPlayingAudio slightly differ from Apple ports. The
webkit_web_view_is_playing_audio() API is expected to return true if a page is producing
audio even though it might be muted.
The second change affects the private player mute state when the page mute state has been
updated.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaState const):
(WebCore::HTMLMediaElement::pageMutedStateDidChange):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Logging improvements.
(WebCore::MediaPlayerPrivateGStreamer::isMuted const):
(WebCore::MediaPlayerPrivateGStreamer::volume const):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
(WebCore::MediaPlayerPrivateGStreamer::setMuted):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfMute):
Tools:
Reviewed by Michael Catanzaro.
Adapt is-playing test, after muting the page, webkit_web_view_is_playing_audio() should
still return TRUE.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(IsPlayingAudioWebViewTest::periodicallyCheckIsPlayingForAWhile):
(testWebViewIsPlayingAudio):
Commit: 5c3940575e2632f6b43d74118390a22ea1aa9194
https://github.com/WebKit/WebKit/commit/5c3940575e2632f6b43d74118390a22ea1aa9194
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
Log Message:
-----------
Merge r275149 - REGRESSION(r274527): [GStreamer] media/webaudio-background-playback.html now failing
https://bugs.webkit.org/show_bug.cgi?id=223840
Patch by Philippe Normand <pnormand at igalia.com> on 2021-03-28
Reviewed by Chris Dumez.
r274527 actually exposed a bug that was present since r271197. The AudioDestination pipeline
was not stopping properly because webkitGstSetElementStateSynchronously() was returning too
early.
This patch also includes a few improvements in the webaudiosrc element, most notably
regarding its preroll state. The element now stops emitting buffers downstream as soon as
the AudioDestination is scheduled to stop.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcRenderAndPushFrames): Return early as soon as the destination is scheduled to stop.
(webKitWebAudioSrcChangeState): Synchronize preroll state with element state.
* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::webkitGstSetElementStateSynchronously): targetState might be lower than current
state, e.g, when stopping a running pipeline, so we can't return early for those cases,
otherwise the pipeline won't stop.
Commit: 79b3429d35abc308e68fad8d608e4be134681929
https://github.com/WebKit/WebKit/commit/79b3429d35abc308e68fad8d608e4be134681929
Author: Mike Gorse <mgorse at suse.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/markup.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebCore/platform/graphics/GraphicsContext.cpp
M Source/WebCore/platform/graphics/GraphicsContext.h
M Source/WebCore/platform/graphics/GraphicsContextGL.h
M Source/WebCore/platform/graphics/GraphicsContextImpl.h
M Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.cpp
M Source/WebCore/platform/graphics/cairo/GraphicsContextImplCairo.h
M Source/WebCore/platform/graphics/displaylists/DisplayList.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h
M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp
M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h
M Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp
M Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h
M Source/WebCore/platform/graphics/win/GraphicsContextImplDirect2D.cpp
M Source/WebCore/platform/graphics/win/GraphicsContextImplDirect2D.h
M Source/WebCore/svg/graphics/SVGImage.cpp
M Source/WebKit/ChangeLog
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/UIProcess/gtk/ClipboardGtk3.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
Log Message:
-----------
Merge r275557 - Build fails when video is disabled
https://bugs.webkit.org/show_bug.cgi?id=224198
Patch by Mike Gorse <mgorse at suse.com> on 2021-04-06
Reviewed by Adrian Perez de Castro.
Add #if ENABLE(VIDEO) where needed.
Source/WebCore:
* editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
* page/Page.cpp:
* page/Page.h:
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContextGL.h:
* platform/graphics/GraphicsContextImpl.h:
* platform/graphics/cairo/GraphicsContextImplCairo.cpp:
* platform/graphics/cairo/GraphicsContextImplCairo.h:
* platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
* platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
* platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
* platform/graphics/displaylists/DisplayListItemType.h:
* platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
* platform/graphics/displaylists/DisplayListItems.h:
* platform/graphics/displaylists/DisplayListRecorder.cpp:
* platform/graphics/displaylists/DisplayListRecorder.h:
* platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
* platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
* platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
* platform/graphics/opengl/GraphicsContextGLOpenGL.h:
* platform/graphics/win/GraphicsContextImplDirect2D.cpp:
* platform/graphics/win/GraphicsContextImplDirect2D.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit:
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::decodeItem):
* UIProcess/gtk/ClipboardGtk3.cpp:
* WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::committedLoad):
Commit: 9c29a74eb321d2cd234e3c103274ac9e83202f28
https://github.com/WebKit/WebKit/commit/9c29a74eb321d2cd234e3c103274ac9e83202f28
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
Log Message:
-----------
[GTK] Bubblewrap sandbox should not break X11 forwarding
https://bugs.webkit.org/show_bug.cgi?id=221990
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-03-05
Reviewed by Carlos Alberto Lopez Perez.
If $DISPLAY points to a TCP socket, or a Unix socket on a different host, then we cannot
isolate the web process from the network and must grant access to the host network
namespace.
Also, clean up some related code by adding PLATFORM(X11) guards where appropriate and
removing a redundant display type check.
* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindWayland):
(WebKit::shouldUnshareNetwork):
(WebKit::bubblewrapSpawn):
Commit: 1dcec608937a7e77e1408607bdcea57c2d3216dc
https://github.com/WebKit/WebKit/commit/1dcec608937a7e77e1408607bdcea57c2d3216dc
Author: Khem Raj <raj.khem at gmail.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/runtime/MachineContext.h
M Source/JavaScriptCore/runtime/OptionsList.h
M Source/WTF/ChangeLog
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/Threading.cpp
Log Message:
-----------
Merge r275670 - [WPE] Build fixes for musl C library on Linux
https://bugs.webkit.org/show_bug.cgi?id=210068
Patch by Khem Raj <raj.khem at gmail.com> on 2021-04-08
Reviewed by Carlos Alberto Lopez Perez.
Source/JavaScriptCore:
Use OS(LINUX) to include musl in platform test
for linux and consolidate all linux platfrom
under same test. Use smaller limits for JSC
stack size per thread and reserved zone size.
* runtime/MachineContext.h:
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
* runtime/OptionsList.h:
Source/WTF:
Define 128KB DEFAULT_THREAD_STACK_SIZE_IN_KB for musl
Use OS(LINUX) check to include musl when building for
Linux based platforms.
* wtf/PlatformHave.h:
* wtf/Threading.cpp:
Commit: d7db7f7cee78647a47ae62557ff8fc024b62cb0c
https://github.com/WebKit/WebKit/commit/d7db7f7cee78647a47ae62557ff8fc024b62cb0c
Author: Marco Felsch <m.felsch at pengutronix.de>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp
M Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.cpp
M Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.h
M Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h
M Tools/ChangeLog
M Tools/Scripts/webkitpy/style/checker.py
Log Message:
-----------
Merge r276308 - [WPE][Qt] Fix build failure after r270690
https://bugs.webkit.org/show_bug.cgi?id=223070
Patch by Marco Felsch <m.felsch at pengutronix.de> on 2021-04-20
Reviewed by Philippe Normand.
Source/WebKit:
WPE fails to build with `-DENABLE_WPE_QT_API=ON` after adapting the
visibility for linked frameworks done by r270690.
The reason for that is that the visibility is now more strict and we
have to add the WTF dependecy or drop the WTF fast-allocate mechanism.
Adding the WTF dependency is a bit odd since this would staticly link
the WTF lib into a small wrapper lib. Also this lib has nothing to do
with Webkit at all. It is just a QT adaption library.
No new tests, it can be build again.
* UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::notifyLoadChangedCallback):
(WPEQtView::notifyLoadFailedCallback):
(WPEQtView::runJavaScript):
* UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:
(WPEQtViewBackend::create):
* UIProcess/API/wpe/qt/WPEQtViewBackend.h:
* UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h:
Drop WTF usage and use system allocator since the lib has nothing to do
with Webkit at all.
Tools:
* Scripts/webkitpy/style/checker.py:
Add exception for WPE QT wrapper library to use system alloc instead
of WTF.
Commit: 9ae568788aa83bfbe6c9ab28d62d3bd372900da5
https://github.com/WebKit/WebKit/commit/9ae568788aa83bfbe6c9ab28d62d3bd372900da5
Author: Marco Felsch <m.felsch at pengutronix.de>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp
Log Message:
-----------
Merge r276309 - [WPE] QML WPEView dynamic loading fails
https://bugs.webkit.org/show_bug.cgi?id=224814
Patch by Marco Felsch <m.felsch at pengutronix.de> on 2021-04-20
Reviewed by Philippe Normand.
The scene graph can be initialized when we receive window handle change
notification and so we will not receive a scenegraph initialization
notification. In such case we need to initzialize it ourself.
No new tests. Testing can be done if the WPEView is moved to a
QML component which gets loaded later on demand.
* UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::configureWindow):
Commit: f54cda651019637782c485dbb4c9ab83cfd890d9
https://github.com/WebKit/WebKit/commit/f54cda651019637782c485dbb4c9ab83cfd890d9
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h
M Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp
M Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm
M Source/WebCore/page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp
Log Message:
-----------
Merge r275790 - scrollingTreeNodeDidScroll() should just trigger a rendering udpate
https://bugs.webkit.org/show_bug.cgi?id=224394
Reviewed by Tim Horton.
After handling wheel events on the scrolling thread,
ThreadedScrollingTree::scrollingTreeNodeDidScroll() appends to a queue of pending updates
and then triggers applyPendingScrollUpdates() on the main thread to process those updates.
However, every rendering update also processes pending scroll updates via
synchronizeStateFromScrollingTree(), so it's simpler if we just trigger a rendering update.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
* page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::scheduleTreeStateCommit):
Commit: 32e7c4a7f3ea0db38b7a4e48e3585abc71f5c0c7
https://github.com/WebKit/WebKit/commit/32e7c4a7f3ea0db38b7a4e48e3585abc71f5c0c7
Author: Alejandro G. Castro <alex at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp
M Source/WebCore/page/scrolling/nicosia/ScrollingCoordinatorNicosia.h
Log Message:
-----------
Merge r276426 - REGRESSION(r275790) [GTK][WPE] Scrolling rendering fails after the second page
https://bugs.webkit.org/show_bug.cgi?id=224824
Patch by Alejandro G. Castro <alex at igalia.com> on 2021-04-22
Reviewed by Simon Fraser.
We are making the implementation more similar to the Apple
scrolling coordinator. Now we reimplement willStartRenderingUpdate
to be able to synchronize the state there. That way we can avoid
the timer and just schedule a rendering update when we want to
commit the tree state.
Test: Fixes the timeout of the overflow-scrollable-after-back.html,
added in the regression.
* page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::ScrollingCoordinatorNicosia):
(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):
(WebCore::ScrollingCoordinatorNicosia::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorNicosia::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorNicosia::willStartRenderingUpdate):
(WebCore::ScrollingCoordinatorNicosia::commitTreeState): Deleted.
* page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
Commit: d0c5713599911191f351153f2f6d535bad094486
https://github.com/WebKit/WebKit/commit/d0c5713599911191f351153f2f6d535bad094486
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderLayerCompositor.cpp
Log Message:
-----------
Merge r276492 - Do not set synchronous scrolling for layers without relevant scrolling scopes
https://bugs.webkit.org/show_bug.cgi?id=221383
Reviewed by Simon Fraser.
Fixed backgrounds could force the layer compositor to set synchronous scrolling because they're slow
to repaint. However that cannot be done if the layer's boxScrollingScope hasn't been previously updated
in RenderLayer::updateLayerPosition.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes): Do not call
setSynchronousScrollingReasons() if there is no scrollingScope.
Commit: 0d6c12af7b421574d8f19bb4304c1b55cab816dd
https://github.com/WebKit/WebKit/commit/0d6c12af7b421574d8f19bb4304c1b55cab816dd
Author: Daniel Kolesa <dkolesa at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/runtime/OptionsList.h
M Source/WTF/ChangeLog
M Source/WTF/wtf/StackBounds.cpp
M Source/WTF/wtf/Threading.cpp
Log Message:
-----------
Merge r276695 - [WPE][GTK] More correct fixes for stack size issues on musl libc
https://bugs.webkit.org/show_bug.cgi?id=225099
Patch by Daniel Kolesa <dkolesa at igalia.com> on 2021-04-28
Reviewed by Adrian Perez de Castro.
Partial revert https://bugs.webkit.org/show_bug.cgi?id=210068
Source/JavaScriptCore:
After fixing the thread stack issues in WTF properly, we can revert
the JSC options changes, which are actually harmful since they result
in JSC being unstable. Previously, softReservedZoneSize was causing a
crash when set to 128K because of the main thread stack bounds, and
this is now fixed. We can keep the maxPerThreadStackUsage at 5M as
well; there is no fundamental difference from how things are done on
glibc anymore.
* runtime/OptionsList.h:
Source/WTF:
While the changes in r236306 stopped JSC from crashing outright,
they are not correct, since they also make it rather unstable.
To counter this, increase stack size for threads on Linux with
non-glibc/bionic libcs to 1 megabyte, which is a robust enough
value that should always be sufficient.
While at it, the previous approach to musl thread stack size was
breaking use of DEFAULT_THREAD_STACK_SIZE_IN_KB (if defined) as
well as not properly taking care of the unused parameter. Move
the code to a more appropriate place, which solves these problems.
All this is however not enough, since there is still the main thread;
using pthread_attr_getstack on a main thread is not reliable since main
thread stacks are allowed to grow, and we expect the bounds to always
be constant. On glibc, this already behaved right, but e.g. on musl
(and possibly other C libraries) this is not necessarily the case - at
the point of the check, it was returning 128k (since that's the initial
size reserved by the kernel). Therefore, do the same thing as on Darwin
and use process resource limits to get the boundary on Linux as well.
This results in JavaScriptCore behaving correctly on musl libc and
allows us to drop the options special-casing that was in place.
* wtf/StackBounds.cpp:
(WTF::StackBounds::currentThreadStackBoundsInternal):
* wtf/Threading.cpp:
(WTF::stackSize):
Commit: cc8226a73b532b8ae3c71e9b690450f0c54ba940
https://github.com/WebKit/WebKit/commit/cc8226a73b532b8ae3c71e9b690450f0c54ba940
Author: Daniel Kolesa <dkolesa at igalia.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
Log Message:
-----------
Merge r274417 - [GLIB] Be more selective about bublewrapping libdirs
https://bugs.webkit.org/show_bug.cgi?id=221709
Patch by Daniel Kolesa <dkolesa at igalia.com> on 2021-03-15
Reviewed by Carlos Garcia Campos.
On 32-bit systems, bubblewrap lib32 instead of lib64. This unbreaks
sandbox on some distributions that have lib32 (which glibc defaults
its ld cache lookups to) but configure default libdir to lib rather
than lib32.
* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bubblewrapSpawn):
Commit: 0d5cacf19d716f8ff6ae8165316b3eaab1c8353c
https://github.com/WebKit/WebKit/commit/0d5cacf19d716f8ff6ae8165316b3eaab1c8353c
Author: Basuke Suzuki <basuke.suzuki at sony.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderLayerBacking.h
Log Message:
-----------
Merge r276192 - Use WebKit macro to detect 64bit in RenderLayerBacking.h
https://bugs.webkit.org/show_bug.cgi?id=224707
Reviewed by Yusuke Suzuki.
There's no definition of __WORDSIZE in some environment. Also there's WebKit macro for that.
> warning: '__WORDSIZE' is not defined, evaluates to 0 [-Wundef]
> #if __WORDSIZE == 64 && PLATFORM(COCOA)
> ^
No test because it's compiler behavior.
* rendering/RenderLayerBacking.h:
Commit: d81fb554da08703dc513655aaf279c81d776f04f
https://github.com/WebKit/WebKit/commit/d81fb554da08703dc513655aaf279c81d776f04f
Author: Basuke Suzuki <basuke.suzuki at sony.com>
Date: 2021-04-29 (Thu, 29 Apr 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp
M Source/WebCore/crypto/openssl/CryptoKeyECOpenSSL.cpp
M Source/WebCore/crypto/openssl/CryptoKeyRSAOpenSSL.cpp
Log Message:
-----------
Merge r276167 - [PlayStation][OpenSSL] Remove warnings.
https://bugs.webkit.org/show_bug.cgi?id=224630
Reviewed by Don Olmstead.
There're two kinds of warnings in curl and openssl layer in our platform.
a) Unused param
b) '__WORDSIZE' is not defined.
warning: '__WORDSIZE' is not defined, evaluates to 0 [-Wundef]
^
No new tests because it's only for compilation issue.
* crypto/algorithms/CryptoAlgorithmAES_GCM.cpp:
(WebCore::CryptoAlgorithmAES_GCM::encrypt):
(WebCore::CryptoAlgorithmAES_GCM::decrypt):
* crypto/openssl/CryptoKeyECOpenSSL.cpp:
(WebCore::CryptoKeyEC::platformGeneratePair):
(WebCore::CryptoKeyEC::platformImportRaw):
(WebCore::CryptoKeyEC::platformImportJWKPublic):
(WebCore::CryptoKeyEC::platformImportJWKPrivate):
(WebCore::CryptoKeyEC::platformImportSpki):
(WebCore::CryptoKeyEC::platformImportPkcs8):
* crypto/openssl/CryptoKeyRSAOpenSSL.cpp:
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::generatePair):
(WebCore::CryptoKeyRSA::importSpki):
(WebCore::CryptoKeyRSA::importPkcs8):
Commit: 25551ee339ab6282a80059647dfb59170a62d90c
https://github.com/WebKit/WebKit/commit/25551ee339ab6282a80059647dfb59170a62d90c
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-05-04 (Tue, 04 May 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/audio/PlatformMediaSession.cpp
M Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h
Log Message:
-----------
Merge r276915 - [GTK] Build with VIDEO=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=225316
Patch by Philippe Normand <pnormand at igalia.com> on 2021-05-03
Reviewed by Adrian Perez de Castro.
* platform/audio/PlatformMediaSession.cpp:
(WebCore::isPlayingAudio): Guard against invalid media types, when video is disabled we can
safely return false here as well.
* platform/graphics/opengl/GraphicsContextGLOpenGL.h: Include what we use (UniqueRef).
Commit: 0f8f2f1cb3b53cd4a73308f6079bbfc3e0934040
https://github.com/WebKit/WebKit/commit/0f8f2f1cb3b53cd4a73308f6079bbfc3e0934040
Author: Jim Mason <jmason at ibinx.com>
Date: 2021-05-04 (Tue, 04 May 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/glib/IconDatabase.cpp
Log Message:
-----------
Merge r276954 - [GTK] segmentation fault in WebKit::IconDatabase::loadIconForPageURL
https://bugs.webkit.org/show_bug.cgi?id=225279
Patch by Jim Mason <jmason at ibinx.com> on 2021-05-04
Reviewed by Carlos Garcia Campos.
* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
Commit: e924b89fb1381eaceeec6c027ff55bf959a727ea
https://github.com/WebKit/WebKit/commit/e924b89fb1381eaceeec6c027ff55bf959a727ea
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-05-05 (Wed, 05 May 2021)
Changed paths:
M ChangeLog
M Source/WebCore/ChangeLog
M Source/WebCore/platform/network/soup/GUniquePtrSoup.h
M Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
M Source/cmake/OptionsGTK.cmake
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Merge r275759 - [GTK][WPE] Bump libsoup3 version to 2.99.3
https://bugs.webkit.org/show_bug.cgi?id=224362
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-04-09
Reviewed by Žan Doberšek.
.:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
Source/WebCore:
* platform/network/soup/GUniquePtrSoup.h:
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::platformSuggestedFilename const):
Commit: 0829853a45f5ec8d4720d8fcd27ca1019eb47d09
https://github.com/WebKit/WebKit/commit/0829853a45f5ec8d4720d8fcd27ca1019eb47d09
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-05-05 (Wed, 05 May 2021)
Changed paths:
M ChangeLog
M LayoutTests/ChangeLog
M Source/WebCore/ChangeLog
M Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
M Source/WebCore/platform/network/soup/SoupVersioning.h
M Source/cmake/OptionsGTK.cmake
M Source/cmake/OptionsWPE.cmake
M Tools/buildstream/ChangeLog
Log Message:
-----------
Merge r276429 - [GTK][WPE] Bump libsoup3 version to 2.99.4
https://bugs.webkit.org/show_bug.cgi?id=224925
Reviewed by Philippe Normand.
.:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Update to use the new API.
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::ResourceResponse):
* platform/network/soup/SoupVersioning.h:
(soup_message_get_tls_peer_certificate):
(soup_message_get_tls_peer_certificate_errors):
(soup_message_get_tls_certificate): Deleted.
(soup_message_get_tls_certificate_errors): Deleted.
Tools/buildstream:
* elements/sdk/libsoup3.bst:
LayoutTests:
Remove expectations for tests that should be passing now.
* platform/glib/TestExpectations:
Commit: 130b2269893106c2a2e5d7eeb6f4433dc22b79b4
https://github.com/WebKit/WebKit/commit/130b2269893106c2a2e5d7eeb6f4433dc22b79b4
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-05-05 (Wed, 05 May 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/PlatformGTK.cmake
Log Message:
-----------
Merge r276430 - [GTK] Build error: Couldn't find include 'Soup-2.4.gir'
https://bugs.webkit.org/show_bug.cgi?id=224926
Reviewed by Philippe Normand.
Use the right soup API version when generating the introspection.
* PlatformGTK.cmake:
Commit: ad2259a674fb00d3d237876944bf4bcc8029480e
https://github.com/WebKit/WebKit/commit/ad2259a674fb00d3d237876944bf4bcc8029480e
Author: Anders Jonsson <anders.jonsson at norsjovallen.se>
Date: 2021-05-05 (Wed, 05 May 2021)
Changed paths:
M Source/WebCore/platform/gtk/po/ChangeLog
M Source/WebCore/platform/gtk/po/sv.po
Log Message:
-----------
Merge r277005 - Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=225309
Patch by Anders Jonsson <anders.jonsson at norsjovallen.se> on 2021-05-04
Rubber-stamped by Carlos Garcia Campos.
* sv.po:
Commit: 6585534b4e2c352aaa94fb529cc78dd9846a3b24
https://github.com/WebKit/WebKit/commit/6585534b4e2c352aaa94fb529cc78dd9846a3b24
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-05-05 (Wed, 05 May 2021)
Changed paths:
M ChangeLog
M Source/cmake/WebKitFeatures.cmake
Log Message:
-----------
Merge r277015 - USE_64KB_PAGE_BLOCK build option is broken
https://bugs.webkit.org/show_bug.cgi?id=225393
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-05-05
Reviewed by Adrian Perez de Castro.
Call SET_AND_EXPOSE_TO_BUILD().
* Source/cmake/WebKitFeatures.cmake:
Commit: 59bd823f0e5145a1c7340edbac16c2ae6b296be5
https://github.com/WebKit/WebKit/commit/59bd823f0e5145a1c7340edbac16c2ae6b296be5
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-05-05 (Wed, 05 May 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/network/soup/CookieSoup.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp
Log Message:
-----------
Merge r277014 - [SOUP] Wrong cookie timestamp in case of long expire time
https://bugs.webkit.org/show_bug.cgi?id=225389
Reviewed by Adrian Perez de Castro.
Source/WebCore:
There's an overflow when converting the dates in both libsoup2 and libsoup3, but for two different reasons. In
the case of libsoup2 we are using an int for the conversion of milliseconds to seconds which is not enough. In
the case of libsoup3 we are passing the value in milliseconds to g_date_time_new_from_unix_utc() that expects
seconds.
* platform/network/soup/CookieSoup.cpp:
(WebCore::msToSoupDate): Use int64_t instead of int for the cast.
(WebCore::Cookie::toSoupCookie const): Convert the value to seconds.
Tools:
Add a test case.
* TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
(testCookieManagerLongExpires):
(beforeAll):
Commit: a10742bf75dd1c807d5e387bfb92aab3ac96f9da
https://github.com/WebKit/WebKit/commit/a10742bf75dd1c807d5e387bfb92aab3ac96f9da
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-05-06 (Thu, 06 May 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Log Message:
-----------
Merge r277088 - [GStreamer] Fallback to texture mapper video orientation handling when glvideoflip is not available
https://bugs.webkit.org/show_bug.cgi?id=225454
Patch by Philippe Normand <pnormand at igalia.com> on 2021-05-06
Reviewed by Xabier Rodriguez-Calvar.
r275412 introduced a new runtime dependency on gst-plugins-good's glvideoflip element, which
is not desirable for the 2.32 branch. This patch let's the player handle rotation tags if
the glvideoflip element wasn't found at runtime. Ideally we should probably not rely on
glvideoflip in the first place as it might induce a performance impact, to be handled in a
follow-up patch.
* platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
(webKitGLVideoSinkGetProperty):
(webkit_gl_video_sink_class_init):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):
Commit: b04edea04fddf0cdaf2284baa470c3f10001bbbf
https://github.com/WebKit/WebKit/commit/b04edea04fddf0cdaf2284baa470c3f10001bbbf
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-05-06 (Thu, 06 May 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp
M Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp
Log Message:
-----------
Merge r277100 - [WebAudio][GStreamer] socketpair leaks
https://bugs.webkit.org/show_bug.cgi?id=225463
Reviewed by Žan Doberšek.
* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer): Properly dispose of
the GStreamer pipeline and the resources it has hold on.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcChangeState): The ref returned by gst_buffer_pool_new() is transfer-full,
so we need to adopt it here.
Commit: d7dfebf122a8e6bbe5dd647b5fcc595e5b743121
https://github.com/WebKit/WebKit/commit/d7dfebf122a8e6bbe5dd647b5fcc595e5b743121
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-05-08 (Sat, 08 May 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/wpe/NEWS
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.1 release
.:
* Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
* wpe/NEWS: Add release notes for 2.32.1
Commit: 503f1729697fe9f0f37f11bc5e9d72993819985b
https://github.com/WebKit/WebKit/commit/503f1729697fe9f0f37f11bc5e9d72993819985b
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-05-10 (Mon, 10 May 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.1 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS: Add release notes for 2.32.1
Commit: 954612b4cc1d7f56b52d8b009d53676d1e989e84
https://github.com/WebKit/WebKit/commit/954612b4cc1d7f56b52d8b009d53676d1e989e84
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp
Log Message:
-----------
Merge r277177 - AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>
Reviewed by Sam Weinig.
Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.
* Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::createProcessor):
Commit: b5e031448bce451f41be59823d6d9377ba6b4197
https://github.com/WebKit/WebKit/commit/b5e031448bce451f41be59823d6d9377ba6b4197
Author: Žan Doberšek <zdobersek at igalia.com>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
Log Message:
-----------
Merge r277998 - [CoordinatedGraphics] Handle null native surface handle for surfaceless rendering
https://bugs.webkit.org/show_bug.cgi?id=226165
Patch by Zan Dobersek <zdobersek at igalia.com> on 2021-05-24
Reviewed by Philippe Normand.
During ThreadedCompositor initialization, a null native surface handle
would represent a surfaceless rendering target. Assuming corresponding
driver support for this behavior, the GL context creation would still
succeed and composition could be performed.
To support this behavior, the GL context is now spawned first, and if
successful, the scene is set as active. But in case of a null native
surface (i.e. surfaceless rendering), the painting has to be mirrored
by default because of the OpenGL coordinate system being the immediate
coordinate system inside which we end up working.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::createGLContext):
Commit: 6197c2796cdd1cd13363a5ebaf7808029b4edf15
https://github.com/WebKit/WebKit/commit/6197c2796cdd1cd13363a5ebaf7808029b4edf15
Author: Žan Doberšek <zdobersek at igalia.com>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/egl/GLContextEGL.cpp
Log Message:
-----------
Merge r277999 - GLContextEGL::swapBuffers() shouldn't do anything for Surfaceless contexts
https://bugs.webkit.org/show_bug.cgi?id=226164
Patch by Zan Dobersek <zdobersek at igalia.com> on 2021-05-24
Reviewed by Philippe Normand.
In case of a surfaceless GLContextEGL, the swapBuffers() method should
return early, avoiding an assert expecting a non-null EGLSurface (not
viable for surfaceless context) and a call to eglSwapBuffers(), which
on some drivers could still fail even when the surfaceless context
support is present and active.
* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::GLContextEGL::swapBuffers):
Commit: ca67162a5a501afc2bdc190b889dc79585d9aa7b
https://github.com/WebKit/WebKit/commit/ca67162a5a501afc2bdc190b889dc79585d9aa7b
Author: Kimmo Kinnunen <kkinnunen at apple.com>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/ThirdParty/ANGLE/ChangeLog
M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h
M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/FramebufferGL.cpp
M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
M Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
Log Message:
-----------
Merge r278152 - Cherry-pick ANGLE: D3D11: Skip blits if there is no intersection of dest areas
https://bugs.webkit.org/show_bug.cgi?id=225190
<rdar://77084155>
Patch by Kimmo Kinnunen <kkinnunen at apple.com> on 2021-05-27
Reviewed by David Kilzer.
Cherry-pick ANGLE commit b574643ef28c92fcea5122dd7a72acb42a514eed
Fixes a security issue on D3D11.
Potential a correctness issue on some OpenGL drivers.
No effect on Metal, but the nodiscard part is still useful.
Upstream description:
D3D11: Skip blits if there is no intersection of dest areas
Blit11 would clip the destination rectangle with the destination size
but ignore the result. gl::ClipRectangle returns false when the
rectangles do not intersect at all, indicating the blit can be skipped.
This could lead to an out-of-bounds write to the GPU memory for the
destination texture.
Mark ClipRectangle as nodiscard to prevent future issues.
* src/libANGLE/angletypes.h:
* src/libANGLE/renderer/d3d/d3d11/Blit11.cpp:
* src/libANGLE/renderer/gl/FramebufferGL.cpp:
(rx::FramebufferGL::clipSrcRegion):
* src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::updateScissor):
* src/libANGLE/renderer/vulkan/ContextVk.cpp:
(rx::ContextVk::updateScissor):
* src/tests/gl_tests/BlitFramebufferANGLETest.cpp:
(TEST_P):
Commit: bc6296ff3a15200809e25603d2bdd89e899f00ed
https://github.com/WebKit/WebKit/commit/bc6296ff3a15200809e25603d2bdd89e899f00ed
Author: Alexander Mikhaylenko <alexm at gnome.org>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp
Log Message:
-----------
Merge r278156 - Transient quarter display with a HiDPI /4k screen and a 200% scaling
https://bugs.webkit.org/show_bug.cgi?id=219202
Patch by Alexander Mikhaylenko <alexm at gnome.org> on 2021-05-27
Reviewed by Adrian Perez de Castro.
Set the root layer transformation before syncing animations and not after.
This way we avoid having the first frame use the wrong scale on hidpi.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
Commit: bf30281bb7f4293b56e8bf72cc9d36e1cc585111
https://github.com/WebKit/WebKit/commit/bf30281bb7f4293b56e8bf72cc9d36e1cc585111
Author: Daniel Kolesa <dkolesa at igalia.com>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
Log Message:
-----------
Merge r278157 - [JSC] Fix crash on 32-bit big endian systems.
https://bugs.webkit.org/show_bug.cgi?id=226264
Patch by Daniel Kolesa <dkolesa at igalia.com> on 2021-05-27
Reviewed by Caio Araujo Neponoceno de Lima.
This is an instance where properly offsetting was missed since
the issue was not present in 2.30 series and therefore not fixed
by r273104.
* llint/LowLevelInterpreter32_64.asm:
Commit: 5d28bf227d4b38f4c0539cd5afb3dd3753eedb84
https://github.com/WebKit/WebKit/commit/5d28bf227d4b38f4c0539cd5afb3dd3753eedb84
Author: Žan Doberšek <zdobersek at igalia.com>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/wpe/WPEView.cpp
Log Message:
-----------
Merge r278198 - [WPE] Correctly compute wheel event phase for 2D axis events
https://bugs.webkit.org/show_bug.cgi?id=226370
Patch by Zan Dobersek <zdobersek at igalia.com> on 2021-05-28
Reviewed by Adrian Perez de Castro.
2D-capable wpe_input_axis_event objects don't have usable axis and delta
values set on the base struct, but keep all that information on the more
detailed wpe_input_axis_2d_event struct.
For such events, the correct phase then has to be special-cased,
otherwise the default determination marks both axes as inactive and only
PhaseEnded events are dispatched into the engine.
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::m_backend):
Commit: 216c6d0969cabd7d0b03286d79909dbf6737b754
https://github.com/WebKit/WebKit/commit/216c6d0969cabd7d0b03286d79909dbf6737b754
Author: Alexander Mikhaylenko <alexm at gnome.org>
Date: 2021-06-28 (Mon, 28 Jun 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
Log Message:
-----------
Merge r278301 - [GTK] Try harder to find initial WebKitWebView size
https://bugs.webkit.org/show_bug.cgi?id=226320
Patch by Alexander Mikhaylenko <alexm at gnome.org> on 2021-06-01
Reviewed by Michael Catanzaro.
Currently we base the viewport size on the drawing area size. The
drawing area is created with an initial size based on the viewport
size, which will be (0, 0) because the drawing area is still null
by that point.
Then, later, during the widget allocation, the drawing area receives
its proper size.
There are 2 issues here. First, this approach guarantees that the
initial viewport size will always be (0, 0), and then there's no
guarantee the widget will be allocated any time soon - for example,
while GtkNotebook in GTK3 does allocate children that aren't currently
visible, GtkStack doesn't (and that means that GtkNotebook in GTK4 and
HdyTabView don't either). This leads to a situation where a page opened
in background will load with 0, 0 size and if a page depends on that,
it won't load correctly.
The first issue can be fixed by basing the viewport size on the view
allocation as well, and then if the widget isn't allocated, we instead
try to use the size of a parent as an estimation, so that the initial
size is at least not 0 even if not fully accurate.
See https://gitlab.gnome.org/GNOME/epiphany/-/issues/1532
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::viewSize):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseGetViewSize):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
Commit: ce0fb97ad819d68a9df4abdc1e7796433ab093cf
https://github.com/WebKit/WebKit/commit/ce0fb97ad819d68a9df4abdc1e7796433ab093cf
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp
M Source/WTF/ChangeLog
M Source/WTF/wtf/PlatformRegisters.h
Log Message:
-----------
Merge r278302 - [WPE][GTK] Support building against uClibc
https://bugs.webkit.org/show_bug.cgi?id=226244
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
* assembler/MacroAssemblerARM64.cpp:
(getauxval): Provide a fallback implementation of getauxval() for
systems which do not provide <sys/auxv.h>, like those using uClibc
as their C library.
Source/WTF:
* wtf/PlatformRegisters.h: Use the <sys/ucontext.h> header instead of
<ucontext.h>, which is enough to gain access to the type definitions
for CPU registers and is available on every libc. On the other hand,
uClibc does not have <ucontext.h>, so this fixes the build in that
case.
Commit: 9a107290f0b27db3041e2573832932b3e0b217b4
https://github.com/WebKit/WebKit/commit/9a107290f0b27db3041e2573832932b3e0b217b4
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/API/gtk/DropTargetGtk3.cpp
Log Message:
-----------
Merge r278761 - [GTK] Crash when dragging an account node above WebView
https://bugs.webkit.org/show_bug.cgi?id=226811
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-06-11
Reviewed by Adrian Perez de Castro.
When we receive empty drag data, this is indicated by length -1, not by 0.
* UIProcess/API/gtk/DropTargetGtk3.cpp:
(WebKit::DropTarget::dataReceived):
Commit: 8861871e8af74886adc046189a6e76966bf321be
https://github.com/WebKit/WebKit/commit/8861871e8af74886adc046189a6e76966bf321be
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp
Log Message:
-----------
Merge r278892 - [GStreamer] Another crash under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=225765
Patch by Philippe Normand <pnormand at igalia.com> on 2021-06-15
Reviewed by Adrian Perez de Castro.
Decodebin3 in GStreamer <= 1.16 does not respect user-supplied select-stream events. So we
need to relax the release assert for these versions. This bug was fixed in:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/b41b87522f59355bb21c001e9e2df96dc6956928
* platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):
Commit: c25469bb01a9f9242415e9dfeb414a9d6387fcbc
https://github.com/WebKit/WebKit/commit/c25469bb01a9f9242415e9dfeb414a9d6387fcbc
Author: Žan Doberšek <zdobersek at igalia.com>
Date: 2021-07-07 (Wed, 07 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/SourcesWPE.txt
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
R Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp
R Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h
A Source/WebKit/UIProcess/API/wpe/TouchGestureController.cpp
A Source/WebKit/UIProcess/API/wpe/TouchGestureController.h
M Source/WebKit/UIProcess/API/wpe/WPEView.cpp
M Source/WebKit/UIProcess/API/wpe/WPEView.h
Log Message:
-----------
Merge r279037 - [WPE] Rework touch-based gesture controller
https://bugs.webkit.org/show_bug.cgi?id=226456
Patch by Zan Dobersek <zdobersek at igalia.com> on 2021-06-18
Reviewed by Alejandro G. Castro.
Rename WPE's ScrollGestureController to TouchGestureController since now
it also handles production of touch-based click events.
TouchGestureController now internally manages all the related state,
tracking the touch interaction and determining whether it progresses
into a scrolling gesture or whether, upon finishing, it should be
translated into a simple click event.
In PageClientImpl, any unhandled event is pushed into
TouchGestureController and a variant of different outcomes is returned.
No-event result is ignored, and click or axis events are dispatched as
appropriate.
In WPEView, where the touch events arrive into the engine, we keep the
shortcut where touch events are piped directly into the controller if
said controller is already gesturing scrolling behavior. In that case
the touch events are not dispatched into the engine, with the exception
of touch-up events which are, to provide matching closure for the
touch-down events.
* SourcesWPE.txt:
* UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithTouchEvent):
* UIProcess/API/wpe/TouchGestureController.cpp: Renamed from Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp.
(WebKit::TouchGestureController::handleEvent):
* UIProcess/API/wpe/TouchGestureController.h: Renamed from Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h.
(WebKit::TouchGestureController::gesturedEvent const):
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::View):
(WKWPE::m_backend):
* UIProcess/API/wpe/WPEView.h:
(WKWPE::View::touchGestureController const):
(WKWPE::View::scrollGestureController const): Deleted.
Commit: 1facd3d0f452c69119a6b70815cf8dec4aba7208
https://github.com/WebKit/WebKit/commit/1facd3d0f452c69119a6b70815cf8dec4aba7208
Author: Alexander Mikhaylenko <alexm at gnome.org>
Date: 2021-07-08 (Thu, 08 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/generic/ScrollAnimatorGeneric.cpp
Log Message:
-----------
Merge r277539 - [GTK] REGRESSION: Kinetic scrolling on touchpad doesn't work with async scrolling off
https://bugs.webkit.org/show_bug.cgi?id=224182
Patch by Alexander Mikhaylenko <alexm at gnome.org> on 2021-05-15
Reviewed by Michael Catanzaro.
Don't clear the scroll history every time we scroll, that defeats the whole point of having
the scroll history.
* platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation):
Commit: aa22395100c9087a5fa7e9dc88415fd4812c3a5f
https://github.com/WebKit/WebKit/commit/aa22395100c9087a5fa7e9dc88415fd4812c3a5f
Author: Chris Lord <clord at igalia.com>
Date: 2021-07-08 (Thu, 08 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
Log Message:
-----------
Merge r277855 - [GTK] REGRESSION: Broken scrolling on element.io with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=222265
Reviewed by Carlos Garcia Campos.
Fix transform order for layer clipping in TextureMapperLayer.
No new tests.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildren):
Commit: 3447729fc24a3d73106360ae6c010596e7b7fb61
https://github.com/WebKit/WebKit/commit/3447729fc24a3d73106360ae6c010596e7b7fb61
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-07-08 (Thu, 08 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/UserAgentQuirks.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp
Log Message:
-----------
Merge r279039 - [MSE][GStreamer] Soundcloud serves MP4 audio with empty tfdt boxes
https://bugs.webkit.org/show_bug.cgi?id=191419
Patch by Philippe Normand <pnormand at igalia.com> on 2021-06-18
Reviewed by Michael Catanzaro.
Source/WebCore:
When MSE is used the player receives broken audio fragments, perhaps because the server
expects the client to repair them. Not much we can do about this on GStreamer side though,
so behave as a Chrome UserAgent and then MSE is not used, the player receives an MP3 stream.
* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):
Tools:
* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST): Add a test for the soundcloud quirk.
Commit: 4aa7c9ab2e0d34c2286bbf2c0eef25b66c66f517
https://github.com/WebKit/WebKit/commit/4aa7c9ab2e0d34c2286bbf2c0eef25b66c66f517
Author: Angelos Oikonomopoulos <angelos at igalia.com>
Date: 2021-07-08 (Thu, 08 Jul 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
Log Message:
-----------
Merge r279107 - Properly set numFPRs on ARM with NEON/VFP_V3_D32
https://bugs.webkit.org/show_bug.cgi?id=227212
Reviewed by Filip Pizlo.
Don't hardcode the number of FP regs on ARMv7 to 16; when targetting a
CPU with NEON or VFP_V3_d32, the number of FP regs is 32.
This also reverts the recent change to add an extra word to RegisterSet
which essentially covered up for this mismatch. The reason this bug only
manifested on certain compiler versions was that GCC 8.4/8.5 where built using
our buildroot infrastructure, whereas the other GCC versions we tested with
were debian system toolchains, targetting a lowest common denominator.
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::std::initializer_list<int>):
* jit/RegisterSet.h:
Commit: 502e7dd83f9d6eb245672b105d9937f225a5538d
https://github.com/WebKit/WebKit/commit/502e7dd83f9d6eb245672b105d9937f225a5538d
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-07-09 (Fri, 09 Jul 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.2 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS: Add release notes for 2.32.2
Commit: 19dca536e3e3d44b91f1ef2a90747f51eb5d3d91
https://github.com/WebKit/WebKit/commit/19dca536e3e3d44b91f1ef2a90747f51eb5d3d91
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-07-12 (Mon, 12 Jul 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/wpe/NEWS
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.2 release
.:
* Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
* wpe/NEWS: Add release notes for 2.32.2
Commit: c4f7e83f24b45ab6b9c67e9652bd43ca6316e12d
https://github.com/WebKit/WebKit/commit/c4f7e83f24b45ab6b9c67e9652bd43ca6316e12d
Author: Charlène Wendling <julianaito at posteo.jp>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h
Log Message:
-----------
Merge r275802 - Properly use CompletionHandler when USE_OPENGL_OR_ES is set to OFF
https://bugs.webkit.org/show_bug.cgi?id=224149
Patch by Charlène Wendling <julianaito at posteo.jp> on 2021-04-10
Reviewed by Fujii Hironori.
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
(WebKit::LayerTreeHost::forceRepaintAsync):
Commit: 11df472958e6ce7ee394974b7d211faf15f80d88
https://github.com/WebKit/WebKit/commit/11df472958e6ce7ee394974b7d211faf15f80d88
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/EventSender.h
M Source/WebCore/loader/ImageLoader.cpp
M Source/WebCore/loader/ImageLoader.h
Log Message:
-----------
Merge r274357 - Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis at igalia.com> on 2021-03-12
Reviewed by Ryosuke Niwa.
Cancel image loader events after first dispatch.
Also change EventSender to use WeakPtr.
* dom/EventSender.h:
(WebCore::EventSender<T>::dispatchEventSoon):
(WebCore::EventSender<T>::dispatchPendingEvents):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingErrorEvent):
* loader/ImageLoader.h:
Commit: 450b03ac49634797264236b7ea9077f28b7379f5
https://github.com/WebKit/WebKit/commit/450b03ac49634797264236b7ea9077f28b7379f5
Author: Myles C. Maxfield <mmaxfield at apple.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
Log Message:
-----------
Merge r274025 - CanvasRenderingContext2DBase::canDrawTextWithParams() needs to resolve styles before using the drawingContext
https://bugs.webkit.org/show_bug.cgi?id=221257
<rdar://problem/73878095>
Reviewed by Ryosuke Niwa.
Simply call fontProxy() (which internally resolves styles) before calling drawingContext().
Test: fast/text/canvas-synchronous-events.html
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::canDrawTextWithParams):
Commit: 7f632e661bf9b3d4fe14e116f3de4f1a35d51ed6
https://github.com/WebKit/WebKit/commit/7f632e661bf9b3d4fe14e116f3de4f1a35d51ed6
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp
M Tools/TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp
Log Message:
-----------
Merge r278548 - [GTK][WPE] Signal "window-object-cleared" not emitted unless frame js context is get before
https://bugs.webkit.org/show_bug.cgi?id=221771
Reviewed by Michael Catanzaro.
Source/WebKit:
This is because when FrameLoader::dispatchDidClearWindowObjectInWorld() is called, the JSWindowProxy for the
world hasn't been created yet, so it returns early. But we want to dispatch it always for worlds created by the
API, to ensure that WebKitScriptWorld::window-object-cleared is emmitted.
* WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: Implement globalObjectIsAvailableForFrame() to force the
creation of the JavaScript context for existing WebKitScriptWorlds.
Tools:
Update window-object-cleared test to check that the signal is emitted for the WebKitScriptWorld objects created
by the extension.
* TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
(UserMessageTest::sendMessage):
(UserMessageTest::viewUserMessageReceived):
(UserMessageTest::waitUntilViewMessagesReceived):
(UserMessageTest::waitUntilViewMessageReceived):
(testWebExtensionWindowObjectCleared):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
(windowObjectCleared):
(isolatedWorldWindowObjectCleared):
(webkit_web_extension_initialize_with_user_data):
Commit: bbb020fc10e7c6af31b38ba99b18c353bbd2306a
https://github.com/WebKit/WebKit/commit/bbb020fc10e7c6af31b38ba99b18c353bbd2306a
Author: Philippe Normand <pnormand at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Log Message:
-----------
Merge r279873 - [GStreamer] Allow runtime opt-out of GL rendering
https://bugs.webkit.org/show_bug.cgi?id=227873
Patch by Philippe Normand <pnormand at igalia.com> on 2021-07-13
Reviewed by Xabier Rodriguez-Calvar.
In some cases GL rendering is not really useful, such as on machines without GPU. In those
cases currently Mesa's llvmpipe is used, introducing CPU and RAM usage increase compared to
the non-gl rendering path. For these cases the user can set a new env var,
WEBKIT_GST_DISABLE_GL_SINK=1, allowing the player to use the Cairo sink.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):
Commit: 29a19cefddb5a772f1cc950e2ab1325343cdf73a
https://github.com/WebKit/WebKit/commit/29a19cefddb5a772f1cc950e2ab1325343cdf73a
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
M Source/WebKit/UIProcess/ProvisionalPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Merge r279983 - [GTK][WPE] PSON: accessibility doesn't work after a cross site navigation
https://bugs.webkit.org/show_bug.cgi?id=228021
Reviewed by Adrian Perez de Castro.
The provisional page is not handling the BindAccessibilityTree message and we never embed the new web process
plug into the UI process socket.
* UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::bindAccessibilityTree): Save the a11y plug ID.
(WebKit::ProvisionalPageProxy::didReceiveMessage): Handle BindAccessibilityTree message.
* UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::accessibilityPlugID): Returns the a11y plug ID.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::swapToProvisionalPage): If the provisional page has a plug ID, bind the a11y tree.
Commit: b70f94d8e824cae9ffc84865a8afbf9e2779fcef
https://github.com/WebKit/WebKit/commit/b70f94d8e824cae9ffc84865a8afbf9e2779fcef
Author: Victor Jaquez <vjaquez at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp
Log Message:
-----------
Merge r280074 - [GTK][WPE] Fix compilation when ATK is not used
https://bugs.webkit.org/show_bug.cgi?id=228077
Reviewed by Carlos Garcia Campos.
Guard ATK only inside implementations, so the code is more readable.
Also changed guard from ATK to GTK platform showEmojiPicker().
No new tests needed.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::bindAccessibilityTree):
Commit: c13219119340108721bd12ec3ec0217bf0238526
https://github.com/WebKit/WebKit/commit/c13219119340108721bd12ec3ec0217bf0238526
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/EventSender.h
Log Message:
-----------
Merge r274403 - Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis at igalia.com> on 2021-03-14
Reviewed by Darin Adler.
Address post review comments.
* dom/EventSender.h:
(WebCore::EventSender<T>::dispatchPendingEvents):
Commit: 6c521fecb994a4bc98f676a0f181566dc75932c8
https://github.com/WebKit/WebKit/commit/6c521fecb994a4bc98f676a0f181566dc75932c8
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-07-21 (Wed, 21 Jul 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp
M Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp
M Source/WebKit/UIProcess/WebCookieManagerProxy.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
M Source/WebKit/UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp
M Source/WebKit/UIProcess/soup/WebCookieManagerProxySoup.cpp
Log Message:
-----------
Merge r280128 - REGRESSION(r267763): [SOUP] After network process crash, all cookies are lost until browser is restarted
https://bugs.webkit.org/show_bug.cgi?id=228128
Reviewed by Adrian Perez de Castro.
Cookies configuration is no longer stored to be sent again to the new network process after a crash.
* NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const): Encode cookieAcceptPolicy.
(WebKit::NetworkSessionCreationParameters::decode): Decode cookieAcceptPolicy.
* NetworkProcess/NetworkSessionCreationParameters.h: Add cookieAcceptPolicy.
* NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::NetworkSessionSoup): Set cookie accept policy on NetworkStorageSession.
* UIProcess/API/glib/WebKitCookieManager.cpp:
(webkit_cookie_manager_set_persistent_storage): Use WebsiteDataStore API to cache the given values.
(webkit_cookie_manager_set_accept_policy): Ditto.
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebsiteData/WebsiteDataStore.h:
* UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp:
(WebKit::WebsiteDataStore::platformSetNetworkParameters): Set cached cookie settings to network session parameters.
(WebKit::WebsiteDataStore::setCookiePersistentStorage): Cache the given value and notify the cookie manager.
(WebKit::WebsiteDataStore::setHTTPCookieAcceptPolicy): Ditto.
* UIProcess/soup/WebCookieManagerProxySoup.cpp:
(WebKit::WebCookieManagerProxy::getCookiePersistentStorage const): Deleted.
Commit: 91f394e1498355a77abec130cb9a632cc2ccecb9
https://github.com/WebKit/WebKit/commit/91f394e1498355a77abec130cb9a632cc2ccecb9
Author: Antoine Quint <graouts at webkit.org>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/animation/KeyframeEffect.cpp
Log Message:
-----------
Merge r273752 - Crash under KeyframeEffect::setTarget()
https://bugs.webkit.org/show_bug.cgi?id=222591
<rdar://problem/74281295>
Reviewed by David Kilzer.
The Styleable returned by targetStyleable() holds a reference to the Element that at
this point is m_target (assuming it's non-null). However, once we set the new value
for m_target, if the only reference to the original target was held by this KeyframeEffect,
then that element will be deallocated and by the time we call didChangeTargetStyleable()
it will be gone.
To address, we create a RefPtr<Element> in the scope of KeyframeEffect::setTarget()
protecting the Styleable's element while didChangeTargetStyleable() is called.
* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setTarget):
Commit: 6d078750e2775035a08b8581cad542b5ea550c30
https://github.com/WebKit/WebKit/commit/6d078750e2775035a08b8581cad542b5ea550c30
Author: Mark Lam <mark.lam at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
Log Message:
-----------
Merge r276524 - Fix B3 strength reduction for shl.
https://bugs.webkit.org/show_bug.cgi?id=224913
rdar://76978874
Reviewed by Michael Saboff.
If the operation can potentially either underflow or overflow, then the result
can be any value.
* b3/B3ReduceStrength.cpp:
Commit: 2945c6f9b570e2ac6737e55a5795d8f9bdd0a620
https://github.com/WebKit/WebKit/commit/2945c6f9b570e2ac6737e55a5795d8f9bdd0a620
Author: Michael Saboff <msaboff at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/yarr/YarrInterpreter.cpp
Log Message:
-----------
Merge r276527 - [YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983
Reviewed by Mark Lam.
When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.
* yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::matchParentheses):
(JSC::Yarr::Interpreter::backtrackParentheses):
Commit: 7aa478106897fae939061a7af2d0c1124226473a
https://github.com/WebKit/WebKit/commit/7aa478106897fae939061a7af2d0c1124226473a
Author: Youenn Fablet <youennf at gmail.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M LayoutTests/imported/w3c/ChangeLog
M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.js
M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js
M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt
M Source/WTF/ChangeLog
M Source/WTF/wtf/URL.cpp
Log Message:
-----------
Merge r275831 - Block loading for port 10080
https://bugs.webkit.org/show_bug.cgi?id=224432
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
* web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
* web-platform-tests/fetch/api/request/request-bad-port.any.js:
* web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
* web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
* web-platform-tests/websockets/Create-blocked-port.any.js:
* web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:
Source/WTF:
Follow Chrome and Firefox by blocking port 10080.
* wtf/URL.cpp:
(WTF::portAllowed):
Commit: 9faf051fb99756e9ca8aa2bee50511f5aaaf5f60
https://github.com/WebKit/WebKit/commit/9faf051fb99756e9ca8aa2bee50511f5aaaf5f60
Author: Brent Fulgham <bfulgham at webkit.org>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/fast/loader/cancel-load-during-port-block-timer-expected.txt
M LayoutTests/http/tests/cache/cancel-during-failure-crash-expected.txt
M LayoutTests/http/tests/preload/download_resources_from_invalid_headers-expected.txt
M LayoutTests/http/tests/preload/resources/nph-invalid_resources_from_header.pl
M LayoutTests/http/tests/security/blocked-on-redirect-expected.txt
A LayoutTests/http/tests/security/form-blocked-port-expected.txt
A LayoutTests/http/tests/security/form-blocked-port.html
M LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt
M LayoutTests/http/tests/xmlhttprequest/redirect-cross-origin-2-expected.txt
M LayoutTests/http/tests/xmlhttprequest/redirect-cross-origin-expected.txt
M LayoutTests/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt
M LayoutTests/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post.html
M LayoutTests/http/tests/xmlhttprequest/simple-cross-origin-denied-events.html
M LayoutTests/http/wpt/beacon/beacon-async-error-logging-expected.txt
M LayoutTests/http/wpt/beacon/beacon-async-error-logging.html
M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt
A LayoutTests/platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt
A LayoutTests/platform/mac-wk1/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt
A LayoutTests/platform/win/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt
A LayoutTests/platform/win/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt
M LayoutTests/platform/wk2/http/tests/security/blocked-on-redirect-expected.txt
M Source/WebCore/ChangeLog
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/loader/DocumentLoader.cpp
M Source/WebCore/loader/FrameLoader.cpp
M Source/WebCore/loader/FrameLoader.h
M Source/WebCore/loader/PingLoader.cpp
M Source/WebCore/loader/ResourceLoader.cpp
M Source/WebCore/loader/SubframeLoader.cpp
M Source/WebCore/loader/SubresourceLoader.cpp
M Source/WebCore/loader/cache/CachedResourceLoader.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm
Log Message:
-----------
Merge r276193 - Perform port blocking earlier in the load
https://bugs.webkit.org/show_bug.cgi?id=224525
<rdar://problem/75440591>
Reviewed by Darin Adler.
Source/WebCore:
WebKit blocks loads to URLs with any of the prohibited ports defined in
the engine. This blocking happens late in the load process, allowing
connections to be made (and observed). Instead, we should stop the load
early, at the same time we perform other checks.
Test: http/tests/security/form-blocked-port.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isSafeToLoadURL): Add a check for prohibited ports,
and block (with relevant logging) if a load to a denied port is attempted.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadFrameRequest): Ditto.
(WebCore::FrameLoader::reportBlockedLoadFailed): Ditto.
* loader/FrameLoader.h:
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage): Ditto.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::init): Ditto.
* loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::pluginIsLoadable): Ditto.
(WebCore::FrameLoader::SubframeLoader::loadSubframe): Ditto.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest): Ditto.
(WebCore::CachedResourceLoader::canRequestAfterRedirection const): Ditto.
Tools:
Update URLScheme test to use a non-prohibited port for the test. Tests of
failed fetches are already handled in WPT and other tests, so using a valid
port here should continue to be a valid test.
* TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
(-[FrameSchemeHandler webView:startURLSchemeTask:]): Use allowed port or the test
instead of 123.
LayoutTests:
WebKit blocks loads to URLs with any of the prohibited ports defined in
the engine. This blocking happens late in the load process, allowing
connections to be made (and observed). Instead, we should stop the load
early, at the same time we perform other checks.
Note: The fact that we now block loads earlier means that we do not fire
'willSendRequestForFrame' for blocked ports, so WebKitTestRunner no longer
outputs a message to stdout. Those errors are reported in the JS console,
but since some test paths are specified to always output JS console messages
to stderrr (for example the WPT tests), we have to revise out test expectations
for a few cases.
* fast/loader/cancel-load-during-port-block-timer.html: Revised expectation to reflect new console error message.
* http/tests/cache/cancel-during-failure-crash-expected.txt: Ditto.
* http/tests/preload/download_resources_from_invalid_headers-expected.txt: Update to reflect a preflight is not executed
for a blocked port.
* http/tests/preload/resources/nph-invalid_resources_from_header.pl: Update to reflect that we do not preload
from restricted ports.
* http/tests/security/blocked-on-redirect-expected.txt: Revised expectation to match revised error message.
* http/tests/security/form-blocked-port.html: Added.
* http/tests/security/form-blocked-port-expected.txt: Added.
* http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt: Revised expectation for revised error message.
* http/tests/xmlhttprequest/redirect-cross-origin-2-expected.txt: Ditto.
* http/tests/xmlhttprequest/redirect-cross-origin-expected.txt: Ditto.
* http/tests/xmlhttprequest/simple-cross-origin-denied-events.html: Instead of using a port WebKit blocks (7), use one that
is not blocked but is unlikely to be active (as originally intended). This retains the expected test behavior since we now
block loads to restricted ports earlier in the load process.
* http/tests/xmlhttprequest/simple-cross-origin-denied-events-post.html: Ditto.
* http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Update test output to reflect that we
are attempting to load from port 8 instead of port 7.
* http/wpt/beacon/beacon-async-error-logging-expected.txt: Ditto.
* http/wpt/beacon/beacon-async-error-logging.html: Update to reflect a preflight is not executed
for a blocked port.
* imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt: Since we block before executing the load,
TestRunner no longer outputs an error message to stdout. Instead, they appear in stderr (since all 'wpt' tests are marked
to dump console.log output to stderr).
* imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt: Ditto.
* platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt: Revise to reflect change in console
logging (the functional test results are identical).
* platform/mac-wk1/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Ditto.
* platform/win/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt: Ditto.
* platform/win/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Ditto.
* platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Ditto.
Commit: 6c32785595fb31c681336d3fccb6ad05f5e61bd5
https://github.com/WebKit/WebKit/commit/6c32785595fb31c681336d3fccb6ad05f5e61bd5
Author: Diego Pino Garcia <dpino at igalia.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/glib/TestExpectations
A LayoutTests/platform/glib/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt
Log Message:
-----------
Merge r276215 - [GLIB] Unreviewed test gardening. Emit new baseline after r276193.
* platform/glib/TestExpectations:
* platform/glib/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Added.
Commit: 8c777b81e8b45838f012a4a40b3ce950c5ad55d4
https://github.com/WebKit/WebKit/commit/8c777b81e8b45838f012a4a40b3ce950c5ad55d4
Author: Diego Pino Garcia <dpino at igalia.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/gtk/TestExpectations
A LayoutTests/platform/gtk/security/block-test-expected.txt
M LayoutTests/platform/wpe/security/block-test-expected.txt
Log Message:
-----------
Merge r276289 - [GTK][WPE] Unreviewed test gardening. Emit new port baselines after r276193.
* platform/gtk/TestExpectations:
* platform/gtk/security/block-test-expected.txt: Added.
* platform/wpe/security/block-test-expected.txt:
Commit: 5a8580a46ffd3d263b867e88e0724c971b78b209
https://github.com/WebKit/WebKit/commit/5a8580a46ffd3d263b867e88e0724c971b78b209
Author: Brent Fulgham <bfulgham at webkit.org>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/loader/DocumentLoader.cpp
Log Message:
-----------
Merge r276206 - Perform port blocking earlier in the load
https://bugs.webkit.org/show_bug.cgi?id=224525
<rdar://problem/75440591>
Unreviewed follow-up (suggested by David Kilzer)
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest): Restore an m_frame nullptr check.,
Commit: ccd050cba98b32642c0343bef78c7815f851266e
https://github.com/WebKit/WebKit/commit/ccd050cba98b32642c0343bef78c7815f851266e
Author: Said Abou-Hallawa <sabouhallawa at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/svg/graphics/SVGImage.cpp
Log Message:
-----------
Merge r276611 - Remove redundant frameDetached() from the SVGImage destructor
https://bugs.webkit.org/show_bug.cgi?id=221616
<rdar://problem/74149106>
Reviewed by Chris Dumez.
SVGImage was originally written such that it has two separate objects:
a page and a frame; see https://trac.webkit.org/r18470. So it made sense
at that time to clean up the page and the frame separately. The Frame
was cleaned up by telling the frame's loader that the frameDetached().
This code is not necessary right now since the page owns the main frame.
And its destructor recursively detaches itself from all the frames.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::~SVGImage):
Commit: 916cafa2a594dffdb5c76967ac0eb627eadf80cf
https://github.com/WebKit/WebKit/commit/916cafa2a594dffdb5c76967ac0eb627eadf80cf
Author: Brent Fulgham <bfulgham at webkit.org>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/loader/DocumentLoader.cpp
Log Message:
-----------
Merge r278166 - Pass frame ref during navigationPolicyCompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=226268
<rdar://problem/78512383>
Reviewed by Ryosuke Niwa.
Pass the active frame to the navigationPolicyCompletionHandler lambda as a Ref to
ensure it is kept alive during the policy check and subsequent steps.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
Commit: d5840f3d7b23fd5f875bb3fa268dcbb0bb3a9306
https://github.com/WebKit/WebKit/commit/d5840f3d7b23fd5f875bb3fa268dcbb0bb3a9306
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Element.cpp
M Source/WebCore/page/EventHandler.cpp
M Source/WebCore/page/PointerLockController.cpp
M Source/WebCore/page/Quirks.cpp
Log Message:
-----------
Merge r278964 - Protect Element before calling dispatchMouseEvent() on it
https://bugs.webkit.org/show_bug.cgi?id=226767
<rdar://problem/79009112>
Reviewed by Ryosuke Niwa.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::dispatchMouseEvent):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::dispatchLockedMouseEvent):
* page/Quirks.cpp:
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
Commit: 8695411bfd15fa11d630b788a58a57cf4e19827f
https://github.com/WebKit/WebKit/commit/8695411bfd15fa11d630b788a58a57cf4e19827f
Author: Keith Miller <keith_miller at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/bytecode/CodeBlock.cpp
M Source/JavaScriptCore/bytecode/CodeBlock.h
M Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h
M Source/JavaScriptCore/bytecode/UnlinkedCodeBlockGenerator.h
M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
M Source/JavaScriptCore/bytecompiler/BytecodeGeneratorBaseInlines.h
M Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
M Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
M Source/JavaScriptCore/ftl/FTLOSREntry.cpp
M Source/JavaScriptCore/interpreter/CallFrameClosure.h
M Source/JavaScriptCore/interpreter/ProtoCallFrameInlines.h
M Source/JavaScriptCore/jit/JIT.cpp
M Source/JavaScriptCore/runtime/CommonSlowPaths.h
M Source/JavaScriptCore/tools/VMInspector.cpp
M Source/JavaScriptCore/wasm/WasmFunctionCodeBlock.h
M Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp
Log Message:
-----------
Merge r276609 - numCalleeLocals, numParameters, and numVars should be unsigned
https://bugs.webkit.org/show_bug.cgi?id=224995
Patch by Keith Miller <keith_miller at apple.com> on 2021-04-26
Reviewed by Mark Lam.
All of the various CodeBlock classes currently have the
numCalleeLocals and numVars marked as ints. I believe this is just
a historical artifact or because VirtualRegister's offset is an
int to make handling constants easier. Regardless, it's a bit
strange to not handle the sign conversion at the point of
comparison between a VirtualRegister offset and the local/var
count. This doesn't completely fix every place we use ints for
these values but starts on the right track. Lastly, I also added
some Check<unsigned>s to the wasm parser for sanity checking.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setNumParameters):
(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::numParameters const):
(JSC::CodeBlock::numberOfArgumentsToSkip const):
(JSC::CodeBlock::numCalleeLocals const):
(JSC::CodeBlock::numVars const):
(JSC::CodeBlock::numTmps const):
(JSC::CodeBlock::addressOfNumParameters):
(JSC::CodeBlock::isTemporaryRegister):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::numCalleeLocals const):
(JSC::UnlinkedCodeBlock::numVars const):
* bytecode/UnlinkedCodeBlockGenerator.h:
(JSC::UnlinkedCodeBlockGenerator::numCalleeLocals const):
(JSC::UnlinkedCodeBlockGenerator::numVars const):
(JSC::UnlinkedCodeBlockGenerator::setNumCalleeLocals):
(JSC::UnlinkedCodeBlockGenerator::setNumVars):
(JSC::UnlinkedCodeBlockGenerator::setNumParameters):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
* bytecompiler/BytecodeGeneratorBaseInlines.h:
(JSC::BytecodeGeneratorBase<Traits>::newRegister):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
(JSC::DFG::ByteCodeParser::inliningCost):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGOSREntrypointCreationPhase.cpp:
(JSC::DFG::OSREntrypointCreationPhase::run):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
* ftl/FTLOSREntry.cpp:
(JSC::FTL::prepareOSREntry):
* interpreter/CallFrameClosure.h:
* interpreter/ProtoCallFrameInlines.h:
(JSC::ProtoCallFrame::init):
* jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
* runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::numberOfStackPaddingSlots):
(JSC::CommonSlowPaths::numberOfStackPaddingSlotsWithExtraSlots):
* wasm/WasmFunctionCodeBlock.h:
(JSC::Wasm::FunctionCodeBlock::numVars const):
(JSC::Wasm::FunctionCodeBlock::numCalleeLocals const):
(JSC::Wasm::FunctionCodeBlock::setNumVars):
(JSC::Wasm::FunctionCodeBlock::setNumCalleeLocals):
* wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::push):
(JSC::Wasm::LLIntGenerator::getDropKeepCount):
(JSC::Wasm::LLIntGenerator::walkExpressionStack):
(JSC::Wasm::LLIntGenerator::checkConsistency):
(JSC::Wasm::LLIntGenerator::materializeConstantsAndLocals):
(JSC::Wasm::LLIntGenerator::splitStack):
(JSC::Wasm::LLIntGenerator::finalize):
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::addLoop):
(JSC::Wasm::LLIntGenerator::addTopLevel):
(JSC::Wasm::LLIntGenerator::addBlock):
(JSC::Wasm::LLIntGenerator::addIf):
(JSC::Wasm::LLIntGenerator::addElseToUnreachable):
Commit: cd546c9b5091a8dc11af79ecd93fba3649a8a98b
https://github.com/WebKit/WebKit/commit/cd546c9b5091a8dc11af79ecd93fba3649a8a98b
Author: Saam Barati <sbarati at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M JSTests/ChangeLog
A JSTests/stress/short-circuit-read-modify-should-use-the-write-virtual-registers.js
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/bytecode/BytecodeDumper.cpp
M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
Log Message:
-----------
Merge r278578 - Short circuit read modify write nodes emit byte code that uses the wrong locals
https://bugs.webkit.org/show_bug.cgi?id=226576
<rdar://problem/78810362>
Reviewed by Yusuke Suzuki.
JSTests:
* stress/short-circuit-read-modify-should-use-the-write-virtual-registers.js: Added.
(eval):
Source/JavaScriptCore:
It's never a good idea to use the wrong local :-)
This patch also adds support for dumping predecessors of basic blocks
in the bytecode dump.
* bytecode/BytecodeDumper.cpp:
(JSC::CodeBlockBytecodeDumper<Block>::dumpGraph):
* bytecompiler/NodesCodegen.cpp:
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):
(JSC::ShortCircuitReadModifyDotNode::emitBytecode):
(JSC::ShortCircuitReadModifyBracketNode::emitBytecode):
Commit: 8637834e7d555e1928240d39cde9f644a032a62e
https://github.com/WebKit/WebKit/commit/8637834e7d555e1928240d39cde9f644a032a62e
Author: Saam Barati <sbarati at apple.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M JSTests/ChangeLog
A JSTests/stress/short-circuit-read-modify-write-cant-write-dst-before-tdz-check.js
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
Log Message:
-----------
Merge r278819 - https://bugs.webkit.org/show_bug.cgi?id=226576
<rdar://problem/78810362>
Reviewed by Yusuke Suzuki.
JSTests:
* stress/short-circuit-read-modify-write-cant-write-dst-before-tdz-check.js: Added.
(let.result.eval.try.captureV):
(catch):
Source/JavaScriptCore:
ShortCircuitReadModifyResolveNode can't emit a value into
its result until after it emits a TDZ check. We were temporarily
storing the result of the get_from_scope into the dst. Then
we'd emit the TDZ check. The TDZ check can throw, and it could
lead to us returning TDZ from the eval itself. Instead, we need
to use a temporary to emit a TDZ check on. Only after the TDZ check
passes can we move the temporary into the result.
* bytecompiler/NodesCodegen.cpp:
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):
Commit: 8eccd0c1866f4ef329bcc445ab60706f193230cc
https://github.com/WebKit/WebKit/commit/8eccd0c1866f4ef329bcc445ab60706f193230cc
Author: Youenn Fablet <youennf at gmail.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/mac-wk1/TestExpectations
M LayoutTests/platform/win/TestExpectations
M Source/WebCore/ChangeLog
M Source/WebCore/fileapi/BlobURL.cpp
M Source/WebCore/fileapi/BlobURL.h
M Source/WebCore/fileapi/ThreadableBlobRegistry.cpp
M Source/WebCore/page/SecurityOrigin.cpp
M Source/WebCore/page/csp/ContentSecurityPolicy.cpp
M Source/WebCore/page/csp/ContentSecurityPolicy.h
M Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp
Log Message:
-----------
Merge r276230 - Blob URLs should use for their owner origin for CSP checks
https://bugs.webkit.org/show_bug.cgi?id=224535
<rdar://76458106>
Reviewed by Alex Christensen.
Source/WebCore:
Before the patch, we were checking blob origin directly with ancestors.
As per https://w3c.github.io/webappsec-csp/#match-url-to-source-expression step 4.1,
we need to get the URL origin, which by spec is the origin of the blob creator.
We only do this for navigation loads as script loads should be kept the current way, as a cross-site scripting protection,
and to remain compatible with other browsers.
Make some refactoring to add helper routines to get origin and secure context state of blob URLs in BlobURL.
Make use of it in MixedContentChecker as a refactoring.
Make use of the helper routine in ContentSecurityPolicySource::matches to fix the bug.
Test: http/tests/security/frame-src-and-blob-download.https.html
* fileapi/BlobURL.cpp:
(WebCore::blobOwner):
(WebCore::BlobURL::getOriginURL):
(WebCore::BlobURL::isSecureBlobURL):
* fileapi/BlobURL.h:
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::isBlobURLContainsNullOrigin):
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::isMixedContent):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::isSecure):
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::urlMatchesSelf const):
* page/csp/ContentSecurityPolicy.h:
* page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::matches const):
LayoutTests:
* http/tests/security/frame-src-and-blob-download.https-expected.txt: Added.
* http/tests/security/frame-src-and-blob-download.https.html:
* http/tests/security/resources/frame-src-and-blob-download-frame.html: Added.
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:
Commit: d5f68004ec37e33a0a6f806bd1edf9d316cb30c2
https://github.com/WebKit/WebKit/commit/d5f68004ec37e33a0a6f806bd1edf9d316cb30c2
Author: Youenn Fablet <youennf at gmail.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/http/tests/security/resources/sandbox-iframe-and-blob-frame.html
A LayoutTests/http/tests/security/sandbox-iframe-and-blob.https-expected.txt
A LayoutTests/http/tests/security/sandbox-iframe-and-blob.https.html
M LayoutTests/platform/win/TestExpectations
M Source/WebCore/ChangeLog
M Source/WebCore/loader/PolicyChecker.cpp
Log Message:
-----------
Merge r276012 - REGRESSION(Safari 14): iframe with blob url does not work with sandboxing
https://bugs.webkit.org/show_bug.cgi?id=222312
<rdar://problem/74927624>
Reviewed by Chris Dumez.
Source/WebCore:
In https://trac.webkit.org/r275884, we correctly compute whether a blob is to be considered secure or not.
For that, we need to have the blob URL registered with its document origin.
Update PolicyChecker to properly register the temporoary blob URL with its document origin.
Test: http/tests/security/sandbox-iframe-and-blob.https.html
* loader/PolicyChecker.cpp:
(WebCore::FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
LayoutTests:
* http/tests/security/resources/sandbox-iframe-and-blob-frame.html: Added.
* http/tests/security/sandbox-iframe-and-blob.https-expected.txt: Added.
* http/tests/security/sandbox-iframe-and-blob.https.html: Added.
* platform/win/TestExpectations:
Commit: ce299e02a826b4365d7d144619976685fb22e318
https://github.com/WebKit/WebKit/commit/ce299e02a826b4365d7d144619976685fb22e318
Author: Youenn Fablet <youennf at gmail.com>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/loader/PolicyChecker.cpp
Log Message:
-----------
Merge r276352 - Use BlobURL::getOriginURL in more places
https://bugs.webkit.org/show_bug.cgi?id=224857
Reviewed by Alex Christensen.
Covered by existing tests.
* loader/PolicyChecker.cpp:
(WebCore::FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
Commit: aeb23823585ff28990bd717429f6581e74ea9943
https://github.com/WebKit/WebKit/commit/aeb23823585ff28990bd717429f6581e74ea9943
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-07-23 (Fri, 23 Jul 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.3 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS: Add release notes for 2.32.3
Commit: fe9c1786315e2e4a9f743b8bfa77a995f97309fb
https://github.com/WebKit/WebKit/commit/fe9c1786315e2e4a9f743b8bfa77a995f97309fb
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-07-26 (Mon, 26 Jul 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/wpe/NEWS
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.3 release
.:
* Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
* wpe/NEWS: Add release notes for 2.32.3
Commit: 324f1849a019a4d7e833a1697b08ff828ca29855
https://github.com/WebKit/WebKit/commit/324f1849a019a4d7e833a1697b08ff828ca29855
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-08-09 (Mon, 09 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/xdg/MIMETypeRegistryXdg.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp
A Tools/TestWebKitAPI/Tests/WebKitGLib/resources/text
Log Message:
-----------
Merge r280422 - [WPE][GTK] .asc file extension is appended to filename of text/plain downloads
https://bugs.webkit.org/show_bug.cgi?id=228566
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-07-29
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Our MIMETypeRegistry::preferredExtensionForMIMEType returns "asc" for text/plain, possibly
because "asc" sorts alphabetically ahead of all other possible file extensions for
text/plain, and we just pick the first one. So if the text file does not contain any file
extension, we give it a file extension for a GPG signature. Ouch.
I don't know how to fix it, but we don't need to, because we don't really want to append any
file extension for text/plain anyway. That's just annoying. If I download a file named
"backtrace" then I don't want it renamed to "backtrace.txt". That would be expected on
Windows, but certainly not from WebKitGTK. So I think it's reasonable to have a special case
for text/plain.
* platform/xdg/MIMETypeRegistryXdg.cpp:
(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):
Tools:
* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(serverCallback):
(testDownloadTextPlainMIMEType):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/resources/text: Added.
Commit: d07857ec0bd77ffc3eeab5169a15da0a1f39ea44
https://github.com/WebKit/WebKit/commit/d07857ec0bd77ffc3eeab5169a15da0a1f39ea44
Author: Mark Lam <mark.lam at apple.com>
Date: 2021-08-09 (Mon, 09 Aug 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/assembler/ARM64Assembler.h
M Source/JavaScriptCore/assembler/AssemblerCommon.h
M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
M Source/JavaScriptCore/assembler/testmasm.cpp
M Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp
M Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h
Log Message:
-----------
Merge r278856 - Add ldp and stp support for FP registers, plus some bug fixes.
https://bugs.webkit.org/show_bug.cgi?id=226998
rdar://79313717
Reviewed by Robin Morisset.
This patch does the following:
1. Add ldp and stp support for FP registers.
This simply entails providing wrappers that take FPRegisterID and passing true
for the V bit to the underlying loadStoreRegisterPairXXX encoding function.
V is for vector (aka floating point). This will cause bit 26 in the instruction
to be set indicating that it's loading / storing floating point registers.
2. Add ARM64 disassembler support ldp and stp for FP registers.
This includes fixing A64DOpcodeLoadStoreRegisterPair::mask to not exclude the
FP versions of the instructions.
3. Add ARM64Assembler query methods for determining if an immediate is encodable
as the signed 12 bit immediate of ldp and stp instructions.
4. Fix ldp and stp offset form to take an int instead of an unsigned. The
immediate it takes is a 12-bit signed int, not unsigned.
5. In loadStoreRegisterPairXXX encoding functions used by the forms of ldp and stp,
RELEASE_ASSERT that the passed in immediate is encodable. Unlike ldur / stur,
there is no form of ldp / stp that takes the offset in a register that can be
used as a fail over. Hence, if the immediate is not encodable, this is a
non-recoverable event. The client is responsible for ensuring that the offset
is encodable.
6. Added some testmasm tests for testing the offset form (as opposed to PreIndex
and PostIndex forms) of ldp and stp. We currently only use the offset form
in our JITs.
* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::isValidLDPImm):
(JSC::ARM64Assembler::isValidLDPFPImm):
(JSC::ARM64Assembler::ldp):
(JSC::ARM64Assembler::ldnp):
(JSC::ARM64Assembler::isValidSTPImm):
(JSC::ARM64Assembler::isValidSTPFPImm):
(JSC::ARM64Assembler::stp):
(JSC::ARM64Assembler::stnp):
(JSC::ARM64Assembler::loadStoreRegisterPairPostIndex):
(JSC::ARM64Assembler::loadStoreRegisterPairPreIndex):
(JSC::ARM64Assembler::loadStoreRegisterPairOffset):
(JSC::ARM64Assembler::loadStoreRegisterPairNonTemporal):
* assembler/AssemblerCommon.h:
(JSC::isValidSignedImm7):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::loadPair64):
(JSC::MacroAssemblerARM64::storePair64):
* assembler/testmasm.cpp:
(JSC::testLoadStorePair64Int64):
(JSC::testLoadStorePair64Double):
* disassembler/ARM64/A64DOpcode.cpp:
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::format):
* disassembler/ARM64/A64DOpcode.h:
Commit: 7087163c269fb66d589d673d465e1612e635f0b6
https://github.com/WebKit/WebKit/commit/7087163c269fb66d589d673d465e1612e635f0b6
Author: Julian Gonzalez <julian_a_gonzalez at apple.com>
Date: 2021-08-09 (Mon, 09 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/svg/SVGUseElement.cpp
Log Message:
-----------
Merge r273868 - Crash in removeSymbolElementsFromSubtree()
https://bugs.webkit.org/show_bug.cgi?id=222397
Patch by Julian Gonzalez <julian_a_gonzalez at apple.com> on 2021-03-03
Reviewed by Ryosuke Niwa.
Skip children in removeSymbolElementsFromSubtree(), so that
we don't see nodes that have been removed in disassociateAndRemoveClones.
Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.
* svg/SVGUseElement.cpp:
(WebCore::removeSymbolElementsFromSubtree):
Commit: 1e3019e006b33bea56fc008a76b4126594ea7893
https://github.com/WebKit/WebKit/commit/1e3019e006b33bea56fc008a76b4126594ea7893
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-08-09 (Mon, 09 Aug 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/llint/LLIntSlowPaths.h
M Source/JavaScriptCore/wasm/WasmSlowPaths.h
Log Message:
-----------
Merge r280770 - Adding missing REFERENCED_FROM_ASM annotations to facilitate LTO
https://bugs.webkit.org/show_bug.cgi?id=228865
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-08-09
Reviewed by Yusuke Suzuki.
When investigating why WebKitGTK fails to build with LTO (link-time optimization) enabled,
one of the GCC developers noticed that we are missing __attribute__ (("used")) on several
C++ functions declared in LLIntSlowPaths.h and WasmSlowPaths.h that are called only from
asm. Without this attribute, GCC assumes the functions are unused and drops them, then
linking fails because they really are used.
* llint/LLIntSlowPaths.h:
* wasm/WasmSlowPaths.h:
Commit: a024228e7483132a377e93ff7234e25961bc7758
https://github.com/WebKit/WebKit/commit/a024228e7483132a377e93ff7234e25961bc7758
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp
Log Message:
-----------
Merge r273692 - Protect AudioWorkletGlobalScope::registerProcessor() against re-entry
https://bugs.webkit.org/show_bug.cgi?id=222567
<rdar://74860464>
Reviewed by Eric Carlson.
AudioWorkletGlobalScope::registerProcessor() checks if 'name' is in m_processorConstructorMap
then does some checks that potentially run JS and thus call registerProcessor() again (potentially
with the same name). To address this, we now check the map again after potentially running the
JS code.
* Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
Commit: 94e10f0faeec79768e46b501431d58a0b5c210e6
https://github.com/WebKit/WebKit/commit/94e10f0faeec79768e46b501431d58a0b5c210e6
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Node.h
M Source/WebCore/dom/make_names.pl
M Source/WebCore/html/HTMLElement.h
M Source/WebCore/html/HTMLUnknownElement.h
M Source/WebCore/mathml/MathMLElement.cpp
M Source/WebCore/mathml/MathMLElement.h
M Source/WebCore/mathml/MathMLUnknownElement.h
M Source/WebCore/svg/SVGElement.cpp
M Source/WebCore/svg/SVGElement.h
M Source/WebCore/svg/SVGUnknownElement.h
Log Message:
-----------
Merge r273935 - "precustomized" state of custom elements can become HTMLUnknownElement
https://bugs.webkit.org/show_bug.cgi?id=221652
Reviewed by Darin Adler.
The bug was caused by createJSHTMLWrapper in JSHTMLElementWrapperFactory.cpp relying on
!isCustomElementUpgradeCandidate() to create HTMLUnknownElement as JS wrapper of the element.
This is problematic after r266269 since that change re-purposes CustomElementState::Failed
on a custom element as "precustomized" state instead of introducing another enum value in
CustomElementState as RareDataBitFields has no more bits available.
This patch fixes the problem by introducing a new NodeFlag::IsUnknownElement and using that
to check whether JSHTMLUnknownElement should be created for a given element or not. Note that
HTMLElement had a virtual function, isHTMLUnknownElement, to check this condition but invoking
a virtual function proved to incur too much runtime cost.
* dom/Node.h:
(WebCore::Node::isUnknownElement const): Added.
(WebCore::Node::isHTMLUnknownElement const): Added.
(WebCore::Node::isSVGUnknownElement const): Added.
(WebCore::Node::isMathMLUnknownElement const): Added.
(WebCore::Node::NodeFlag): Added NodeFlag::IsUnknownElement.
* dom/make_names.pl:
(printWrapperFactoryCppFile): Treat the element as HTMLUnknownElement only if isUnknownElement
returns true instead of isCustomElementUpgradeCandidate returning false.
* html/HTMLElement.h:
(WebCore::HTMLElement::isHTMLUnknownElement const): Deleted.
* html/HTMLUnknownElement.h:
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::MathMLElement): Added ConstructionType as an argument.
* mathml/MathMLElement.h:
* mathml/MathMLUnknownElement.h:
(WebCore::MathMLUnknownElement::MathMLUnknownElement): Set NodeFlag::IsUnknownElement.
* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement): Added ConstructionType as an argument.
* svg/SVGElement.h:
* svg/SVGUnknownElement.h:
(WebCore::SVGUnknownElement::SVGUnknownElement): Set NodeFlag::IsUnknownElement.
Commit: 332b21020e7528cafe14bdd7ae64827b8cfea23e
https://github.com/WebKit/WebKit/commit/332b21020e7528cafe14bdd7ae64827b8cfea23e
Author: Julian Gonzalez <julian_a_gonzalez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/svg/SVGUseElement.cpp
Log Message:
-----------
Merge r273938 - Deploy Ref<T> in SVGUseElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=222637
Patch by Julian Gonzalez <julian_a_gonzalez at apple.com> on 2021-03-04
Reviewed by Ryosuke Niwa.
Remove usage of raw pointers in a few functions here
that showed issues in 222397.
Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.
* svg/SVGUseElement.cpp:
(WebCore::disassociateAndRemoveClones):
(WebCore::removeDisallowedElementsFromSubtree):
(WebCore::removeSymbolElementsFromSubtree):
Commit: 80392a5411e860ea4d74a67b2e3930ffd795e4e8
https://github.com/WebKit/WebKit/commit/80392a5411e860ea4d74a67b2e3930ffd795e4e8
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebNavigationState.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Merge r274027 - [IPC Hardening] Protect against bad navigationID in WebPageProxy::didDestroyNavigation()
https://bugs.webkit.org/show_bug.cgi?id=222842
<rdar://problem/75119560>
Reviewed by Darin Adler.
* UIProcess/WebNavigationState.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didDestroyNavigation):
Commit: 06b02d5c067dfc2f9af5154d887b509dcbc1f3f6
https://github.com/WebKit/WebKit/commit/06b02d5c067dfc2f9af5154d887b509dcbc1f3f6
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/fast/html/details-set-inner-text-crash-expected.txt
A LayoutTests/fast/html/details-set-inner-text-crash.html
M Source/WebCore/ChangeLog
M Source/WebCore/dom/ComposedTreeIterator.cpp
Log Message:
-----------
Merge r274064 - REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=222720
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-03-08
Reviewed by Ryosuke Niwa.
Source/WebCore:
The list of assigned nodes contains weak pointers, we should check the node hasn't been destroyed.
Test: fast/html/details-set-inner-text-crash.html
* dom/ComposedTreeIterator.cpp:
(WebCore::ComposedTreeIterator::traverseNextInShadowTree):
LayoutTests:
* fast/html/details-set-inner-text-crash-expected.txt: Added.
* fast/html/details-set-inner-text-crash.html: Added.
Commit: 0c4cac59a0069bc4365d2e4a10ccb390fc1721a1
https://github.com/WebKit/WebKit/commit/0c4cac59a0069bc4365d2e4a10ccb390fc1721a1
Author: Julian Gonzalez <julian_a_gonzalez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/ReplaceSelectionCommand.cpp
Log Message:
-----------
Merge r274131 - Crash in in ReplaceSelectionCommand::mergeEndIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=222941
Patch by Julian Gonzalez <julian_a_gonzalez at apple.com> on 2021-03-08
Reviewed by Ryosuke Niwa.
Make a copy of Ref<HTMLBRElement> when inserting before start of paragraph.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded):
Commit: d349bd04de0de4fff4c67b4740f4fd429525739d
https://github.com/WebKit/WebKit/commit/d349bd04de0de4fff4c67b4740f4fd429525739d
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderElement.cpp
Log Message:
-----------
Merge r274144 - [Multi-column] Adjust fragmented flow state of the out-of-flow descendants
https://bugs.webkit.org/show_bug.cgi?id=222958
<rdar://74865741>
Reviewed by Antti Koivisto.
When a block container's style change from positioned to non-positioned and it is part of a multi-column context,
we need to make sure that the out-of-flow positined descendants' flow state are updated accordingly (as
they may not be part of the multi-column context anymore).
* rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):
Commit: 4639dc06778fa972d4cf579d217e936650092404
https://github.com/WebKit/WebKit/commit/4639dc06778fa972d4cf579d217e936650092404
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/ContainerNode.cpp
Log Message:
-----------
Merge r274146 - Suspend widget hierarchy updates while executing node insertion
https://bugs.webkit.org/show_bug.cgi?id=222719
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-03-09
Reviewed by Ryosuke Niwa.
* dom/ContainerNode.cpp:
(WebCore::executeNodeInsertionWithScriptAssertion):
Commit: 5d342f6bf0d3ebcb8426b385000c216452be4df1
https://github.com/WebKit/WebKit/commit/5d342f6bf0d3ebcb8426b385000c216452be4df1
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Merge r274153 - [IPC Hardening] Protect WebPageProxy::willSubmitForm() against bad Strings
https://bugs.webkit.org/show_bug.cgi?id=222955
<rdar://problem/75195062>
Reviewed by Anders Carlsson.
The Strings passed in textFieldValues are used as keys in a HashMap later on so we need
to validate them.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willSubmitForm):
Commit: 0bc98df1220f795fffed5d574df15bcde752c71c
https://github.com/WebKit/WebKit/commit/0bc98df1220f795fffed5d574df15bcde752c71c
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm
M Source/WebKit/Shared/SandboxExtension.h
Log Message:
-----------
Merge r274158 - [IPC Hardening] SandboxExtension::HandleArray IPC decoder should not call Vector::resize()
https://bugs.webkit.org/show_bug.cgi?id=222977
<rdar://problem/75218451>
Reviewed by Anders Carlsson.
SandboxExtension::HandleArray IPC decoder should not call Vector::resize() with an untrusted size
coming from IPC. Instead, call Vector::append(), like the Vector IPC decoder does.
* Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::HandleArray::append):
(WebKit::SandboxExtension::HandleArray::decode):
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::append):
Commit: 48b384797d659d68d6d930041df1079d12cba404
https://github.com/WebKit/WebKit/commit/48b384797d659d68d6d930041df1079d12cba404
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Shared/cf/ArgumentCodersCF.cpp
Log Message:
-----------
Merge r274160 - [IPC Hardening] IPC::decode(Decoder& decoder, RetainPtr<CFDictionaryRef>&) should make sure keys & values aren't null
https://bugs.webkit.org/show_bug.cgi?id=222980
Reviewed by Geoffrey Garen.
[NSMutableDictionary setObject:forKey:] throws an exception when the given object or key is nil. The dictionary decoder
should therefore fail nicely when either of these is nil, instead of crashing.
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::decode):
Commit: c0139de250b8cf6fbdebff08781e6ada24f49053
https://github.com/WebKit/WebKit/commit/c0139de250b8cf6fbdebff08781e6ada24f49053
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-10 (Tue, 10 Aug 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
M Source/WebKit/GPUProcess/GPUProcess.h
M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h
M Source/WebKit/GPUProcess/media/RemoteCDMFactoryProxy.h
M Source/WebKit/GPUProcess/media/RemoteCDMProxy.h
M Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.h
M Source/WebKit/GPUProcess/media/RemoteLegacyCDMProxy.h
M Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.h
M Source/WebKit/GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h
M Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h
M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
M Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h
M Source/WebKit/NetworkProcess/NetworkProcess.h
M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h
M Source/WebKit/Platform/IPC/MessageReceiver.h
M Source/WebKit/Platform/IPC/MessageReceiverMap.cpp
M Source/WebKit/Platform/IPC/MessageReceiverMap.h
M Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h
M Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h
M Source/WebKit/Shared/Authentication/AuthenticationManager.h
M Source/WebKit/Shared/AuxiliaryProcess.h
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
M Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h
M Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h
M Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.h
M Source/WebKit/UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h
M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
M Source/WebKit/UIProcess/ProvisionalPageProxy.h
M Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h
M Source/WebKit/UIProcess/SpeechRecognitionServer.h
M Source/WebKit/UIProcess/SuspendedPageProxy.h
M Source/WebKit/UIProcess/WebAuthentication/WebAuthnProcessProxy.h
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebProcessPool.h
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/WebAuthnProcess/WebAuthnProcess.h
M Source/WebKit/WebProcess/GPU/GPUProcessConnection.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h
M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h
M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h
M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h
M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h
M Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h
M Source/WebKit/WebProcess/Network/WebSocketChannel.h
M Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
M Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h
Log Message:
-----------
Merge r274172 - [IPC Hardening] Protect against bad input in WebProcessProxy::createSpeechRecognitionServer() and MessageReceiverMap
https://bugs.webkit.org/show_bug.cgi?id=222948
<rdar://problem/75191472>
Reviewed by Alex Christensen.
Update MessageReceiverMap so that:
1. Trying to remove a MessageReceiver that is not in the map does not
do dangerous things.
2. It stores weak pointers to the receivers instead of raw pointers. This
would avoid doing bad things when trying to remove a message receiver
that's already been destroyed.
Add a MESSAGE_CHECK() in WebProcessProxy::createSpeechRecognitionServer() to
make sure the identifier is not already in the map. There used to be a debug
assertion but we should MESSAGE_CHECK() too since the value is coming from
IPC.
* GPUProcess/GPUConnectionToWebProcess.h:
* GPUProcess/GPUProcess.h:
* GPUProcess/media/RemoteAudioSessionProxy.h:
* GPUProcess/media/RemoteCDMFactoryProxy.h:
* GPUProcess/media/RemoteCDMProxy.h:
* GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
* GPUProcess/media/RemoteLegacyCDMProxy.h:
* GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
* GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
* GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
* GPUProcess/media/RemoteMediaPlayerProxy.h:
* GPUProcess/media/RemoteMediaResourceManager.h:
* GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
* Platform/IPC/MessageReceiver.h:
* Platform/IPC/MessageReceiverMap.cpp:
(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):
* Platform/IPC/MessageReceiverMap.h:
* Shared/API/Cocoa/RemoteObjectRegistry.h:
* Shared/ApplePay/WebPaymentCoordinatorProxy.h:
* Shared/Authentication/AuthenticationManager.h:
* Shared/AuxiliaryProcess.h:
* UIProcess/GPU/GPUProcessProxy.h:
* UIProcess/Inspector/WebInspectorProxy.h:
* UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
* UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
* UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/ProvisionalPageProxy.h:
* UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
* UIProcess/SpeechRecognitionServer.h:
* UIProcess/SuspendedPageProxy.h:
* UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createSpeechRecognitionServer):
* UIProcess/WebProcessProxy.h:
* WebAuthnProcess/WebAuthnProcess.h:
* WebProcess/GPU/GPUProcessConnection.h:
* WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
* WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
* WebProcess/GPU/media/MediaSourcePrivateRemote.h:
* WebProcess/GPU/media/SourceBufferPrivateRemote.h:
* WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
* WebProcess/Inspector/WebInspectorUIExtensionController.h:
* WebProcess/Network/WebSocketChannel.h:
* WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebStorage/StorageAreaMap.h:
Commit: f48a0334f09ce8542b721faf8d837928c00208db
https://github.com/WebKit/WebKit/commit/f48a0334f09ce8542b721faf8d837928c00208db
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp
M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h
Log Message:
-----------
Merge r274361 - Use refptr to PeerConnectionFactoryInterface
https://bugs.webkit.org/show_bug.cgi?id=222725
Patch by Rob Buis <rbuis at igalia.com> on 2021-03-12
Reviewed by Youenn Fablet.
Use refptr instead of reference to PeerConnectionFactoryInterface.
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
Commit: 45e1e742e72a0d746596f5857e8f4fd7701f1af0
https://github.com/WebKit/WebKit/commit/45e1e742e72a0d746596f5857e8f4fd7701f1af0
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderListMarker.cpp
Log Message:
-----------
Merge r274387 - Mark the line dirty when list marker goes from inline to block
https://bugs.webkit.org/show_bug.cgi?id=223132
Reviewed by Antti Koivisto.
This patch ensures that the line layout has a chance to clean up the inline boxes when the marker goes from inline to block.
Instead of deleting the inline box wrapper (InlineElement) here let's
1. mark both the renderer and the line dirty and let the inline layout code run its normal cleanup process on dirty lines.
2. detach the inline box wrapper from the now-block list marker.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::styleDidChange):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::verticalPositionForBox):
Commit: fcb7a4863d194b08be932355105711d3d4f632b5
https://github.com/WebKit/WebKit/commit/fcb7a4863d194b08be932355105711d3d4f632b5
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderLineBreak.cpp
M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
Log Message:
-----------
Merge r274398 - RenderLineBreak should stay inline level box even when display property says otherwise.
https://bugs.webkit.org/show_bug.cgi?id=223151
<rdar://74339837>
Reviewed by Antti Koivisto.
In this patch we make sure that the RenderLineBreak object always stays inline.
While the display property applies to all elements (https://drafts.csswg.org/css-display/#the-display-properties), the line
break element (<br>) seems to be an exception and all browsers handle <br style="display: block"> still as an inline level element.
Renderers can (and do see RenderSVGInline::updateFromStyle) diverge from this computed display value and say they always want to
be inline level boxes. This is ensured by RenderObject::setInline/isInline function pair.
Initially there were 2 setInline() calls:
One in RenderObject::setStyle(). It dealt with "block to inline" transition and
one call in RenderBox::setStyle().
In these functions we simply set the renderer's "inInline" bit to the computed style value (setInline(style.isDisplayInlineType)).
However derived renderer classes were able to override it by implementing the ::setStyle function and
explicitly set the "isInline" bit to true/false.
Over the years the second (RenderBox::setStyle) call transitioned to RenderBoxModelObject::updateFromStyle()
and the first (RenderObject::setStyle) call got moved to normalizeTreeAfterStyleChange() and their order got flipped.
Derived renderer classes can still explicitly set the "isInline" bit by implementing the ::updateFromStyle() function
(this is similar to what we had with ::setStyle).
However since the order is flipped, the "setInline()" call in normalizeTreeAfterStyleChange() now runs after
updateFromStyle() and it may re-reset the "isInline" bit back to the computed value (hence the FIXME).
The "setInline" call in normalizeTreeAfterStyleChange() is not needed anymore since the "isInline" bit is already updated by
the time we get here (as opposed to when it was initially introduced in RenderObject::setStyle, see above).
* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::updateFromStyle):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
Commit: 1c9db8a85348955760f8b0566fd3cc2fd1432ecb
https://github.com/WebKit/WebKit/commit/1c9db8a85348955760f8b0566fd3cc2fd1432ecb
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp
Log Message:
-----------
Merge r274437 - Do not collapse the anonymous block when it is a candidate container for the list marker
https://bugs.webkit.org/show_bug.cgi?id=223196
<rdar://74574330>
Reviewed by Antti Koivisto.
Do not merge empty anonymous siblings when the callers says "do not collpase anonymous block". Those merge candidate
anonymous blocks may be candidate containers for some other conent (we expand on r238119 here).
* rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::detach):
Commit: 6689b8943ad992b04e7bc654be44591795babf07
https://github.com/WebKit/WebKit/commit/6689b8943ad992b04e7bc654be44591795babf07
Author: Saam Barati <sbarati at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M JSTests/ChangeLog
A JSTests/stress/allocation-sinking-scope-materialization-order.js
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp
Log Message:
-----------
Merge r274539 - Object allocation sinking phase should prioritize materializations with no dependencies before materializations with no reverse dependencies
https://bugs.webkit.org/show_bug.cgi?id=221069
<rdar://problem/73686589>
Reviewed by Yusuke Suzuki.
JSTests:
* stress/allocation-sinking-scope-materialization-order.js: Added.
(var3.var2.x):
(var3):
Source/JavaScriptCore:
Suppose we have two scope objects, A and B. Let's say A points to B, so B is
A's parent scope. A then depends on B. B has no dependencies here. When deciding
an order to materialize scope objects, we should always do it in reverse dependency
order. So above, we should materialize B, then A.
Inside object allocation sinking phase, when at an object materialization
site, we do track both dependencies and reverse dependencies. In the above
object graph, we'd attempt to materialize the objects in the right order,
always picking things with no dependencies first (and updating the list of
dependencies as we materialzed objects).
The code was using an std::list to track things to materialize, and it had
notions for materializing something first, and materializing something last.
However, there was a bug in how the code managed to insert things when
it first inserted last followed by inserting first. This patch simplifies
the code and makes it do the right thing.
* dfg/DFGObjectAllocationSinkingPhase.cpp:
Commit: ed970846fff30a960699aebbb87de85fd3ab2c7e
https://github.com/WebKit/WebKit/commit/ed970846fff30a960699aebbb87de85fd3ab2c7e
Author: Frédéric Wang <fwang at igalia.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/CompositeEditCommand.cpp
M Source/WebCore/editing/Editing.cpp
M Source/WebCore/editing/ReplaceSelectionCommand.cpp
Log Message:
-----------
Merge r274626 - ASSERTION FAILED: node.isConnected() in matchSlottedPseudoElementRules
https://bugs.webkit.org/show_bug.cgi?id=221440
Patch by Frédéric Wang <fwang at igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.
ReplaceSelectionCommand::doApply() removes a <br> from an element and immediately calls
highestNodeToRemoveInPruning() on that element. The former operation may destroy the
element's renderer and confuses the latter operation. This happens in particular for a
<summary> element which ends up being removed from the tree. This in turn causes unexpected
issues such as a debug assertion failure in matchSlottedPseudoElementRules. To address that
problem, ensure the document is laid out before calling highestNodeToRemoveInPruning().
This patch also increases and improves use of RefPtr<Node>.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): Use auto & makeRefPtr.
(WebCore::CompositeEditCommand::prune): Store local highestNodeToRemove variable in a RefPtr.
(WebCore::CompositeEditCommand::cleanupAfterDeletion): Store local node variable in a RefPtr.
(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): Store local parentNode variable in a RefPtr.
* editing/Editing.cpp:
(WebCore::highestNodeToRemoveInPruning): Store local currentNode variable in a a RefPtr.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Use auto & makeRefPtr. Store local odeToRemove variable in a RefPtr.
Ensure the document is laid out before calling highestNodeToRemoveInPruning.
Commit: c650aac479b7f3b57198dc341f3864a93fe786f8
https://github.com/WebKit/WebKit/commit/c650aac479b7f3b57198dc341f3864a93fe786f8
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
Log Message:
-----------
Merge r274630 - Invalidate RenderTreePosition's next sibling with display:contents
https://bugs.webkit.org/show_bug.cgi?id=218578
Reviewed by Antti Koivisto.
When inserting elements in the tree from JS it might happen that the renderTreePosition() in the RenderTreeUpdater
caches a nextSibling() value which is only temporarily correct because we sequentially process the descendants of a
given root node in RenderTreeUpdater::updateRenderTree(). One of those potentially incorrect scenarios is when
using display:contents. We can detect those cases because we would leave a parent element in RenderTreeUpdater::popParent()
without changing renderingParent() and so without changing renderTreePosition(). Once we are in that situation we
must invalidate the cached position so the next sibling is recomputed.
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::popParent): Invalidate the render tree position's next sibling if the parent element is not
the renderingParent().
Commit: 48cf907b4a12060841b69bd191a6a975ca30d812
https://github.com/WebKit/WebKit/commit/48cf907b4a12060841b69bd191a6a975ca30d812
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/PrintContext.cpp
Log Message:
-----------
Merge r274675 - Protect frame before calling setPrinting
https://bugs.webkit.org/show_bug.cgi?id=222664
Patch by Rob Buis <rbuis at igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.
Protect frame before calling setPrinting
since it could potentially delete the frame
through event handling.
* page/PrintContext.cpp:
(WebCore::PrintContext::begin):
Commit: ef3b6551d977e848ca33f09967a6385f1e09f039
https://github.com/WebKit/WebKit/commit/ef3b6551d977e848ca33f09967a6385f1e09f039
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/loader/DocumentWriter.cpp
Log Message:
-----------
Merge r274723 - Protect frame before calling didBeginDocument
https://bugs.webkit.org/show_bug.cgi?id=217185
Patch by Rob Buis <rbuis at igalia.com> on 2021-03-19
Reviewed by Alex Christensen.
Protect frame before calling didBeginDocument
since it could potentially delete the frame
through event handling.
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
Commit: dbb432469832f180d43c69e9ec8efca6092f9ddb
https://github.com/WebKit/WebKit/commit/dbb432469832f180d43c69e9ec8efca6092f9ddb
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp
Log Message:
-----------
Merge r274776 - Better validate JSArrays in AudioWorkletProcessor
https://bugs.webkit.org/show_bug.cgi?id=223548
Reviewed by Geoffrey Garen.
Better validate JSArrays in AudioWorkletProcessor. Replaces debug assertions with runtime
checks for robustness.
* Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::copyDataFromBusesToJSArray):
(WebCore::copyDataFromParameterMapToJSObject):
(WebCore::zeroJSArray):
(WebCore::AudioWorkletProcessor::buildJSArguments):
Commit: fb735cdceaa3242bf564f2f76fc40220df77f7a6
https://github.com/WebKit/WebKit/commit/fb735cdceaa3242bf564f2f76fc40220df77f7a6
Author: Patrick Angle <pangle at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Element.cpp
M Source/WebCore/dom/Element.h
M Source/WebCore/dom/Node.h
M Source/WebCore/inspector/InspectorInstrumentation.cpp
M Source/WebCore/inspector/InspectorInstrumentation.h
M Source/WebCore/inspector/agents/InspectorCSSAgent.cpp
M Source/WebCore/inspector/agents/InspectorCSSAgent.h
M Source/WebCore/rendering/RenderGrid.cpp
M Source/WebCore/rendering/RenderObject.h
Log Message:
-----------
Merge r274818 - REGRESSION(r272433): Inspector should not instrument inside `WebCore::Node::setRenderer`
https://bugs.webkit.org/show_bug.cgi?id=223559
Reviewed by Ryosuke Niwa and Devin Rousso.
Existing test coverage:
- inspector/css/nodeLayoutContextTypeChanged.html
- inspector/css/setLayoutContextTypeChangedMode.html
The previous approach to observing render changes was most likely a performance regression in a very hot code
path (`Node::setRenderer`). This patch resolves this by not instrumenting in this the hot path. Instead we call
inspector instrumentation inside the constructors/destructors of only the RenderObject subclasses we are
interested in observing layout changes for.
Additionally, layout change events are now added to a `Vector` of pending changes, which will be sent to the
front-end later in order to avoid evaluating JavaScript inside a destructor in WK1 with the new instrumentation
points.
* dom/Element.cpp:
(WebCore::Element::didChangeRenderer): Deleted.
* dom/Element.h:
* dom/Node.h:
(WebCore::Node::didChangeRenderer): Deleted.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::nodeLayoutContextChangedImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::nodeLayoutContextChanged):
* inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::reset):
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
(WebCore::InspectorCSSAgent::layoutContextTypeChangedTimerFired):
- Moved layout change events behind a timer firing.
* inspector/agents/InspectorCSSAgent.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::~RenderGrid):
- Move instrumentation from `Node::setRenderer` to `RenderGrid`.
* rendering/RenderObject.h:
(WebCore::Node::setRenderer):
Commit: 798ad73ac29c52da85c990da0656c616b441bfeb
https://github.com/WebKit/WebKit/commit/798ad73ac29c52da85c990da0656c616b441bfeb
Author: Ian Gilbert <iang at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/animation/WebAnimation.cpp
Log Message:
-----------
Merge r274824 - [Web Animations] nullptr crash in updatePlaybackRate() with no timeline
https://bugs.webkit.org/show_bug.cgi?id=223095
Patch by Ian Gilbert <iang at apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.
Changed to WebAnimation::remove() to use setTimeline() instead of setTimelineInternal()
to ensure the animation is in the correct play state.
No new tests as this relies on navigating while updating the playback rate and I was unable to make
a reliable test case.
* animation/WebAnimation.cpp:
(WebCore::WebAnimation::remove): Changed setTimelineInternal() to setTimeline() in order to
ensure the animation has the correct play state.
Commit: 19350a6903ae9586dcb80bfa2132435504657c8b
https://github.com/WebKit/WebKit/commit/19350a6903ae9586dcb80bfa2132435504657c8b
Author: Venky Dass <yaranamavenkataramana at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash-expected.txt
A LayoutTests/editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html
M Source/WebCore/ChangeLog
M Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp
Log Message:
-----------
Merge r274849 - Nullptr crash in WebCore::RenderObject::RenderObjectBitfields::isLineBreak() where a NULL check is missing.
https://bugs.webkit.org/show_bug.cgi?id=223409
Patch by Venky Dass <yaranamavenkataramana at apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.
Source/WebCore:
When the check for LineBreak is performed the BR elmement NULL check is not performed. Which results in a crash
The fix therefore is to check for NULL.
Test: LayoutTests/editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
LayoutTests:
Adding a regression test case.
* editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash-expected.txt: Added.
* editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html: Added.
Commit: 6abf67545288e46933b62ca2453f2149c04dc0fc
https://github.com/WebKit/WebKit/commit/6abf67545288e46933b62ca2453f2149c04dc0fc
Author: Frédéric Wang <fwang at igalia.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/CompositeEditCommand.cpp
M Source/WebCore/editing/FrameSelection.cpp
M Source/WebCore/editing/FrameSelection.h
M Source/WebCore/editing/VisibleSelection.cpp
M Source/WebCore/editing/VisibleSelection.h
Log Message:
-----------
Merge r274862 - Nullptr crash in HTMLConverter::convert
https://bugs.webkit.org/show_bug.cgi?id=221719
Patch by Frédéric Wang <fwang at igalia.com> on 2021-03-23
Reviewed by Ryosuke Niwa.
When the "Undo" command is called after DOM changes, one of the selection's position anchors
may have been moved to a new document. In that case, just clear the selection. Also add
asserts to ensure the selection is in good state after unapply and reapply commands.
* editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply): Add security assert to ensure selection is in
good state.
(WebCore::EditCommandComposition::reapply): Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): If the selection's
position anchors have been moved to a new document then just clear the selection.
(WebCore::FrameSelection::isConnectedToDocument const): New method to verify that all the
positions of the visible selection are in m_document.
* editing/FrameSelection.h: Declare new method.
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::document const): New method that returns a common document for
all positions or nullptr otherwise.
* editing/VisibleSelection.h: Declare new method.
Commit: ad9617a47c24eb9f7001dce073d26ffb7543f41c
https://github.com/WebKit/WebKit/commit/ad9617a47c24eb9f7001dce073d26ffb7543f41c
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-08-11 (Wed, 11 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
M Source/WebCore/rendering/updating/RenderTreeBuilder.h
Log Message:
-----------
Merge r275126 - [RenderTreeBuilder] No need to update the counters when the renderer is moved internally
https://bugs.webkit.org/show_bug.cgi?id=223801
<rdar://75835208>
Reviewed by Ryosuke Niwa.
When the renderer re-parenting is initiated by an "internal move" (e.g. anonymous block parent is not needed anymore so all the descendants
are moved "one level" up), we don't need to re-compute the counters. Their state should not be any different after this re-parenting.
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
* rendering/updating/RenderTreeBuilder.h:
Commit: ea2879d224c555d22b8744441fa70ebd6b03010a
https://github.com/WebKit/WebKit/commit/ea2879d224c555d22b8744441fa70ebd6b03010a
Author: Ian Gilbert <iang at apple.com>
Date: 2021-08-20 (Fri, 20 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/line/BreakingContext.h
Log Message:
-----------
Merge r275130 - Dirty layout for floating children of inline on full layout
https://bugs.webkit.org/show_bug.cgi?id=223660
Patch by Ian Gilbert <iang at apple.com> on 2021-03-26
Reviewed by Zalan Bujtas.
Avoid consuming an object on an empty line when that object is floating or out-of-flow.
* rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleEndOfLine):
Commit: 135242b47a437ccc9c8681bcf8fbf47685ce7a95
https://github.com/WebKit/WebKit/commit/135242b47a437ccc9c8681bcf8fbf47685ce7a95
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-08-20 (Fri, 20 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
Log Message:
-----------
Merge r275143 - Don't add Frame as an opaque root of DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=223838
Reviewed by Simon Fraser.
Don't add Frame as an opaque root of DOMWindow since we don't use Frame
as an opaque root of any JS wrappers since r248276.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitAdditionalChildren):
Commit: 012320bbfc6a82b42de2fc3014ee00b6d356eb5f
https://github.com/WebKit/WebKit/commit/012320bbfc6a82b42de2fc3014ee00b6d356eb5f
Author: Ian Gilbert <iang at apple.com>
Date: 2021-08-20 (Fri, 20 Aug 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/html/HTMLPlugInElement.cpp
Log Message:
-----------
Merge r275168 - Make a Ref to HTMLPlugInElement when resolving callback
https://bugs.webkit.org/show_bug.cgi?id=223846
Patch by Ian Gilbert <iang at apple.com> on 2021-03-29
Reviewed by Ryosuke Niwa.
Take a Ref to the HTMLPlugInElement to keep it alive while invoking HTMLPlugInElement::swapRendererTimerFired()
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::swapRendererTimerFired):
Commit: b9cb53569922d02eebbe639df6b60506a63876b9
https://github.com/WebKit/WebKit/commit/b9cb53569922d02eebbe639df6b60506a63876b9
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-08-20 (Fri, 20 Aug 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/fonts/font-cache-crash-expected.txt
A LayoutTests/fonts/font-cache-crash.html
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/FontCache.cpp
M Source/WebCore/platform/graphics/FontCache.h
Log Message:
-----------
Merge r275189 - REGRESSION(r274992): Nullptr crash in FontCache::retrieveOrAddCachedFonts
https://bugs.webkit.org/show_bug.cgi?id=223858
<rdar://75883697>
Reviewed by Darin Adler and Ryosuke Niwa.
Source/WebCore:
Stop using a hash as key in the FontCascadeCache. Instead, use HashTraits and use
FontCascadeCacheKey as key.
Test: fonts/font-cache-crash.html
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::retrieveOrAddCachedFonts):
(WTF::FontCascadeCacheKeyHash::hash):
* platform/graphics/FontCache.h:
(WebCore::FontCascadeCacheKey::operator== const):
(WTF::FontCascadeCacheKeyHash::equal):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::emptyValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::isDeletedValue):
LayoutTests:
Add layout test coverage.
* fonts/font-cache-crash-expected.txt: Added.
* fonts/font-cache-crash.html: Added.
Commit: 04b2314e719ca61181c4fd94064f54fb740ac2eb
https://github.com/WebKit/WebKit/commit/04b2314e719ca61181c4fd94064f54fb740ac2eb
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/TaskSource.h
M Source/WebCore/page/Performance.cpp
M Source/WebCore/page/Performance.h
M Source/WebCore/platform/GenericTaskQueue.h
Log Message:
-----------
Merge r275241 - Occasional debug assert in GenericTaskQueue::~GenericTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=223913
Reviewed by Eric Carlson.
Eagerly initialize WeakPtrImpl so that we don't hit debug assertions.
Also made Performance object use EventLoop.
No new tests since there is no test case that reliably reproduces this issue.
* dom/TaskSource.h:
(TaskSource): Added PerformanceTimeline.
* page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::contextDestroyed):
(WebCore::Performance::queueEntry): Use EventLoopTaskGroup instead of GenericTaskQueue to deliver entries.
* page/Performance.h:
* platform/GenericTaskQueue.h:
(WebCore::GenericTaskQueue::GenericTaskQueue): Eagerly initialize WeakPtrImpl.
Also assert that we're creating this object in the main thread.
Commit: 9ac4dbe0190b8b37a9c665ffc1f8bd174fed8b6c
https://github.com/WebKit/WebKit/commit/9ac4dbe0190b8b37a9c665ffc1f8bd174fed8b6c
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/CrossThreadTask.h
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/indexeddb/IDBRequest.cpp
Log Message:
-----------
Merge r281384 - IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375
Source/WebCore:
Reviewed by Brady Eidson.
Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
Source/WTF:
Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.
Reviewed by Brady Eidson.
* wtf/CrossThreadTask.h:
Commit: 305f47817bd8216e5bbfb7f1ecaacdfce4e27933
https://github.com/WebKit/WebKit/commit/305f47817bd8216e5bbfb7f1ecaacdfce4e27933
Author: Venky Dass <yaranamavenkataramana at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/editing/inserting/crash-make-boundary-point-expected.txt
A LayoutTests/editing/inserting/crash-make-boundary-point.html
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Position.cpp
Log Message:
-----------
Merge r275320 - Null pointer access crash in WebCore::makeBoundaryPoint(..)
https://bugs.webkit.org/show_bug.cgi?id=223977
Patch by Venky Dass <yaranamavenkataramana at apple.com> on 2021-03-31
Reviewed by Darin Adler.
Source/WebCore:
In makeBoundaryPoint, position.containerNode() can be nullptr even if position.isNull() was false
Test: LayoutTests/editing/inserting/crash-make-boundary-point.html
* dom/Position.cpp:
(WebCore::makeBoundaryPoint):
LayoutTests:
Adding a refression test case.
* editing/inserting/crash-make-boundary-point-expected.txt: Added.
* editing/inserting/crash-make-boundary-point.html: Added.
Commit: b38c8b8385e4f6b6e9f7bbf3df75a14282543e56
https://github.com/WebKit/WebKit/commit/b38c8b8385e4f6b6e9f7bbf3df75a14282543e56
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/html/ImageBitmap.cpp
Log Message:
-----------
Merge r275450 - PendingImageBitmap gets created on a stopped script execution context.
https://bugs.webkit.org/show_bug.cgi?id=223971
Reviewed by Youenn Fablet.
Don't create a PendingImageBitmap in PendingImageBitmap::fetch
if the associated script execution context had already been stoppped.
The new behavior matches of Chrome although it's technically incorrect.
Correcting it to match the spec & Firefox will refactor a larger fix around
how script execution context is used by the threaded loader.
* html/ImageBitmap.cpp:
(WebCore::PendingImageBitmap::fetch):
Commit: 044867c6bbee99125b19efc6cafee34fe3f73414
https://github.com/WebKit/WebKit/commit/044867c6bbee99125b19efc6cafee34fe3f73414
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/style/StyleBuilderCustom.h
Log Message:
-----------
Merge r275495 - [css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
https://bugs.webkit.org/show_bug.cgi?id=222852
Reviewed by Antti Koivisto.
We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever
applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's
but under some circumstances it might be the same. For those cases we wouldn't like to end up with
obsolete data from a previous style resolution.
The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call
to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all.
In order to have a single place with all the style properties affecting columns and rows, all the set
calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows}
methods. This would allow us to prevent eventual out-of-sync issues like this one.
* style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):
Commit: 6a4a7f3ae64582c7873eeadd49b626c533a7df97
https://github.com/WebKit/WebKit/commit/6a4a7f3ae64582c7873eeadd49b626c533a7df97
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
Log Message:
-----------
Merge r275549 - Delay the end of printing while PrintContext is in use.
https://bugs.webkit.org/show_bug.cgi?id=224229
Reviewed by Antti Koivisto.
Added a new RAII object, PrintContextAccessScope, to delay the call to endPrinting
and deployed in various IPC messages used during printing.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::beginPrinting): Deployed PrintContextAccessScope.
(WebKit::WebPage::endPrinting): Exit early without ending printing if there is an active
PrintContextAccessScope in the stack.
(WebKit::WebPage::endPrintingImmediately): Extracted from endPrintingImmediately.
(WebKit::WebPage::computePagesForPrinting): Deployed PrintContextAccessScope.
(WebKit::WebPage::computePagesForPrintingImpl): Ditto.
(WebKit::WebPage::drawRectToImage): Ditto.
(WebKit::WebPage::drawPagesToPDF): Ditto.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::PrintContextAccessScope): Added.
(WebKit::WebPage::PrintContextAccessScope::PrintContextAccessScope): Added.
(WebKit::WebPage::PrintContextAccessScope::~PrintContextAccessScope): Added.
Commit: e13ffa1a591804015a57b466c18000aded5f3d4d
https://github.com/WebKit/WebKit/commit/e13ffa1a591804015a57b466c18000aded5f3d4d
Author: Alex Christensen <achristensen at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/URLHelpers.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm
Log Message:
-----------
Merge r275554 - Add U+0581 and U+0585 to list of Armenian characters that look like Latin characters
https://bugs.webkit.org/show_bug.cgi?id=224219
Source/WTF:
<rdar://75896365>
Patch by Alex Christensen <achristensen at webkit.org> on 2021-04-06
Reviewed by Brent Fulgham.
These code points are allowed in the context of other Armenian code points and punctuation, but not other script code points.
This was already implemented for the others, but I consolidated the list to one location to avoid having two locations for the list.
* wtf/URLHelpers.cpp:
(WTF::URLHelpers::isArmenianLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
Tools:
Patch by Alex Christensen <achristensen at webkit.org> on 2021-04-06
Reviewed by Brent Fulgham.
* TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
Commit: d069c971bafd86192517727dde6b4d4fe3a3237b
https://github.com/WebKit/WebKit/commit/d069c971bafd86192517727dde6b4d4fe3a3237b
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/SlotAssignment.cpp
M Source/WebCore/dom/SlotAssignment.h
Log Message:
-----------
Merge r275756 - Teardown shadow root renderers on SlotAssignment::didChangeSlot
https://bugs.webkit.org/show_bug.cgi?id=221386
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-04-09
Reviewed by Ryosuke Niwa.
This reverts r272900 to move the call to RenderTreeUpdater::tearDownRenderers() from hostChildElementDidChange()
to didChangeSlot(). This ensures the renderers are also cleared for other shadow root trees not using details
element.
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):
* dom/SlotAssignment.h:
(WebCore::ShadowRoot::hostChildElementDidChange):
Commit: 9a6694dc5a2195fd0840fe368a45dae20d11ca36
https://github.com/WebKit/WebKit/commit/9a6694dc5a2195fd0840fe368a45dae20d11ca36
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/html/InputType.cpp
Log Message:
-----------
Merge r275807 - Store InputType in a Ref before calling setValueAsDecimal
https://bugs.webkit.org/show_bug.cgi?id=223535
Patch by Rob Buis <rbuis at igalia.com> on 2021-04-11
Reviewed by Ryosuke Niwa.
Store InputType in a Ref before calling setValueAsDecimal.
* html/InputType.cpp:
(WebCore::InputType::applyStep):
Commit: e44ba9e01d404998e9884d0ae7ee07ec17a2da63
https://github.com/WebKit/WebKit/commit/e44ba9e01d404998e9884d0ae7ee07ec17a2da63
Author: BJ Burg <bburg at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp
M Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h
M Source/JavaScriptCore/runtime/ConsoleClient.h
M Source/JavaScriptCore/runtime/ConsoleObject.cpp
M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
M Source/JavaScriptCore/runtime/JSGlobalObject.h
M Source/WebCore/ChangeLog
M Source/WebCore/bindings/js/ScriptCachedFrameData.cpp
M Source/WebCore/bindings/js/ScriptController.cpp
M Source/WebCore/bindings/js/WindowProxy.cpp
M Source/WebCore/workers/WorkerOrWorkletScriptController.cpp
Log Message:
-----------
Merge r275845 - Modernize uses of ConsoleClient
https://bugs.webkit.org/show_bug.cgi?id=224398
Reviewed by David Kilzer.
ConsoleClient acts like a delegate, so its callers
should be using weak references to it.
Source/JavaScriptCore:
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::consoleClient const):
* inspector/JSGlobalObjectInspectorController.h:
* runtime/ConsoleClient.h:
* runtime/ConsoleObject.cpp:
(JSC::consoleLogWithLevel):
(JSC::JSC_DEFINE_HOST_FUNCTION):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::setConsoleClient):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::consoleClient const):
(JSC::JSGlobalObject::setConsoleClient): Deleted.
Source/WebCore:
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::restore):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::initScriptForWindowProxy):
* bindings/js/WindowProxy.cpp:
(WebCore::WindowProxy::setDOMWindow):
* workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):
Commit: df71fe1ee05a6e3a1a7d44822fc82d9e33624ebb
https://github.com/WebKit/WebKit/commit/df71fe1ee05a6e3a1a7d44822fc82d9e33624ebb
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Element.cpp
M Source/WebCore/svg/SVGElement.cpp
Log Message:
-----------
Merge r275876 - Skip style update
https://bugs.webkit.org/show_bug.cgi?id=223365
Patch by Rob Buis <rbuis at igalia.com> on 2021-04-13
Reviewed by Ryosuke Niwa.
Skip style update for getting the SVG bounding box
since boundingClientRect already updated style.
* dom/Element.cpp:
(WebCore::Element::boundingAbsoluteRectWithoutLayout):
* svg/SVGElement.cpp:
(WebCore::SVGElement::getBoundingBox):
Commit: 16af9ab88a65c2628fcbedce370353e423ad40a2
https://github.com/WebKit/WebKit/commit/16af9ab88a65c2628fcbedce370353e423ad40a2
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Element.cpp
Log Message:
-----------
Merge r275938 - Do not reset computed style for element children with display contents style
https://bugs.webkit.org/show_bug.cgi?id=223794
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-04-14
Reviewed by Antti Koivisto.
We were checking hasDisplayContents() was false before calling resetComputedStyle() on the parent, but we don't
check it when iterating the children.
* dom/Element.cpp:
(WebCore::Element::resetComputedStyle):
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveComposedTree):
Commit: 4c57e6f6fbab2eb7e689da24e125a7bdbc438f42
https://github.com/WebKit/WebKit/commit/4c57e6f6fbab2eb7e689da24e125a7bdbc438f42
Author: Julian Gonzalez <julian_a_gonzalez at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/ReplaceSelectionCommand.cpp
Log Message:
-----------
Merge r275972 - Crash in ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds()
https://bugs.webkit.org/show_bug.cgi?id=224520
Patch by Julian Gonzalez <julian_a_gonzalez at apple.com> on 2021-04-14
Reviewed by Ryosuke Niwa.
Adopt RefPtr<Node> instead of using plain Node* here to avoid a crash.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
Commit: aaf0eaecc9f8e1cd1ca20b8183b2bbf2c2a1a66e
https://github.com/WebKit/WebKit/commit/aaf0eaecc9f8e1cd1ca20b8183b2bbf2c2a1a66e
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/ReplaceSelectionCommand.cpp
Log Message:
-----------
Merge r275994 - Crash in in ReplaceSelectionCommand::mergeEndIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=222941
Unreviewed. Address Darin's post-commit comment that we don't need to explicitly call copyRef here.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded):
Commit: 837935600d64eb4d67521a43452d88a39efabb5a
https://github.com/WebKit/WebKit/commit/837935600d64eb4d67521a43452d88a39efabb5a
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/ComposedTreeIterator.cpp
M Source/WebCore/dom/ContainerNode.cpp
M Source/WebCore/dom/Node.h
M Source/WebCore/dom/ShadowRoot.h
M Source/WebCore/dom/SlotAssignment.cpp
M Source/WebCore/dom/SlotAssignment.h
Log Message:
-----------
Merge r276010 - REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=222720
Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2021-04-15
Reviewed by Ryosuke Niwa.
This patch reverts r274064 to apply a different fix. Instead of null-checking the nodes returned by
SlotAssignment::assignedNodesForSlot(), assigned nodes are removed from the list when they are about to be
removed from the parent. That ensures we never return nullptr nodes nor nodes with a nullptr parent from the
assigned nodes vector.
* dom/ComposedTreeIterator.cpp:
(WebCore::ComposedTreeIterator::traverseNextInShadowTree):
(WebCore::ComposedTreeIterator::advanceInSlot):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeBetween):
* dom/Node.h:
(WebCore::Node::hasShadowRootContainingSlots const):
(WebCore::Node::setHasShadowRootContainingSlots):
* dom/ShadowRoot.h:
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::removeSlotElementByName):
(WebCore::SlotAssignment::willRemoveAssignedNode):
* dom/SlotAssignment.h:
(WebCore::ShadowRoot::willRemoveAssignedNode):
Commit: 0612ae82c03a43081c957a9e99a01daebd557c3e
https://github.com/WebKit/WebKit/commit/0612ae82c03a43081c957a9e99a01daebd557c3e
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
Log Message:
-----------
Merge r276014 - [RenderTreeBuilder] Cleanup the inline tree when moving subtrees
https://bugs.webkit.org/show_bug.cgi?id=224342
<rdar://76349279>
Reviewed by Antti Koivisto.
When an inline box is moved over to a different BFC (<span>), any inline level descendant (<span><img></span>) should be invalidated. The safest way to do this is
to destroy the inline tree (the "subtree moving" will eventually be replaced by "destroy followed by construct" activity).
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::move):
Commit: bd3654c3a46b0f17837dab5a158a3ec53562db17
https://github.com/WebKit/WebKit/commit/bd3654c3a46b0f17837dab5a158a3ec53562db17
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/css/CSSFontFaceSet.cpp
Log Message:
-----------
Merge r276015 - Empty value is added in codePointsFromString in CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts
https://bugs.webkit.org/show_bug.cgi?id=223857
Reviewed by Darin Adler.
Use UnsignedWithZeroKeyHashTraits in codePointsFromString() to avoid it.
* css/CSSFontFaceSet.cpp:
(WebCore::codePointsFromString):
Commit: 3515d70ad329e6d085489ca8067e6a551c1fa939
https://github.com/WebKit/WebKit/commit/3515d70ad329e6d085489ca8067e6a551c1fa939
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/svg/SVGAnimationElement.cpp
Log Message:
-----------
Merge r276110 - Assertion failure in SVGAnimationElement::currentValuesForValuesAnimation
https://bugs.webkit.org/show_bug.cgi?id=222715
Reviewed by Ryosuke Niwa.
Replaced ASSERT_WITH_SECURITY_IMPLICATION by ASSERT. It was added by mistake as part of
r157341 long time ago. There is no security implication because just after the assert
there would be a division by 0 followed by a crash.
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
Commit: 9d6cff38c4bc4ca35c76f9c41f6888c9a847b288
https://github.com/WebKit/WebKit/commit/9d6cff38c4bc4ca35c76f9c41f6888c9a847b288
Author: Darin Adler <darin at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/fast/css/calc-parsing-expected.txt
M LayoutTests/fast/css/calc-parsing.html
M LayoutTests/imported/w3c/ChangeLog
M LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt
M Source/WebCore/ChangeLog
M Source/WebCore/css/CSSCalculationValue.cpp
M Source/WebCore/css/CSSCalculationValue.h
M Source/WebCore/platform/CalculationValue.cpp
M Source/WebCore/platform/CalculationValue.h
Log Message:
-----------
Merge r276262 - Nullptr crash in CSSCalcValue::category() via HTMLConverterCaches::floatPropertyValueForNode
https://bugs.webkit.org/show_bug.cgi?id=221392
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
* web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt:
Updated to reflect 8 tests passing that were failing before.
Source/WebCore:
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcOperationNode::createCalcExpression const): Pass in a destination category
when creating a CalcExpressionOperation.
(WebCore::createCSS): Pass the destination category from the CalcExpressionOperation when
creating a CSSCalcOperationNode.
* css/CSSCalculationValue.h: Moved the CalculationCategory enumeration from here to
CalculationValue.h.
* platform/CalculationValue.cpp:
(WebCore::operator==): Include destination category when comparing.
* platform/CalculationValue.h: Moved CalculationCategory here. Added a destination
category constructor argument, data members, and getter function to the
CalcExpressionOperation class.
LayoutTests:
* fast/css/calc-parsing-expected.txt: Updated for change below.
* fast/css/calc-parsing.html: Added more test cases so this covers the affected cases of computed
style for calc expressions that mix percentages and numbers. Alternatively, we could remove this
entire test case because the web platform tests also cover this pretty well.
Commit: fd37a7f317d26ba0f59980e4a3bae127930d6aa4
https://github.com/WebKit/WebKit/commit/fd37a7f317d26ba0f59980e4a3bae127930d6aa4
Author: Ian Gilbert <iang at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/IndentOutdentCommand.cpp
Log Message:
-----------
Merge r276546 - Crash in IndentOutdentCommand::outdentParagraph attempting to move a paragraph
https://bugs.webkit.org/show_bug.cgi?id=224909
Patch by Ian Gilbert <iang at apple.com> on 2021-04-23
Reviewed by Ryosuke Niwa.
Added check inside IndentOutdentCommand::outdentParagraph to ensure that inserting a
HTMLBRElement was successful before attempting to move a paragraph to that node.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph):
Commit: 7b8b21f832fc42434f62902a5b3693c49738b2a5
https://github.com/WebKit/WebKit/commit/7b8b21f832fc42434f62902a5b3693c49738b2a5
Author: Tim Nguyen <ntim at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/GPUProcess/graphics/DisplayListReaderHandle.h
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/Shared/SharedDisplayListHandle.h
M Source/WebKit/WebProcess/GPU/graphics/DisplayListWriterHandle.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
Log Message:
-----------
Merge r276623 - Add more eager OOB checks when creating DisplayListReaderHandle & DisplayListWriterHandle.
https://bugs.webkit.org/show_bug.cgi?id=225055
<rdar://71896663>
Patch by Tim Nguyen <ntim at apple.com> on 2021-04-26
Reviewed by Wenson Hsieh.
There were already some OOB checks for both classes, this revision adds checks at creation-time.
Also add a comment on top of SharedDisplayListHandle.h to mention that only subclasses use it.
* GPUProcess/graphics/DisplayListReaderHandle.h:
(WebKit::DisplayListReaderHandle::create):
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):
* Shared/SharedDisplayListHandle.h:
(WebKit::SharedDisplayListHandle::SharedDisplayListHandle):
* WebProcess/GPU/graphics/DisplayListWriterHandle.h:
(WebKit::DisplayListWriterHandle::create):
* WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):
Commit: d58424a289d52d098b806a8355a049977199171c
https://github.com/WebKit/WebKit/commit/d58424a289d52d098b806a8355a049977199171c
Author: Frédéric Wang <fwang at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/mathml/vertical-embellished-op-dirty-layout-expected.txt
A LayoutTests/mathml/vertical-embellished-op-dirty-layout.html
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
Log Message:
-----------
Merge r276630 - [MathML] Assertion failure in RenderTreeNeedsLayoutChecker
https://bugs.webkit.org/show_bug.cgi?id=224903
Patch by Frédéric Wang <fwang at igalia.com> on 2021-04-27
Reviewed by Alan Bujtas.
Source/WebCore:
After r226180, RenderMathMLRow no longer performs layout of its "embellished operator"
children only its core <mo> descendant, which is causing dirty layout.
Test: mathml/vertical-embellished-op-dirty-layout.html
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::stretchVerticalOperatorsAndLayoutChildren): always layout the
"embellished operator" child, after its core <mo>.
LayoutTests:
Add regression test with all vertical embellished operators (other than <mo>) supported
by WebKit.
* mathml/vertical-embellished-op-dirty-layout-expected.txt: Added.
* mathml/vertical-embellished-op-dirty-layout.html: Added.
Commit: cc6876534e8c04901a81798c86dc549d7fe98314
https://github.com/WebKit/WebKit/commit/cc6876534e8c04901a81798c86dc549d7fe98314
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/Platform/IPC/Decoder.cpp
Log Message:
-----------
Merge r276651 - [IPC Hardening] Make sure IPC::Decoder constructors consistently call markInvalid() when decoding fails
https://bugs.webkit.org/show_bug.cgi?id=225110
<rdar://76547775>
Reviewed by Darin Adler.
One of the IPC::Decoder constructors was failing to call markInvalid() after failing to
decoder the message name.
* Platform/IPC/Decoder.cpp:
(IPC::m_destinationID):
Commit: 52922c6d2a3d146b6fc1ad483879681a1ee28d45
https://github.com/WebKit/WebKit/commit/52922c6d2a3d146b6fc1ad483879681a1ee28d45
Author: Ian Gilbert <iang at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
Log Message:
-----------
Merge r276696 - Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Patch by Ian Gilbert <iang at apple.com> on 2021-04-28
Reviewed by Ryosuke Niwa.
Refactoring to use weak pointer instead of raw pointer.
No observable change of behavior.
* dom/Document.cpp:
(WebCore::Document::registerMediaElement):
(WebCore::Document::unregisterMediaElement):
(WebCore::Document::forEachMediaElement):
* dom/Document.h:
Commit: 8b18e408e08345bf1c4ef5a3f668c7c8950edd78
https://github.com/WebKit/WebKit/commit/8b18e408e08345bf1c4ef5a3f668c7c8950edd78
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Document.cpp
Log Message:
-----------
Merge r276748 - Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Unreviewed. Address the review comments by Chris & Darin.
* dom/Document.cpp:
(WebCore::Document::forEachMediaElement):
Commit: b2a4802f43fafa8a3366064aa7b846922a6c7fc6
https://github.com/WebKit/WebKit/commit/b2a4802f43fafa8a3366064aa7b846922a6c7fc6
Author: Julian Gonzalez <julian_a_gonzalez at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Merge r277375 - Crash in WebPageProxy::endColorPicker()
https://bugs.webkit.org/show_bug.cgi?id=225679
Patch by Julian Gonzalez <julian_a_gonzalez at apple.com> on 2021-05-12
Reviewed by Ryosuke Niwa.
Make sure that endColorPicker() and didEndColorPicker()
do not both attempt to null-out m_colorPicker.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::endColorPicker):
(WebKit::WebPageProxy::didEndColorPicker):
Commit: 911cf66b28e9a995e72fc1e656b152eb1154777a
https://github.com/WebKit/WebKit/commit/911cf66b28e9a995e72fc1e656b152eb1154777a
Author: Frédéric Wang <fwang at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/FrameSelection.cpp
Log Message:
-----------
Merge r277425 - RELEASE_ASSERT(m_selection->isNone()) fails in Document::removedLastRef
https://bugs.webkit.org/show_bug.cgi?id=225434
Patch by Frederic Wang <fwang at igalia.com> on 2021-05-12
Reviewed by Ryosuke Niwa.
Document::removedLastRef asserts that the document's selection is not set. However, setting
that selection is possible in FrameSelection::setSelectionWithoutUpdatingAppearance when the
document has not been destroyed yet but is already detached from its frame. This patch
instead clears the selection in that case.
No new tests.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Clears the selection when
newSelection is in a detached document. Given the other conditions, this is actually
checking equivalent to !m_document->frame().
Commit: 35536f9f1146d91ce185c3378c1f1deb9b91f8e6
https://github.com/WebKit/WebKit/commit/35536f9f1146d91ce185c3378c1f1deb9b91f8e6
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
Log Message:
-----------
Merge r277532 - Provide custom SetInlineFillGradient copy ctor
https://bugs.webkit.org/show_bug.cgi?id=225688
Patch by Rob Buis <rbuis at igalia.com> on 2021-05-14
Reviewed by Wenson Hsieh.
Provide custom SetInlineFillGradient copy ctor
to deal with invalid SetInlineFillGradient source.
* platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
* platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::SetInlineFillGradient::isValid const):
Commit: 6b41f17c4290b4b4a9c2f99bc6e0d5c722aecbbf
https://github.com/WebKit/WebKit/commit/6b41f17c4290b4b4a9c2f99bc6e0d5c722aecbbf
Author: Frédéric Wang <fwang at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/editing/FrameSelection.cpp
Log Message:
-----------
Merge r277600 - REGRESSION(r277425): Crash in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225795
Patch by Frederic Wang <fwang at igalia.com> on 2021-05-17
Reviewed by Ryosuke Niwa.
r277425 claimed that in FrameSelection::setSelectionWithoutUpdatingAppearance,
!m_document->frame() was equivalent to !selectionEndpointsBelongToMultipleDocuments &&
!selectionIsInAnotherDocument && selectionIsInDetachedDocument, but it misses the case when
newSelection.document() is null. So this patch adds back this particular case to the
original "if" block. This patch also adds an ASSERT on m_document->frame().
No new tests.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Add back the case
!m_document->frame() && !newSelection.document() to the first sanity check and ASSERT on
m_document->frame() after the second sanity check.
Commit: db2f31c7fad082c4694f784bc5901f070f551dbe
https://github.com/WebKit/WebKit/commit/db2f31c7fad082c4694f784bc5901f070f551dbe
Author: Wenson Hsieh <wenson_hsieh at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
Log Message:
-----------
Merge r277602 - [GPU Process] Validate DocumentMarkerLineStyle::Mode when decoding DrawDotsForDocumentMarker
https://bugs.webkit.org/show_bug.cgi?id=225874
rdar://77885775
Reviewed by Simon Fraser.
Add validation around the style mode enum in `DrawDotsForDocumentMarker`'s `DocumentMarkerLineStyle`. To ensure
that these enum values are safely decoded when deserializing `DrawDotsForDocumentMarker` items from arbitrary
data, we store and read the style mode as `DocumentMarkerLineStyle::Mode`'s underlying type: a `uint8_t`. Upon
item validation, we'll then return `false` from `isValid()` in the case where the underlying value is not a
valid `DocumentMarkerLineStyle::Mode`.
This is necessary because copying invalid enum class types triggers undefined behavior in C++, so we need to
avoid copying the enum value as a `DocumentMarkerLineStyle::Mode` prior to validation.
* platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::DrawDotsForDocumentMarker::isValid const):
* platform/graphics/displaylists/DisplayListItems.h:
Commit: a97345fd894913a60222707f6ec238c57cd177b9
https://github.com/WebKit/WebKit/commit/a97345fd894913a60222707f6ec238c57cd177b9
Author: Wenson Hsieh <wenson_hsieh at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/ObjectIdentifier.h
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
M Source/WebKit/ChangeLog
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp
Log Message:
-----------
Merge r277631 - [GPU Process] Object identifiers with the deleted value should cause MESSAGE_CHECKs
https://bugs.webkit.org/show_bug.cgi?id=225886
rdar://78114708
Reviewed by Chris Dumez.
Source/WebCore:
Implement some stricter validation around object identifiers in when decoding display list items in the GPU
Process. Currently, we only check for the empty value (i.e. raw identifier value of 0) when iterating over these
items, but treat an identifier with the deleted value as valid; instead, we should be treating items with either
empty or deleted identifiers as invalid.
`!!identifier` into `identifier.isValid()`.
Test: DisplayListTests.InlineItemValidationFailure
* platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::ClipToImageBuffer::isValid const):
(WebCore::DisplayList::DrawImageBuffer::isValid const):
(WebCore::DisplayList::DrawNativeImage::isValid const):
(WebCore::DisplayList::DrawPattern::isValid const):
(WebCore::DisplayList::PaintFrameForMedia::isValid const):
(WebCore::DisplayList::FlushContext::isValid const):
(WebCore::DisplayList::MetaCommandChangeItemBuffer::isValid const):
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::isValid const):
Source/WebKit:
value, when determining whether an object identifier should trigger a message check to the web process.
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
Source/WTF:
See WebCore/ChangeLog for more details. Add a helper method on `ObjectIdentifier` that returns true only if it
is the empty value or deleted value.
* wtf/ObjectIdentifier.h:
Tools:
Adjust an existing API test to verify that the deleted object identifier value triggers an inline item decoding
failure.
* TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
Commit: 09b55ca277aac131808909236c5ca4d66a577ed8
https://github.com/WebKit/WebKit/commit/09b55ca277aac131808909236c5ca4d66a577ed8
Author: Alan Bujtas <zalan at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderElement.cpp
M Source/WebCore/rendering/RenderElement.h
Log Message:
-----------
Merge r277698 - The containing block for a fixed renderer has to be a type of RenderBlock
https://bugs.webkit.org/show_bug.cgi?id=225924
<rdar://77968716>
Reviewed by Simon Fraser.
While an atomic inline level box with layout containment can certainly be the containing block for fixed (and absolute) boxes,
the current render tree logic requires a containing block to be the type of RenderBlock.
* rendering/RenderElement.cpp:
(WebCore::nearestNonAnonymousContainingBlockIncludingSelf): make this function static so that we can call it from containingBlockForFixedPosition()
(WebCore::RenderElement::containingBlockForFixedPosition const):
(WebCore::RenderElement::containingBlockForAbsolutePosition const):
Commit: 6474c677e26fb81b30f87c061ab51e723c63512f
https://github.com/WebKit/WebKit/commit/6474c677e26fb81b30f87c061ab51e723c63512f
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/audio/cocoa/WebAudioBufferList.cpp
Log Message:
-----------
Merge r277821 - WebAudioBufferList::setSampleCount() should early return if computeBufferSizes() fails
https://bugs.webkit.org/show_bug.cgi?id=226028
rdar://78222414
Reviewed by Eric Carlson.
If computeBufferSizes() fails (returns WTF::nullopt), we now early return on release
builds, without modifying the WebAudioBufferList's internal state in any way. In
Debug, we would still hit the assertion.
* platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::setSampleCount):
Commit: cdbd5ff537c526e3fcced39b42afd775e80c921c
https://github.com/WebKit/WebKit/commit/cdbd5ff537c526e3fcced39b42afd775e80c921c
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
Log Message:
-----------
Merge r277854 - Detect invalid InlinePathData in FillInlinePath
https://bugs.webkit.org/show_bug.cgi?id=225693
Patch by Rob Buis <rbuis at igalia.com> on 2021-05-21
Reviewed by Ryosuke Niwa.
Detect invalid InlinePathData in FillInlinePath.
* platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::InlinePathDataStorage::InlinePathDataStorage):
(WebCore::DisplayList::InlinePathDataStorage::isValid const):
(WebCore::DisplayList::FillInlinePath::FillInlinePath):
(WebCore::DisplayList::FillInlinePath::path const): Deleted.
Commit: 9ea8dd40ce3b6ff53edbc71b2132a6c82ad8b4f0
https://github.com/WebKit/WebKit/commit/9ea8dd40ce3b6ff53edbc71b2132a6c82ad8b4f0
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
Log Message:
-----------
Merge r277915 - Detect invalid InlinePathData in StrokeInlinePath
https://bugs.webkit.org/show_bug.cgi?id=225691
Patch by Rob Buis <rbuis at igalia.com> on 2021-05-22
Reviewed by Ryosuke Niwa.
Detect invalid InlinePathData in StrokeInlinePath.
* platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath):
(WebCore::DisplayList::StrokeInlinePath::path const): Deleted.
Commit: b22443e6e819fded53b4472a506953e671ed34d0
https://github.com/WebKit/WebKit/commit/b22443e6e819fded53b4472a506953e671ed34d0
Author: Ian Gilbert <iang at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/html/HTMLMediaElement.cpp
Log Message:
-----------
Merge r278000 - Only create MediaElementSession when necessary
https://bugs.webkit.org/show_bug.cgi?id=226132
Patch by Ian Gilbert <iang at apple.com> on 2021-05-25
Reviewed by Eric Carlson.
Some methods had an unexpected side effect of creating a MediaElementSession.
Modified these to not create one if one does not already exist.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::mediaState const):
Commit: 4ccd8a9c6fda96462ddb23578d18d455157a660f
https://github.com/WebKit/WebKit/commit/4ccd8a9c6fda96462ddb23578d18d455157a660f
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/Ref.h
Log Message:
-----------
Merge r278132 - [Hardening] Have the Ref<> destructor null out its pointer
https://bugs.webkit.org/show_bug.cgi?id=226293
<rdar://problem/78532149>
Reviewed by Geoffrey Garen.
* wtf/Ref.h:
(WTF::Ref::~Ref):
Commit: ec1a9b8a12c09f59c8608b77994acde79bf62139
https://github.com/WebKit/WebKit/commit/ec1a9b8a12c09f59c8608b77994acde79bf62139
Author: Wenson Hsieh <wenson_hsieh at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/GPUProcess/graphics/DisplayListReaderHandle.h
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/Shared/SessionState.cpp
M Source/WebKit/Shared/SessionState.h
M Source/WebKit/Shared/SharedDisplayListHandle.h
M Source/WebKit/WebProcess/GPU/graphics/DisplayListWriterHandle.h
Log Message:
-----------
Merge r278161 - [GPU Process] Add validation when reading DisplayListSharedMemoryHeader::waitingStatus in DisplayListReaderHandle
https://bugs.webkit.org/show_bug.cgi?id=226306
rdar://78118900
Reviewed by Chris Dumez.
Store this waiting status (an enum class with three valid states) as a raw `uint8_t` in shared memory, rather
than an `enum class`. This allows us to verify that this value indicates a valid waiting status (using
`isValidEnum`) upon reading this flag in the GPU process, and perform a `MESSAGE_CHECK` in the case where it is
invalid.
* GPUProcess/graphics/DisplayListReaderHandle.h:
(WebKit::DisplayListReaderHandle::startWaiting):
(WebKit::DisplayListReaderHandle::stopWaiting):
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
* Shared/SessionState.cpp:
(WebKit::PageState::decode):
* Shared/SessionState.h:
Drive-by fix: remove a non-templated declaration of `isValidEnum()`. This is necessary in order to use
`WTF::isValidEnum` without the explicit WTF namespace prefix inside `DisplayListReaderHandle`, since WTF's
declaration of `isValidEnum` clashes with this declaration.
Instead of using this separate method for validating the enum, simply encode and decode the
`shouldOpenExternalURLsPolicy` enum using << and >> operators, respectively; this ensures that the decoded value
of `shouldOpenExternalURLsPolicy` is either valid, or the result will be WTF::nullopt if decoding fails or
results in an invalid enum.
* Shared/SharedDisplayListHandle.h:
* WebProcess/GPU/graphics/DisplayListWriterHandle.h:
(WebKit::DisplayListWriterHandle::tryToResume):
Commit: 0aea535cf348b804539cd8429fa0d329672fed0d
https://github.com/WebKit/WebKit/commit/0aea535cf348b804539cd8429fa0d329672fed0d
Author: Mikhail R. Gadelha <mikhail.ramalho at gmail.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/js/dom/number-tofixed-expected.txt
M LayoutTests/js/dom/script-tests/number-tofixed.js
M LayoutTests/js/kde/Number-expected.txt
M LayoutTests/js/kde/script-tests/Number.js
M Source/WTF/ChangeLog
M Source/WTF/wtf/dtoa.h
Log Message:
-----------
Merge r278177 - Increase NumberToStringBuffer to account for negative number
https://bugs.webkit.org/show_bug.cgi?id=226014
Patch by Mikhail R. Gadelha <mikhail.ramalho at gmail.com> on 2021-05-27
Reviewed by Robin Morisset.
In r250389, NumberToStringBuffer length was increased from 96 to 123 because:
<21 digits> + decimal point + <100 digits> + null char = 123.
however,
a = -100000000000000000000
a.toFixed(100)
is a valid conversion and it is 124 chars long, because of the "-" sign.
So this patch increases the length of NumberToStringBuffer to 124 and adds new
test cases.
Source/WTF:
Reviewed by Ryosuke Niwa.
* wtf/dtoa.h:
LayoutTests:
* js/dom/number-tofixed-expected.txt:
* js/dom/script-tests/number-tofixed.js:
* js/kde/Number-expected.txt:
* js/kde/script-tests/Number.js:
Commit: 607c903c1a018537f3dddfea35d227f3c65366b4
https://github.com/WebKit/WebKit/commit/607c903c1a018537f3dddfea35d227f3c65366b4
Author: Brent Fulgham <bfulgham at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/SharedBuffer.cpp
Log Message:
-----------
Merge r278207 - Buffer computations should use correct type
https://bugs.webkit.org/show_bug.cgi?id=226352
<rdar://problem/78116213>
Reviewed by Ryosuke Niwa.
The implementation of utf8Buffer holds the buffer size in an 'int', even though our buffer
APIs take size_t arguments. Let's make this consistent.
* platform/SharedBuffer.cpp:
(WebCore::utf8Buffer):
Commit: 03358074549ad6c9bf775cc9d0ffc8c38a976eb6
https://github.com/WebKit/WebKit/commit/03358074549ad6c9bf775cc9d0ffc8c38a976eb6
Author: Alex Christensen <achristensen at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WTF/wtf/URLHelpers.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm
Log Message:
-----------
Merge r278236 - Punycode encode U+0BE6 when not in context of other Tamil characters
https://bugs.webkit.org/show_bug.cgi?id=226409
<rdar://78160926>
Reviewed by Tim Horton.
Source/WTF:
It has quite legitimate use, so we don't want to always punycode encode it,
but when used in the context of non-Tamil characters we want to punycode encode it.
* wtf/URLHelpers.cpp:
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_ARMENIAN>):
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_TAMIL>):
(WTF::URLHelpers::isOfScriptType):
(WTF::URLHelpers::isLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeCharacter): Deleted.
(WTF::URLHelpers::isArmenianScriptCharacter): Deleted.
(WTF::URLHelpers::isArmenianLookalikeSequence): Deleted.
Tools:
* TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
Commit: c5b3cecdfedc4743fc2a1c135102b026b0fb2ab1
https://github.com/WebKit/WebKit/commit/c5b3cecdfedc4743fc2a1c135102b026b0fb2ab1
Author: Alex Christensen <achristensen at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WTF/ChangeLog
M Tools/ChangeLog
Log Message:
-----------
Merge r278236 - Punycode encode U+0BE6 when not in context of other Tamil characters
https://bugs.webkit.org/show_bug.cgi?id=226409
<rdar://78160926>
Reviewed by Tim Horton.
Source/WTF:
It has quite legitimate use, so we don't want to always punycode encode it,
but when used in the context of non-Tamil characters we want to punycode encode it.
* wtf/URLHelpers.cpp:
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_ARMENIAN>):
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_TAMIL>):
(WTF::URLHelpers::isOfScriptType):
(WTF::URLHelpers::isLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeCharacter): Deleted.
(WTF::URLHelpers::isArmenianScriptCharacter): Deleted.
(WTF::URLHelpers::isArmenianLookalikeSequence): Deleted.
Tools:
* TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
Commit: e1708b9ffbe740235d7afbffb6886698c056e1e3
https://github.com/WebKit/WebKit/commit/e1708b9ffbe740235d7afbffb6886698c056e1e3
Author: Kimmo Kinnunen <kkinnunen at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/ThirdParty/ANGLE/ChangeLog
M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ShaderVk.cpp
Log Message:
-----------
Merge r278296 - Cherry-pick ANGLE: Add array bounds checks for WebGL shaders
https://bugs.webkit.org/show_bug.cgi?id=226397
Patch by Kimmo Kinnunen <kkinnunen at apple.com> on 2021-05-31
Reviewed by Dean Jackson.
Cherry-pick ANGLE commit b0d39ba2aba218402ff2f32f6e16f18cf4975ff4
At the moment does not affect any WebKit client.
Makes the code consistent with OpenGL.
Makes it easier to understand same change in Metal backend.
Upstream description:
Add array bounds checks for WebGL shaders
WebGL shaders may contain OOB array accesses which in turn
cause undefined behavior, which may result in security
issues. This was detected as an UNKNOWN READ by UBSAN while
testing with SwANGLE.
* src/libANGLE/renderer/vulkan/ShaderVk.cpp:
(rx::ShaderVk::compile):
Commit: c75ac4465003578cb4fefacc3deae1a2045e0a84
https://github.com/WebKit/WebKit/commit/c75ac4465003578cb4fefacc3deae1a2045e0a84
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
Log Message:
-----------
Merge r278397 - Make EndTransparancyLayer a potential no-op
https://bugs.webkit.org/show_bug.cgi?id=226523
Patch by Rob Buis <rbuis at igalia.com> on 2021-06-02
Reviewed by Simon Fraser.
Make EndTransparancyLayer a no-op if there is no
current transparency layer in place.
* platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::EndTransparencyLayer::apply const):
Commit: 03cbefed83da7b75dbce4b4249c35b894071fc5c
https://github.com/WebKit/WebKit/commit/03cbefed83da7b75dbce4b4249c35b894071fc5c
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/webaudio/AudioNode.cpp
Log Message:
-----------
Merge r278729 - Fix incorrect check in AudioNode.disconnect()
https://bugs.webkit.org/show_bug.cgi?id=226818
<rdar://problem/79076999>
Reviewed by Eric Carlson.
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::disconnect):
Commit: 0eebd5bae9ae27f5d3a9b9585af6f7535d54f2c3
https://github.com/WebKit/WebKit/commit/0eebd5bae9ae27f5d3a9b9585af6f7535d54f2c3
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M JSTests/ChangeLog
A JSTests/stress/shared-wasm-memory-with-zero-byte.js
M Source/JavaScriptCore/ChangeLog
M Source/JavaScriptCore/wasm/WasmMemory.cpp
Log Message:
-----------
Merge r279076 - Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount)::<lambda()>
https://bugs.webkit.org/show_bug.cgi?id=227180
Reviewed by Keith Miller.
JSTests:
* stress/shared-wasm-memory-with-zero-byte.js: Added.
Source/JavaScriptCore:
When Wasm.Memory is shared, we should allocate bound growable memory even if initial size is 0 bytes,
since this range can be later extended by mprotect. If maximum size is also 0 byte, we already have
a path that does not allocate anything.
* wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::tryCreate):
Commit: c5ffa0f931864e487b844c390ed09277809a91ce
https://github.com/WebKit/WebKit/commit/c5ffa0f931864e487b844c390ed09277809a91ce
Author: Rob Buis <rbuis at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/style/StyleTreeResolver.cpp
Log Message:
-----------
Merge r279118 - Make rendererIsEverNeeded check less strict
https://bugs.webkit.org/show_bug.cgi?id=226791
Patch by Rob Buis <rbuis at igalia.com> on 2021-06-22
Reviewed by Antti Koivisto.
Make rendererIsEverNeeded check less strict
in TreeResolver::resolveElement.
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
Commit: 5cb2ecaa13793a595a387dc9f0b6853f0c64ee16
https://github.com/WebKit/WebKit/commit/5cb2ecaa13793a595a387dc9f0b6853f0c64ee16
Author: Venky Dass <yaranamavenkataramana at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
Log Message:
-----------
Merge r279254 - Crash in WebFrameLoaderClient::dispatchDidStartProvisionalLoad after provisionalLoader is gone.
https://bugs.webkit.org/show_bug.cgi?id=226979
Patch by Venky Dass <yaranamavenkataramana at apple.com> on 2021-06-24
Reviewed by Ryosuke Niwa.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
Commit: 7c2752dcae575a67aafac5dc4eb6bd17f8ca256d
https://github.com/WebKit/WebKit/commit/7c2752dcae575a67aafac5dc4eb6bd17f8ca256d
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/editing/selection/setSelection-shadow-dom-crash-expected.txt
A LayoutTests/editing/selection/setSelection-shadow-dom-crash.html
M Source/WebCore/ChangeLog
M Source/WebCore/editing/markup.cpp
Log Message:
-----------
Merge r279284 - Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=226821
Reviewed by Ryosuke Niwa.
Source/WebCore:
r276394 fixed an issue in serialization when transversing the nodes. It added a new condition
to the ASSERT that was checking that its OK not to have a next pointer when there is a valid
pastEnd in the case of pastEnd being a descendant of the pointer traversing the node tree.
However that descendant check was not including the shadow DOM. This is precisely the case
detected by the test case this patch is adding.
Test: editing/selection/setSelection-shadow-dom-crash.html
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
LayoutTests:
* editing/selection/setSelection-shadow-dom-crash-expected.txt: Added.
* editing/selection/setSelection-shadow-dom-crash.html: Added.
Commit: 115599a44785cfe6ed0a86e8bc03041f755c9b9d
https://github.com/WebKit/WebKit/commit/115599a44785cfe6ed0a86e8bc03041f755c9b9d
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/EventHandler.cpp
M Source/WebCore/replay/UserInputBridge.cpp
M Source/WebKit/ChangeLog
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
Log Message:
-----------
Merge r279626 - Deploy smart pointers in EventHandler and UserInputBridge
https://bugs.webkit.org/show_bug.cgi?id=227481
<rdar://problem/79906757>
Reviewed by Wenson Hsieh and Chris Dumez.
Source/WebCore:
Deployed Ref/RefPtr in various places in EventHandler and UserInputBridge.
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromHitTestResult):
(WebCore::EventHandler::selectClosestContextualWordFromMouseEvent):
(WebCore::EventHandler::selectClosestContextualWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::selectionExtentRespectingEditingBoundary):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::eventMayStartDrag const):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::hitTestResultAtPoint const):
(WebCore::EventHandler::scrollOverflow):
(WebCore::EventHandler::logicalScrollOverflow):
(WebCore::EventHandler::scrollRecursively):
(WebCore::EventHandler::logicalScrollRecursively):
(WebCore::EventHandler::updateCursor):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::contentFrameForNode): Renamed from targetIsFrame and made it return the node.
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::cancelDragAndDrop):
(WebCore::EventHandler::performDragAndDrop):
(WebCore::hierarchyHasCapturingEventListeners):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::notifyScrollableAreasOfMouseEvents):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::isInsideScrollbar const):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::handleAccessKey):
(WebCore::EventHandler::isKeyEventAllowedInFullScreen const):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::internalKeyEvent):
(WebCore::setInitialKeyboardSelection):
(WebCore::removeDraggedContentDocumentMarkersFromAllFramesInPage):
(WebCore::EventHandler::handleKeyboardScrolling):
(WebCore::EventHandler::handleTouchEvent):
(WebCore::EventHandler::passWheelEventToWidget):
* replay/UserInputBridge.cpp:
(WebCore::UserInputBridge::handleMousePressEvent):
(WebCore::UserInputBridge::handleMouseReleaseEvent):
(WebCore::UserInputBridge::handleMouseMoveEvent):
(WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
(WebCore::UserInputBridge::handleMouseForceEvent):
(WebCore::UserInputBridge::handleKeyEvent):
(WebCore::UserInputBridge::handleAccessKeyEvent):
(WebCore::UserInputBridge::handleWheelEvent):
(WebCore::UserInputBridge::scrollRecursively):
(WebCore::UserInputBridge::logicalScrollRecursively):
(WebCore::UserInputBridge::loadRequest):
(WebCore::UserInputBridge::tryClosePage):
Source/WebKit:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::handleContextMenuEvent):
Commit: 47758a618dc138bd1f7604fed5ff5c74c6df6e3a
https://github.com/WebKit/WebKit/commit/47758a618dc138bd1f7604fed5ff5c74c6df6e3a
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/DOMWindow.cpp
Log Message:
-----------
Merge r279661 - Deploy smart pointers in DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=227584
Reviewed by David Kilzer.
Deployed Ref/RefPtr in more places in DOMWindow.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::performance const):
(WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
(WebCore::DOMWindow::postMessage):
(WebCore::DOMWindow::frameElement const):
(WebCore::DOMWindow::focus):
(WebCore::DOMWindow::blur):
(WebCore::DOMWindow::close):
(WebCore::DOMWindow::print):
(WebCore::DOMWindow::stop):
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::outerHeight const):
(WebCore::DOMWindow::outerWidth const):
(WebCore::DOMWindow::innerHeight const):
(WebCore::DOMWindow::innerWidth const):
(WebCore::DOMWindow::screenX const):
(WebCore::DOMWindow::screenY const):
(WebCore::DOMWindow::scrollX const):
(WebCore::DOMWindow::scrollY const):
(WebCore::DOMWindow::closed const):
(WebCore::DOMWindow::name const):
(WebCore::DOMWindow::setName):
(WebCore::DOMWindow::setStatus):
(WebCore::DOMWindow::setDefaultStatus):
(WebCore::DOMWindow::opener const):
(WebCore::DOMWindow::disownOpener):
(WebCore::DOMWindow::parent const):
(WebCore::DOMWindow::top const):
(WebCore::DOMWindow::consumeTransientActivation):
(WebCore::DOMWindow::notifyActivated):
(WebCore::DOMWindow::getMatchedCSSRules const):
(WebCore::DOMWindow::scrollBy const):
(WebCore::DOMWindow::allowedToChangeWindowGeometry const):
(WebCore::DOMWindow::setTimeout):
(WebCore::DOMWindow::clearTimeout):
(WebCore::DOMWindow::setInterval):
(WebCore::DOMWindow::requestAnimationFrame):
(WebCore::DOMWindow::cancelAnimationFrame):
(WebCore::DOMWindow::createImageBitmap):
(WebCore::DOMWindow::isSecureContext const):
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary):
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary):
(WebCore::DOMWindow::incrementScrollEventListenersCount):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::dispatchLoadEvent):
(WebCore::DOMWindow::removeAllEventListeners):
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):
Commit: a9a059fa840f8ff38a96cd71c99a4de84b0397bf
https://github.com/WebKit/WebKit/commit/a9a059fa840f8ff38a96cd71c99a4de84b0397bf
Author: Said Abou-Hallawa <sabouhallawa at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/svg/SVGInlineTextBox.cpp
Log Message:
-----------
Merge r279792 - SVGInlineTextBox::acquirePaintingResource() should return false if the resource can't be applied
https://bugs.webkit.org/show_bug.cgi?id=227826
<rdar://79662757>
Reviewed by Simon Fraser.
Ensure RenderSVGResource::postApplyResource() is called only if the
corresponding RenderSVGResource::applyResource() succeeds. Otherwise
the GraphicsContext stack state will be unbalanced.
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::acquirePaintingResource):
Commit: 8261a5e476efc8012320f1a4afeb1f09d8c8baec
https://github.com/WebKit/WebKit/commit/8261a5e476efc8012320f1a4afeb1f09d8c8baec
Author: Brady Eidson <beidson at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp
M Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h
Log Message:
-----------
Merge r279956 - MemoryIDBBackingStore cleanup.
<rdar://79497380> and https://bugs.webkit.org/show_bug.cgi?id=227993
Reviewed by Geoffrey Garen.
* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):
* Modules/indexeddb/server/MemoryIDBBackingStore.h:
Commit: 5f50372dfa91fcac0422fa1c7939f03764ef88bf
https://github.com/WebKit/WebKit/commit/5f50372dfa91fcac0422fa1c7939f03764ef88bf
Author: Brady Eidson <beidson at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h
Log Message:
-----------
Merge r279960 - Use WeakPtr with UniqueIDBDatabaseConnection
<rdar://79447808> and https://bugs.webkit.org/show_bug.cgi?id=227969
Reviewed by Geoff Garen.
No new tests possible.
Noticed this raw ptr which was raw to break a ref cycle.
WeakPtr works better.
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abortWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didActivateInBackingStore):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection): Deleted.
Commit: e82c201d925a423cce4a52ceb72449759ea9a7b6
https://github.com/WebKit/WebKit/commit/e82c201d925a423cce4a52ceb72449759ea9a7b6
Author: Brady Eidson <beidson at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/Modules/fetch/FetchBodyOwner.h
M Source/WebCore/Modules/fetch/FetchBodySource.cpp
M Source/WebCore/Modules/fetch/FetchBodySource.h
M Source/WebCore/Modules/fetch/FetchResponse.h
Log Message:
-----------
Merge r280005 - FetchBodySource/FetchBodyOwner cleanup
<rdar://80318044> and https://bugs.webkit.org/show_bug.cgi?id=228035
Reviewed by Geoffrey Garen.
FetchBodyOwner should have a WeakPtr factory, and FetchBodySource should use it.
* Modules/fetch/FetchBodyOwner.h:
* Modules/fetch/FetchBodySource.cpp:
(WebCore::FetchBodySource::FetchBodySource):
(WebCore::FetchBodySource::doCancel):
(WebCore::FetchBodySource::close):
* Modules/fetch/FetchBodySource.h:
* Modules/fetch/FetchResponse.h:
Commit: dcb92637e650c02f8ceb434540c227eda6cbcc14
https://github.com/WebKit/WebKit/commit/dcb92637e650c02f8ceb434540c227eda6cbcc14
Author: Said Abou-Hallawa <sabouhallawa at apple.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/svg/SVGAnimationElement.cpp
M Source/WebCore/svg/SVGAnimationElement.h
M Source/WebCore/svg/properties/SVGPrimitivePropertyAnimator.h
M Source/WebCore/svg/properties/SVGPropertyAnimator.h
M Source/WebCore/svg/properties/SVGValuePropertyAnimatorImpl.h
M Source/WebCore/svg/properties/SVGValuePropertyListAnimatorImpl.h
Log Message:
-----------
Merge r280089 - Make SVGPropertyAnimator::computeCSSPropertyValue() take a reference to SVGElement
https://bugs.webkit.org/show_bug.cgi?id=228093
<rdar://80789262>
Reviewed by Simon Fraser.
The assumption is the pointer 'targetElement' can't be nullptr. So make
it a reference instead.
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::computeCSSPropertyValue): Deleted.
(WebCore::inheritsFromProperty): Deleted.
(WebCore::SVGAnimationElement::determinePropertyValueTypes): Deleted.
* svg/SVGAnimationElement.h:
Delete unused methods from SVGAnimationElement.
* svg/properties/SVGPrimitivePropertyAnimator.h:
* svg/properties/SVGPropertyAnimator.h:
(WebCore::SVGPropertyAnimator::computeCSSPropertyValue const):
(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):
* svg/properties/SVGValuePropertyAnimatorImpl.h:
* svg/properties/SVGValuePropertyListAnimatorImpl.h:
Commit: d7d76e7ae63413eba654dfc18688a7e63a7f2ee0
https://github.com/WebKit/WebKit/commit/d7d76e7ae63413eba654dfc18688a7e63a7f2ee0
Author: Fujii Hironori <Hironori.Fujii at sony.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/ActivityStateChangeObserver.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
Log Message:
-----------
Merge r280099 - Use WeakHashSet for Page::m_activityStateChangeObservers
https://bugs.webkit.org/show_bug.cgi?id=228065
Reviewed by Chris Dumez.
* page/ActivityStateChangeObserver.h: Inherit CanMakeWeakPtr.
* page/Page.cpp:
(WebCore::Page::addActivityStateChangeObserver):
(WebCore::Page::removeActivityStateChangeObserver):
(WebCore::Page::setActivityState):
* page/Page.h:
Commit: 7a277178af0a3e37f1e35c101637e11fc358e16c
https://github.com/WebKit/WebKit/commit/7a277178af0a3e37f1e35c101637e11fc358e16c
Author: Sergio Villar Senin <svillar at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/RenderBlock.cpp
Log Message:
-----------
Merge r280130 - Missing layouts when using simplified layout with OOF positioned elements
https://bugs.webkit.org/show_bug.cgi?id=226008
Reviewed by Alan Bujtas.
There are some situations that allow us to do simplified layouts like when there is a positioned child
that needs to be laid out and neither the parent nor any other normal children needs it. In those cases
we just pick the list of positioned objects and invoke layoutPositionedObjects(). However that list
might not be properly updated since it's only done during the layout in RenderBlock::layoutBlockChildren().
This is causing that we miss layouts in cases where a renderer has the posChildNeedsLayout() bit set
(due to some style change for example) but no descendants in the positionedDescendantsMap() because
it has not been laid out yet. In those cases we simply bail out the simplified layout and proceed as in
the normal layout process.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout):
Commit: 71036d4d791bda9b1ecd1ecf64d051a9e501a0b1
https://github.com/WebKit/WebKit/commit/71036d4d791bda9b1ecd1ecf64d051a9e501a0b1
Author: Frédéric Wang <fwang at igalia.com>
Date: 2021-09-16 (Thu, 16 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Node.cpp
M Source/WebCore/dom/Position.cpp
M Source/WebCore/dom/Position.h
M Source/WebCore/editing/ApplyStyleCommand.cpp
M Source/WebCore/editing/VisiblePosition.cpp
M Source/WebCore/editing/VisibleSelection.cpp
M Tools/ChangeLog
M Tools/TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp
Log Message:
-----------
Merge r280174 - nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=223974
Patch by Frédéric Wang <fwang at igalia.com> on 2021-07-22
Reviewed by Darin Adler.
Source/WebCore:
WebCore::documentOrder does not handle well elements like <summary> that contains a
shadow substree. This is causing assertion failures in debug build when setting start/end
selection and nullptr crashes in release build when trying to browse selection between these
start and end nodes. This patch fixes that issue by switching to shadow including tree order
for these particular cases. It introduces a generic treeOrder<TreeType>(a, b) function that
can be used for TreeType = ShadowIncludingTree as well as by WebCore::documentOrder.
* dom/Node.cpp: Explicitly instantiate commonInclusiveAncestor<ShadowIncludingTree> so that it can be used
by WebCore::treeOrder.
* dom/Position.cpp: Explicitly instantiate templates.
(WebCore::treeOrder): Convert documentOrder to a template parametrized by TreeType.
(WebCore::documentOrder): Implement it with treeOrder<ComposedTree>.
* dom/Position.h: Delcare new template.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::updateStartEnd): Use treeOrder<ShadowIncludingTree>.
(WebCore::ApplyStyleCommand::removeInlineStyle): Ditto.
* editing/VisiblePosition.cpp:
(WebCore::documentOrder): Use treeOrder<ShadowIncludingTree>.
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents): Use treeOrder<ShadowIncludingTree>.
(WebCore::VisibleSelection::setWithoutValidation): Ditto.
Tools:
* TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Update FIXME.
Commit: 025abb5f454f84bc75ce451240718ac292e164c8
https://github.com/WebKit/WebKit/commit/025abb5f454f84bc75ce451240718ac292e164c8
Author: Antti Koivisto <koivisto at iki.fi>
Date: 2021-09-17 (Fri, 17 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/fast/shadow-dom/remove-slot-and-host-child-expected.html
A LayoutTests/fast/shadow-dom/remove-slot-and-host-child.html
M Source/WebCore/ChangeLog
M Source/WebCore/dom/SlotAssignment.cpp
Log Message:
-----------
Merge r279721 - Shadow host stops rendering after removing a slot, updating style, then its assigned node
https://bugs.webkit.org/show_bug.cgi?id=227652
Reviewed by Alan Bujtas.
Source/WebCore:
Test: fast/shadow-dom/remove-slot-and-host-child.html
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::didChangeSlot):
When we tear down the render tree we also need to request its rebuild unconditionally.
LayoutTests:
* fast/shadow-dom/remove-slot-and-host-child-expected.html: Added.
* fast/shadow-dom/remove-slot-and-host-child.html: Added.
Commit: 5f07400a9ef44882cf0db3990147d134bcd89c42
https://github.com/WebKit/WebKit/commit/5f07400a9ef44882cf0db3990147d134bcd89c42
Author: Antti Koivisto <koivisto at iki.fi>
Date: 2021-09-17 (Fri, 17 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
A LayoutTests/animations/shadow-host-child-change-expected.html
A LayoutTests/animations/shadow-host-child-change.html
M Source/WebCore/ChangeLog
M Source/WebCore/dom/SlotAssignment.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdater.h
Log Message:
-----------
Merge r281128 - REGRESSION (r275756): Accelerated animations freeze when invalidating layout with shadow dom
https://bugs.webkit.org/show_bug.cgi?id=228954
<rdar://problem/81750217>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: animations/shadow-host-child-change.html
Tearing down the host renderer after slot assignments change cancels animations on it.
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::didChangeSlot):
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):
Add a version that keeps the animations going on the teardown root.
(WebCore::RenderTreeUpdater::tearDownRenderers):
* rendering/updating/RenderTreeUpdater.h:
LayoutTests:
Original test by Liam DeBeasi
* animations/shadow-host-child-change-expected.html: Added.
* animations/shadow-host-child-change.html: Added.
Commit: b5336f4554efcee200ea0398c3ab116f38e01cf5
https://github.com/WebKit/WebKit/commit/b5336f4554efcee200ea0398c3ab116f38e01cf5
Author: Antti Koivisto <koivisto at iki.fi>
Date: 2021-09-17 (Fri, 17 Sep 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
Log Message:
-----------
Merge r281813 - REGRESSION (r272900): wpt.fyi loading performance is very slow (regressed, and slower than other browsers)
https://bugs.webkit.org/show_bug.cgi?id=229680
<rdar://problem/82541045>
Reviewed by Darin Adler.
The page is inserting new children to shadow host and on each insertion we are traversing the composed
tree to tear down renderers, even though there are none.
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):
If the host doesn't have a renderer or 'display:contents' there can't be any renderers left in the subtree.
Commit: cf4d59a033b2bf7af65e72e070338d503232993b
https://github.com/WebKit/WebKit/commit/cf4d59a033b2bf7af65e72e070338d503232993b
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-09-17 (Fri, 17 Sep 2021)
Changed paths:
M LayoutTests/ChangeLog
M LayoutTests/platform/glib/TestExpectations
Log Message:
-----------
Unreviewed fix to remove stray conflict markers after r276759
* platform/glib/TestExpectations: Remove stray conflict markers.
Commit: 260fcb08231cdd1461553ca10c18f6a3f83f0780
https://github.com/WebKit/WebKit/commit/260fcb08231cdd1461553ca10c18f6a3f83f0780
Author: Carlos Garcia Campos <carlosgc at webkit.org>
Date: 2021-09-17 (Fri, 17 Sep 2021)
Changed paths:
M ChangeLog
M Source/WebKit/ChangeLog
M Source/WebKit/gtk/NEWS
M Source/cmake/OptionsGTK.cmake
Log Message:
-----------
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.4 release
.:
* Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
* gtk/NEWS: Add release notes for 2.32.4
Commit: bb1d920c659252a6c0f7902e172a523447f7c00c
https://github.com/WebKit/WebKit/commit/bb1d920c659252a6c0f7902e172a523447f7c00c
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2021-09-17 (Fri, 17 Sep 2021)
Changed paths:
M Source/WebKit/wpe/NEWS
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
wip
Commit: 5fbf0f0d353e963ef17c2748874d26d655f22fb1
https://github.com/WebKit/WebKit/commit/5fbf0f0d353e963ef17c2748874d26d655f22fb1
Author: Chris Dumez <cdumez at apple.com>
Date: 2021-10-20 (Wed, 20 Oct 2021)
Changed paths:
M Source/WebCore/ChangeLog
M Source/WebCore/page/DOMWindow.cpp
Log Message:
-----------
Merge r279832 - Unreviewed, partial revert of r279661 to address crashes on iOS Debug.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::removeAllEventListeners):
Commit: e0e9800172c2117f5886b60504ef438fcc4fc4ee
https://github.com/WebKit/WebKit/commit/e0e9800172c2117f5886b60504ef438fcc4fc4ee
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2021-10-20 (Wed, 20 Oct 2021)
Changed paths:
M Source/WTF/ChangeLog
M Source/WebCore/ChangeLog
Log Message:
-----------
Merge r281384 - IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375
Source/WebCore:
Reviewed by Brady Eidson.
Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
Source/WTF:
Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.
Reviewed by Brady Eidson.
* wtf/CrossThreadTask.h:
Commit: a81ec020d36acabbe870529ac29582c954c91852
https://github.com/WebKit/WebKit/commit/a81ec020d36acabbe870529ac29582c954c91852
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date: 2021-10-20 (Wed, 20 Oct 2021)
Changed paths:
M Source/WebKit/ChangeLog
M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
A Source/WebKit/UIProcess/Launcher/glib/Syscalls.h
Log Message:
-----------
Merge r284451 - Update seccomp filters with latest changes from flatpak
https://bugs.webkit.org/show_bug.cgi?id=231479
Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-10-19
Reviewed by Adrian Perez de Castro.
Additionally, let's fix a minor inconsistency in our error-handling code: all but one of
our codepaths carefully free and close resources, but the process is about to crash so
there's not really any reason to do so. The code is slightly simpler if we don't bother.
The seemingly-extraneous include order changes are required to placate the style checker.
* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::seccompStrerror):
(WebKit::setupSeccomp):
* UIProcess/Launcher/glib/Syscalls.h: Added.
Compare: https://github.com/WebKit/WebKit/compare/8833751b3e0c%5E...a81ec020d36a
More information about the webkit-changes
mailing list