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

Timeline



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):

Feb 21, 2022:

10:53 PM Changeset in webkit [290290] by rmorisset@apple.com
  • 20 edits
    1 add
    1 delete in trunk/Source

[JSC] Format the output of --reportTotalPhaseTimes=1 more nicely
https://bugs.webkit.org/show_bug.cgi?id=237005

Reviewed by Saam Barati.

Source/JavaScriptCore:

Before this patch:
[B3] moveConstants total ms: 64.307583 max ms: 1.703167
[B3] lowerToAir total ms: 151.297782 max ms: 5.426375
[B3] generateToAir total ms: 1623.987166 max ms: 92.826750
[B3] simplifyCFG total ms: 11.760463 max ms: 1.088083
[B3] Air::lowerMacros total ms: 5.975679 max ms: 0.382000

After this patch:
total ms: 66.328 max ms: 2.283 [B3] moveConstants
total ms: 148.097 max ms: 5.361 [B3] lowerToAir
total ms: 1619.115 max ms: 96.307 [Total B3] generateToAir
total ms: 11.959 max ms: 1.185 [Air] simplifyCFG
total ms: 6.519 max ms: 0.697 [Air] Air::lowerMacros

Concretely there are two changes:

  • use FixedWidthDouble (also introduced to WTF in this patch) to line-up the total times. This makes it possible to see at a glance which phases are worth optimizing and which aren't.
  • Tag phases more precisely, and in particular replace [B3] by [Air] where relevant, and give different tags to measurements that correspond to groups of phases instead of a single phase (e.g. generateToAir).

(JSC::B3::compile):

  • b3/B3FixSSA.cpp:
  • b3/B3Generate.cpp:

(JSC::B3::prepareForGeneration):
(JSC::B3::generateToAir):

  • b3/B3PhaseScope.cpp:

(JSC::B3::PhaseScope::PhaseScope):

  • b3/B3PhaseScope.h:
  • b3/B3TimingScope.h: Removed.

(JSC::B3::TimingScope::TimingScope): Deleted.

  • b3/B3VariableLiveness.cpp:

(JSC::B3::VariableLiveness::VariableLiveness):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):

  • b3/air/AirLiveness.h:

(JSC::B3::Air::Liveness::Liveness):

  • b3/air/AirPhaseScope.cpp:

(JSC::B3::Air::PhaseScope::PhaseScope):

  • b3/air/AirPhaseScope.h:
  • tools/CompilerTimingScope.cpp:

Source/WTF:

Add FixedWidthDouble, which allows easily printing a double with some whitespace to pad it out if it is smaller than expected.
Its design roughly follows RawPointer which similarly allows special formatting of a kind of number.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/FixedWidthDouble.h: Added.

(WTF::FixedWidthDouble::FixedWidthDouble):
(WTF::FixedWidthDouble::value const):
(WTF::FixedWidthDouble::width const):
(WTF::FixedWidthDouble::precision const):

  • wtf/PrintStream.cpp:

(WTF::printInternal):

  • wtf/PrintStream.h:
10:43 PM Changeset in webkit [290289] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Use ArgumentParser for parsing args in generate-compile-commands
https://bugs.webkit.org/show_bug.cgi?id=236995

Patch by Brandon Stewart <Brandon> on 2022-02-21
Reviewed by Alexey Proskuryakov.

Use argument parser instead of sys.argv[1] for getting build dir.

  • Scripts/generate-compile-commands:
8:57 PM Changeset in webkit [290288] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Allow adattributiond to start on iOS devices
https://bugs.webkit.org/show_bug.cgi?id=237009
<rdar://89062166>

Reviewed by Per Arne Vollan.

There were three more problems preventing it from starting:

  1. The code signature said to look for a sandbox profile with "webkit" in the name, but the profile had "WebKit" in the name. These names are case sensitive.
  2. The sandbox profile would not let it load the WebKit framework, so dyld would fail and the process would fail to launch. I added the framework directories that the XPC services are allowed to access.
  3. Once it started, it would crash inside WTF::initializeMainThread when calling WTF::pageSize which requires access to the hw.pagesize_compat syscall. As a starting point, I'm going to allow all the syscalls that the network process currently has access to, which is enough to get it to respond without crashing.
  4. We need access to com.apple.diagnosticd and com.apple.analyticsd in order to be able to generate crash reports. This is quite useful.

Yes, I know I said there were only three problems, but the 4th is so useful I thought I'd put it in the list.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
  • Scripts/process-entitlements.sh:
8:57 PM Changeset in webkit [290287] by achristensen@apple.com
  • 6 edits in trunk/Source

Improve const correctness for SecurityOrigin accessors
https://bugs.webkit.org/show_bug.cgi?id=236983

Reviewed by Chris Dumez.

Source/WebCore:

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::origin const):
(WebCore::CachedResource::origin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::origin const):
(WebCore::CachedResourceRequest::origin):

Source/WebKit:

  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::origin const):
(WebKit::WebNotification::origin):

8:03 PM Changeset in webkit [290286] by Wenson Hsieh
  • 14 edits in trunk

[iOS] Adjust some behaviors around the "Markup Image" action in the callout bar
https://bugs.webkit.org/show_bug.cgi?id=236980

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the following behaviors around the "Markup Image" callout bar item on iOS:

  1. The item should be present as long as the selection range contains a single image item (not only if the

selection range exactly encompasses a single image element.

  1. The item should appear in the callout bar before other WebKit-client-provided menu controller items.

This patch also adds a new API test to exercise these behaviors and, in doing so, also refactors logic around
determining whether or not to show this item so that it's dependent on a WebKit internal feature instead of just
the system feature flag (with the default value of the internal feature being equal to whether or not the system
feature is enabled). This means we can run tests for these features without requiring the system feature flag to
be enabled.

See below for more details.

Test: ImageAnalysisTests.MenuControllerItems

  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::makeTextRecognitionResult):

Drive-by fix for some API tests: only attempt to send the platform image analysis result over IPC if it is a
VKCImageAnalysis. In some API tests, we use mock objects here instead, which currently causes the IPC message
send to fail due to encoding failure.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::defaultImageAnalysisMarkupEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Make the new internal feature flag default to the system feature flag.

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

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):

Consult a new delegate method (-actionSheetAssistantShouldIncludeCopyCroppedImageAction:) instead of checking
the system feature flag directly.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView updateImageAnalysisMarkupMenuItems:]):

Append the "Markup Image" item at the start of the list of additional menu items.

(-[WKContentView canPerformImageAnalysisMarkup]):

Check the internal feature instead of the system feature flag.

(-[WKContentView performImageAnalysisMarkup:]):

Now that this action can be triggered even when the current selection doens't encompass only a single image, we
need to use replaceWithPasteboardData() instead, passing in the element context of the image element we want
to replace.

(-[WKContentView actionSheetAssistantShouldIncludeCopyCroppedImageAction:]):

Only attempt to show the new items if the internal feature is enabled. Consulted by WKActionSheetAssistant
above.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

Check the internal feature instead of the system feature flag.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

Make a minor adjustment here to bail early only if we find multiple image elements in the selected range,
rather than bailing if we find anything that's not an image element.

Source/WTF:

Add a WebKit internal feature flag to control whether or not the "Markup Image" and related "Copy Cropped Image"
menu items should be enabled on iOS and macOS. This enables us to test these features in API and layout tests
without requiring the corresponding system feature flag to be enabled.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Add an API test to verify that "Markup Image" appears as the first non-default callout bar item when a single
image element is in the selection range. The test is comprised of three parts:

  1. Select just a single image, and expect the "Markup Image" item.
  2. Select all images in the document, and expect no "Markup Image" item.
  3. Select a single image and some surrounding text, and expect the "Markup Image" item.

See WebKit/ChangeLog for more details.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::createWebViewWithTextRecognitionEnhancements):
(TestWebKitAPI::swizzledSetMenuItems):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:

Add some text before and after each image so that we can select a single image alongside some text, and exercise
the changes in WebPage::getPlatformEditorState (see WebKit changes for more information).

7:57 PM Changeset in webkit [290285] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Ensure layer has backing during traversal
https://bugs.webkit.org/show_bug.cgi?id=236858

Patch by Brandon Stewart <Brandon> on 2022-02-21
Reviewed by Simon Fraser.

Ensure the layer has a backing attached to it before trying to append
the node id.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::collectStationaryLayerRelatedOverflowNodes):

7:36 PM Changeset in webkit [290284] by Cameron McCormack
  • 22 edits
    3 adds in trunk

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

Reviewed by Aditya Keerthi.

Source/WebCore:

We currently delay InputType creation for parser inserted elements until
just after the attributes have been set, so that we don't wastefully
create an InputType and the UA shadow tree creation if a non-text
type="" was specified on the tag. We don't do anything similar for
script inserted input elements. We could make the InputType creation
lazy, but most of the wasted time is due to the shadow tree creation.

This patch makes InputType shadow tree creation lazy by delaying it
until one of the following happens:

  1. the element is inserted into the document
  2. the type="" or value="" attributes are changed before the element is inserted into the document
  3. any DOM methods that need access to the innerTextElement() are called on the element before the element is inserted into the document

Not all places where we call innerTextElement() on the
HTMLInputElement are safe to lazily create the shadow trees, so we
have two accessors:

  • innerTextElement() returns the inner text element if it's been created already
  • innerTextElementCreatingShadowSubtreeIfNeeded will perform the lazy shadow tree construction if it hasn't already been done

Since the existing
createShadowSubtreeAndUpdateInnerTextElementEditability function has
more responsibility than just creating the subtree and ensuring the
editability is set appropriately, it's renamed to a more manageable
createShadowSubtree.

This change is a 0.5% progression on Speedometer 2.

Test: fast/forms/lazy-shadow-tree-creation.html

  • html/BaseDateAndTimeInputType.h:
  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/ColorInputType.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/FileInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::createShadowSubtree):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/RangeInputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/SearchInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed createShadowSubtreeAndUpdateInnerTextElementEditability to
createShadowSubtree and remove the "isInnerTextElementEditable"
argument, since we can ask the element() for its value if needed.
createShadowSubtree is now also responsible for creating the shadow
root.

  • html/TextFieldInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed. Ensure all shadow tree state is up to date now that it can be
created later.

  • html/InputType.h:
  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::hasCreatedShadowSubtree const):
New functions to create the shadow subtree if it hasn't been done
already, and to query whether it's been done.

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::innerTextElementCreatingShadowSubtreeIfNeeded):

  • html/HTMLTextAreaElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::innerTextElementCreatingShadowSubtreeIfNeeded):

  • html/HTMLTextFormControlElement.h:
  • html/InputType.h:
  • html/InputType.cpp:

(WebCore::InputType::innerTextElementCreatingShadowSubtreeIfNeeded):
New functions to first create the shadow subtree before returning
innerTextElement(). HTMLTextAreaElement never lazily creates its
shadow subtree and so just returns innerTextElement().

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
Deleted. Just call through to m_inputType->createShadowTree()
directly.

(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::updateType):
Don't immediately create the shadow tree.

(WebCore::HTMLInputElement::didFinishInsertingNode):
Create the shadow subtree now that the element's been inserted. No
need to call dataListMayHaveChanged since
TextFieldInputType::createShadowSubtree will now do this.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::updateInnerTextValue):
Ensure the shadow subtree is created since we need to poke at it.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::forwardEvent):
Don't forward the event if the shadow tree hasn't been created yet.

(WebCore::HTMLTextFormControlElement::setSelectionRange):
Ensure the shadow tree has been created. This is needed if the
selection APIs are called on the input element before it's inserted
into the document.

(WebCore::HTMLTextFormControlElement::visiblePositionForIndex const):
Assert that the shadow tree has been created, since editing
functionality should only be needed if the element's been inserted
into the document.

(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Ensure the shadow tree has been created.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
(WebCore::RangeInputType::handleKeydownEvent):
Ensure the shadow tree has been created in case the event will change
the value.

(WebCore::RangeInputType::sliderTrackElement const):
Only return the element if it's been created.

(WebCore::RangeInputType::typedSliderThumbElement const):
Assert that the element has been created.

(WebCore::RangeInputType::dataListMayHaveChanged):
Only try to re-layout if the shadow tree has been created.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::isEmptyValue const):
Avoid creating the shadow subtree.

(WebCore::TextFieldInputType::forwardEvent):
Move the element assertion up to be consistent with other functions.

(WebCore::TextFieldInputType::innerTextElement const):
Don't assert, since this now can legitimately return null.

  • html/FileInputType.cpp:

(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::disabledStateChanged):
(WebCore::RangeInputType::attributeChanged):
(WebCore::RangeInputType::setValue):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::disabledStateChanged):
(WebCore::TextFieldInputType::readOnlyStateChanged):
(WebCore::TextFieldInputType::updatePlaceholderText):
(WebCore::TextFieldInputType::updateAutoFillButton):
(WebCore::TextFieldInputType::dataListMayHaveChanged):
Don't update the shadow tree contents if it hasn't been created yet.
createShadowTree is responsible for ensuring it creates the shadow
tree contents reflecting the current state.

LayoutTests:

  • fast/forms/lazy-shadow-tree-creation-expected.html: Added.
  • fast/forms/lazy-shadow-tree-creation.html: Added.
  • fast/forms/lazy-shadow-tree-creation.js: Added.

(supportsType):
(makeAndAppendInput):

6:16 PM Changeset in webkit [290283] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Fix ShadowRealm unwinding
https://bugs.webkit.org/show_bug.cgi?id=237001

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch fixes a crash bug found by test262. Regardless of it is RemoteFunction,
we should handle it as the same way to the other normal host functions except
for setting m_seenRemoteFunction = true flag. Previously, we are early returning,
this is wrong since we should stop unwinding if the caller is entry frame.

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator() const):

6:12 PM Changeset in webkit [290282] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Temporal.PlainDate should validate input range
https://bugs.webkit.org/show_bug.cgi?id=236936

Reviewed by Darin Adler.

JSTests:

  • stress/temporal-plaindate.js:

(shouldThrow):

Source/JavaScriptCore:

Implement https://tc39.es/proposal-temporal/#sec-temporal-isodatetimewithinlimits check in
PlainDate to validate input range. For example, 0x7fffffff year should be rejected since
it is larger than ECMAScript datetime representation value. This is checked via ISODateTimeWithinLimits
in the spec.

We also remove isValid assertions in ExactTime. This should not be checked in these accessors, rather,
we should call that function when we would like to check, since PlainDate can represent a bit smaller
value than ExactTime's minValue (minValue - nsPerDay).

We also extend ExactTime::fromISOPartsAndOffset to handle values via Int128 to accept int32_t range years.
By using Int128 for nanoseconds, we can even represent int32_t max / min years. And we remove
ASSERT(y >= -999999 && y <= 999999) check since this is not necessary.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::ExactTime::fromISOPartsAndOffset):
(JSC::ISO8601::isDateTimeWithinLimits):

  • runtime/ISO8601.h:

(JSC::ISO8601::ExactTime::ExactTime): Deleted.
(JSC::ISO8601::ExactTime::fromEpochSeconds): Deleted.
(JSC::ISO8601::ExactTime::fromEpochMilliseconds): Deleted.
(JSC::ISO8601::ExactTime::fromEpochMicroseconds): Deleted.
(JSC::ISO8601::ExactTime::epochSeconds const): Deleted.
(JSC::ISO8601::ExactTime::epochMilliseconds const): Deleted.
(JSC::ISO8601::ExactTime::epochMicroseconds const): Deleted.
(JSC::ISO8601::ExactTime::epochNanoseconds const): Deleted.
(JSC::ISO8601::ExactTime::nanosecondsFraction const): Deleted.
(JSC::ISO8601::ExactTime::asString const): Deleted.
(JSC::ISO8601::ExactTime::isValid const): Deleted.
(JSC::ISO8601::ExactTime::operator< const): Deleted.
(JSC::ISO8601::ExactTime::operator<= const): Deleted.
(JSC::ISO8601::ExactTime::operator== const): Deleted.
(JSC::ISO8601::ExactTime::operator!= const): Deleted.
(JSC::ISO8601::ExactTime::operator>= const): Deleted.
(JSC::ISO8601::ExactTime::operator> const): Deleted.

  • runtime/TemporalPlainDate.cpp:

(JSC::toPlainDate):

Source/WTF:

Add code to allow dataLog(Int128).

  • wtf/Int128.cpp:

(WTF::printInternal):

  • wtf/Int128.h:
6:01 PM Changeset in webkit [290281] by jonlee@apple.com
  • 9 edits in trunk/LayoutTests

Unreviewed gardening for the GPU Process bots.

  • css3/color-filters/color-filter-text-decoration-shadow.html:
  • fast/gradients/conic-gradient-alpha-unpremultiplied.html:
  • fast/gradients/conic-gradient-alpha.html:
  • fast/gradients/linear-two-hints-angle.html:
  • fast/scrolling/overflow-inside-foreignobject.html:
  • gpu-process/TestExpectations:
  • imported/blink/svg/custom/crisp-edges-leak.svg:
  • platform/ios/TestExpectations:
5:48 PM Changeset in webkit [290280] by jonlee@apple.com
  • 5 edits in trunk

Add test name to the image diff template
https://bugs.webkit.org/show_bug.cgi?id=237003

Reviewed by Sam Weinig.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_image_diff_files):

LayoutTests:

Include the test name in the page. Workflow to update fuzzy match data becomes easier to copy-paste the name there instead of from the location bar.

  • fast/harness/image-diff-template-expected.txt:
  • fast/harness/image-diff-template.html:
5:42 PM Changeset in webkit [290279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix racy parallel build of WebKit2-4.0.gir
https://bugs.webkit.org/show_bug.cgi?id=232935

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

This is a target and not a command because it's used to build another .gir
and a .typelib, which would trigger two racy parallel builds when using command
(e.g. command would run twice, target runs only once).

  • PlatformGTK.cmake:
5:37 PM Changeset in webkit [290278] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Add test coverage for the pasteboard writing codepath added in r289839
https://bugs.webkit.org/show_bug.cgi?id=236944

Reviewed by Aditya Keerthi.

Add test coverage for the changes in r289839 in the case where ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) is turned
on. To do this, we set the platform image analysis results to a new internal mock object,
FakeImageAnalysisResult, that returns a string for a given NSRange. This code is then exercised by several
existing layout tests that copy and paste text inside image overlays:

  • fast/images/text-recognition/image-overlay-line-wrapping.html
  • fast/images/text-recognition/image-overlay-text-without-leading-whitespace.html
  • fast/images/text-recognition/mac/copy-image-overlay-text-with-context-menu.html
  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

  • testing/Internals.h:
  • testing/Internals.mm:

(-[FakeImageAnalysisResult initWithString:]):
(-[FakeImageAnalysisResult _attributedStringForRange:]):
(WebCore::Internals::fakeImageAnalysisResultForTesting):

5:13 PM Changeset in webkit [290277] by mmaxfield@apple.com
  • 4 edits in trunk/Source

Sort WebCore and WebKit Xcode project files
https://bugs.webkit.org/show_bug.cgi?id=237010

Unreviewed.

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:
5:07 PM Changeset in webkit [290276] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

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

Unreviewed.

If you add a header to PAL that WebKit needs to #include, you'd better mark the header as Private.

  • PAL.xcodeproj/project.pbxproj:
4:22 PM Changeset in webkit [290275] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

[iOS] Fix the internal build after rdar://88354008
https://bugs.webkit.org/show_bug.cgi?id=236999

Unreviewed build fix.

Mark deprecated implementations.

  • UIProcess/API/ios/WKWebViewIOS.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
4:05 PM Changeset in webkit [290274] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

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

Unreviewed.

If you include WTF, you must have set NDEBUG in release builds.

  • Configurations/Base.xcconfig:
3:57 PM Clangd edited by Brandon
(diff)
3:53 PM clangd_screenshot.png attached to Clangd by Brandon
clangd autocomplete
3:50 PM Clangd edited by Brandon
(diff)
3:38 PM Clangd edited by Brandon
(diff)
3:24 PM Changeset in webkit [290273] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

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

The lowPower selector doesn't exist on iOS.

Unreviewed.

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):

3:11 PM Changeset in webkit [290272] by Adrian Perez de Castro
  • 8 edits
    8 copies in trunk

Rolled over to ChangeLog-2022-02-22

3:11 PM Changeset in webkit [290271] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290237. rdar://problem/58057431

Turn WebGL in GPU Process on by default
https://bugs.webkit.org/show_bug.cgi?id=236382
rdar://58057431

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultUseGPUProcessForWebGLEnabled):

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

2:56 PM Clangd created by Brandon
2:56 PM WikiStart edited by Brandon
Add wiki page for clangd (diff)
2:09 PM Changeset in webkit [290270] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 12: Migrate from C function callbacks to blocks
https://bugs.webkit.org/show_bug.cgi?id=236934

Reviewed by Dean Jackson.

For all the C function pointer / userdata pairs, simply create a parallel entry point which accepts a block instead.

  • WebGPU/Adapter.mm:

(wgpuAdapterRequestDeviceWithBlock):

  • WebGPU/Buffer.mm:

(wgpuBufferMapAsyncWithBlock):

  • WebGPU/CommandEncoder.mm:

(wgpuCommandEncoderSetLabel):

  • WebGPU/ComputePipeline.mm:

(wgpuComputePipelineSetLabel):

  • WebGPU/Device.mm:

(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):

  • WebGPU/Instance.mm:

(wgpuInstanceRequestAdapterWithBlock):

  • WebGPU/Queue.mm:

(wgpuQueueOnSubmittedWorkDoneWithBlock):
(wgpuQueueSetLabel):

  • WebGPU/RenderPipeline.mm:

(wgpuRenderPipelineSetLabel):

  • WebGPU/ShaderModule.mm:

(wgpuShaderModuleGetCompilationInfoWithBlock):
(wgpuShaderModuleSetLabel):

  • WebGPU/Surface.mm:

(wgpuSurfaceGetPreferredFormat):

  • WebGPU/SwapChain.mm:

(wgpuSwapChainPresent):

  • WebGPU/WebGPUExt.h:
2:06 PM Changeset in webkit [290269] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] ShadowRealm wrapArgument should check exceptions
https://bugs.webkit.org/show_bug.cgi?id=236984
JSTests:

Reviewed by Alexey Shvayka.

  • stress/exception-in-wrap-argument-for-shadow-realm.js: Added.

(shouldThrow):

Source/JavaScriptCore:

rdar://89226554

Reviewed by Alexey Shvayka.

We should check exceptions after wrapArgument.

  • runtime/JSRemoteFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

2:00 PM Changeset in webkit [290268] by ysuzuki@apple.com
  • 132 edits
    18 copies
    3 moves
    404 adds
    5 deletes in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=236990

Reviewed by Alexey Shvayka.

  • test262/expectations.yaml:
  • test262/test262-Revision.txt:
1:34 PM Changeset in webkit [290267] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 11: Implement shader creation methods
https://bugs.webkit.org/show_bug.cgi?id=236933

Reviewed by Dean Jackson.

This implements Device::createShaderModule() and Device::createComputePipeline(). The async versions (neither
the WebGPU nor the Metal flavor) aren't implemented yet; this is just the first basic implementation.

  • WebGPU/ComputePipeline.mm:

(WebGPU::createLibrary):
(WebGPU::createConstantValues):
(WebGPU::createFunction):
(WebGPU::createComputePipelineState):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/PipelineLayout.h:
  • WebGPU/PipelineLayout.mm:

(WebGPU::PipelineLayout::operator== const):
(WebGPU::PipelineLayout::operator!= const):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::findShaderModuleParameters):
(WebGPU::ShaderModule::createLibrary):
(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):
(WebGPU::CompilationMessageData::CompilationMessageData):
(WebGPU::convertMessages):
(WebGPU::ShaderModule::getCompilationInfo):
(WebGPU::ShaderModule::setLabel):
(WebGPU::ShaderModule::convertPipelineLayout):
(WebGPU::ShaderModule::ast const):
(WebGPU::ShaderModule::pipelineLayoutHint const):
(WebGPU::ShaderModule::entryPointInformation const):

1:32 PM Changeset in webkit [290266] by mmaxfield@apple.com
  • 23 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 10: Implement setLabel() and Metal accessors
https://bugs.webkit.org/show_bug.cgi?id=236910

Reviewed by Dean Jackson.

By adding a few various trivial functions in classes that need them, this patch completely finishes the
implementation of CommandBuffer, QuerySet, RenderBundle, Sampler, and TextureView classes (other than
their creation functions).

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::setLabel):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::commandBuffer const):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):
(WebGPU::CommandBuffer::setLabel):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::setLabel):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):
(WebGPU::ComputePassEncoder::setLabel):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::computePipelineState const):

  • WebGPU/ComputePipeline.mm:

(WebGPU::ComputePipeline::ComputePipeline):
(WebGPU::ComputePipeline::setLabel):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::counterSampleBuffer const):

  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::QuerySet):
(WebGPU::QuerySet::setLabel):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):
(WebGPU::Queue::setLabel):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::indirectCommandBuffer const):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):
(WebGPU::RenderBundle::setLabel):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::setLabel):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):
(WebGPU::RenderPassEncoder::setLabel):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::renderPipelineState const):

  • WebGPU/RenderPipeline.mm:

(WebGPU::RenderPipeline::RenderPipeline):
(WebGPU::RenderPipeline::setLabel):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::setLabel):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::library const):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::ShaderModule):
(WebGPU::ShaderModule::setLabel):

  • WebGPU/Texture.h:

(WebGPU::Texture::texture const):

  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):
(WebGPU::Texture::setLabel):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::setLabel):

1:29 PM Changeset in webkit [290265] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Add explicit exception check after appendWithoutSideEffects
https://bugs.webkit.org/show_bug.cgi?id=236986
rdar://88258776

Reviewed by Saam Barati.

JSTests:

  • stress/array-to-string-oom.js: Added.

Source/JavaScriptCore:

Add exception check after JSStringJoiner::appendWithoutSideEffects call since JSString::value can throw OOM error.

  • runtime/ArrayPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::append):

1:27 PM Changeset in webkit [290264] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 9: Basic implementation of bindings
https://bugs.webkit.org/show_bug.cgi?id=236903

Reviewed by Dean Jackson.

This is a basic implementation of the BindGroup, BindGroupLayout, and PipelineLayout methods.
Eventually we'll want to suballocate multiple BindGroups so they coexist within the same Buffer,
but this is an initial simple implementation that doesn't do that.

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::vertexArgumentBuffer const):
(WebGPU::BindGroup::fragmentArgumentBuffer const):
(WebGPU::BindGroup::computeArgumentBuffer const):

  • WebGPU/BindGroup.mm:

(WebGPU::bufferIsPresent):
(WebGPU::samplerIsPresent):
(WebGPU::textureViewIsPresent):
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):
(WebGPU::BindGroup::setLabel):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::vertexArgumentEncoder const):
(WebGPU::BindGroupLayout::fragmentArgumentEncoder const):
(WebGPU::BindGroupLayout::computeArgumentEncoder const):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::isPresent):
(WebGPU::createArgumentDescriptor):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):
(WebGPU::BindGroupLayout::setLabel):
(WebGPU::BindGroupLayout::encodedLength const):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::buffer const):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::create):
(WebGPU::PipelineLayout::numberOfBindGroupLayouts const):
(WebGPU::PipelineLayout::bindGroupLayout const):

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):
(WebGPU::PipelineLayout::PipelineLayout):
(WebGPU::PipelineLayout::setLabel):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::samplerState const):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::texture const):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

1:20 PM Changeset in webkit [290263] by Fujii Hironori
  • 7 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/font-face-implicit-local-font-expected.txt:
  • platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wincairo/fast/text/international/bidi-override-expected.txt:
  • platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
  • platform/wincairo/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
12:49 PM Changeset in webkit [290262] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 8: Basic implementation of device creation routines
https://bugs.webkit.org/show_bug.cgi?id=236902

Reviewed by Dean Jackson.

This is a basic implementation of the Instance, Adapter, and Device methods. Device limits are not
implemented yet, so for now we claim every limits is 0.

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):
(WebGPU::Adapter::enumerateFeatures):
(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::hasFeature):
(WebGPU::deviceMeetsRequiredLimits):
(WebGPU::Adapter::requestDevice):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::destroy):
(WebGPU::Device::enumerateFeatures):
(WebGPU::Device::getLimits):
(WebGPU::Device::getQueue):
(WebGPU::Device::hasFeature):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(WebGPU::Device::setLabel):

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):

12:42 PM Changeset in webkit [290261] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Support local library in existing path
https://bugs.webkit.org/show_bug.cgi?id=236978
<rdar://problem/89237767>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall.register): Handle case where library is in an exisiting sys.path.

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

12:11 PM Changeset in webkit [290260] by Elliott Williams
  • 5 edits
    1 add
    1 delete in trunk/Source

[XCBuild] Use native build phases to copy PAL's headers
https://bugs.webkit.org/show_bug.cgi?id=236683

Reviewed by Alexey Proskuryakov.

Replaces the "Copy PAL Headers" script with a native Headers phase. Xcode copies the headers
to a flattened directory, but we hack around this using build rules. This is a different
approach than we took with WTF <https://bugs.webkit.org/show_bug.cgi?id=235744> but could be
replicated there to remove the one-build-phase-per-directory boilerplate.

The idea is that we have one build rule for each "depth" of headers: Build rule "pal/*.h" is
depth 1 and matches headers like "pal/FileSizeFormatter.h", buld rule "pal/*/*.h" is depth 2
and matches headers like "pal/text/EncodingTables.h", etc.

Each rule uses build setting macros to determine the header's relative path within
/usr/local/include/pal, and copies it there. Having one build rule per depth level is hacky,
but it's superior to adding 23 copy file phases. In the future, we'll simplify this with
<rdar://88771729>.

The legacy build system doesn't support running build rules on headers. To compensate,
legacy builds copy to a separate directory, /usr/local/include/pal_flattened. A script phase
that runs after the native Headers phase copies these flattened headers into the right place.

  • Configurations/CopyPALHeaders.xcconfig: Removed.
  • Configurations/PAL.xcconfig: Header settings, notably PRIVATE_HEADERS_FOLDER_PATH.
  • PAL.xcodeproj/project.pbxproj: Remove target, add phases, set header attrs.
12:03 PM Changeset in webkit [290259] by mmaxfield@apple.com
  • 48 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 7: Clean up includes a bit
https://bugs.webkit.org/show_bug.cgi?id=236900

Reviewed by Dean Jackson.

We can put includes that literally every file uses into a single place.

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:
  • WebGPU/BindGroup.h:
  • WebGPU/BindGroup.mm:
  • WebGPU/BindGroupLayout.h:
  • WebGPU/BindGroupLayout.mm:
  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:
  • WebGPU/CommandBuffer.h:
  • WebGPU/CommandBuffer.mm:
  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:
  • WebGPU/ComputePassEncoder.h:
  • WebGPU/ComputePassEncoder.mm:
  • WebGPU/ComputePipeline.h:
  • WebGPU/ComputePipeline.mm:
  • WebGPU/Device.h:
  • WebGPU/Device.mm:
  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:
  • WebGPU/PipelineLayout.h:
  • WebGPU/PipelineLayout.mm:
  • WebGPU/QuerySet.h:
  • WebGPU/QuerySet.mm:
  • WebGPU/Queue.h:
  • WebGPU/Queue.mm:
  • WebGPU/RenderBundle.h:
  • WebGPU/RenderBundle.mm:
  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:
  • WebGPU/RenderPassEncoder.h:
  • WebGPU/RenderPassEncoder.mm:
  • WebGPU/RenderPipeline.h:
  • WebGPU/RenderPipeline.mm:
  • WebGPU/Sampler.h:
  • WebGPU/Sampler.mm:
  • WebGPU/ShaderModule.h:
  • WebGPU/ShaderModule.mm:
  • WebGPU/Surface.h:
  • WebGPU/Surface.mm:
  • WebGPU/SwapChain.h:
  • WebGPU/SwapChain.mm:
  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:
  • WebGPU/TextureView.h:
  • WebGPU/TextureView.mm:
  • WebGPU/config.h:
11:58 AM Changeset in webkit [290258] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 6: Give a RunLoop to Instance
https://bugs.webkit.org/show_bug.cgi?id=236899

Reviewed by Dean Jackson.

The shared header has a function, wgpuInstanceProcessEvents(), which is supposed
to synchronously call all outstanding callbacks. A natural way to do this is to
hook this up to [NSRunLoop runMode:beforeDate:].

  • WebGPU/Instance.h:

(WebGPU::Instance::runLoop const):
(WebGPU::Instance::create): Deleted.

  • WebGPU/Instance.mm:

(WebGPU::Instance::create):
(WebGPU::Instance::Instance):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::processEvents):
(wgpuCreateInstance):

11:48 AM Changeset in webkit [290257] by Antti Koivisto
  • 6 edits
    2 adds in trunk

[CSS Container Queries] Support nested container queries
https://bugs.webkit.org/show_bug.cgi?id=236963

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-nested-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-nested.html: Added.

Source/WebCore:

"Style rules defined on an element inside multiple nested container queries apply when all of the wrapping container queries are true for that element."

https://drafts.csswg.org/css-contain-3/#container-rule

Test: imported/w3c/web-platform-tests/css/css-contain/container-queries/container-nested.html

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::containerQueriesMatch):

All nested queries need to match.

(WebCore::Style::ElementRuleCollector::containerQueryMatches): Deleted.

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::hasContainerQueries const):
(WebCore::Style:: const):
(WebCore::Style::RuleSet::containerQueryFor const): Deleted.

Return all nested queries.
Don't unnecessarily copy FilteredContainerQuery, refer to the StyleRuleContainer instead.

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):

11:32 AM Changeset in webkit [290256] by mmaxfield@apple.com
  • 43 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 5: Give Metal objects to WebGPU objects
https://bugs.webkit.org/show_bug.cgi?id=236898

Reviewed by Dean Jackson.

Each WebGPU object gets its own backing Metal object.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::create):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::create):

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::create):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::create):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):
(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::create):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::create):

  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::create):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::create):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::ComputePipeline::ComputePipeline):
(WebGPU::ComputePipeline::getBindGroupLayout):

  • WebGPU/Device.h:

(WebGPU::Device::create): Deleted.

  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::getQueue):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::requestAdapter):
(wgpuInstanceRequestAdapter):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::create):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):
(WebGPU::QuerySet::QuerySet):

  • WebGPU/Queue.h:

(WebGPU::Queue::create):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::create):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::create):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::create):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::create):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::RenderPipeline::RenderPipeline):
(WebGPU::RenderPipeline::getBindGroupLayout):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::create):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):
(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::SwapChain::getCurrentTextureView):

  • WebGPU/Texture.h:

(WebGPU::Texture::create):

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
(WebGPU::Texture::createView):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::create):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

  • WebGPU/config.h:
11:23 AM Changeset in webkit [290255] by mmaxfield@apple.com
  • 15 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 4: Move Device's construction methods to the files of the things they create
https://bugs.webkit.org/show_bug.cgi?id=236891

Reviewed by Dean Jackson.

Device is kind of a factory object, and has lots of methods which create
other objects in the API. To avoid Device.cpp becoming a catch-all place
for tons of unrelated creation routines, this patch moves the routine that
creates an X into X.mm.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):

  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.mm:

(WebGPU::Device::createBindGroup): Deleted.
(WebGPU::Device::createBindGroupLayout): Deleted.
(WebGPU::Device::createBuffer): Deleted.
(WebGPU::Device::createCommandEncoder): Deleted.
(WebGPU::Device::createComputePipeline): Deleted.
(WebGPU::Device::createComputePipelineAsync): Deleted.
(WebGPU::Device::createPipelineLayout): Deleted.
(WebGPU::Device::createQuerySet): Deleted.
(WebGPU::Device::createRenderBundleEncoder): Deleted.
(WebGPU::Device::createRenderPipeline): Deleted.
(WebGPU::Device::createRenderPipelineAsync): Deleted.
(WebGPU::Device::createSampler): Deleted.
(WebGPU::Device::createShaderModule): Deleted.
(WebGPU::Device::createSwapChain): Deleted.
(WebGPU::Device::createTexture): Deleted.

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::Device::createSwapChain):

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):

11:15 AM Changeset in webkit [290254] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Implement SVG2 rules to establish a stacking context
https://bugs.webkit.org/show_bug.cgi?id=236193

Reviewed by Rob Buis.

Follow the rules specified in https://www.w3.org/TR/SVG2/render.html#RenderingOrder,
when to create a stacking context. This is necessary to enforce layer creation.

Unlike SVG 1.1, SVG2 defines its whole rendering model, as well as painting operations
such as masking/clipping around the 'stacking-context' term that stems from CSS.
The definition is backwards compatible with SVG 1.1, except for un-spec'ed territory
missing from SVG 1.1, that's now specified for SVG2 (e.g. <foreignObject> + stacking context).

LBSE handles clipping / masking / etc. via RenderLayer, which is also responsbile for
for stacking-context managment. Therefore we need to follow the existing rules to enforce
a stacking context / RenderLayer creation in StyleAdjuster, by enforcing a non-auto 'used z-index'.

Covered by existing tests, no change in behaviour.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustSVGElementStyle):

10:57 AM Changeset in webkit [290253] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 3: Tweak WGSL API
https://bugs.webkit.org/show_bug.cgi?id=236889

Reviewed by Dean Jackson.

  • Give SuccessfulCheck a move constructor
  • Use UniqueRef instead of std::unique_ptr
  • Allow specialization constants to be looked up by name
  • Model missing pipeline layouts as absent from the HashMap, rather than using an optional type
  • WGSL/WGSL.cpp:

(WGSL::prepare):
(WGSL::SuccessfulCheck::~SuccessfulCheck): Deleted.

  • WGSL/WGSL.h:
10:55 AM Changeset in webkit [290252] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[WebGPU] Tracer bullet part 2: Fix infinite recursion in GPUDevice::ref()
https://bugs.webkit.org/show_bug.cgi?id=236888

Reviewed by Dean Jackson.

refEventTarget() calls ref() which called refEventTarget(). The solution is
to tell GPUDevice that it's using RefCounted::ref().

  • Modules/WebGPU/GPUDevice.cpp:
  • Modules/WebGPU/GPUDevice.h:
10:23 AM Changeset in webkit [290251] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] WebGPU.xcodeproj cannot be opened on Big Sur's Xcode
https://bugs.webkit.org/show_bug.cgi?id=236982

Unreviewed.

Just change the project version number from 55 to 51, like the rest of the projects in WebKit.

  • WebGPU.xcodeproj/project.pbxproj:
10:10 AM Changeset in webkit [290250] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Remove resource access in sandbox for older OS versions
https://bugs.webkit.org/show_bug.cgi?id=236975

Reviewed by Brent Fulgham.

Remove access to some resources in sandbox for older OS versions. Access to these resources were initially
added in https://trac.webkit.org/changeset/290180/webkit and https://trac.webkit.org/changeset/290066/webkit,
and was only intended to land on a branch.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:07 AM Changeset in webkit [290249] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check parent node in outdentParagraph
https://bugs.webkit.org/show_bug.cgi?id=235914

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-21
Reviewed by Wenson Hsieh.

Source/WebCore:

Null check parent node of enclosing node in outdentParagraph.

Test: editing/execCommand/outdent-paragraph-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

LayoutTests:

  • editing/execCommand/outdent-paragraph-crash-expected.txt: Added.
  • editing/execCommand/outdent-paragraph-crash.html: Added.
9:56 AM Changeset in webkit [290248] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Add CalendarDateTime parsing
https://bugs.webkit.org/show_bug.cgi?id=236886

Reviewed by Dean Jackson.

JSTests:

  • stress/temporal-instant.js:
  • stress/temporal-plaindate.js:
  • stress/temporal-plaintime.js:

Source/JavaScriptCore:

This patch adds calendar parsing code to ISO8601 so that Temporal.Instant / Temporal.PlainDate / Temporal.PlainTime
can parse string with calendar correctly via "from" methods. Currently, we are just ignoring these calendar values,
but we should create a calendar instance from that in a subsequent patch.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::canBeCalendar):
(JSC::ISO8601::canBeTimeZone):
(JSC::ISO8601::parseTimeZone):
(JSC::ISO8601::parseCalendar):
(JSC::ISO8601::parseTime):
(JSC::ISO8601::parseDateTime):
(JSC::ISO8601::parseCalendarTime):
(JSC::ISO8601::parseCalendarDateTime):
(JSC::ISO8601::parseInstant):

  • runtime/ISO8601.h:
  • runtime/TemporalPlainDate.cpp:

(JSC::TemporalPlainDate::from):

  • runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::from):

9:50 AM Changeset in webkit [290247] by Noam Rosenthal
  • 4 edits in trunk

PerformanceObserver: buffered flag not working in Paint Timing
https://bugs.webkit.org/show_bug.cgi?id=225305
<rdar://problem/77746237>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window-expected.txt: This test now passes

Source/WebCore:

Include paint entries when collecting buffered performance entries.

A previously failing W3C test is now marked as passing.

  • page/Performance.cpp:

(WebCore::Performance::appendBufferedEntriesByType const): Add the existing FCP entry

9:07 AM Changeset in webkit [290246] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Change IPC encoding of boolean type to use one bit
https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396

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

This patch ensures that only the lower bit is set in a boolean for IPC messages.

  • Platform/IPC/ArgumentCoder.h:

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

7:46 AM Changeset in webkit [290245] by Tyler Wilcock
  • 5 edits
    5 adds in trunk/LayoutTests

AX: Add test for r290130 (https://trac.webkit.org/changeset/290130/webkit)
https://bugs.webkit.org/show_bug.cgi?id=236848

Reviewed by Chris Fleizach.

  • accessibility/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
  • accessibility/dynamically-changing-iframe-remains-accessible.html: Added.
  • accessibility/resources/purple-pineapple-text.html:

Added so we can switch iframe source between multiple simple documents.

  • platform/ios/TestExpectations:

Enable new test.

  • platform/mac-wk1/accessibility/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
  • resources/accessibility-helper.js:

(sleep): Added.

7:24 AM Changeset in webkit [290244] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Dewei Zhu and Stephanie Lewis.

  • Tools/CISupport/build-webkit-org/steps.py:

(RunWebKitTests): Change invocation to Python 3.

  • Tools/CISupport/build-webkit-org/steps_unittest.py:

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

7:19 AM Changeset in webkit [290243] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable GTK and Windows queues for PRs
https://bugs.webkit.org/show_bug.cgi?id=236814
<rdar://problem/89117205>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/config.json:

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

7:13 AM Changeset in webkit [290242] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Update pango and gtk4
https://bugs.webkit.org/show_bug.cgi?id=236939

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

Update to GTK 4.6.2, which requires Pango 1.50.x, so also update Pango.

  • elements/freedesktop-sdk.bst:
  • elements/sdk/gtk.bst:
  • patches/fdo-0001-pango-Bump-to-1.50.4.patch: Added.
6:31 AM Changeset in webkit [290241] by commit-queue@webkit.org
  • 3 edits in trunk

[GTK][WPE] ANGLE: make USE_ANGLE_WEBGL build option public
https://bugs.webkit.org/show_bug.cgi?id=236962

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-02-21
Reviewed by Chris Lord.

Since it introduces new dependencies, the build option should be public and a fatal error message should be
shown when the option is enabled and any for the dependencies is missing.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
6:12 AM Changeset in webkit [290240] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Take vertical-rl writing mode value into account when converting visual margin/border/padding value to logical
https://bugs.webkit.org/show_bug.cgi?id=236948

Reviewed by Antti Koivisto.

This is in preparation for supporting vertical-rl content.
(Note that the RTL inline direction != the "rl" part of the writing mode.)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::horizontalLogicalMargin):
(WebCore::LayoutIntegration::verticalLogicalMargin):
(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateFormattingRootGeometryAndInvalidate):

1:23 AM Changeset in webkit [290239] by sihui_liu@apple.com
  • 4 edits in trunk

Fetching website data may get wrong record after migrating data to general storage directory
https://bugs.webkit.org/show_bug.cgi?id=236905

Reviewed by Chris Dumez.

Source/WebKit:

To decide if an origin has data, we need to not only check if its directory exists but also if the directory is
empty.

Modified existing test to add test coverage.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath): directory should be created before moving
files.
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromDisk): given that IndexedDB and
LocalStorage can have custom paths, we may just check data by type.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

Note: See TracTimeline for information about the timeline view.