⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Feb 23, 2022:

11:28 PM Changeset in webkit [290414] by commit-queue@webkit.org
  • 22 edits
    3 deletes in trunk

Unreviewed, reverting r290284.
https://bugs.webkit.org/show_bug.cgi?id=237131

It is preventing the fuzzer from finding other bugs

Reverted changeset:

"Make input element UA shadow tree creation lazy"
https://bugs.webkit.org/show_bug.cgi?id=236747
https://commits.webkit.org/r290284

10:35 PM Changeset in webkit [290413] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

REGRESSION(r290175): Texture upload from video and user media is slower than expected for non-GPUP WebGL
https://bugs.webkit.org/show_bug.cgi?id=237034

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-23
Reviewed by Youenn Fablet.

Add back the code-path to obtain the IOSurface backed CVPixelBuffers directly
via IPC transfer. This is used on macOS where WebGL is in WP.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::pixelBuffer):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::pixelBuffer const):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
10:16 PM Changeset in webkit [290412] by ntim@apple.com
  • 9 edits
    9 adds in trunk

Use of showModalDialog should appear as a warning in WI console
https://bugs.webkit.org/show_bug.cgi?id=237046

Reviewed by Devin Rousso.

Source/WebCore:

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::showModalDialog):

LayoutTests:

Test gardening to take in account new console warning.

  • fast/animation/request-animation-frame-during-modal-expected.txt:
  • fast/dom/Window/open-window-min-size-expected.txt:
  • fast/events/show-modal-dialog-onblur-onfocus-expected.txt:
  • http/tests/cookies/document-cookie-after-showModalDialog-expected.txt:
  • http/tests/security/navigate-when-restoring-cached-page-expected.txt:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2-expected.txt:
  • platform/mac-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
7:18 PM Changeset in webkit [290411] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Modernize / simplify ScrollingStateTree a bit
https://bugs.webkit.org/show_bug.cgi?id=237111

Reviewed by Simon Fraser.

Modernize / simplify ScrollingStateTree a bit.

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::nodeTypeAndParentMatch):
Simplify function body to be on one line and make function static since it doesn't
need an instance.

(WebCore::nodeWasReattachedRecursive):
Make function static since it doesn't need an instance.

(WebCore::ScrollingStateTree::createUnparentedNode):

  • Pass a reference instead of pointer

(WebCore::ScrollingStateTree::insertNode):

  • Use template deduction for Ref<>
  • Drop unnecessarily 0-check for parentID since stateNodeForID(parentID) would have returned null and we would have returned early a few lines above.

(WebCore::ScrollingStateTree::unparentNode):
(WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):

  • Use RefPtr type for protectedNode based on the variable naming. Previously, auto would have deduced to a raw pointer.

(WebCore::ScrollingStateTree::detachAndDestroySubtree):
(WebCore::ScrollingStateTree::clear):
Pass more references instead of pointers.

(WebCore::ScrollingStateTree::commit):
use auto and std::exchange() to make the code a bit more concise.

(WebCore::ScrollingStateTree::removeNodeAndAllDescendants):
Take a reference in parameter instead of a raw pointer since the pointer couldn't
be null.

(WebCore::ScrollingStateTree::recursiveNodeWillBeRemoved):

  • Take a reference in parameter instead of a raw pointer since the pointer couldn't

be null.

  • Rename currNode to currentNode per WebKit coding style.

(WebCore::ScrollingStateTree::willRemoveNode):
Take a reference in parameter instead of a raw pointer since the pointer couldn't
be null.

(WebCore::ScrollingStateTree::stateNodeForID const):
Rewrite function in a more concise way by calling HashMap::get() instead of HashMap::find().

(WebCore::reconcileLayerPositionsRecursive):

  • Make function static since it doesn't need an instance
  • Rename currNode to currentNode per WebKit coding style

(WebCore::ScrollingStateTree::reconcileViewportConstrainedLayerPositions):
Make function a bit more concise by not doing an early return.

(showScrollingStateTree):
Take in a reference instead of a raw pointer.

(WebCore::ScrollingStateTree::nodeTypeAndParentMatch const): Deleted.
(WebCore::ScrollingStateTree::nodeWasReattachedRecursive): Deleted.
(WebCore::ScrollingStateTree::reconcileLayerPositionsRecursive): Deleted.

  • page/scrolling/ScrollingStateTree.h:
6:25 PM Changeset in webkit [290410] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.3

Tag Safari-614.1.5.3.

6:24 PM Changeset in webkit [290409] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Release ] imported/w3c/web-platform-tests/html/user-activation/activation-trigger-pointerevent.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=236126

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:51 PM Changeset in webkit [290408] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.3

5:43 PM Changeset in webkit [290407] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

Fix !ENABLE(SERVICE_WORKER) build after r290387
https://bugs.webkit.org/show_bug.cgi?id=237119

Unreviewed build fix.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishRemoteWorkerContextConnectionToNetworkProcess):

5:31 PM Changeset in webkit [290406] by Robert Jenner
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r290351 and r290404.

Broke the build after revert of initial commit (r290348)
Rebases no longer needed due to revert

Reverted changesets:

"Use of showModalDialog should appear as a warning in WI
console"
https://bugs.webkit.org/show_bug.cgi?id=237046
https://commits.webkit.org/r290351

"Use of showModalDialog should appear as a warning in WI
console"
https://bugs.webkit.org/show_bug.cgi?id=237046
https://commits.webkit.org/r290404

5:24 PM Changeset in webkit [290405] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Adjust thread number for GC throughput
https://bugs.webkit.org/show_bug.cgi?id=237122

Reviewed by Mark Lam.

Adjust numberOfGCMarkers from 4 to 3 to make GC and main thread througput better on M1 macOS.
3 makes sense since there is also a main thread when they are running concurrently to the
main thread.

It offers 1.2% improvement in Speedometer2 in M1Max MBP and 0.4% improvement in M1 MBP.


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |107.445000 |102.856667 |0.957296 | 0.000000 (significant) |
| VueJS-TodoMVC |21.571667 |21.805000 |1.010817 | 0.403054 |
| EmberJS-TodoMVC |113.320000 |111.300000 |0.982174 | 0.000027 (significant) |
| BackboneJS-TodoMVC |39.981667 |39.318333 |0.983409 | 0.002346 (significant) |
| Preact-TodoMVC |15.516667 |15.648333 |1.008485 | 0.544754 |
| AngularJS-TodoMVC |117.010000 |115.346667 |0.985785 | 0.000495 (significant) |
| Vanilla-ES2015-TodoMVC |57.790000 |57.176667 |0.989387 | 0.000270 (significant) |
| Inferno-TodoMVC |55.275000 |53.755000 |0.972501 | 0.000000 (significant) |
| Flight-TodoMVC |53.875000 |53.941667 |1.001237 | 0.739556 |
| Angular2-TypeScript-TodoMVC |36.600000 |36.471667 |0.996494 | 0.743761 |
| VanillaJS-TodoMVC |48.058333 |47.671667 |0.991954 | 0.158193 |
| jQuery-TodoMVC |203.433333 |201.878333 |0.992356 | 0.009271 (significant) |
| EmberJS-Debug-TodoMVC |325.058333 |319.848333 |0.983972 | 0.000003 (significant) |
| React-TodoMVC |80.533333 |79.281667 |0.984458 | 0.000011 (significant) |
| React-Redux-TodoMVC |134.738333 |131.801667 |0.978205 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |56.780000 |56.168333 |0.989227 | 0.000514 (significant) |


a mean = 293.86568
b mean = 297.52900
pValue = 0.0266899465
(Bigger means are better.)
1.012 times better
Results ARE significant

  • runtime/Options.cpp:

(JSC::overrideDefaults):

5:12 PM Changeset in webkit [290404] by Robert Jenner
  • 1 edit
    9 adds in trunk/LayoutTests

Use of showModalDialog should appear as a warning in WI console
https://bugs.webkit.org/show_bug.cgi?id=237046

Unreviewed test gardening. Rebase for wk1 mac and Windows tests.

  • platform/mac-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
4:52 PM Changeset in webkit [290403] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.7

Tag Safari-613.1.17.1.7.

4:51 PM Changeset in webkit [290402] by Russell Epstein
  • 1 copy in tags/Safari-614.1.3.5

Tag Safari-614.1.3.5.

4:49 PM Changeset in webkit [290401] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Paths should be canonicalized before calling bwrap
https://bugs.webkit.org/show_bug.cgi?id=211131

Patch by Maxim Cournoyer <maxim.cournoyer@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSymlinksRealPath): Relocate earlier in file,
add a 'bindOption' argument and use FileSystem::realPath instead
of realpath from the standard C library.
(WebKit::bindIfExists): Use the modified above procedure to
canonicalize the source path, and avoid adding bind mounts for
locations under /etc.

4:47 PM Changeset in webkit [290400] by Elliott Williams
  • 2 edits in trunk

[XCBuild] Don't automatically use the ../Internal/WebKit workspace
https://bugs.webkit.org/show_bug.cgi?id=237115

Reviewed by Alexey Proskuryakov.

When the USE_WORKSPACE=YES Make flag was added in https://commits.webkit.org/246232@main, we
configured Make to automatically use the workspace at ../Internal/WebKit/WebKit.xcworkspace,
if it was available. The idea was to make it easier for workspace builds to automatically
detect dependencies needed by folks at Apple, like WebKitAdditions.

In practice, this has made workspace builds silently rely on code from outside of the WebKit
repo, and it's unintuitive since non-workspace Make builds do not do this.

  • Makefile.shared:
4:39 PM Changeset in webkit [290399] by Robert Jenner
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r290348.

Broke a test, slowing down EWS.

Reverted changeset:

"Create a DOMWindow::printWarningMessage method and start
using it in DOMWindow.cpp"
https://bugs.webkit.org/show_bug.cgi?id=237047
https://commits.webkit.org/r290348

4:37 PM Changeset in webkit [290398] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.7

4:34 PM Changeset in webkit [290397] by Russell Epstein
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.5

4:21 PM Changeset in webkit [290396] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Flip accumulatedOffset to take writing mode into account when hittesting across formatting contexts.
https://bugs.webkit.org/show_bug.cgi?id=237094

Reviewed by Antti Koivisto.

Both paint and hittest need coord flip (vertical writing mode here) when jumping through formatting context boundaries.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::flippedContentOffsetIfNeeded):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

3:47 PM Changeset in webkit [290395] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Bubblewrap launcher doesn't bind font locations from XDG_DATA_DIRS
https://bugs.webkit.org/show_bug.cgi?id=237089

Patch by Liliana Marie Prikler <liliana.prikler@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindFonts): Expose font directories present in the
XDG_DATA_DIRS environment variable.

3:18 PM Changeset in webkit [290394] by Chris Dumez
  • 94 edits in trunk

Adopt more widely the new URL constructor that takes in a String
https://bugs.webkit.org/show_bug.cgi?id=237099

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::convertAndValidatePaymentMethodIdentifier):

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::completeURL const):

  • dom/Document.cpp:

(WebCore::Document::referrer):

  • html/DOMURL.cpp:

(WebCore::DOMURL::revokeObjectURL):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::didNavigateExtensionTab):
(WebCore::InspectorFrontendHost::inspectedPageDidNavigate):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::extractInnerURL):

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::willSendRequest):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(convertPlaybinURI):

  • platform/network/soup/URLSoup.cpp:

(WebCore::soupURIToURL):

  • platform/win/PasteboardWin.cpp:

(WebCore::filesystemPathFromUrlOrTitle):

  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::showPaymentUI):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::fromDatabaseKey):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

  • Shared/API/APISecurityOrigin.h:

(API::SecurityOrigin::createFromString):

  • Shared/API/APIURL.h:

(API::URL::parseURLIfNecessary const):

  • Shared/API/c/WKURLRequest.cpp:

(WKURLRequestCreateWithWKURL):

  • Shared/API/glib/WebKitURIRequest.cpp:

(webkit_uri_request_set_uri):

  • Shared/APIWebArchiveResource.mm:

(API::WebArchiveResource::WebArchiveResource):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):

  • Shared/curl/WebCoreArgumentCodersCurl.cpp:

(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::ArgumentCoder<SelectionData>::decode):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

  • UIProcess/API/C/WKOpenPanelResultListener.cpp:

(filePathsFromFileURLs):

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadURL):
(WKPageLoadURLWithShouldOpenExternalURLsPolicy):
(WKPageLoadURLWithUserData):
(WKPageLoadAlternateHTMLStringWithUserData):
(WKPageSetPrivateClickMeasurementTokenPublicKeyURLForTesting):
(WKPageSetPrivateClickMeasurementTokenSignatureURLForTesting):
(WKPageSetPrivateClickMeasurementAttributionReportURLsForTesting):

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsMergeStatistic):
(WKWebsiteDataStoreSetStatisticsExpiredStatistic):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsOnlyInDatabaseOnce):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration):
(WKWebsiteDataStoreStatisticsDeleteCookiesForTesting):
(WKWebsiteDataStoreStatisticsHasLocalStorage):
(WKWebsiteDataStoreStatisticsHasIsolatedSession):
(WKWebsiteDataStoreSetResourceLoadStatisticsToSameSiteStrictCookiesForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):
(WKWebsiteDataStoreSetAppBoundDomainsForTesting):

  • UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.cpp:

(WKWebsiteDataStoreEnableCustomNetworkProxySettings):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
  • UIProcess/API/glib/WebKitCookieManager.cpp:

(webkit_cookie_manager_get_cookies):

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(webkit_security_origin_new_for_uri):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_load_alternate_html):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _uiEventAttribution]):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):

  • UIProcess/Cocoa/LegacyDownloadClient.mm:

(WebKit::LegacyDownloadClient::legacyDidStart):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::willPerformClientRedirect):
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect):

  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:

(-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isURLKnownHSTSHost const):

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::load):

  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::isMainOrTestInspectorPage):
(WebKit::WebInspectorUIProxy::openLocalInspectorFrontend):

  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformSave):

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformSave):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::sessionState const):
(WebKit::checkIfNavigationContainsDataTransfer):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::checkURLReceivedFromCurrentOrPreviousWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::assumeReadAccessToBaseURL):
(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
(WebKit::WebsiteDataStore::initializeAppBoundDomains):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::decodeLegacySessionState):

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::validateMerchant):

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameAllowsFollowingLink):
(WKBundleFrameCopySuggestedFilenameForResourceWithURL):
(WKBundleFrameCopyMIMETypeForResourceWithURL):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageHasLocalDataForURL):
(WKBundlePageClearApplicationCacheForOrigin):
(WKBundlePageGetAppCacheUsageForOrigin):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setUserStyleSheetLocation):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::isValidFetch):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFormData):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::getResourceDataFromFrame):

  • webpushd/PushService.mm:

(WebPushD::PushService::didReceivePushMessage):

Source/WebKitLegacy/win:

  • MarshallingHelpers.cpp:
  • WebError.cpp:

(WebError::init):

  • WebFrame.cpp:

(WebFrame::loadData):

  • WebView.cpp:

(toURL):

Source/WTF:

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::aboutSrcDocURL):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::checkURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::testUserPassword):

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::mainDocumentRequest):
(TestWebKitAPI::subResourceRequest):
(TestWebKitAPI::requestInTopAndFrameURLs):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp:

(TestWebKitAPI::Curl::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/SSLKeyGenerator.mm:
2:45 PM Changeset in webkit [290393] by W.D. Xiong
  • 2 edits in trunk

Add wdx's Github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237106

Unreviewed.

  • metadata/contributors.json:
2:33 PM Changeset in webkit [290392] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Improve error message for missing pubKeyCredParams
https://bugs.webkit.org/show_bug.cgi?id=235421
rdar://87884875

Reviewed by Brent Fulgham.

Source/WebCore:

We have seen confusion from library authors around the language
used in this error not indicating enough information about what
the problem is. This patch adds additional information, useful
to developers seeing this error.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::create const):

LayoutTests:

Update test to reflect new error message.

  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
1:40 PM Changeset in webkit [290391] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.2

Tag Safari-614.1.5.2.

12:59 PM Changeset in webkit [290390] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/bmalloc

[libpas] PlayStation uses 16k page size.
https://bugs.webkit.org/show_bug.cgi?id=237096

Reviewed by Yusuke Suzuki.

Match the granule default size to system page size for our platform.

  • libpas/src/libpas/pas_internal_config.h:
12:57 PM Changeset in webkit [290389] by Wenson Hsieh
  • 2 edits in trunk/Tools

REGRESSION (288925?): [iOS] TestWebKitAPI.RequestTextInputContext.TextInteraction_FocusingReadOnlyElementShouldScrollToReveal is failing
https://bugs.webkit.org/show_bug.cgi?id=237069
rdar://89325305

Reviewed by Kate Cheney.

This iOS API test occasionally fails in some test runners in automation, due to didScroll still being false at
the end of the test. While I was unable to reproduce (both locally, and using EWS test runners), from code
inspection this test appears to be inherently flaky since the scrolling is triggered via editor state updates
propagated through remote layer tree commits; however, the test only verifies that scrolling occurs after one
IPC round-trip between the web and UI processes (due to the call to -stringByEvaluatingJavaScript:).

Since the regression point is suspiciously close to r288925, it's possible that the optimizations introduced in
r288925 removed an extra sync IPC round-trip to the web process and back when requesting an autocorrection
context after element focus, which would make this flakiness easier to reproduce in some configurations.

In any case, one speculative fix for this test is to simply wait for the scrolling to occur, instead of assuming
that it occurs after a single IPC round-trip.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

12:34 PM Changeset in webkit [290388] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] LineLayout::firstLinePhysicalBaseline/lastLineLogicalBaseline should flip box baseline value for vertical-lr
https://bugs.webkit.org/show_bug.cgi?id=237090

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstLinePhysicalBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineLogicalBaseline const):
(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):

12:12 PM Changeset in webkit [290387] by Chris Dumez
  • 18 edits in trunk/Source/WebKit

Share more code between service and shared workers for context connection establishment
https://bugs.webkit.org/show_bug.cgi?id=237085

Reviewed by Youenn Fablet.

Share more code between service and shared workers for context connection establishment.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::ensureSWServer):

  • NetworkProcess/SharedWorker/WebSharedWorker.cpp:

(WebKit::WebSharedWorker::firstSharedWorkerObjectProcess const):

  • NetworkProcess/SharedWorker/WebSharedWorker.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:

(WebKit::WebSharedWorkerServer::didFinishFetchingSharedWorkerScript):
(WebKit::WebSharedWorkerServer::createContextConnection):
(WebKit::WebSharedWorkerServer::removeContextConnection):
(WebKit::WebSharedWorkerServer::shutDownSharedWorker):

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::establishSharedWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::WebProcessPool::establishSharedWorkerContextConnectionToNetworkProcess): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishRemoteWorkerContext):
(WebKit::WebProcessProxy::establishServiceWorkerContext): Deleted.
(WebKit::WebProcessProxy::establishSharedWorkerContext): Deleted.

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcess::establishSharedWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::WebProcess::establishServiceWorkerContextConnectionToNetworkProcess): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
11:28 AM Changeset in webkit [290386] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Mac EWS ] imported/w3c/web-platform-tests/workers/semantics/multiple-workers/004.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=237095

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Setting [ Pass Failure ] expectations for flaky test failure that is slowing down EWS.
11:26 AM Changeset in webkit [290385] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Subpixel] imported/w3c/web-platform-tests/css/css-flexbox/auto-margins-001.html fails at certain font sizes
https://bugs.webkit.org/show_bug.cgi?id=217643
<rdar://problem/70464703>

Unreviewed gardening.

  • platform/ios-simulator-wk2/TestExpectations: It must have progressed at some point.
11:02 AM Changeset in webkit [290384] by J Pascoe
  • 5 edits in trunk/Source

Prevent use of PDFKit when using PDF.js
https://bugs.webkit.org/show_bug.cgi?id=237052
rdar://89251696

Reviewed by Tim Horton.

Source/WebCore:

Add WEBCORE_EXPORT in order to use isPDFMIMEType.

  • platform/MIMETypeRegistry.h:

Source/WebKit:

PDFKit was still being used by embeds, this patch fixes that issue by treating
pdf embeds as frames if PDF.js is enabled and also prevents the loading of
the PDFKit plugin entirely by modifying shouldUsePDFPlugin.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::objectContentType):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::shouldUsePDFPlugin const):

10:36 AM Changeset in webkit [290383] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Catch OSError when sampling
https://bugs.webkit.org/show_bug.cgi?id=237087
<rdar://problem/89357299>

Reviewed by Aakash Jain.

  • Tools/Scripts/webkitpy/port/darwin.py:

(DarwinPort.sample_process): Catch OSError when either sampling a
process or running spindump. These errors indicate the error gathering process
failed, but such a failure should not be fatal to the entire test run.

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

10:26 AM Changeset in webkit [290382] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] LineLayout::firstInlineBoxRect should flip the rect coordinates for vertical-rl
https://bugs.webkit.org/show_bug.cgi?id=237036

Reviewed by Antti Koivisto and Darin Adler.

This is similar to what RenderInline::firstInlineBoxTopLeft does.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):

10:19 AM Changeset in webkit [290381] by J Pascoe
  • 11 edits in trunk

[WebAuthn] userHandle not marked nullable in _WKWebAuthenticationAssertionResponse
https://bugs.webkit.org/show_bug.cgi?id=237043
rdar://89317740

Reviewed by Brent Fulgham.

Source/WebCore:

The userHandle is a nullable field on UserEntity. This patch changes
various API/SPI to allow passing null userHandle.

  • Modules/webauthn/AuthenticatorAssertionResponse.cpp:

(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

Source/WebKit:

The userHandle is a nullable field on UserEntity. This patch changes
various API/SPI to allow passing null userHandle.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:

Update forward declared SPI, reflecting userHandle as nullable.

  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponseInternal.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:

Update userHandle property to null.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(getAllLocalAuthenticatorCredentialsImpl):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):

Tools:

Create tests to check for null userHandle.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

10:14 AM Changeset in webkit [290380] by Antti Koivisto
  • 10 edits in trunk

[CSS Container Queries] offsetWidth/Height and similar should update layout for container queries
https://bugs.webkit.org/show_bug.cgi?id=237079

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:

Source/WebCore:

Fix

css/css-contain/container-queries/inline-size-containment.html
css/css-contain/container-queries/inline-size-containment-vertical-rl.html

  • dom/Document.cpp:

(WebCore::Document::updateLayout):

Make iterative instead of recursive.

(WebCore::Document::updateLayoutIfDimensionsOutOfDate):

Check for query containers.
Call local updateLayout instead of the FrameViewLayoutContext one.

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::updateQueryContainerState):

Add protection against infinite layout/invalidation cycle with unstable layouts.

  • style/StyleScope.h:
10:09 AM Changeset in webkit [290379] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bot.

  • imported/blink/svg/paintorder/paintorder.svg:
10:02 AM Changeset in webkit [290378] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Test gardening for [CSS Blending] Non-separable blend modes don't work
https://bugs.webkit.org/show_bug.cgi?id=131354

LayoutTests/imported/mozilla:

Unreviewed. Relanding with updated fuzzy data.

  • svg/blend-color.svg:
  • svg/blend-hue.svg:
  • svg/blend-luminosity.svg:

LayoutTests:

Unreviewed.

9:50 AM Changeset in webkit [290377] by Andres Gonzalez
  • 6 edits
    2 adds in trunk

Fix for assert crash in AccessibilityRenderObject::visiblePositionForIndex.
https://bugs.webkit.org/show_bug.cgi?id=236795
rdar://89025180

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/native-text-control-attributed-string.html

In some cases like the one described in the bug, AccessibilityRenderObject::visiblePositionForIndex
is passed an index greater than the length of the text actually contained
in the text control. This triggers this assert that verifies that you can
round-trip from index to VisiblePosition and back to index. This patch
does a bounds check in the index and adjust if necessary.
The test exercise this method through the JS AccessibilityUIElement::attributedStringForRange
for both <input> of type text and password.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionForIndex const):

LayoutTests:

  • accessibility/native-text-control-attributed-string-expected.txt: Added.
  • accessibility/native-text-control-attributed-string.html: Added.
8:35 AM Changeset in webkit [290376] by Kocsen Chung
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.2

8:33 AM Changeset in webkit [290375] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] De-initialize GStreamer before terminating WebProcess
https://bugs.webkit.org/show_bug.cgi?id=237084

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-23
Reviewed by Carlos Garcia Campos.

Source/WebKit:

Allowing the leak tracer to report/log leaks. There is an issue though, if the UIProcess
exits too early, the leak tracer reporting will be interrupted potentially too early. The
workaround is to have 2 tabs open in the GTK MiniBrowser, closing the one where media
handling and leak tracing was done and keeping the second tab open.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

Tools:

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild): Do not add extra quotes to GST_TRACERS, this is not supposed
to store paths.

8:09 AM Changeset in webkit [290374] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GTK] Unreviewed, build fix for Debian Stable after r290366

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:

(webKitVideoSinkSetMediaPlayerPrivate):

8:00 AM Changeset in webkit [290373] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

RemoteSampleBufferDisplayLayer::enqueueSample should not change media samples owned by its object heap
https://bugs.webkit.org/show_bug.cgi?id=237025
<rdar://problem/89343447>

Reviewed by Darin Adler.

Updated https://commits.webkit.org/r290358 according comments given during review.

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<std::nullptr_t>::encode):
(IPC::ArgumentCoder<std::nullptr_t>::decode):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:

(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::RemoteVideoFrameObjectHeapProxyProcessor):

  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:

(WebKit::SharedVideoFrameWriter::write):
(WebKit::SharedVideoFrameReader::SharedVideoFrameReader):

  • WebProcess/GPU/webrtc/SharedVideoFrame.h:

(WebKit::SharedVideoFrame::encode const):
(WebKit::SharedVideoFrame::decode):

7:54 AM Changeset in webkit [290372] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore
REGRESSION (r287574): ASSERTION FAILED: !m_impl
!m_shouldEnableAssertions m_impl->wasConstructedOnMainThread() == isMainThread() under WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack()

https://bugs.webkit.org/show_bug.cgi?id=235168
<rdar://problem/87518939>

Reviewed by Alexey Proskuryakov.

Use runOnMainThread() from within WebCore, as it will dispatch to the correct thread when
running under iOS/WebKitLegacy.

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack):

7:20 AM Changeset in webkit [290371] by commit-queue@webkit.org
  • 4 edits in trunk

Call WKNavigationDelegate.didFailProvisionalNavigation even after a cross-origin navigation with COOP
https://bugs.webkit.org/show_bug.cgi?id=237071
<rdar://88652375>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-23
Reviewed by Chris Dumez.

Source/WebKit:

There was an assumption that this callback wasn't needed in this case, but it is.
Covered by an API test that verifies the callback is received.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

6:59 AM Changeset in webkit [290370] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GLib] Add missing WebPage.h inclusion in WebProcessGLib.cpp
https://bugs.webkit.org/show_bug.cgi?id=237081

Unreviewed, adding the WebPage.h header inclusion in WebProcessGLib.cpp
to avoid incomplete-type errors for the WebPage class under a certain
combination of unified sources.

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-23

  • WebProcess/glib/WebProcessGLib.cpp:
6:01 AM Changeset in webkit [290369] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Set ssh keepalive in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=237031

Reviewed by Adrian Perez de Castro.

If a remote goes down after an ssh connection has been established, we
need to be able to detect that. Keep the common ssh config options in
one constant and add ServerAliveInterval=30 to it.

While here, change sshRead to execute ssh directly (instead of
going through the shell). Similarly, don't open-code the read
loop, just call IO.read.

  • Scripts/run-jsc-stress-tests:
5:47 AM Changeset in webkit [290368] by youenn@apple.com
  • 4 edits in trunk/Source

RemoteVideoFrameObjectHeap::getVideoFrameBuffer can use base class pixelBuffer accessor
https://bugs.webkit.org/show_bug.cgi?id=237020

Reviewed by Kimmo Kinnunen.

Source/WebCore:

No change of behavior.
Covered by existing tests.

  • platform/graphics/cv/VideoFrameCV.h:

(WebCore::VideoFrameC$V::pixelBuffer const: Mark it as final.

Source/WebKit:

Make use of pixelBuffer virtual method to simplify things.
Add a missing early return in case of not found pixel buffer.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::getVideoFrameBuffer):

5:19 AM Changeset in webkit [290367] by commit-queue@webkit.org
  • 4 edits in trunk

Fix GPUP WebGL generator script wrt uninitialised sized span
https://bugs.webkit.org/show_bug.cgi?id=235889

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-23
Reviewed by Antti Koivisto.
Source/WebKit:

Regenerated.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):

Tools:

Fix the generator. The r290328 only edited the generated files.
Add a other hunk missing from r290175.

  • Scripts/generate-gpup-webgl:
4:27 AM Changeset in webkit [290366] by commit-queue@webkit.org
  • 8 edits
    4 adds in trunk

[GStreamer] Add WebKitDMABufVideoSink
https://bugs.webkit.org/show_bug.cgi?id=236883

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-23
Reviewed by Philippe Normand.

.:

  • Source/cmake/FindGStreamer.cmake:

Also search for gstreamer-allocators-1.0, produce the relevant variables
containing include directories and cflags.

Source/WebCore:

Add custom WebKitDMABufVideoSink sink that is able to accept decoded
dmabuf or raw data in a range of RGB-like or YUV formats.

The sink is pretty straightforward, in large part mirroring the
WebKitGLVideoSink implementation. The formats that (at the moment) we
can correctly handle inside the TextureMapper-based graphics pipeline
are combined with both the dmabuf or raw memory type during the caps
construction. Like the GL counterpart, the received samples are passed
on to the associated MediaPlayerPrivateGStreamer object. The common
integration into the MediaPlayerPrivateGStreamer functionality is
encapsulated into the webKitVideoSinkSetMediaPlayerPrivate() function.

The MediaPlayerPrivateGStreamer implementation will be enhanced later to
properly handle samples conforming to either variant of these caps. But
the idea is that when using this sink, a dmabuf-containing sample will
pass the dmabuf to the graphics subsystem and a raw-data-containing
sample will copy the data into a dmabuf object (created or reused) and
then pass it on.

The WEBKIT_GST_DMABUF_SINK_FORCED_FALLBACK_CAPS_FORMAT environment
variable can be set to specify the desired exclusive format that this
sink should support. This is especially helpful to debug the correct
handling of different RGB or YUV formats inside the graphics pipeline.
When set, only raw data of the specified format is accepted, meaning the
pipeline upstream will perform any necessary conversion of the decoded
data into the desired format. Raw data is then packed into dmabufs and
sent into the pipeline for display, enabling the developer to examine
whether the given format is handled appropriately.

The sink element is registered in registerWebKitGStreamerElements().
This functionality will require The GStreamer allocators library, so the
necessary dependency glue is also provided.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp: Added.

(forcedFallbackCapsFormat):
(webKitDMABufVideoSinkConstructed):
(webKitDMABufVideoSinkFinalize):
(webKitDMABufVideoSinkGetProperty):
(webkit_dmabuf_video_sink_class_init):
(webKitDMABufVideoSinkSetMediaPlayerPrivate):
(webKitDMABufVideoSinkProbePlatform):

  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h: Added.
  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp: Added.

(webKitVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.h: Added.

Tools:

  • Scripts/webkitpy/style/checker.py:

Add two additional files under the GObject-style exceptions.

4:06 AM WebKitGTK/2.36.x edited by Carlos Garcia Campos
(diff)
4:06 AM Changeset in webkit [290365] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290360 - [GTK][WPE] PlatformDisplay::terminateEglDisplays() is never called
https://bugs.webkit.org/show_bug.cgi?id=217655

Stop the run loop for GTK and WPE to ensure a normal exit, since we need
atexit handlers to be called to cleanup resources like EGL displays.

Reviewed by Carlos Garcia Campos.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::didClose):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

4:06 AM Changeset in webkit [290364] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r290299 - Properly uninitialize EGL display before termination
https://bugs.webkit.org/show_bug.cgi?id=236766

From the docs [1], if contexts or surfaces associated with display
is current to any thread, they are not released until they
are no longer current as a result of eglMakeCurrent.

So call eglMakeCurrent() to such effect.

[1] https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglMakeCurrent.xhtml

Reviewed by Carlos Garcia Campos.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::terminateEGLDisplay):

3:49 AM Changeset in webkit [290363] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps_unittest.py

Use python 3 f-strings in EWS - part 1
https://bugs.webkit.org/show_bug.cgi?id=237053

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/steps_unittest.py: Used f-strings for formatting.

(ExpectMasterShellCommand.repr):
(BuildStepMixinAdditions._checkSpawnProcess):
(BuildStepMixinAdditions._send_email):
(TestStepNameShouldBeValidIdentifier.test_step_names_are_valid):
(test_success):
(test_unexpected_failure):

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

3:44 AM Changeset in webkit [290362] by alex
  • 2 edits
    6 deletes in trunk/LayoutTests

Unreviewed test gardening.

These tests had incorrect expected results with failing tests for
glib.

  • platform/glib/TestExpectations:
  • platform/glib/webgl/1.0.3/conformance/context/context-lost-restored-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-s3tc-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/misc/webgl-specific-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt: Removed.
3:23 AM WebKitGTK/StableRelease edited by Adrian Perez de Castro
Add 2.36 page (diff)
3:22 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
1:59 AM Changeset in webkit [290361] by commit-queue@webkit.org
  • 12 edits in trunk

Thread safety analysis macros are confusing for non-Lock use-cases
https://bugs.webkit.org/show_bug.cgi?id=237022

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-23
Reviewed by Chris Dumez.

Source/WebKit:

Use WTF_GUARDED_BY_CAPABILITY instead of WTF_GUARDED_BY_LOCK
for non-lock use-cases.

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:

Source/WTF:

Thread safety analysis proves that a capability is acquired or not acquired.
Change the semantics of thread safety analysis application in WebKit:

Before, we had only one capability, "lock".
After, we have arbitrary amount of capabilities, one of which is "lock".

Add thread safety analysis macros to support non-Lock use-cases better.

Non-lock use-case:
Before:

class WTF_CAPABILITY_LOCK ThreadAssertion { ... };
"WTF::ThreadAssertion is obviously not a lock but we use the lock capability machinery to obtain the analysis support.

It behaves like the lock capability and can be acquired."

After:

class WTF_CAPABILITY("is current") ThreadAssertion { ... };
"WTF::ThreadAssertion has a capability called 'is current' that can be acquired."

The documentation string "lock", "is current" will appear in the compile error messages to clarify the
violations.

  • wtf/ThreadAssertions.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/ThreadSafetyAnalysis.h:

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration):

  • TestWebKitAPI/Tests/WTF/ThreadAssertionsTest.cpp:

(TestWebKitAPI::WTF_REQUIRES_CAPABILITY):

1:32 AM Changeset in webkit [290360] by Pablo Saavedra
  • 5 edits in trunk/Source/WebKit

[GTK][WPE] PlatformDisplay::terminateEglDisplays() is never called
https://bugs.webkit.org/show_bug.cgi?id=217655

Stop the run loop for GTK and WPE to ensure a normal exit, since we need
atexit handlers to be called to cleanup resources like EGL displays.

Reviewed by Carlos Garcia Campos.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::didClose):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

1:28 AM Changeset in webkit [290359] by Adrian Perez de Castro
  • 5 edits in trunk/Source/JavaScriptCore

Ensure generated inline assembler that setups segments returns to previous state
https://bugs.webkit.org/show_bug.cgi?id=236976

Reviewed by Yusuke Suzuki.

Use .previous in inline assembler in order to ensure that mixed emission of assembler
functions and other definitions correctly puts each of them in their rightful sections
in the output object code.

  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerX86Common.cpp:
1:12 AM Changeset in webkit [290358] by youenn@apple.com
  • 11 edits in trunk/Source/WebKit

RemoteSampleBufferDisplayLayer::enqueueSample should not change media samples owned by its object heap
https://bugs.webkit.org/show_bug.cgi?id=237025

Reviewed by Darin Adler.

From past bugs, it is risky to change CMSampleBuffer dictionaries if they can be used on various threads (encoder, display layer...).
Instead, we create a new MediaSample that is wrapping the same CVPixelBufferRef, on which can safely apply setAsDisplayImmediately.

We introduce SharedVideoFrame as a replacement to RemoteVideoSample.
We beef up SharedVideoFrameWriter and SharedVideoFrameReader to handle any MediaSample,
with specific handling for remote frames, IOSurface frames or other in memory frames.
We make use of SharedVideoFrame in SampleBufferDisplayLayer, which allows to unify enqueueSample and enqueueCV in one IPC message,
which is easier to maintain.

We update call sites that create SharedVideoFrameReader to either take nullptr or a object heap reference when they will need it in the future.

Covered by existing tests.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:
12:50 AM Changeset in webkit [290357] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r289474): [iOS] ASSERTION FAILED: isMainThread() under WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions()
https://bugs.webkit.org/show_bug.cgi?id=237066
<rdar://problem/89324810>

Reviewed by Chris Dumez.

We no longer need the assertion because the function can be called on non-main thread since r289474, where we
started to abort transactions for suspension on WorkQueue. To avoid confusion, rename mainThreadAbortResult to
suspensionAbortResult.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setSuspensionAbortResult):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::suspensionAbortResult const):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setMainThreadAbortResult): Deleted.
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::mainThreadAbortResult const): Deleted.

12:23 AM Changeset in webkit [290356] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Crash when calling WEBGL_lose_context.loseContext() after the context has been lost
https://bugs.webkit.org/show_bug.cgi?id=236966

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-23
Reviewed by Dean Jackson.

Source/WebCore:

WebGLRenderingContextBase::forceLostContext() would
try to synthesize a GL error to the underlying
m_context. However, m_context is cleared when a real
context loss happens. This happens for example when we
simulate a GPU status failure or when we create too
many contexts. The m_context is not currently cleared
when the page simulates context lost via WEBGL_lose_contexts.loseContext().

Test: webgl/lose-context-after-context-lost.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::synthesizeGLError):

LayoutTests:

  • webgl/lose-context-after-context-lost-expected.txt: Added.
  • webgl/lose-context-after-context-lost.html: Added.
12:16 AM Changeset in webkit [290355] by youenn@apple.com
  • 7 edits in trunk/Source

Optimize RemoteVideoFrame handling in WebProcess WebRTC pipeline
https://bugs.webkit.org/show_bug.cgi?id=236970

Reviewed by Eric Carlson.

Source/WebCore:

In case of remote video frame, directly get the remote video frame as a MediaSample in receive side.
On send side, wrap remote video frames as provider-based WebRTC video frames.
LibWebRTCCodecs will optimize the handling of remote frames for hardware encoders and no change will
happen for software encoders.
Covered by existing tests.

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

Source/WebKit:

Fix bug in LibWebRTCCodecsProxy that would make use of shared video frame instead of remote video frame when a shared video frame is available.
Use VideoFrame* as webrtc frame provider for encoding and decoding.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
12:05 AM Changeset in webkit [290354] by youenn@apple.com
  • 5 edits in trunk

Enable WebRTCRemoteVideoFrameEnabled by default in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=236969

Reviewed by Eric Carlson.

Tools:

  • WebKitTestRunner/TestOptions.cpp:

LayoutTests:

Disable WebRTCRemoteVideoFrameEnabled for those two tests until we figure out why they fail more with this option.

  • fast/mediastream/getUserMedia-to-canvas-1.html:
  • fast/mediastream/getUserMedia-to-canvas-2.html:
12:04 AM Changeset in webkit [290353] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after 247623@main
https://bugs.webkit.org/show_bug.cgi?id=237074

  • bindings/js/WebAssemblyCachedScriptSourceProvider.h: Namespace.

Feb 22, 2022:

11:35 PM Changeset in webkit [290352] by Chris Dumez
  • 12 edits in trunk

http/wpt/push-api/onpush-disabled.html fails
https://bugs.webkit.org/show_bug.cgi?id=236874
<rdar://problem/89176154>

Reviewed by Youenn Fablet.

Source/WebCore:

Before running the test, we would construct a new WKWebView with the Push API setting disabled.
We would then run the test, which would launch a service worker. Normally, we would expect the
service worker to inherit the settings from the WKWebView. However, it was not reliably
happening because the settings for the service worker are stored on the WebProcessPool and
WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess() was selecting a
random WebProcessPool object (the first one returned by processPools()).

To address the issue, we now pass the ProcessIdentifier of the client that requested the
service worker connection so that establishServiceWorkerContextConnectionToNetworkProcess() can
now prioritize the WebProcessPool of that process. Also, as an optimization, we now prioritize
this client process to run the service worker (assuming it is origin-clean).

No new tests, unskipped existing test.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::createContextConnection):

  • workers/service/server/SWServer.h:

Source/WebKit:

Before running the test, we would construct a new WKWebView with the Push API setting disabled.
We would then run the test, which would launch a service worker. Normally, we would expect the
service worker to inherit the settings from the WKWebView. However, it was not reliably
happening because the settings for the service worker are stored on the WebProcessPool and
WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess() was selecting a
random WebProcessPool object (the first one returned by processPools()).

To address the issue, we now pass the ProcessIdentifier of the client that requested the
service worker connection so that establishServiceWorkerContextConnectionToNetworkProcess() can
now prioritize the WebProcessPool of that process. Also, as an optimization, we now prioritize
this client process to run the service worker (assuming it is origin-clean).

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::ensureSWServer):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:

LayoutTests:

Unskip test that should no longer be flaky.

11:23 PM Changeset in webkit [290351] by ntim@apple.com
  • 9 edits in trunk

Use of showModalDialog should appear as a warning in WI console
https://bugs.webkit.org/show_bug.cgi?id=237046

Reviewed by Devin Rousso and Darin Adler.

Source/WebCore:

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::showModalDialog):

LayoutTests:

Test gardening to take in account new console warning.

  • fast/animation/request-animation-frame-during-modal-expected.txt:
  • fast/dom/Window/open-window-min-size-expected.txt:
  • fast/events/show-modal-dialog-onblur-onfocus-expected.txt:
  • http/tests/cookies/document-cookie-after-showModalDialog-expected.txt:
  • http/tests/security/navigate-when-restoring-cached-page-expected.txt:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2-expected.txt:
11:18 PM Changeset in webkit [290350] by Chris Dumez
  • 37 edits in trunk/Source

Add a URL constructor that takes a String
https://bugs.webkit.org/show_bug.cgi?id=237068

Reviewed by Darin Adler.

Source/JavaScriptCore:

Adopt the new URL(const String&) constructor.

  • API/JSAPIGlobalObject.mm:

(JSC::computeValidImportSpecifier):

Source/WebCore:

Adopt the new URL(const String&) constructor.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinatorInternal::processAppIdExtension):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::resolveModuleSpecifier):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::ScriptModuleLoader::moduleURL):
(WebCore::ScriptModuleLoader::responseURLFromRequestURL):
(WebCore::ScriptModuleLoader::importModule):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readTerminal):

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::applyToRequest):

  • dom/Document.cpp:

(WebCore::Document::referrer):

  • html/URLInputType.cpp:

(WebCore::URLInputType::typeMismatchFor const):

  • loader/DocumentLoader.cpp:

(WebCore::microsoftTeamsRedirectURL):

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequestQuery):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createResource):

  • loader/archive/mhtml/MHTMLParser.cpp:

(WebCore::MHTMLParser::parseNextPart):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/Quirks.cpp:

(WebCore::isBBCDomain):
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::createFromString):
(WebCore::SecurityOrigin::create):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toURL const):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation const):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest):

  • platform/gtk/SelectionData.cpp:

(WebCore::SelectionData::setURIList):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setHTTPReferrer):

  • platform/network/cf/ResourceErrorCF.cpp:

(WebCore::ResourceError::platformLazyInit):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::didReceiveHeader):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::platformLazyInit):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeString):

  • testing/Internals.cpp:

(WebCore::Internals::sendH2Ping):

Source/WTF:

Add a URL constructor that takes a String to simplify our code base a bit.

  • wtf/URL.cpp:

(WTF::URL::truncatedForUseAsBase const):
(WTF::URL::fakeURLWithRelativePart):
(WTF::URL::fileURLWithFileSystemPath):

  • wtf/URL.h:

(WTF::URL::URL):
(WTF::URL::decode):

10:12 PM Changeset in webkit [290349] by Chris Dumez
  • 26 edits in trunk

Drop StringHasher::hashMemory() and use the modern Hasher instead
https://bugs.webkit.org/show_bug.cgi?id=237049

Source/WebCore:

Reviewed by Sam Weinig and Darin Adler.

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::add):
(WebCore::IDBResourceIdentifierHash::hash):
(WebCore::IDBResourceIdentifier::hash const): Deleted.

  • dom/Attribute.h:

(WebCore::add):

  • dom/DocumentSharedObjectPool.cpp:

(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
(WebCore::attributeHash): Deleted.

  • dom/QualifiedName.cpp:

(WebCore::QualifiedName::QualifiedNameImpl::computeHash const):

  • dom/QualifiedName.h:

(WebCore::add):
(WebCore::hashComponents): Deleted.

  • dom/QualifiedNameCache.cpp:

(WebCore::QNameComponentsTranslator::hash):

  • page/GlobalWindowIdentifier.h:

(WebCore::add):
(WTF::GlobalWindowIdentifierHash::hash):
(WebCore::GlobalWindowIdentifier::hash const): Deleted.

  • page/SecurityOriginHash.h:

(WebCore::SecurityOriginHash::hash):

  • platform/ScriptExecutionContextIdentifier.h:

(WebCore::add):
(WebCore::ProcessQualified<UUID>::hash const): Deleted.
(WTF::computeHash): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::hash const):

  • platform/graphics/win/FontPlatformDataCGWin.cpp:

(WebCore::FontPlatformData::hash const):

  • svg/SVGElementInlines.h:

(WebCore::SVGAttributeHashTranslator::hash):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::hash const): Deleted.

  • workers/service/ServiceWorkerRegistrationKey.h:

(WebCore::add):
(WTF::ServiceWorkerRegistrationKeyHash::hash):

Source/WebKitLegacy/mac:

Reviewed by Sam Weinig and Darin Adler.

  • History/BinaryPropertyList.cpp:

(add):
(IntegerArrayHash::hash):

Source/WTF:

Reviewed by Sam Weinig and Darin Adler.

  • wtf/SchedulePair.h:

(WTF::SchedulePairHash::hash):

  • wtf/UUID.cpp:

(WTF::UUID::hash const): Deleted.

  • wtf/UUID.h:

(WTF::UUID::isHashTableDeletedValue const):
(WTF::add):
(WTF::UUIDHash::hash):

  • wtf/text/StringHasher.h:

(WTF::StringHasher::hashMemory): Deleted.

Tools:

Reviewed by Sam Weinig.

  • TestWebKitAPI/Tests/WTF/StringHasher.cpp:
10:01 PM Changeset in webkit [290348] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Create a DOMWindow::printWarningMessage method and start using it in DOMWindow.cpp
https://bugs.webkit.org/show_bug.cgi?id=237047

Reviewed by Darin Adler.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):
(WebCore::DOMWindow::webkitRequestAnimationFrame):
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary):
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary):
(WebCore::DOMWindow::printConsoleMessage const):
(WebCore::DOMWindow::printErrorMessage const):
(WebCore::DOMWindow::printWarningMessage const):

  • page/DOMWindow.h:
9:11 PM Changeset in webkit [290347] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.1

Tag Safari-614.1.5.1.

8:28 PM Changeset in webkit [290346] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

With DOM Rendering in GPU process, every display results in new IOSurface allocation
https://bugs.webkit.org/show_bug.cgi?id=237063

Reviewed by Tim Horton.

We have to avoid ImageBufferRemoteIOSurfaceBackends in the web process from hanging on to
an IOSurface MachSendRight (via ImageBufferBackendHandle) all the time, because doing so
makes the IOSurface appear to be in-use, and therefore not eligible for swapping to,
or making volatile. In particular, swapToValidFrontBuffer() would always think
that the surfaces were in-use, resulting in permanent triple-buffering, and
allocation of a new buffer on every swap.

Fix by clearing the ImageBufferBackendHandles of all the buffers in the WP in
RemoteRenderingBackendProxy::swapToValidFrontBuffer(), so that the GPUP can accurately
gauge in-use-ness; we get back a handle to the new front buffer in the reply,
and this is the only one we need to keep hold of, since it gets transferred to
the UI process.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):

8:04 PM Changeset in webkit [290345] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Use non-inline messages for layer volatility-related IPC in RemoteRenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=237061

Reviewed by Wenson Hsieh.

There appears to be a rare issue where StreamClientConnection::sendSync() can hang sometimes,
which makes it impossible to do an entire MotionMark run (rdar://89313626). So avoid this
by making the MarkSurfaceNonVolatile and SwapToValidFrontBuffer use out-of-line encoding.

  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
7:54 PM Changeset in webkit [290344] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.1

5:54 PM Changeset in webkit [290343] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Further restrict received IPC boolean values to 0 or 1
https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396

Patch by Simon Lewis <simon.lewis@apple.com> on 2022-02-22
Reviewed by Chris Dumez.

Return std::nullopt if a value larger than 1 is received.

  • Platform/IPC/ArgumentCoder.h:

(IPC::ArgumentCoder<bool>::decode):

5:34 PM Changeset in webkit [290342] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Share more code between dispatchSessionStorageEvents() and dispatchLocalStorageEvents()
https://bugs.webkit.org/show_bug.cgi?id=237040

Reviewed by Geoffrey Garen.

  • storage/StorageEventDispatcher.cpp:

(WebCore::dispatchStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::dispatchSessionStorageEventsToWindows): Deleted.
(WebCore::dispatchLocalStorageEventsToWindows): Deleted.

5:26 PM Changeset in webkit [290341] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

CachedResourceLoader::allCachedSVGImages() reparses resource URLs unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=237002

Reviewed by Darin Adler.

Store URLs in the HashMaps instead of Strings since we have URLs initially and we
need URLs eventually. This avoids having to re-parse the URL unnecessarily, which
is fairly expensive.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::notifyFinished):

  • loader/cache/CachedResourceLoader.h:
4:44 PM Changeset in webkit [290340] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION(r289580): [ iOS macOS ] TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=236744

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: Disable the test.

(TEST):

4:31 PM Changeset in webkit [290339] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5

Tag Safari-614.1.5.

4:27 PM Changeset in webkit [290338] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

PingLoader is failing to call completion handler in error case
https://bugs.webkit.org/show_bug.cgi?id=237062
<rdar://50157253>

Reviewed by Chris Dumez.

The completion handler was not being called in the case of a PingLoad being redirected to
a non-HTTP(S) scheme.

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::willPerformHTTPRedirection):

4:13 PM Changeset in webkit [290337] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for rdar://86037417.

  • platform/mac-wk2/TestExpectations:
3:36 PM Changeset in webkit [290336] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix watchOS build
https://bugs.webkit.org/show_bug.cgi?id=237064

Unreviewed.

32-bit devices require some casts.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

3:07 PM Changeset in webkit [290335] by Elliott Williams
  • 4 edits
    1 delete in trunk/Source

Source/WebCore/PAL:
Replace legacy-build-copy-nested-headers.py with an xcodebuild invocation.
https://bugs.webkit.org/show_bug.cgi?id=237011

Reviewed by Alexey Proskuryakov.

r290260 added a script to approximate how XCBuild copies headers to nested directories, for
use in legacy builds. Instead of that script, invoke xcodebuild -UseNewBuildSystem=YES
directly to copy nested headers to the build products directory. By taking the same
header-copying codepath, legacy builds can handle header edge cases (e.g. multiple headers
with the same basename) exactly as XCBuild does.

The child xcodebuild process saves incremental data to TARGET_TEMP_DIR, so it can rebuild
incrementally without clobbering the legacy build system's incremental data.

Apple production builds do not use the legacy build system, so this change is
engineering-only.

  • PAL.xcodeproj/project.pbxproj:

Source/WTF:
Replace legacy-build-copy-nested-headers.py with an xcodebuild invocation
https://bugs.webkit.org/show_bug.cgi?id=237011

Reviewed by Alexey Proskuryakov.

  • Scripts/legacy-build-copy-nested-headers.py: Removed.
  • WTF.xcodeproj/project.pbxproj: Remove reference to legacy-build-copy-nested-headers.py.
3:02 PM Changeset in webkit [290334] by Ryan Haddad
  • 4 edits in trunk/Tools

Remove dormant queues from bot watchers dashboard
https://bugs.webkit.org/show_bug.cgi?id=236809

Reviewed by Alexey Proskuryakov.

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js:
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css:

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

1:20 PM Changeset in webkit [290333] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo][WK2] animations/background-position.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=236630

Reviewed by Don Olmstead.

r289848 was a wrong fix causing some test failures. It called the
force repaint completion handler too early if m_waitDidUpdate was
true when the force repaint was requested. In such case, we should
wait for two DidUpdate messages before calling the completion
handler.

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::forceRepaintAsync):
(WebKit::DrawingAreaWC::didUpdate):

  • WebProcess/WebPage/wc/DrawingAreaWC.h:

Added m_isForceRepaintCompletionHandlerDeferred flag.

1:11 PM Changeset in webkit [290332] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Link to GitHub wiki
https://bugs.webkit.org/show_bug.cgi?id=237048
<rdar://problem/89307995>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.main): Add GitHub wiki link.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

(TestSetup.test_github):

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

12:59 PM Changeset in webkit [290331] by Angelos Oikonomopoulos
  • 2 edits in trunk/Source/WTF

Ruby ERB.new compatibility fix
https://bugs.webkit.org/show_bug.cgi?id=237035

Reviewed by Fujii Hironori.

ERB.new has changed its calling convention in newer ruby versions.
This was exposed by https://commits.webkit.org/247450@main, which
tried to silence the warning emitted by newer ruby versions.
Unfortunately, this resulted in failures with older ruby versions
(e.g.
https://build.webkit.org/#/builders/46/builds/11387/steps/8/logs/stdio).

Use the compatibility hack suggested by RuboCop to get this working
across ruby versions (without any warnings).

  • Scripts/GeneratePreferences.rb:
12:54 PM Changeset in webkit [290330] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

null ptr deref via WebXRSystem::requestSession
https://bugs.webkit.org/show_bug.cgi?id=235916

Patch by Frédéric Wang <fwang@igalia.com> on 2022-02-22
Reviewed by Dean Jackson.
Source/WebCore:

WebXRSystem::requestSession() null checks the document's global object via the method
Document::domWindow() and calls WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject()
which dereferences the global object via the method ScriptExecutionContext::globalObject().
The former is just getting a raw pointer from Document::m_domWindow which (once set) remains
non-null until the document is destroyed. The latter instead gets the DOM window via the
document's FrameDestructionObserver::m_frame which is null when document is detached from the
frame. Hence the two methods may disagree, leading to a null ptr deref in
WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject(). This patch works around that
issue by explicitly null checking the result of Document::::globalObject(). Additionally, it
makes the document (and its m_domWindow member) protected earlier in
WebXRSystem::requestSession() i.e. before passing them to potentially complex subroutines
immersiveSessionRequestIsAllowedForGlobalObject() and
inlineSessionRequestIsAllowedForGlobalObject().

Test: webxr/xr-requestSession-crash.html

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject const): null-check
document::globalObject() before deferencing it.
(WebCore::WebXRSystem::requestSession): protect document (and its m_domWindow member).

LayoutTests:

Add non-regression test.

  • webxr/xr-requestSession-crash-expected.txt: Added.
  • webxr/xr-requestSession-crash.html: Added.
12:49 PM Changeset in webkit [290329] by Chris Dumez
  • 114 edits in trunk/Source

Clean up / optimize even more call sites constructing vectors
https://bugs.webkit.org/show_bug.cgi?id=236852

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::beginPaymentSession):

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::convert):

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::batchPutOperation):

  • Modules/gamepad/Gamepad.cpp:

(WebCore::Gamepad::Gamepad):

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::platformGamepadDisconnected):
(WebCore::GamepadManager::makeGamepadVisible):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::objectStoreNames const):
(WebCore::IDBDatabase::transaction):

  • Modules/indexeddb/IDBKeyData.h:

(WebCore::IDBKeyData::isDeletedValue const):
(WebCore::add):
(WebCore::IDBKeyDataHash::hash):
(WebCore::IDBKeyData::hash const): Deleted.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::indexNames const):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStoreNames const):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::activeRanges const):

  • Modules/mediasource/SampleMap.h:

(WebCore::DecodeOrderSampleMap::size const):

  • Modules/mediasource/SourceBufferList.h:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::getVoices):

  • Modules/speech/cocoa/WebSpeechRecognizerTask.mm:

(-[WebSpeechRecognizerTaskImpl callbackWithTranscriptions:isFinal:]):

  • Modules/speech/cocoa/WebSpeechRecognizerTaskMock.mm:

(-[WebSpeechRecognizerTaskMock audioSamplesAvailable:]):

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):

  • animation/KeyframeEffect.cpp:

(WebCore::processPropertyIndexedKeyframes):

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::ContentExtension):

  • css/CSSValueList.h:

(WebCore::CSSValueList::size const):

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::CSSCalcOperationNode::hoistChildrenWithOperator):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeContainerRule):

  • dom/DOMStringList.h:

(WebCore::DOMStringList::create):
(WebCore::DOMStringList::append):
(WebCore::DOMStringList::DOMStringList):

  • dom/EventPath.cpp:

(WebCore::EventPath::EventPath):

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::cancelFullscreen):

  • dom/LoadableScript.cpp:

(WebCore::LoadableScript::notifyClientFinished):

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroup::members const):

  • html/DirectoryFileListCreator.cpp:

(WebCore::toFileList):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::detachBitmaps):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getAttachedShaders):

  • html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::processMeta):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::insertPhoneNumberLink):

  • html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::create):

  • loader/appcache/ApplicationCacheManifestParser.cpp:

(WebCore::parseApplicationCacheManifest):

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::deliverObservations):

  • page/TextIndicator.cpp:

(WebCore::initializeIndicator):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::parseSubResourceIntegrityIntoDigests):

  • platform/FileChooser.cpp:

(WebCore::FileChooser::chooseFile):
(WebCore::FileChooser::chooseFiles):
(WebCore::FileChooser::chooseMediaFiles):

  • platform/SharedBuffer.cpp:

(WebCore::FragmentedSharedBuffer::append):

  • platform/ThreadSafeDataBuffer.h:

(WebCore::add):

  • platform/audio/AudioDSPKernelProcessor.cpp:

(WebCore::AudioDSPKernelProcessor::initialize):

  • platform/audio/AudioResampler.cpp:

(WebCore::AudioResampler::AudioResampler):

  • platform/audio/DynamicsCompressorKernel.cpp:

(WebCore::DynamicsCompressorKernel::setNumberOfChannels):

  • platform/audio/MultiChannelResampler.cpp:

(WebCore::MultiChannelResampler::MultiChannelResampler):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::legibleMediaSelectionOptions const):

  • platform/gamepad/mac/Dualshock3HIDGamepad.cpp:

(WebCore::Dualshock3HIDGamepad::Dualshock3HIDGamepad):

  • platform/gamepad/mac/LogitechGamepad.cpp:

(WebCore::LogitechGamepad::LogitechGamepad):

  • platform/gamepad/mac/StadiaHIDGamepad.cpp:

(WebCore::StadiaHIDGamepad::StadiaHIDGamepad):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::addRepaintRect):

  • platform/graphics/PathUtilities.cpp:

(WebCore::PathUtilities::pathsWithShrinkWrappedRects):
(WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::bufferedSamplesForTrackId):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSkd):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::setRequestForKey):

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateKeyStatuses):

  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::frameInfos const):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:

(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::variationAxes const):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::writeString):

  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::setSupportedPresets):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFilesForIndexedDB):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::drawBoxSideFromPath):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::connectClippingStackLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::adjustOverflowScrollbarContainerLayers):

  • rendering/RenderThemeMac.mm:

(WebCore::paintAttachmentTitleBackground):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGStrokePaintingResource):

  • rendering/svg/SVGTextChunk.cpp:

(WebCore::SVGTextChunk::SVGTextChunk):

  • style/PageRuleCollector.cpp:

(WebCore::Style::PageRuleCollector::matchPageRules):

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pop):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertContainerName):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::RemoteSourceBufferProxy::updateTrackIds):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::fetchDiskCacheEntries):

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::getOriginsWithPushAndNotificationPermissions):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::allStorageAreaIdentifiers const):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:

(WebKit::TransientLocalStorageNamespace::origins const):
(WebKit::TransientLocalStorageNamespace::storageAreaIdentifiers const):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::finishOpening):
(WebKit::CacheStorage::Cache::keys const):

  • NetworkProcess/storage/SQLiteStorageArea.cpp:

(WebKit::SQLiteStorageArea::SQLiteStorageArea):

  • Platform/IPC/ArgumentCoders.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):
(API::m_clientNavigationActivity):

  • UIProcess/Cocoa/WKShareSheet.mm:

(appendFilesAsShareableURLs):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex):

  • UIProcess/FrameLoadState.cpp:

(WebKit::FrameLoadState::didFinishLoad):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::parameters const):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::startDiscovery):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::removeAllItems):
(WebKit::WebBackForwardList::clear):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::removeProcessFromOriginCacheSet):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]):

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::showPaymentUI):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::updateTrackIds):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::createEncoder):

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFrameState):

  • WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.cpp:

(WebKit::WebDeviceOrientationUpdateProvider::deviceOrientationChanged):
(WebKit::WebDeviceOrientationUpdateProvider::deviceMotionChanged):

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:

(WebKit::WebPasteboardOverrides::overriddenTypes):

  • WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp:

(WebKit::WebSpeechSynthesisClient::voiceList):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::findStringMatches):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::drawRect):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::consumeSandboxExtensions):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleSelectionServiceClick):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::fetchWebsiteData):

Source/WTF:

  • wtf/WorkQueue.cpp:

(WTF::ConcurrentWorkQueue::apply):

  • wtf/cf/LanguageCF.cpp:

(WTF::platformUserPreferredLanguages):

12:45 PM Changeset in webkit [290328] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix GPUP WebGL generator script wrt uninitialised sized span
https://bugs.webkit.org/show_bug.cgi?id=235889
<rdar://problem/88567612>

Reviewed by Chris Dumez.

Even though we check if the synchronous message was received successfully before using it,
if we didn't check then we might have a problem with pointing to uninitialized memory, which we then wouldn't use for anything.
To fix this hypothetical problem, I start out by pointing to initialized memory.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):

11:53 AM Changeset in webkit [290327] by Kocsen Chung
  • 3 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290317. rdar://problem/89206950

[WebAuthn] Fix lifetime issue on iOS
https://bugs.webkit.org/show_bug.cgi?id=237018
rdar://89206950

Reviewed by Brent Fulgham.

Lifetime issues introduced in a recent refactor of performRequest were causing
replies from WebAuthenticatorCoordinatorProxy_MakeCredentialReply not to make it
back to the web content process. This patch fixes these, allowing requests to proceed.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::continueAfterRequest): (WebKit::WebAuthenticatorCoordinatorProxy::performRequest): Deleted. (WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable): Deleted. (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): Deleted.
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290317 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:41 AM Changeset in webkit [290326] by Nikolas Zimmermann
  • 13 edits
    2 moves in trunk/Source/WebCore

[LBSE] Rename RenderSVGTransformableContainer -> LegacyRenderSVGTransformableContainer
https://bugs.webkit.org/show_bug.cgi?id=237023

Reviewed by Rob Buis.

Following the established procedure: rename RenderSVGTransformableContainer -> LegacyRenderSVGTransformableContainer.
In a follow-up patch RenderSVGTransformableContainer will be reintroduced for LBSE, inheriting from
RenderSVGContainer instead of LegacyRenderSVGContainer.

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderObject.h:

(WebCore::RenderObject::isLegacySVGTransformableContainer const):
(WebCore::RenderObject::isSVGTransformableContainer const): Deleted.

  • rendering/svg/LegacyRenderSVGContainer.cpp:

(WebCore::LegacyRenderSVGContainer::layout):

  • rendering/svg/LegacyRenderSVGContainer.h:
  • rendering/svg/LegacyRenderSVGTransformableContainer.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp.

(WebCore::LegacyRenderSVGTransformableContainer::LegacyRenderSVGTransformableContainer):
(WebCore::LegacyRenderSVGTransformableContainer::calculateLocalTransform):
(WebCore::LegacyRenderSVGTransformableContainer::graphicsElement):

  • rendering/svg/LegacyRenderSVGTransformableContainer.h: Renamed from Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h.
  • rendering/svg/RenderSVGViewportContainer.h:
  • rendering/svg/SVGContainerLayout.cpp:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::transformToRootChanged):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::createElementRenderer):

  • svg/SVGGElement.cpp:

(WebCore::SVGGElement::createElementRenderer):

  • svg/SVGSwitchElement.cpp:

(WebCore::SVGSwitchElement::createElementRenderer):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::createElementRenderer):

11:34 AM Changeset in webkit [290325] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] Switch media player to playbin3
https://bugs.webkit.org/show_bug.cgi?id=236884

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-22
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

With GStreamer 1.20 playbin3 is quite usable now, so give it a try as default playback
engine during the 2.38 cycle. If one wants to opt out, set the WEBKIT_GST_USE_PLAYBIN2
environment variable to 1.

No new tests, covered by existing media layout tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

Tools:

Replace WEBKIT_GST_USE_PLAYBIN3 with WEBKIT_GST_USE_PLAYBIN2 that allows to opt-out of
playbin3, if this is desired.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.setup_environ_for_server):

11:34 AM Changeset in webkit [290324] by Nikolas Zimmermann
  • 3 edits in trunk/Source/WebCore

[LBSE] Activate LBSE for <rect> painting
https://bugs.webkit.org/show_bug.cgi?id=236194

Reviewed by Rob Buis.

Finally activate LBSE for <rect> elements -- painting <rect> elements
now works as expected in LBSE. Try using MiniBrowser and switch
from legacy engine to LBSE and back -- this now works just fine and
rebuilds the render tree / updates display.

Covered by existing tests, no change in behaviour.

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeStyle):
(WebCore::writeChildren):

  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

11:31 AM Changeset in webkit [290323] by commit-queue@webkit.org
  • 26 edits
    2 adds in trunk

[GStreamer] Initial MediaRecorder implementation
https://bugs.webkit.org/show_bug.cgi?id=236558

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-22
Reviewed by Xabier Rodriguez-Calvar.

.:

Enable MediaRecorder support if GStreamer >= 1.20 is available.

  • Source/cmake/FindGStreamer.cmake:
  • Source/cmake/GStreamerChecks.cmake:
  • Source/cmake/GStreamerDefinitions.cmake:
  • Source/cmake/GStreamerDependencies.cmake:

Source/WebCore:

Add a MediaRecorder backend based on the GStreamer Transcoder library. We anticipate the
scenario where the GstWebRTC backend might provide encoded streams to the recorder, in which
case transcoding is required. The transcoder library can operate in pass-through as well.

  • CMakeLists.txt:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::isTypeSupported):
(WebCore::MediaRecorder::createMediaRecorderPrivate):

  • Modules/mediarecorder/MediaRecorderProvider.cpp:

(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
(WebCore::MediaRecorderProvider::isSupported):

  • Modules/mediarecorder/MediaRecorderProvider.h:
  • loader/EmptyClients.cpp:
  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstEncodingProfile>):
(WTF::derefGPtr<GstEncodingProfile>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initializeEncoders):

  • platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp: Added.

(WebCore::MediaRecorderPrivateGStreamer::create):
(WebCore::MediaRecorderPrivateGStreamer::MediaRecorderPrivateGStreamer):
(WebCore::MediaRecorderPrivateGStreamer::~MediaRecorderPrivateGStreamer):
(WebCore::MediaRecorderPrivateGStreamer::startRecording):
(WebCore::MediaRecorderPrivateGStreamer::stopRecording):
(WebCore::MediaRecorderPrivateGStreamer::fetchData):
(WebCore::MediaRecorderPrivateGStreamer::pauseRecording):
(WebCore::MediaRecorderPrivateGStreamer::resumeRecording):
(WebCore::MediaRecorderPrivateGStreamer::mimeType const):
(WebCore::MediaRecorderPrivateGStreamer::isTypeSupported):
(WebCore::MediaRecorderPrivateGStreamer::containerProfile):
(WebCore::MediaRecorderPrivateGStreamer::setSource):
(WebCore::MediaRecorderPrivateGStreamer::setSink):
(WebCore::MediaRecorderPrivateGStreamer::configureVideoEncoder):
(WebCore::MediaRecorderPrivateGStreamer::preparePipeline):
(WebCore::MediaRecorderPrivateGStreamer::processSample):
(WebCore::MediaRecorderPrivateGStreamer::notifyEOS):

  • platform/mediarecorder/MediaRecorderPrivateGStreamer.h: Added.
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcEnsureStreamCollectionPosted):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSignalEndOfStream):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Enable MediaRecorder if it was

enabled at build time in GStreamer ports.

LayoutTests:

Flag the remaining MediaRecorder test failures. Those will be adressed in follow-up patches.

  • http/wpt/mediarecorder/pause-recording.html:
  • platform/glib/TestExpectations:
11:25 AM Changeset in webkit [290322] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Extract revision from git svn dcommit
https://bugs.webkit.org/show_bug.cgi?id=236849
<rdar://problem/89155179>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): Thoroughly mock dcommit

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main): Extract committed SVN revision from git svn dcommit command to accurately
match landed commits to the pull request that generated them.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:

(repository): Add revision to local commit.

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

11:04 AM Changeset in webkit [290321] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Hide PDF.js sidebar shown for long documents
https://bugs.webkit.org/show_bug.cgi?id=236850

Reviewed by Chris Dumez.

Use the built-in PDF.js #pagemode=none parameter to do this: https://github.com/mozilla/pdf.js/wiki/Viewer-options

  • html/PDFDocument.cpp:

(WebCore::PDFDocument::createDocumentStructure):

11:02 AM Changeset in webkit [290320] by Antti Koivisto
  • 10 edits in trunk

[CSS container Queries] getComputedStyle should update style for invalid query containers
https://bugs.webkit.org/show_bug.cgi?id=237038

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::hasValidStyleForProperty):

We always need to update style inside a query container since a change to it may affect descendants.

10:59 AM Changeset in webkit [290319] by Kate Cheney
  • 14 edits in trunk

Authenticated encryption console logging causing performance regressions
https://bugs.webkit.org/show_bug.cgi?id=236987
<rdar://problem/89108253>

Reviewed by Chris Dumez.

Source/WebCore:

No new tests. Behavior confirmed by existing crypto/subtle tests.

For clients that use repeated unauthenticated AES encryption, console
logging may cause perf issues. We should log the authenticated
encryption warning once per context.

  • crypto/SubtleCrypto.cpp:

(WebCore::SubtleCrypto::addAuthenticatedEncryptionWarningIfNecessary):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::hasLoggedAuthenticatedEncryptionWarning const):
(WebCore::ScriptExecutionContext::setHasLoggedAuthenticatedEncryptionWarning):

LayoutTests:

  • crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt:
  • crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt:
  • crypto/subtle/aes-cbc-generate-key-encrypt-decrypt-expected.txt:
  • crypto/subtle/aes-cbc-import-key-decrypt-expected.txt:
  • crypto/subtle/aes-cbc-import-key-encrypt-expected.txt:
  • crypto/subtle/aes-ctr-encrypt-malformed-parameters-expected.txt:
  • crypto/subtle/aes-ctr-generate-key-encrypt-decrypt-expected.txt:
  • crypto/subtle/aes-ctr-import-key-encrypt-expected.txt:
  • platform/glib/crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt:
  • platform/glib/crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt:
10:29 AM Changeset in webkit [290318] by dino@apple.com
  • 2 edits in trunk/Tools

Filter some build output from JSC
https://bugs.webkit.org/show_bug.cgi?id=236885

Reviewed by Simon Fraser.

Add some filter rules for recently added output. In particular:

  • whatever prints out the build command
  • python executables now having the version numbers in the binary
  • creating entitlements files
  • Scripts/filter-build-webkit:

(shouldIgnoreLine):

10:21 AM Changeset in webkit [290317] by J Pascoe
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Fix lifetime issue on iOS
https://bugs.webkit.org/show_bug.cgi?id=237018
rdar://89206950

Reviewed by Brent Fulgham.

Lifetime issues introduced in a recent refactor of performRequest were causing
replies from WebAuthenticatorCoordinatorProxy_MakeCredentialReply not to make it
back to the web content process. This patch fixes these, allowing requests to proceed.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::continueAfterRequest):
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest): Deleted.
(WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable): Deleted.
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): Deleted.

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
9:55 AM Changeset in webkit [290316] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove an unneeded IOKit property
https://bugs.webkit.org/show_bug.cgi?id=236867
<rdar://47695155>

Reviewed by Per Arne Vollan.

The relevant frameworks that used the IOPlatformUUID IOKit
property have been updated to no longer refer to it. We can
now safely remove it.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:53 AM Changeset in webkit [290315] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebCore

Cherry-pick r290311. rdar://problem/89261425

[Cocoa] Partial rollout of r289946, broke Netflix
https://bugs.webkit.org/show_bug.cgi?id=237019
<rdar://89261425>

Reviewed by Eric Carlson.

Adopting AVContentKeySupport for AVSampleBufferDisplayLayer broke Netflix playback on Cocoa
ports. Disable that support by hard coding sampleBufferRenderersSupportKeySession() to
return false.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::sampleBufferRenderersSupportKeySession):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290311 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:50 AM Changeset in webkit [290314] by Aditya Keerthi
  • 7 edits in trunk

[iOS] Adopt new _UITextSearching method for range comparison
https://bugs.webkit.org/show_bug.cgi?id=237012
rdar://88442811

Reviewed by Devin Rousso.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView offsetFromPosition:toPosition:inDocument:]):

Mark deprecation.

(-[WKWebView compareFoundRange:toRange:inDocument:]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView compareFoundRange:toRange:inDocument:]):

Implement the new comparison method using existing offset computation logic.

Tools:

Ensure TestSearchAggregator conforms to _UITextSearchAggregator.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(-[TestSearchAggregator initWithCompletionHandler:]):
(-[TestSearchAggregator allFoundRanges]):
(-[TestSearchAggregator invalidateFoundRange:inDocument:]):
(-[TestSearchAggregator invalidate]):
(textRangesForQueryString):
(-[TestSearchAggregator foundRanges]): Deleted.

9:44 AM Changeset in webkit [290313] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Re-style PDF.js form fields to match PDFKit
https://bugs.webkit.org/show_bug.cgi?id=237041

Reviewed by Geoffrey Garen.

Remove black border on :hover, only display light blue background on hover, display blue focusring on :focus.

  • Modules/pdfjs-extras/style-cocoa.css:

(.annotationLayer :is():

9:42 AM Changeset in webkit [290312] by commit-queue@webkit.org
  • 4 edits in trunk/Source

When building introspection files, add CMAKE_C_FLAGS to the compiler flags.
https://bugs.webkit.org/show_bug.cgi?id=232936

Patch by Alexander Kanavin <alex@linutronix.de> on 2022-02-22
Reviewed by Michael Catanzaro.

g-ir-compiler is using a C compiler internally, so it needs to set
the proper flags for it.

  • PlatformGTK.cmake:
9:11 AM Changeset in webkit [290311] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Partial rollout of r289946, broke Netflix
https://bugs.webkit.org/show_bug.cgi?id=237019
<rdar://89261425>

Reviewed by Eric Carlson.

Adopting AVContentKeySupport for AVSampleBufferDisplayLayer broke Netflix playback on Cocoa
ports. Disable that support by hard coding sampleBufferRenderersSupportKeySession() to
return false.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::sampleBufferRenderersSupportKeySession):

9:07 AM Changeset in webkit [290310] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: Only compute ariaTreeRows for isTree() objects
https://bugs.webkit.org/show_bug.cgi?id=236994

Reviewed by Andres Gonzalez.

We only expose AXPropertyName::ARIATreeRows for isTree() objects, but compute it for every object, which is wasteful.

This patch also includes a drive-by fixing of setting AXPropertyName::IsTreeItem. Prior to this patch,
we never set this property. Also, we now only store AXPropertyName::ARIATreeItemContent for isTreeItem() objects.

The AXPropertyName::IsTreeItem fix makes test accessibility/roles-exposed.html closer to passing with ITM enabled.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeRows):
Remove unncessary tab character.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

9:05 AM Changeset in webkit [290309] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: Fix accessibility/aria-current-state-changed-notification.html in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=237014

Reviewed by Chris Fleizach.

We need to update AXPropertyName::CurrentValue when we get a AXCurrentStateChanged notification.

Fixes accessibility/aria-current-state-changed-notification.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:
8:08 AM Changeset in webkit [290308] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for crash in several AX LayoutTests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237015

Reviewed by Chris Dumez.

Follow up to https://bugs.webkit.org/show_bug.cgi?id=236748.

The iteration over the object's children has to happen over a copy
because the children vector can change during the traversal of the tree.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):

8:05 AM Changeset in webkit [290307] by youenn@apple.com
  • 4 edits in trunk

http/wpt/mediarecorder/mute-tracks.html fails with WebRTCRemoteVideoFrameEnabled=true
https://bugs.webkit.org/show_bug.cgi?id=237021

Reviewed by Kimmo Kinnunen.

Source/WebKit:

We were previously creating the black frame but still sending the remote read reference.
On GPUProcess side, we were then encoding the real frame instead of the black/muted frame.
Add a specific muted code path to fix the issue.

Covered by updated test.

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::videoSampleAvailable):

  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:

(WebKit::SharedVideoFrameReader::read):

LayoutTests:

  • http/wpt/mediarecorder/mute-tracks.html:
7:45 AM Changeset in webkit [290306] by ntim@apple.com
  • 14 edits
    6 adds in trunk

Make pointer-events checks for SVG take in account inert subtrees
https://bugs.webkit.org/show_bug.cgi?id=235836

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Added tests for both inert attribute & modal dialog cases.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html: Added.
  • web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-svg-hittest.tentative.html: Added.

Source/WebCore:

Re-using visibleToHitTesting in SVG code isn't possible, because visibleToHitTesting removes visibility: hidden;
content from hit-testing, which we do not want to here, since pointer-events has values for SVG which still
allow clicking content regardless of their visibility value (pointer-events: painted/fill/stroke/all).

Instead, we add an inert-aware effectivePointerEvents, similar to effectiveUserSelect and re-use that across the codebase.

Tests: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html

imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderElement.h:

(WebCore::RenderElement::visibleToHitTesting const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerStyleChanged):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectivePointerEvents const):

  • rendering/svg/LegacyRenderSVGModelObject.cpp:

(WebCore::LegacyRenderSVGModelObject::checkIntersection):
(WebCore::LegacyRenderSVGModelObject::checkEnclosure):

  • rendering/svg/LegacyRenderSVGShape.cpp:

(WebCore::LegacyRenderSVGShape::nodeAtFloatPoint):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::nodeAtFloatPoint):

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::checkIntersection):
(WebCore::RenderSVGModelObject::checkEnclosure):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::nodeAtPoint):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::nodeAtFloatPoint):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::nodeAtPoint):

LayoutTests:

iOS doesn't support test_actions, so it needs different baselines.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt: Added.
7:42 AM Changeset in webkit [290305] by ntim@apple.com
  • 12 edits in trunk/Source

Rename RenderStyle::userSelectIncludingInert to RenderStyle::effectiveUserSelect
https://bugs.webkit.org/show_bug.cgi?id=237033

Reviewed by Antti Koivisto.

This naming is consistent with other properties (effectiveDisplay/Appearance/PointerEvents/etc.).

Source/WebCore:

  • dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::canStartSelection const):

  • dom/Position.cpp:

(WebCore::Position::nodeIsUserSelectNone):
(WebCore::Position::nodeIsUserSelectAll):

  • page/EventHandler.cpp:

(WebCore::EventHandler::canMouseDownStartSelect):
(WebCore::EventHandler::selectCursor):

  • page/Frame.cpp:

(WebCore::Frame::rangeForPoint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionBackgroundColor const):
(WebCore::RenderElement::selectionColor const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::collectSelectionGeometriesInternal):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectiveUserSelect const):
(WebCore::RenderStyle::userSelectIncludingInert const): Deleted.

Source/WebKit:

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::isSelectableTextNode const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionPositionInformation):

7:33 AM Changeset in webkit [290304] by Chris Dumez
  • 31 edits in trunk/Source

Move service worker and push API preference from RuntimeEnabledFeatures to Settings
https://bugs.webkit.org/show_bug.cgi?id=236989

Reviewed by Youenn Fablet.

Move service worker and push API preference from RuntimeEnabledFeatures to Settings, since RuntimeEnabledFeatures is deprecated.

Source/WebCore:

  • Modules/push-api/PushEvent.idl:
  • Modules/push-api/PushManager.idl:
  • Modules/push-api/PushMessageData.idl:
  • Modules/push-api/PushSubscription.idl:
  • Modules/push-api/PushSubscriptionChangeEvent.idl:
  • Modules/push-api/PushSubscriptionOptions.idl:
  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
  • Modules/push-api/ServiceWorkerRegistration+PushAPI.idl:
  • dom/Document.cpp:

(WebCore::Document::suspend):
(WebCore::Document::resume):
(WebCore::Document::finishedParsing):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::unregisterReservedServiceWorkerClient):
(WebCore::DocumentLoader::loadMainResource):

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::serviceWorker):

  • page/NavigatorServiceWorker.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::pushAPIEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setPushAPIEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::serviceWorkerEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setServiceWorkerEnabled): Deleted.

  • workers/service/ExtendableEvent.idl:
  • workers/service/ExtendableMessageEvent.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClients.idl:
  • workers/service/ServiceWorkerContainer.idl:
  • workers/service/ServiceWorkerGlobalScope.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/service/ServiceWorkerWindowClient.idl:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _serviceWorkersEnabled:]):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnection):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateThrottleState):
(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
7:16 AM Changeset in webkit [290303] by Jonathan Bedard
  • 6 edits in trunk/LayoutTests

Unreviewed, reverting r290220.

Tests still fail with with fuzzy data

Reverted changeset:

"Test gardening for [CSS Blending] Non-separable blend modes
don't work"
https://bugs.webkit.org/show_bug.cgi?id=131354
https://commits.webkit.org/r290220

6:10 AM Changeset in webkit [290302] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update FDO junction for GDB 11.x
https://bugs.webkit.org/show_bug.cgi?id=236979

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-22
Reviewed by Adrian Perez de Castro.

  • elements/freedesktop-sdk.bst: gdb 10 is crashy in the current SDK, but was fixed in the

upstream FDO SDK, by updating to the 11.x version.

5:35 AM Changeset in webkit [290301] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

Permission API: handle non-fully active documents
https://bugs.webkit.org/show_bug.cgi?id=236952

LayoutTests/imported/w3c:

Web Platform Test
https://github.com/web-platform-tests/wpt/pull/32921

Patch by Marcos Caceres <Marcos Caceres> on 2022-02-22
Reviewed by Youenn Fablet.

  • web-platform-tests/permissions/non-fully-active.https-expected.txt: Added.
  • web-platform-tests/permissions/non-fully-active.https.html: Added.
  • web-platform-tests/permissions/resources/empty.html: Added.

Source/WebCore:

Spec change:
https://github.com/w3c/permissions/pull/365

Patch by Marcos Caceres <Marcos Caceres> on 2022-02-22
Reviewed by Youenn Fablet.

Test: imported/w3c/web-platform-tests/permissions/non-fully-active.https.html

  • Modules/permissions/PermissionStatus.cpp:

(WebCore::PermissionStatus::stateChanged):

  • Modules/permissions/Permissions.cpp:

(WebCore::Permissions::query):

5:21 AM Changeset in webkit [290300] by commit-queue@webkit.org
  • 25 edits
    1 copy
    70 adds in trunk

Initial support for Wasm/ESM-integration in the WebCore module loader
https://bugs.webkit.org/show_bug.cgi?id=236268

Patch by Asumu Takikawa <asumu@igalia.com> on 2022-02-22
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Add test suite for Wasm/ESM integration proposal to WPT Wasm WebAPI
tests.

  • web-platform-tests/wasm/webapi/esm-integration/execute-start.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/execute-start.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/exported-names.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/exported-names.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/invalid-bytecode.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/invalid-bytecode.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/module-parse-error.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/module-parse-error.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resolve-export.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resolve-export.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resolve-export.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/execute-start.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/exported-names.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/invalid-bytecode.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/invalid-module.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle.js: Added.

(f):

  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/log.js: Added.

(export.logExec):

  • web-platform-tests/wasm/webapi/esm-integration/resources/resolve-export.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-export-i64-global.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-export-to-wasm.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-error-from-wasm.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-from-wasm.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-func.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-func.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-global.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-global.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-memory.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-memory.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-table.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-table.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-js-cycle.js: Added.

(let.jsFunc):
(export.mutateBindings):

  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-js-cycle.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/worker-helper.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/worker.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/worker.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-js-cycle.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-js-cycle.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker-import.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker-import.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker.tentative.html: Added.

Source/JavaScriptCore:

Adjust WebAssemblySourceProvider to inherit from a new abstract base
class that exposes the data as a pointer and size, to allow
implementations other than a Vector. Also add initialization
and cleanup methods managed by RAII class.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • parser/SourceProvider.cpp:

(JSC::BaseWebAssemblySourceProvider::BaseWebAssemblySourceProvider):

  • parser/SourceProvider.h:

(JSC::BaseWebAssemblySourceProvider::lockUnderlyingBuffer):
(JSC::BaseWebAssemblySourceProvider::unlockUnderlyingBuffer):
(JSC::WebAssemblySourceProviderBufferGuard::WebAssemblySourceProviderBufferGuard):
(JSC::WebAssemblySourceProviderBufferGuard::~WebAssemblySourceProviderBufferGuard):

  • runtime/CachedTypes.cpp:

(JSC::CachedWebAssemblySourceProvider::encode):

  • tools/JSDollarVM.cpp:
  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):
(JSC::createSourceBufferFromValue):

Source/WebCore:

Add initial WebAssembly script support for WebCore module loading. It
does not yet support Wasm scripts in workers. Detection of Wasm
modules is currently done by MIME type, not by import assertions.

  • Headers.cmake:
  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::hasWasmMIMEType const):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateModule):

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):
(WebCore::ScriptModuleLoader::notifyFinished):

  • bindings/js/ScriptModuleLoader.h:
  • bindings/js/WebAssemblyCachedScriptSourceProvider.h: Added.
  • bindings/js/WebAssemblyScriptSourceCode.h: Copied from Source/JavaScriptCore/parser/SourceProvider.cpp.

(WebCore::WebAssemblyScriptSourceCode::WebAssemblyScriptSourceCode):
(WebCore::WebAssemblyScriptSourceCode::jsSourceCode const):

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedWebAssemblyMIMEType):

  • platform/MIMETypeRegistry.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::evaluateModule):

  • workers/WorkerOrWorkletScriptController.h:

Source/WTF:

Add preference flag for Wasm/ESM Integration.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Add Wasm module MIME type for HTTP tests, and add tests.

  • http/conf/mime.types:
  • http/tests/wasm/resources/empty-module.wasm: Added.
  • http/tests/wasm/wasm-esm-disabled-with-setting-expected.txt: Added.
  • http/tests/wasm/wasm-esm-disabled-with-setting.html: Added.
2:29 AM Changeset in webkit [290299] by Pablo Saavedra
  • 2 edits in trunk/Source/WebCore

Properly uninitialize EGL display before termination
https://bugs.webkit.org/show_bug.cgi?id=236766

From the docs [1], if contexts or surfaces associated with display
is current to any thread, they are not released until they
are no longer current as a result of eglMakeCurrent.

So call eglMakeCurrent() to such effect.

[1] https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglMakeCurrent.xhtml

Reviewed by Carlos Garcia Campos.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::terminateEGLDisplay):

2:25 AM Changeset in webkit [290298] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Guard against dead remotes in numberOfProcessors
https://bugs.webkit.org/show_bug.cgi?id=236643

Reviewed by Adrian Perez de Castro.

Instead of using only the first remote (and then defaulting to 1 when
it happens to not respond), try all the remotes in sequence.

Also, instead of trying the sysctl version on all hosts first and
only try nproc after sysctl has failed on all hosts, combine
sysctl and nproc in one command to speed things along.

This change also removes the numProcessors == 0 typo in the rescue
path.

  • Scripts/run-jsc-stress-tests:
2:14 AM Changeset in webkit [290297] by ysuzuki@apple.com
  • 6 edits in trunk

[JSC] ShadowRealm JSRemoteFunction creation should convert CopyNameAndLength errors to TypeError
https://bugs.webkit.org/show_bug.cgi?id=237007

Reviewed by Alexey Shvayka.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

  1. Rename JSRemoteFunction::create to tryCreate since it can throw an error.
  2. Passing JSGlobalObject* as a first parameter to JSRemoteFunction::tryCreate since it can throw an error.
  3. Extract CopyNameAndLength part and convert errors to TypeError as specified.
  • jit/JITOperations.cpp:

(JSC::getWrappedValue):
(JSC::JSC_DEFINE_JIT_OPERATION):

  • runtime/JSRemoteFunction.cpp:

(JSC::wrapValue):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSRemoteFunction::tryCreate):
(JSC::JSRemoteFunction::copyNameAndLength):
(JSC::JSRemoteFunction::finishCreation):
(JSC::JSRemoteFunction::create): Deleted.

  • runtime/JSRemoteFunction.h:
2:08 AM Changeset in webkit [290296] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] TypeError from JSRemoteFunction should be generated by JSRemoteFunction's JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=237013

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

Our unwinding converts any errors inside JSRemoteFunction to TypeError. At that time, we should
use JSRemoteFunction's JSGlobalObject for this type error.

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator() const):
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):

1:57 AM WebKitGTK/2.36.x created by Carlos Garcia Campos
1:57 AM WebKitGTK/2.34.x edited by Carlos Garcia Campos
(diff)
1:47 AM Changeset in webkit [290295] by Chris Dumez
  • 18 edits in trunk/Source

Avoid having to iterate the whole frame tree(s) every time we need to dispatch storage events
https://bugs.webkit.org/show_bug.cgi?id=236985

Reviewed by Darin Adler.

Avoid having to iterate the whole frame tree(s) every time we need to dispatch storage events,
by keeping track of window objects interested in storage events. A Window object is interested
in storage events if both of the following conditions is true:

  1. It has a Storage object (either localStorage or sessionStorage)
  2. It has a storage event listener registered.

This patch also refactors the code so that we share more logic between WebKit1 and WebKit2.

Source/WebCore:

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::clearDOMStorageItems):

  • loader/EmptyClients.cpp:
  • page/DOMWindow.cpp:

(WebCore::windowsInterestedInStorageEvents):
(WebCore::DOMWindow::forEachWindowInterestedInStorageEvents):
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::eventListenersDidChange):

  • page/DOMWindow.h:
  • page/DOMWindowProperty.h:
  • storage/Storage.cpp:

(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):

  • storage/StorageArea.h:
  • storage/StorageEventDispatcher.cpp:

(WebCore::dispatchSessionStorageEventsToWindows):
(WebCore::dispatchLocalStorageEventsToWindows):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames): Deleted.
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames): Deleted.

  • storage/StorageEventDispatcher.h:

Source/WebKit:

  • WebProcess/WebStorage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):

  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
(WebKit::framesForEventDispatching): Deleted.

  • WebProcess/WebStorage/StorageAreaMap.h:

Source/WebKitLegacy:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::dispatchStorageEvent):

  • Storage/StorageAreaImpl.h:
1:42 AM Changeset in webkit [290294] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.36

Branch WebKitGTK for 2.36

1:24 AM Changeset in webkit [290293] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK] Can't run performance tests due to a11y errors
https://bugs.webkit.org/show_bug.cgi?id=230705

Reviewed by Sergio Villar Senin.

Disable a11y in WTR since it's no longer nedded with ATSPI.

  • WebKitTestRunner/gtk/main.cpp:

(main):

  • WebKitTestRunner/wpe/main.cpp:

(main):

1:05 AM Changeset in webkit [290292] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

NSSharingServicePicker gets deallocated when using the standard share menu item
https://bugs.webkit.org/show_bug.cgi?id=236998
<rdar://problem/89174827>

Reviewed by Wenson Hsieh.

The NSMenuItem should keep the NSSharingServicePicker alive.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getShareMenuItem):

12:47 AM Changeset in webkit [290291] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit

[GTK][WPE] Suspend web process after some time in the process cache
https://bugs.webkit.org/show_bug.cgi?id=236971

Reviewed by Michael Catanzaro.

Implement platformSuspendProcess() and platformResumeProcess() for GTK and WPE ports.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::addProcess):
(WebKit::WebProcessCache::CachedProcess::CachedProcess):
(WebKit::WebProcessCache::CachedProcess::~CachedProcess):
(WebKit::WebProcessCache::CachedProcess::takeProcess):

  • UIProcess/WebProcessCache.h:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

Note: See TracTimeline for information about the timeline view.