Timeline



Apr 7, 2022:

11:58 PM Changeset in webkit [292594] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Fire structure transition watchpoint in Structure::finishCreation instead of Structure constructor
https://bugs.webkit.org/show_bug.cgi?id=238980

Reviewed by Saam Barati.

JSTests:

  • stress/heap-allocation-in-did-structure-transition-watchpoint.js: Added.

(isPropertyOfType):
(
getProperties):
(getObjects):
(
getRandomObject):
(getRandomProperty):
(
callGC):
(get var):

Source/JavaScriptCore:

After https://github.com/WebKit/WebKit/commit/dc3a347474a183891f8e07966dc09e684d7a1d13 change,
we start using Structure::get in the main thread. However one of the difference between Structure::get and
Structure::getConcurrently is that it can allocate GC memory: PropertyTable can be materialized.

Structure constructor was firing structure transition watchpoint. And some of watchpoints were using
Structure::getConcurrently. That's fine before, but now, it becomes Structure::get. It is not OK since
we cannot allocate GC memory inside constructor of GC managed objects.

This patch split didTransitionFromThisStructure into didTransitionFromThisStructureWithoutFiringWatchpoint and
fireStructureTransitionWatchpoint. And firing watchpoints in Structure::finishCreation instead of Structure
constructor so that we can allocate GC memory while firing watchpoints.

  • runtime/BrandedStructure.cpp:

(JSC::BrandedStructure::BrandedStructure):
(JSC::BrandedStructure::create):

  • runtime/BrandedStructure.h:
  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::didTransitionFromThisStructureWithoutFiringWatchpoint const):
(JSC::Structure::fireStructureTransitionWatchpoint const):
(JSC::Structure::didTransitionFromThisStructure const):

  • runtime/Structure.h:

(JSC::Structure::finishCreation):

  • runtime/StructureInlines.h:

(JSC::Structure::create):

10:40 PM Changeset in webkit [292593] by J Pascoe
  • 8 edits in trunk/Source/WebKit

[WebAuthn] Support all CTAP transports and remove gesture requirement for virtual authenticators
https://bugs.webkit.org/show_bug.cgi?id=238814
rdar://problem/91300515

Reviewed by Brent Fulgham.

This patch adds support for the other CTAP virtual authenticator transports and removes
the user gesture requirement when using virtual authenticators. These changes are needed
to run the webauthn web-platform-tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::WebCore::collectTransports):
(WebKit::AuthenticatorManager::filterTransports const):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::filterTransports const):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:

(WebKit::VirtualAuthenticatorManager::createAuthenticator):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
  • UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm:

(WebKit::VirtualLocalConnection::verifyUser):

  • UIProcess/WebAuthentication/Virtual/VirtualService.mm:

(WebKit::VirtualService::startDiscoveryInternal):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):

9:59 PM Changeset in webkit [292592] by Antti Koivisto
  • 6 edits in trunk

[CSS Container Queries] Evaluate against shadow-including ancestors
https://bugs.webkit.org/show_bug.cgi?id=238934

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.html:

Add declarative shadow DOM polyfill.

Source/WebCore:

"Style rules applying to its shadow-including descendants can then be conditioned by querying against it,
using the @container conditional group rule."

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

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::selectContainer):

Evaluate against shadow-including ancestors instead of flat tree ancestors if the cache is not available.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):

Copy the container state when pushing scope. This also creates a stack of shadow-including ancestors.

  • style/StyleTreeResolver.h:
9:09 PM Changeset in webkit [292591] by Elliott Williams
  • 35 edits in trunk

[XCBuild] Enable dependency validation by default
https://bugs.webkit.org/show_bug.cgi?id=238901
<rdar://problem/91379968>

Reviewed by Alexey Proskuryakov.

.:

Set VALIDATE_DEPENDENCIES=YES_ERROR everywhere, so that builds fail
when task outputs are missing.

The only interesting detail is that we need to set an extended
attribute on the user's build directory in order for XCBuild to
validate dependencies _within_ that directory. Since a users' build
directory may not be created by XCBuild, have build-webkit and
set-webkit-configuration set the attribute manually.

  • Makefile.shared: Remove the VALIDATE_DEPENDENCIES opt-in logic.

Always call through to set-webkit-configuration, because that's where
we verify that CreatedByBuildSystem is set on the build directory.
Don't pass -EnableBuildDebugging=1; it's not actually needed to enable
dependency validation.

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig:

Source/WebGPU:

  • Configurations/DebugRelease.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:

Source/WebKit:

  • Configurations/DebugRelease.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • MobileMiniBrowser/Configurations/DebugRelease.xcconfig:
  • Scripts/build-webkit:
  • Scripts/set-webkit-configuration: When run with no arguments, checks

the base product directory, prints the configuration, and exits.
Recognizes -h and --help flags to show usage.

  • Scripts/webkitdirs.pm:

(markBaseProductDirectoryAsCreatedByXcodeBuildSystem): New name of
setCreatedByXcodeBuildSystem.
(setCreatedByXcodeBuildSystem): Renamed.

  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:06 PM Changeset in webkit [292590] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Fix DrawingAreaWC after r292557
https://bugs.webkit.org/show_bug.cgi?id=238979

Unreviewed build fix

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:
8:46 PM Changeset in webkit [292589] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build (again)

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):

7:30 PM Changeset in webkit [292588] by Chris Dumez
  • 24 edits in trunk/Source

Add PAL::TextEncoding() constructor that takes in a StringView
https://bugs.webkit.org/show_bug.cgi?id=238905

Reviewed by Darin Adler.

This allows some call sites to be a bit more efficient.

Source/WebCore:

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::create):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::setEncoding):

  • fileapi/FileReaderLoader.h:
  • html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes):

  • loader/FormSubmission.cpp:

(WebCore::encodingFromAcceptCharset):

  • loader/soup/ResourceLoaderSoup.cpp:

(WebCore::ResourceLoader::loadGResource):

  • platform/network/HTTPParsers.cpp:

(WebCore::extractCharsetFromMediaType):

  • platform/network/HTTPParsers.h:
  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::setResponseFromCachedHeaders):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::handleDataURL):

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::finalResponseCharset const):
(WebCore::XMLHttpRequest::didReceiveData):

Source/WebCore/PAL:

  • pal/text/TextEncoding.cpp:

(PAL::TextEncoding::TextEncoding):

  • pal/text/TextEncoding.h:

(PAL::TextEncoding::TextEncoding):

  • pal/text/TextEncodingRegistry.cpp:

(PAL::atomCanonicalTextEncodingName):

  • pal/text/TextEncodingRegistry.h:

Source/WebKit:

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::didRequestNextPart):
(WebKit::NetworkDataTaskSoup::didGetFileInfo):

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):

7:21 PM Changeset in webkit [292587] by Chris Dumez
  • 32 edits in trunk

Replace deprecated String(const char*) with String::fromLatin1() in more places
https://bugs.webkit.org/show_bug.cgi?id=238925

Reviewed by Darin Adler.

Source/WebKit:

  • NetworkProcess/DatabaseUtilities.cpp:

(WebKit::DatabaseUtilities::stripIndexQueryToMatchStoredValue):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::dumpContentsToFile):

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeObject):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandleForTemporaryFile):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getClientBundleIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientProcessName):
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel getAllLocalAuthenticatorCredentials]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::showSafeBrowsingWarning):

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::clearAllCredentials):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::createCredentialPrivateKey const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::pasteAccessCategoryForCommand):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pluginInfo):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::replaceSelectionPasteboardName):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::createJSArrayForArgumentDescriptions):
(WebKit::IPCTestingAPI::JSMessageListener::jsDescriptionFromDecoder):

  • webpushd/WebPushDaemonMain.mm:

(WebKit::WebPushDaemonMain):

Source/WebKitLegacy/mac:

  • History/HistoryPropertyList.mm:

(HistoryPropertyListWriter::HistoryPropertyListWriter):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView coreCommandByName:]):

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::setAccummulateLogsForChannel):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(handleControlCommand):
(changeWindowScaleIfNeeded):
(resetWebViewToConsistentState):

  • TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::waitForPostDumpWatchdogTimerFired):

  • WebKitTestRunner/cocoa/CrashReporterInfo.mm:

(WTR::testPathFromURL):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaPlatformInitialize):
(WTR::TestController::cocoaResetStateToConsistentValues):

6:35 PM Changeset in webkit [292586] by Sam Sneddon
  • 3 edits in trunk/Source/WTF

Move long-enabled preferences away from experimental
https://bugs.webkit.org/show_bug.cgi?id=238929

Reviewed by Tim Horton.

This only moves things which have a simple default: true and
have since Safari 15's release; there are likely other things
which could be moved.

It does, however, leave GoogleAntiFlickerOptimizationQuirkEnabled
as an experimental feature, as this seems something it is more
likely a developer may wish to toggle.

  • Scripts/Preferences/WebPreferences.yaml:
  • Scripts/Preferences/WebPreferencesExperimental.yaml:
6:03 PM Changeset in webkit [292585] by gnavamarino@apple.com
  • 4 edits in trunk/Source/WebCore

When using a TrackDisplayUpdateScope queue updateActiveTextTrackCues as a task
https://bugs.webkit.org/show_bug.cgi?id=238963

Reviewed by Eric Carlson.

The HTMLMediaElement::didRemoveTextTrack call is done under ScriptDisallowedScope but this path
currently can call updateActiveTextTrackCues which could result in updating the layout downstream.
To resolve this we execute updateActiveTextTrackCues under a queueCancellableTaskKeepingObjectAlive call.

We also add a needed check in RenderVTTCue::initializeLayoutParameters exposed by queueing the task.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):
(WebCore::HTMLMediaElement::cancelPendingTasks):

  • html/HTMLMediaElement.h:
  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::initializeLayoutParameters):

5:51 PM Changeset in webkit [292584] by clopez@igalia.com
  • 2 edits in trunk/Tools

REGRESSION(r292109): [GTK][WPE] generate-bundle: Don't try to use the interpreter prefix when not bundling all.
https://bugs.webkit.org/show_bug.cgi?id=237107

For bundles of type --syslibs=generate-install-script we should
not try to prefix the executable with the interpreter.
Add a missing check to ensure that the interpreter has been copied
into the bundle before trying to use it.

Unreviewed follow-up fix.

  • Scripts/webkitpy/binary_bundling/bundle.py:

(BinaryBundler.generate_wrapper_script):

5:49 PM Changeset in webkit [292583] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

Build-fix for not ENABLE(SERVICE_WORKER) after r292539
https://bugs.webkit.org/show_bug.cgi?id=238957

Unreviewed build fix.

  • UIProcess/WebPageProxy.cpp:
5:47 PM Changeset in webkit [292582] by ntim@apple.com
  • 6 edits in trunk

[:has() pseudo-class] Support invalidation for :indeterminate pseudo class on <progress>
https://bugs.webkit.org/show_bug.cgi?id=238923

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt:
  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::HTMLProgressElement):
(WebCore::HTMLProgressElement::parseAttribute):
(WebCore::HTMLProgressElement::didAttachRenderers):
(WebCore::HTMLProgressElement::updateDeterminateState):
(WebCore::HTMLProgressElement::didElementStateChange):
(WebCore::HTMLProgressElement::isDeterminate const): Deleted.

  • html/HTMLProgressElement.h:
5:08 PM Changeset in webkit [292581] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r287147 - Rename forEachFrameFromMainFrame to forEachFrame
https://bugs.webkit.org/show_bug.cgi?id=234396
<rdar://problem/86581926>

Reviewed by Geoffrey Garen.

Follow-up to r287110: Switch method naming to match 'forEachDocument'.

  • page/Page.cpp:

(WebCore::Page::~Page):
(WebCore::Page::notifyToInjectUserScripts):
(WebCore::Page::forEachFrame):
(WebCore::Page::forEachFrameFromMainFrame): Deleted.

  • page/Page.h:
5:08 PM Changeset in webkit [292580] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34

Merge r291791 - REGRESSION (r287807): WEBGL_multi_draw validation rejecting valid arguments
https://bugs.webkit.org/show_bug.cgi?id=238239

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-24
Reviewed by Darin Adler.

Source/WebCore:

Fix off-by-one error causing full buffer multidraws to be
marked as invalid.

Enable the newer WebGL conformance tests that test this.

  • html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::validateOffset):

LayoutTests:

Enable the newer WebGL conformance tests that test this, marked
Slow as they take a while to run.

5:08 PM Changeset in webkit [292579] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r287807 - [Hardening] Improve multi draw offset validation
https://bugs.webkit.org/show_bug.cgi?id=234966
<rdar://problem/86814830>

Reviewed by Darin Adler.

Incorporate draw count into validation of the offset.

  • html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::validateOffset):

5:08 PM Changeset in webkit [292578] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288867 - Fix handling of access key events
https://bugs.webkit.org/show_bug.cgi?id=234147
<rdar://problem/86320218>

Reviewed by David Kilzer.

Improve focus handling for HTMLElement-based elements to ensure accessKey events
are properly dispatched.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press): Ensure correct object is used after 'accessKeyAction'
is invoked.

  • dom/EventDispatcher.cpp:

(WebCore::callDefaultEventHandlersInBubblingOrder) Protect element during default
event bubbling.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::reportValidity): Ensure correct element is
used after focus event.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleAccessKey): Ensure correct object is used after
'accessKeyAction' is invoked.

5:07 PM Changeset in webkit [292577] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r287110 - Clean-up: Adopt Page::forEachDocument in some missed spots
https://bugs.webkit.org/show_bug.cgi?id=234324
<rdar://problem/85443831>

Reviewed by Darin Adler.

Switch manual loops to our 'forEachDocument' style in a few places that were missed
in earlier refactoring.

No change in behavior.

  • history/BackForwardCache.cpp:

(WebCore::setBackForwardCacheState)

  • page/EventHandler.cpp:

(WebCore::removeDraggedContentDocumentMarkersFromAllFramesInPage):

  • page/Frame.cpp:

(WebCore::Frame::orientationChanged):

  • page/Page.cpp:

(WebCore::Page::~Page):
(WebCore::Page::forEachDocumentFromMainFrame): Added.
(WebCore::Page::forEachDocument): Use new method.
(WebCore::Page::forEachFrameFromMainFrame): Added.
(WebCore::Page::windowScreenDidChange):
(WebCore::Page::userAgentChanged):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::dispatchPageHideEventBeforePause):
(WebCore::Frame::dispatchPageShowEventBeforeResume):

3:59 PM Changeset in webkit [292576] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Add PushCommitToWebKitRepo
https://bugs.webkit.org/show_bug.cgi?id=238959
<rdar://problem/91443987>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Add PushCommitToWebKitRepo, pre-commit validation.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Ditto.

  • Tools/CISupport/ews-build/steps.py:

(PushCommitToWebKitRepo.evaluateCommand): Add merge-queue steps.
(PushCommitToWebKitRepo.getResultSummary): Remove identifier computation.
(PushCommitToWebKitRepo.svn_revision_from_commit_text):
(DetermineLandedIdentifier): Move code to determine identifier into a seperate step because
merge-queue has already computed the identifier.
(DetermineLandedIdentifier.init):
(DetermineLandedIdentifier.start): Capture log output of command.
(DetermineLandedIdentifier.getResultSummary):
(DetermineLandedIdentifier.evaluateCommand): Attempt to pull identifier from commit message,
otherwise, fall back to commits.webkit.org.
(DetermineLandedIdentifier.url_for_revision_details): Moved from PushCommitToWebKitRepo.
(DetermineLandedIdentifier.url_for_identifier): Ditto.
(DetermineLandedIdentifier.identifier_for_revision): Ditto.
(DetermineLandedIdentifier.comment_text_for_bug): Ditto.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

3:56 PM Changeset in webkit [292575] by Nikolas Zimmermann
  • 17 edits in trunk/Source/WebCore

Unify reference box / CTM computation in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=237701

Reviewed by Rob Buis.

Extract the code in RenderLayer that computes the reference box, obtains the CTM,
applies pixel snapping, etc. into a shared updateTransformFromStyle() helper function.
Use that helper to de-duplicate code between updateTransform() / currentTransform()
(and RenderLayerBacking::updateTransform() in follow-up patches).

currentTransform() needs to compute the CTM, based on a non-default RenderStyle (!= renderer().style()),
namely the aninmatedStyle(), if an accelerated transform animation is running. Therefore extend
RenderLayerModelObject::applyTransform() to take an additional RenderStyle parameter,
that is used to access the CSS transform operations, instead of always querying renderer().style().
RenderLayer::updateTransform() continues to pass 'renderer().style()' to updateTransformFromStyle(),
whereas RenderLayer::currentTransform() passes the elements animatedStyle().

Covered by existing tests, no change in behaviour.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::applyTransform const):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::applyTransform const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateTransformFromStyle const):
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateTransform):

  • rendering/RenderLayerModelObject.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::applyTransform const): Deleted.

  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::applyTransform const): Deleted.

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::applyTransform const):

  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • rendering/svg/RenderSVGTransformableContainer.h:
3:50 PM Changeset in webkit [292574] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Add support for the "is valid to use with" operation to WebGPU objects
https://bugs.webkit.org/show_bug.cgi?id=238719

Addressing post-review comment.

Unreviewed.

  • WebGPU/IsValidToUseWith.h:

(WebGPU::isValidToUseWith):
(WebGPU::isValidToUseWith const): Deleted.

3:44 PM Changeset in webkit [292573] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Canonicalize parent commits
https://bugs.webkit.org/show_bug.cgi?id=238951
<rdar://problem/91436607>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(Canonicalize.run): Canonicalize first 2 parent commits if not rebasing.
(Canonicalize.getResultSummary): Pluralize summary.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

3:41 PM Changeset in webkit [292572] by Jean-Yves Avenard
  • 3 edits in trunk/Source/WebCore

Full screen video progress bar flickers after dragging it.
https://bugs.webkit.org/show_bug.cgi?id=238859
rdar://90412851

A WebAVPlayerController pretends to be an AVPlayerController by
implementing most methods of it, but not all.
When dragging the progress bar, AVKit calls the method isSeeking to
determine if we are seeking or not and if true will call seekToTime
to retrieve the last seek position and display the progress bar
accordingly.
Those two methods weren't implemented by WebAVPlayerController.
At present, we don't have information about the seeking operation having
completed or not, but we do know if we are scrubbing. So map isSeeking
to isScrubbing, this approximation is sufficient at present.

Reviewed by Jer Noble.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebAVPlayerController isSeeking]):
(-[WebAVPlayerController seekToTime]):

3:38 PM Changeset in webkit [292571] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] css3/background/background-repeat-round-auto2.html is a image failure https://bugs.webkit.org/show_bug.cgi?id=238965 Unreviewed test gardening.

3:34 PM Changeset in webkit [292570] by Matteo Flores
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION(r291509): imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238920

Reviewed by Cameron McCormack.

Fixed typo.

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html:
2:55 PM Changeset in webkit [292569] by Simon Fraser
  • 7 edits in trunk/Source

Add a LayerBacking RenderingPurpose
https://bugs.webkit.org/show_bug.cgi?id=238896

Reviewed by Said Abou-Hallawa.

Add RenderingPurpose::LayerBacking so the GPU Process knows which buffers are
associated with layer backing.

Source/WebCore:

  • platform/graphics/RenderingMode.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::shouldUseRemoteRenderingFor):

2:46 PM Changeset in webkit [292568] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] fast/attachment/attachment-disabled-rendering.html is a text missing failure https://bugs.webkit.org/show_bug.cgi?id=238960 Unreviewed test gardening. * platform/ios-wk2/TestExpectations:

2:44 PM Changeset in webkit [292567] by mmaxfield@apple.com
  • 43 edits in trunk/Source/WebGPU

[WebGPU] Give objects a notion of invalidity
https://bugs.webkit.org/show_bug.cgi?id=238720

Reviewed by Kimmo Kinnunen.

This is the biggest blocker for running the WebGPU conformance test suite. WebGPU is designed
such that creation routines don't return undefined if the object couldn't be created; instead,
in "invalid" object is returned. This patch is a step on the path to making creation routines
never return nullptr.

Some objects have destroy() methods which makes the object invalid. Those will be implemented
in a forthcoming patch.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::createInvalid):
(WebGPU::Adapter::isValid const):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::createInvalid):
(WebGPU::BindGroup::isValid const):

  • WebGPU/BindGroup.mm:

(WebGPU::BindGroup::BindGroup):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::createInvalid):
(WebGPU::BindGroupLayout::isValid const):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::BindGroupLayout::BindGroupLayout):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::createInvalid):
(WebGPU::Buffer::isValid const):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::createInvalid):
(WebGPU::CommandBuffer::isValid const):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::createInvalid):
(WebGPU::CommandEncoder::isValid const):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::CommandEncoder):

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::createInvalid):
(WebGPU::ComputePassEncoder::isValid const):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::createInvalid):
(WebGPU::ComputePipeline::isValid const):

  • WebGPU/ComputePipeline.mm:

(WebGPU::ComputePipeline::ComputePipeline):

  • WebGPU/Device.h:

(WebGPU::Device::createInvalid):
(WebGPU::Device::isValid const):

  • WebGPU/Device.mm:

(WebGPU::Device::Device):

  • WebGPU/Instance.h:

(WebGPU::Instance::createInvalid):
(WebGPU::Instance::isValid const):

  • WebGPU/Instance.mm:

(WebGPU::Instance::Instance):
(WebGPU::m_isValid):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::createInvalid):
(WebGPU::PipelineLayout::isValid const):

  • WebGPU/PipelineLayout.mm:

(WebGPU::PipelineLayout::PipelineLayout):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::createInvalid):
(WebGPU::QuerySet::isValid const):

  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::QuerySet):

  • WebGPU/Queue.h:

(WebGPU::Queue::createInvalid):
(WebGPU::Queue::isValid const):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::createInvalid):
(WebGPU::RenderBundle::isValid const):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::createInvalid):
(WebGPU::RenderBundleEncoder::isValid const):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::RenderBundleEncoder):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::createInvalid):
(WebGPU::RenderPassEncoder::isValid const):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::createInvalid):
(WebGPU::RenderPipeline::isValid const):

  • WebGPU/RenderPipeline.mm:

(WebGPU::RenderPipeline::RenderPipeline):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::createInvalid):
(WebGPU::Sampler::isValid const):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::createInvalid):
(WebGPU::ShaderModule::isValid const):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::convertCheckResult):
(WebGPU::ShaderModule::ShaderModule):
(WebGPU::ShaderModule::getCompilationInfo):
(WebGPU::ShaderModule::ast const):

  • WebGPU/Texture.h:

(WebGPU::Texture::createInvalid):
(WebGPU::Texture::isValid const):

  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::createInvalid):
(WebGPU::TextureView::isValid const):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

2:15 PM Changeset in webkit [292566] by Devin Rousso
  • 7 edits in trunk/LayoutTests

[GPU Process] Test failures in forms
https://bugs.webkit.org/show_bug.cgi?id=236927
<rdar://problem/89196867>

Unreviewed, fix test failures and adjust related expectations.

  • fast/forms/autofocus-readonly-attribute.html:

This test appeared to be failing because it ended before the "focus" event had a chance
to fire. Make the test async by delaying its completion until after a requestAnimationFrame
which should be enough time for the "focus" event to be dispatched (and handled).

  • fast/forms/input-text-autofocus.html:
  • fast/forms/input-text-autofocus-expected.txt:

Slightly rework this test to manually tell the testRunner to waitUntilDone, as for some
reason the js-test-{pre,post} test harness seems to somehow not output the PASS messages
while still finishing the test (i.e. not a timeout).

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:

Remove non-skipped expectations for:

  • fast/forms/ios/choose-select-option.html
  • fast/forms/autofocus-readonly-attribute.html
  • fast/forms/input-text-autofocus.html

Note that fast/forms/ios/choose-select-option.html is still skipped on iPad, because there
is already a platform/ipad/fast/forms/choose-select-option.html specifically to test iPad.

2:05 PM Changeset in webkit [292565] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Block kernel routines
https://bugs.webkit.org/show_bug.cgi?id=238898

Reviewed by Geoffrey Garen.

Block kernel routines only used during launch of the WebContent process on iOS. This is based on collected telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
2:03 PM Changeset in webkit [292564] by Tyler Wilcock
  • 10 edits
    2 adds in trunk

AX ITM: ARIATreeItemContent, ARIATreeRows, and DisclosedRows properties need to be updated after dynamic page changes
https://bugs.webkit.org/show_bug.cgi?id=238844

Reviewed by Chris Fleizach.

Source/WebCore:

Before this patch, we never updated these properties after
initializing isolated objects, so they become inaccurate
when content / rows were added or removed.

Test: accessibility/mac/tree-properties-update-after-dynamic-change.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeItemContent):
Make this function return a value instead of by out-parameter.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Handle updates to AXPropertyName::ARIATreeItemContent, AXPropertyName::ARIATreeRows, and
AXPropertyName::DisclosedRows. Also, updateNodeProperty now
takes an AXCoreObject& instead of const AXCoreObject&
since calling ariaTreeItemContent(), ariaTreeRows(), and disclosedRows() is inherently not const.
(WebCore::AXIsolatedTree::updateChildren):
If the object being updated is a treeitem, also update AXPropertyName::ARIATreeItemContent
and AXPropertyName::DisclosedRows. And if the object has a tree role ancestor, update
AXPropertyName::ARIATreeRows for that ancestor.

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/mac/tree-properties-update-after-dynamic-change-expected.txt: Added.
  • accessibility/mac/tree-properties-update-after-dynamic-change.html: Added.
1:58 PM Changeset in webkit [292563] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

(Safari 15 - iOS15): Increased audio latency on streaming via webrtc
https://bugs.webkit.org/show_bug.cgi?id=236363
<rdar://problem/88969850>

Reviewed by Eric Carlson.

On macOS 12.3, the default preferred buffer size is roughly 100 ms.
This is ok for regular audio playback but is not desirable when playing realtime audio.
To reduce the perceived latency, we now reduce the preferred buffer size to 20ms
whenever playing an audio MediaStreamTrack, similarly to when capturing audio.

Manually tested.

  • platform/audio/PlatformMediaSession.cpp:
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:
1:36 PM Changeset in webkit [292562] by Alan Bujtas
  • 5 edits in trunk/LayoutTests

Unreviewed test gardening.

  • imported/blink/fast/multicol/vertical-lr/float-content-break-expected.html:

.html is rendered using the legacy codepath while -expected.html is renderer using the modern codepath.
In case of fractional pixel values, they sometimes produce different final baselines due to (unintentional) implicit flooring in legacy line layout.
While most of these intentional/unintentional floors/ceils are matched (with FIXMEs) in the modern line layout, some would make the line layout
codebase a lot more complicated. These type of bugs are mostly not visible to the user anyway ever since we have stopped swapping between modern
and legacy line layout dynamically (e.g. on selection).

  • imported/blink/fast/multicol/vertical-lr/float-content-break.html:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
1:32 PM Changeset in webkit [292561] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[web-animations] REGRESSION (r287881): loading performance for diply.com regressed
https://bugs.webkit.org/show_bug.cgi?id=238931
rdar://91190007

Reviewed by Simon Fraser.

We only need to resolve effects in the stack if they are targeting the property we are
considering for the creation, update or removal of a CSS Transition.

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

1:28 PM Changeset in webkit [292560] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

Iterate over copy of animated properties in WebCore::WebAnimation::commitStyles
https://bugs.webkit.org/show_bug.cgi?id=238940

Reviewed by Antoine Quint.

WebAnimation::resolve can end up clearing the animated properties during iteration.

The proposal here will make a copy of the properties before applying the steps
outlined in the spec.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles):

1:26 PM Changeset in webkit [292559] by ntim@apple.com
  • 9 edits
    12 adds in trunk

[CSS resize property] Correct minimum size computation to allow resizing below initial size
https://bugs.webkit.org/show_bug.cgi?id=135335

Reviewed by Simon Fraser.

Source/WebCore:

Tests:

  • LayoutTests/fast/css/resize-above-min-size-and-below-initial-size.html
  • LayoutTests/fast/css/resize-below-min-intrinsic-size.html
  • LayoutTests/fast/css/resize-below-min-intrinsic-size-large-scrollbars.html
  • LayoutTests/fast/css/resize-below-min-size-zoomed.html
  • LayoutTests/fast/css/resize-below-min-size.html
  • LayoutTests/fast/css/resize-orthogonal-containing-block.html

Ports the relevant Chromium changeset with a few tweaks: https://chromium-review.googlesource.com/c/chromium/src/+/545395/

The previous minimum size used to be whatever size was there before the first resize, which is wrong, and does not allow
resizing below the initial size. It is now based on the min-width/height properties and the scroll corner size.

It is no longer stored in ElementRareData since it is no longer fixed to the initial element size, but depends on the container
on the element style.

  • dom/Element.cpp:

(WebCore::Element::minimumSizeForResizing const): Deleted.
(WebCore::Element::setMinimumSizeForResizing): Deleted.

  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::useTypes const):
(WebCore::ElementRareData::ElementRareData):
(WebCore::defaultMinimumSizeForResizing): Deleted.
(WebCore::ElementRareData::minimumSizeForResizing const): Deleted.
(WebCore::ElementRareData::setMinimumSizeForResizing): Deleted.

  • dom/NodeRareData.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::minimumSizeForResizing const):
(WebCore::RenderLayer::resize):

  • rendering/RenderLayer.h:

LayoutTests:

Tests ported from the Chromium changeset: https://chromium-review.googlesource.com/c/chromium/src/+/545395/
They've been tweaked to:

  • not rely on <textarea>
  • use WPT harness instead of Chrome specific methods
  • use async functions instead of callbacks
  • fast/css/resize-above-min-size-and-below-initial-size-expected.txt: Added.
  • fast/css/resize-above-min-size-and-below-initial-size.html: Added.
  • fast/css/resize-below-min-intrinsic-size-large-scrollbars-expected.txt: Added.
  • fast/css/resize-below-min-intrinsic-size-large-scrollbars.html: Added.
  • fast/css/resize-below-min-intrinsic-size-expected.txt: Added.
  • fast/css/resize-below-min-intrinsic-size.html: Added.
  • fast/css/resize-below-min-size-expected.txt: Added.
  • fast/css/resize-below-min-size-zoomed-expected.txt: Added.
  • fast/css/resize-below-min-size-zoomed.html: Added.
  • fast/css/resize-below-min-size.html: Added.
  • fast/css/resize-orthogonal-containing-block-expected.txt: Added.
  • fast/css/resize-orthogonal-containing-block.html: Added.
1:22 PM Changeset in webkit [292558] by mmaxfield@apple.com
  • 39 edits
    1 copy in trunk/Source/WebGPU

[WebGPU] Add support for the "is valid to use with" operation to WebGPU objects
https://bugs.webkit.org/show_bug.cgi?id=238719

Reviewed by Kimmo Kinnunen.

The spec also has the representation of this base class, named GPUObjectBase, which supports
the setting of labels. However, in our WebGPU implementation, all objects implement labels
differently, so that handling isn't present.

  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU/Adapter.h:
  • 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.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::create):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:

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

  • WebGPU/CommandsMixin.h:
  • 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/Device.h:
  • WebGPU/Instance.h:
  • WebGPU/IsValidToUseWith.h: Copied from Source/WebGPU/WebGPU/CommandsMixin.h.

(WebGPU::ObjectBase::ObjectBase):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::create):

  • WebGPU/PipelineLayout.mm:

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

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::create):

  • WebGPU/QuerySet.mm:

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

  • WebGPU/Queue.h:
  • 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/Sampler.h:
  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

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

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):
(WebGPU::Texture::createView):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::create):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

1:13 PM Changeset in webkit [292557] by Simon Fraser
  • 23 edits in trunk/Source

Have ImageBuffer store the RenderingPurpose, and send it to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=238887

Reviewed by Said Abou-Hallawa.
Source/WebCore:

Add RenderingPurpose to ImageBufferBackend::Parameters so it's stored on ImageBufferBackend/ImageBuffer,
and propagate that to the GPU process.

  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::renderingPurpose const):

  • platform/graphics/PlatformImageBuffer.h:
  • platform/graphics/coreimage/FilterImageCoreImage.mm:

(WebCore::FilterImage::imageBufferFromCIImage):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

Source/WebKit:

Add RenderingPurpose to ImageBufferBackend::Parameters so it's stored on ImageBufferBackend/ImageBuffer,
and propagate that to the GPU process.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::createImageBuffer const):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

12:59 PM Changeset in webkit [292556] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Change label names
https://bugs.webkit.org/show_bug.cgi?id=238950
<rdar://problem/91435211>

Reviewed by Ryan Haddad.

  • CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits): Use "unsafe-merge-queue" instead of "fast-merge-queue".

  • CISupport/ews-build/steps.py:

(GitHubMixin): Ditto.
(GitHubMixin._is_pr_in_merge_queue): Ditto.
(BlockPullRequest.start): Ditto.
(RemoveLabelsFromPullRequest): Ditto.

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

12:55 PM Changeset in webkit [292555] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Add step to close pull request
https://bugs.webkit.org/show_bug.cgi?id=238949
<rdar://problem/91434587>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin.close_pr): Make POST request to close PR.
(ClosePullRequest):
(ClosePullRequest.start): Ensure PR we're operating on is closed.
(ClosePullRequest.getResultSummary):
(ClosePullRequest.doStepIf): Only do step if operating on a PR.
(ClosePullRequest.hideStepIf): Hide step if skipping.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

12:42 PM Changeset in webkit [292554] by mmaxfield@apple.com
  • 14 edits in trunk/Source/WebGPU

[WebGPU] Delete redundant spec quotes
https://bugs.webkit.org/show_bug.cgi?id=238711

Reviewed by Kimmo Kinnunen.

I actually prefer to have lots and lots of spec quotes throughout the implementation,
but enough people have commented about it that it's become clear that we probably
shouldn't have them. This deletes almost all of them (and leaves just the ones that
are particularly insightful).

  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:

(WebGPU::validateDescriptor):
(WebGPU::validateCreateBuffer):
(WebGPU::Device::createBuffer):
(WebGPU::Buffer::destroy):
(WebGPU::Buffer::validateGetMappedRange const):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::validateUnmap const):
(WebGPU::Buffer::unmap):

  • WebGPU/CommandEncoder.mm:

(WebGPU::validateCopyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::validateImageCopyBuffer):
(WebGPU::validateCopyBufferToTexture):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::validateCopyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::areCopyCompatible):
(WebGPU::validateCopyTextureToTexture):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::validateClearBuffer):
(WebGPU::CommandEncoder::clearBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::validatePopDebugGroup const):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::CommandEncoder::pushDebugGroup):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::validatePopDebugGroup const):
(WebGPU::ComputePassEncoder::popDebugGroup):
(WebGPU::ComputePassEncoder::pushDebugGroup):

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

(WebGPU::Device::currentErrorScope):
(WebGPU::Device::generateAValidationError):
(WebGPU::Device::validatePopErrorScope const):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):

  • WebGPU/Queue.mm:

(WebGPU::Queue::submit):
(WebGPU::validateWriteBufferInitial):
(WebGPU::Queue::validateWriteBuffer const):
(WebGPU::Queue::writeBuffer):
(WebGPU::validateWriteTexture):
(WebGPU::Queue::writeTexture):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::validatePopDebugGroup const):
(WebGPU::RenderBundleEncoder::popDebugGroup):
(WebGPU::RenderBundleEncoder::pushDebugGroup):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::validatePopDebugGroup const):
(WebGPU::RenderPassEncoder::popDebugGroup):
(WebGPU::RenderPassEncoder::pushDebugGroup):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::descriptor const):
(WebGPU::Sampler::isComparison const):

  • WebGPU/Sampler.mm:

(WebGPU::validateCreateSampler):
(WebGPU::Device::createSampler):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::isCompressedFormat):
(WebGPU::Texture::isDepthOrStencilFormat):
(WebGPU::Texture::texelBlockWidth):
(WebGPU::Texture::texelBlockHeight):
(WebGPU::isRenderableFormat):
(WebGPU::supportsMultisampling):
(WebGPU::maximumMiplevelCount):
(WebGPU::Device::validateCreateTexture):
(WebGPU::Device::createTexture):
(WebGPU::Texture::resolveTextureViewDescriptorDefaults const):
(WebGPU::Texture::arrayLayerCount const):
(WebGPU::Texture::validateCreateView const):
(WebGPU::computeRenderExtent):
(WebGPU::Texture::createView):
(WebGPU::Texture::logicalMiplevelSpecificTextureExtent):
(WebGPU::Texture::physicalMiplevelSpecificTextureExtent):
(WebGPU::imageCopyTextureSubresourceSize):
(WebGPU::Texture::validateImageCopyTexture):
(WebGPU::Texture::validateTextureCopyRange):
(WebGPU::Texture::validateLinearTextureData):

12:40 PM Changeset in webkit [292553] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r292419): [ iOS EWS ] imported/w3c/web-platform-tests/css/selectors/invalidation/user-action-pseudo-classes-in-has.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=238954 Unreviewed test gardening. * platform/ios-wk2/TestExpectations:

12:19 PM Changeset in webkit [292552] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] Implement Texture view format compatibility
https://bugs.webkit.org/show_bug.cgi?id=238710

Reviewed by Kimmo Kinnunen.

Right now, the definition of texture view format compatibility is narrow enough that we'll
never need to add MTLTextureUsagePixelFormatView to the usage of any textures. So, all we
have to do is validate.

Test: http/tests/webgpu/webgpu/api/validation/createTexture.html

  • WebGPU/CommandEncoder.mm:

(WebGPU::areCopyCompatible):
(WebGPU::isSRGBCompatible): Deleted.

  • WebGPU/Device.h:
  • WebGPU/Texture.h:

(WebGPU::Texture::create):

  • WebGPU/Texture.mm:

(WebGPU::Texture::removeSRGBSuffix):
(WebGPU::textureViewFormatCompatible):
(WebGPU::Device::validateCreateTexture):
(WebGPU::usage):
(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
(WebGPU::Texture::validateCreateView const):

12:18 PM Changeset in webkit [292551] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r290770): [ Mac wk2 ] imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-050.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=238033 Unreviewed test gardening * platform/mac-wk2/TestExpectations:

11:59 AM Changeset in webkit [292550] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey ] fast/text/khmer-lao-font.html is a constant text failure

https://bugs.webkit.org/show_bug.cgi?id=238917

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:24 AM Changeset in webkit [292549] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Update head and base references in PR
https://bugs.webkit.org/show_bug.cgi?id=238942
<rdar://problem/91423818>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin.update_pr): Pass head and base to POST request.
(UpdatePullRequest.evaluateCommand): Set head and base refs.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

11:19 AM Changeset in webkit [292548] by Kate Cheney
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] printing/css2.1/page-break-after-000.html is a flaky failure (231102)
https://bugs.webkit.org/show_bug.cgi?id=231102
<rdar://problem/83781666>

Unreviewed. Fixing expectations for a no-longer-flaky test.

  • platform/mac-wk1/TestExpectations:
11:08 AM Changeset in webkit [292547] by Brent Fulgham
  • 4 edits in trunk

[WebKitLegacy] Remove NPAPIPlugInsEnabledForTestingInWebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=238882

Reviewed by Tim Horton.

We have completely removed the NPAPI code and no longer run the tests. We no longer need this setting
and should remove it to reduce complexity and build time.

The specific skipped tests will be removed in a follow-up patch.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

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

[Merge-Queue] Remove labels from pull request
https://bugs.webkit.org/show_bug.cgi?id=238909
<rdar://problem/91383048>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(RemoveLabelsFromPullRequest):
(RemoveLabelsFromPullRequest._addToLog):
(RemoveLabelsFromPullRequest.start): Remove active labels.
(RemoveLabelsFromPullRequest.getResultSummary):
(RemoveLabelsFromPullRequest.doStepIf): Only do step if pull request
number is defined.
(RemoveLabelsFromPullRequest.hideStepIf): Hide stip if step not executed.

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

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

[Merge-Queue] Extract bug_id when updating pull-request (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238772
<rdar://problem/91263398>

Unreviewed follow-up fix.

  • Tools/CISupport/ews-build/steps.py:

(LeaveComment.start): Pass repository to GitHubMixin.comment_on_pr.

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

10:22 AM Changeset in webkit [292544] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Update pull-request with landed content (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238554
<rdar://problem/91047260>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(PushPullRequestBranch.start): Push canonicalized HEAD to remote branch.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

10:22 AM Changeset in webkit [292543] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

Adjust and refactor some UA styles and logic for injecting Live Text
https://bugs.webkit.org/show_bug.cgi?id=238912
rdar://91383570

Reviewed by Aditya Keerthi.

Source/WebCore:

Adjust various Live-Text-related UA styles for "text recognition blocks", along with other miscellaneous
adjustments:

  • Compute and set the border radius, based on the font size and overall height of the block.
  • Add horizontal/vertical padding to text recognition, computed relative to the border radius.
  • Allow hyphenation in blocks.
  • Only center-align text in blocks if there are fewer than 3 text runs in the block.
  • Adjust box shadows, backdrop filter blur radius and line height.
  • Specify a line-height, such that line-height from the host element doesn't erroneously apply to blocks.
  • Handle text recognition blocks with newline characters (\n) by injecting line break elements between text.

Test: fast/images/text-recognition/image-overlay-block-with-newlines.html

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):
(WebCore::ImageOverlay::fitElementToQuad):
(WebCore::ImageOverlay::updateWithTextRecognitionResult):

  • html/shadow/imageOverlay.css:

(:host(:not(img)) div#image-overlay:-webkit-full-screen-document):
(div.image-overlay-block):
(div.image-overlay-line, .image-overlay-text, div.image-overlay-block):
(div.image-overlay-line, .image-overlay-text):
(.image-overlay-block):

LayoutTests:

Add a layout test to exercise "block"-style Live Text injection, in the case where the injected text contains
newlines. The resulting selected text should preserve the newline.

  • fast/images/text-recognition/image-overlay-block-with-newlines-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-block-with-newlines.html: Added.
10:13 AM Changeset in webkit [292542] by Lauro Moura
  • 3 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=238933

  • css/CSSToStyleMap.h: Forward declare Quad
  • platform/graphics/filters/FilterEffectVector.h: Replace forward with

actual include for Ref.

10:06 AM Changeset in webkit [292541] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Remove redundant invalidateStyleForSubtree() calls
https://bugs.webkit.org/show_bug.cgi?id=238922

Reviewed by Antti Koivisto.

These calls were for :invalid/:valid validation, which now are invalidated using Style::PseudoClassChangeInvalidation.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::maxLengthAttributeChanged):
(WebCore::HTMLInputElement::minLengthAttributeChanged):

10:03 AM Changeset in webkit [292540] by commit-queue@webkit.org
  • 23 edits in trunk

[JSC][ARMv7] Support proper near calls and JUMP_ISLANDS
https://bugs.webkit.org/show_bug.cgi?id=238143

Patch by Geza Lore <Geza Lore> on 2022-04-07
Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/let-const-tdz-environment-parsing-and-hash-consing-speed.js:

Source/JavaScriptCore:

Implement nearCall and nearTailCall as single instruction direct
branches on ARMv7/Thumb-2. (Will need to support these for Wasm JITs,
to implement threadSafePatchableNearcall.) To make this possible while
also having an executable pool size larger than the branch range, I
also ported JUMP_ISLANDS.

To port JUMP_ISLANDS, a reformulation of the region allocations was
necessary, which is now done in terms of the range of the
nearCall/nearTailCall macroassembler macros. For ARM64, the behaviour
should be identical.

The jump islad reservation on ARMv7 is set to 5% of executable memory
size, which is approximately the same as the baseline JIT code size
saving provided by using short branches for near calls, so the change
should be neutral overall with respect to executable memory
consumption.

Also made it possible for the --jitMemoryReservationSize option to
request JIT memory that is larger than the default hardcoded size
while using JUMP_ISLANDS (we need this for testing on ARMv7, which has
a smaller default executable pool size). To do this the region
allocators are no longer statically allocated but are held in a
FixedVector.

Also removed the unused repatchCompact methods from assemblers.

  • assembler/ARM64Assembler.h:
  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::isEven):
(JSC::ARMv7Assembler::makeEven):
(JSC::ARMv7Assembler::bl):
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkTailCall):
(JSC::ARMv7Assembler::linkCall):
(JSC::ARMv7Assembler::relinkCall):
(JSC::ARMv7Assembler::relinkTailCall):
(JSC::ARMv7Assembler::prepareForAtomicRelinkJumpConcurrently):
(JSC::ARMv7Assembler::prepareForAtomicRelinkCallConcurrently):
(JSC::ARMv7Assembler::replaceWithJump):
(JSC::ARMv7Assembler::canEmitJump):
(JSC::ARMv7Assembler::isBL):
(JSC::ARMv7Assembler::linkJumpT4):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkJumpAbsolute):
(JSC::ARMv7Assembler::linkBranch):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall):

  • assembler/AssemblerCommon.h:

(JSC::isInt):

  • assembler/MIPSAssembler.h:
  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::nearCall):
(JSC::MacroAssemblerARMv7::nearTailCall):
(JSC::MacroAssemblerARMv7::linkCall):

  • assembler/MacroAssemblerMIPS.h:
  • assembler/MacroAssemblerRISCV64.h:
  • assembler/MacroAssemblerX86Common.h:
  • assembler/X86Assembler.h:
  • bytecode/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

Source/WTF:

Support constructor arguments for FixedVector element initialization.

  • wtf/EmbeddedFixedVector.h:
  • wtf/FixedVector.h:

(WTF::FixedVector::FixedVector):

  • wtf/PlatformEnable.h:
  • wtf/TrailingArray.h:

(WTF::TrailingArray::TrailingArray):

  • wtf/Vector.h:

(WTF::VectorTypeOperations::initializeWithArgs):

9:10 AM Changeset in webkit [292539] by youenn@apple.com
  • 8 edits in trunk

Use the same callback mechanism for ServiceWorker openWindow and navigate in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=238924

Reviewed by Chris Dumez.

Source/WebKit:

Reuse WebFrameProxy navigation delegate for openWindow once the main frame is created.
This ensures we get the same behavior for both code paths and makes sure openWindow does not hang if a delegate cancels the load.

Covered by API test.

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::transferNavigationCallbackToFrame):
(WebKit::WebFrameProxy::setNavigationCallback):

  • UIProcess/WebFrameProxy.h:

(WebKit::WebFrameProxy::transferNavigationCallbackToFrame): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::callLoadCompletionHandlersIfNecessary):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::openWindowFromServiceWorker):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[ServiceWorkerPSONNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[ServiceWorkerPSONNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[ServiceWorkerOpenWindowWebsiteDataStoreDelegate initWithConfiguration:]):
(-[ServiceWorkerOpenWindowWebsiteDataStoreDelegate websiteDataStore:openWindow:fromServiceWorkerOrigin:completionHandler:]):

9:09 AM Changeset in webkit [292538] by Jonathan Bedard
  • 10 edits in trunk/Tools

[git-webkit] Clear merging-blocked label on PR update
https://bugs.webkit.org/show_bug.cgi?id=238907
<rdar://problem/91380962>

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.set): Empty list should trigger request.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:

(Issue.set_labels): Pass self to tracker.set.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub.init): Set self.labels from passed argument.
(GitHub._issue): Handle empty list.

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

(PullRequest): Add BLOCKED_LABEL constant.
(PullRequest.main): Remove 'merging-blocked' label from existing pull-request
before updating pull-request.

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

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

8:29 AM Changeset in webkit [292537] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Fix the expected failure type.

Unreviewed.

  • platform/mac-wk1/TestExpectations:
8:26 AM Changeset in webkit [292536] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Share code for _addToLog
https://bugs.webkit.org/show_bug.cgi?id=238913
<rdar://problem/91383969>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AddToLogMixin): Base class for all classes using _addToLog
(ConfigureBuild): Use from AddToLogMixin.
(AnalyzeChange): Ditto.
(BugzillaMixin): Ditto.
(ValidateCommitterAndReviewer): Ditto.
(BlockPullRequest): Ditto.
(RunBindingsTests): Ditto.
(WebKitPyTest): Ditto.
(CompileWebKit): Ditto.
(RunJavaScriptCoreTests): Ditto.
(AnalyzeJSCTestsResults): Ditto.
(RunWebKitTests): Ditto.
(AnalyzeAPITestsResults): Ditto.
(UpdatePullRequest): Ditto.
(ConfigureBuild._addToLog): Deleted.
(AnalyzeChange._addToLog): Deleted.
(BugzillaMixin._addToLog): Deleted.
(ValidateCommitterAndReviewer._addToLog): Deleted.
(BlockPullRequest._addToLog): Deleted.
(RunBindingsTests._addToLog): Deleted.
(WebKitPyTest._addToLog): Deleted.
(CompileWebKit._addToLog): Deleted.
(RunJavaScriptCoreTests._addToLog): Deleted.
(AnalyzeJSCTestsResults._addToLog): Deleted.
(RunWebKitTests._addToLog): Deleted.
(AnalyzeAPITestsResults._addToLog): Deleted.
(CheckPatchStatusOnEWSQueues._addToLog): Deleted.
(UpdatePullRequest._addToLog): Deleted.

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

7:43 AM Changeset in webkit [292535] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC][32bit] Use constexpr tags instead of enums
https://bugs.webkit.org/show_bug.cgi?id=238926

Patch by Geza Lore <Geza Lore> on 2022-04-07
Reviewed by Yusuke Suzuki.

The *Tag values are just 32-bit constants, so define them as
constexpr. This reduces compiler nuisance warnings about enum
comparisons.

  • dfg/DFGSpeculativeJIT.cpp:
  • runtime/JSCJSValue.h:
7:40 AM Changeset in webkit [292534] by Chris Dumez
  • 14 edits in trunk/Source

Drop unused EditorClient::getAutoCorrectSuggestionForMisspelledWord()
https://bugs.webkit.org/show_bug.cgi?id=238897

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::markMisspellingsAfterTypingToWord):

  • editing/TextCheckingHelper.cpp:

(WebCore::findMisspellings):

  • loader/EmptyClients.cpp:
  • platform/text/TextCheckerClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

  • WebProcess/WebCoreSupport/WebEditorClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.h:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

  • WebCoreSupport/WebEditorClient.h:
6:34 AM Changeset in webkit [292533] by commit-queue@webkit.org
  • 8 edits
    1 copy in trunk/Source/WebKit

IPC::Connection should support diverting all messages to a message queue in other thread
https://bugs.webkit.org/show_bug.cgi?id=238608

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-07
Reviewed by Simon Fraser.

Previously, it was possible to divert all messages to certain ReceiverName to
a message queue. This is used in IPC streams functionality.

Add a possibility to divert all messages to a message queue. Instead of
passing ReceiverName, id pair to Connection, pass new struct ReceiverMatcher.
Use ReceiverMatcher instead of pair optional<ReceiverName>, optional<id>, since
nullopt, id is not a valid case.
This will be used in future patch for the case where IPC::Connection is created for
the sole purpose of using it together with IPC stream connection.
This also clarifies the overloaded use of destinationID 0 as a wildcard as well as
a valid message destination.

Also implement the possibility to divert all messages to particular ReceiverName,
id 0. Previously this was signifying the destination ID wildcard.

No new tests, refactor.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::enqueueMatchingMessages):
(IPC::Connection::enqueueMatchingMessagesToMessageReceiveQueue):
(IPC::Connection::addMessageReceiveQueue):
(IPC::Connection::removeMessageReceiveQueue):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeThreadMessageReceiver):

  • Platform/IPC/Connection.h:
  • Platform/IPC/Decoder.h:

(IPC::Decoder::matches const):

  • Platform/IPC/MessageReceiveQueueMap.cpp:

(IPC::MessageReceiveQueueMap::addImpl):
(IPC::MessageReceiveQueueMap::remove):
(IPC::MessageReceiveQueueMap::get const):

  • Platform/IPC/MessageReceiveQueueMap.h:

(IPC::MessageReceiveQueueMap::add):

  • Platform/IPC/ReceiverMatcher.h: Copied from Source/WebKit/Platform/IPC/MessageReceiveQueueMap.h.

(IPC::ReceiverMatcher::ReceiverMatcher):
(IPC::ReceiverMatcher::createForLegacyAPI):
(IPC::ReceiverMatcher::matches const):

  • Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnectionBase::startReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::stopReceivingMessagesImpl):

  • WebKit.xcodeproj/project.pbxproj:
6:28 AM Changeset in webkit [292532] by Alan Bujtas
  • 4 edits
    4 adds in trunk

A float avoider should never take a vertical position where a float is present even when its used width is zero
https://bugs.webkit.org/show_bug.cgi?id=238895

Reviewed by Antti Koivisto.

Source/WebCore:

A zero width available space is never a valid vertical position for a float avoider even when its width is zero too.

Test: fast/block/float/float-avoider-with-zero-width.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::getClearDelta): skip and check the next candidate poisition when no space is available.

LayoutTests:

  • TestExpectations: inline-size-bfc-floats.html: never produced correct rendering, the red box just happened to be hidden (which made this test pass).
  • fast/block/float/float-avoider-with-zero-width-expected.html: Added.
  • fast/block/float/float-avoider-with-zero-width.html: Added.
5:57 AM Changeset in webkit [292531] by ntim@apple.com
  • 5 edits in trunk

[:has() pseudo-class] Support invalidation for :autofill pseudo class
https://bugs.webkit.org/show_bug.cgi?id=238899

Reviewed by Antti Koivisto.

Source/WebCore:

Tests: LayoutTests/fast/forms/input-autofilled-*.html

I've only added tests for the :autofill case, since the other pseudo-classes are supposed to be internal-only.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setAutoFilled):
(WebCore::HTMLInputElement::setAutoFilledAndViewable):
(WebCore::HTMLInputElement::setAutoFilledAndObscured):

LayoutTests:

  • fast/forms/input-autofilled-expected.txt:
  • fast/forms/input-autofilled.html:
4:41 AM Changeset in webkit [292530] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GStreamer] Fix compile warning

  • Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:

(WebCore::gstreamerRtpCapatiblities): Initialize RTCRtpCodecCapability::channels.

3:57 AM Changeset in webkit [292529] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix GTK build after r292506

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp:

(webkit_dom_media_list_set_media_text):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp:

(webkit_dom_node_set_node_value):
(webkit_dom_node_set_text_content):

3:57 AM Changeset in webkit [292528] by Martin Robinson
  • 2 edits in trunk

[GTK] Turning on the address sanitizer should disable GIR and documentation
https://bugs.webkit.org/show_bug.cgi?id=238868

Reviewed by Adrian Perez de Castro.

  • Source/cmake/OptionsGTK.cmake: Disable documentation when the address

sanitizer is on. Documentation depends on GIR. Also fix the adjustment
of the documentation setting when building on Mac. This also has to
happen before the call to find_package(GI).

3:15 AM Changeset in webkit [292527] by Carlos Garcia Campos
  • 10 edits in trunk/Source

[GTK][WPE] RemoteInspector add support for IPv6
https://bugs.webkit.org/show_bug.cgi?id=238797

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::start): Receive a GSocketAddress instead of address and port parameters.

  • inspector/remote/glib/RemoteInspectorServer.h:

Source/WebKit:

Make it possible to connect to remote inspector server using IPv6 address.

  • UIProcess/API/glib/WebKitInitialize.cpp:

(WebKit::initializeRemoteInspectorServer): Parse IPv6 address and build GSocketAddress to pass to inspector ot
HTTP server.

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::handleRequest): RemoteInspectorClient now expects host and port in a
single String.

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::RemoteInspectorClient): Receive the host and port in a String.

  • UIProcess/Inspector/glib/RemoteInspectorClient.h:
  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp:
  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.h:
3:11 AM Changeset in webkit [292526] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r292525.

Silence an unused parameter warning in vanilla builds (w/o --layer-based-svg-engine).

  • rendering/RenderLayerModelObject.cpp:

(WebCore::rendererNeedsPixelSnapping):

3:06 AM Changeset in webkit [292525] by Nikolas Zimmermann
  • 13 edits in trunk/Source/WebCore

Unify 'transform-box' reference box computation
https://bugs.webkit.org/show_bug.cgi?id=237554

Reviewed by Simon Fraser.

Currently the code to compute the reference box, according to the CSS 'transform-box'
property is sprinkled over various places: CSSComputedStyleDeclaration, SVGRenderSupport,
RenderBox, parts in RenderLayer.

Cleanup and unify the code in a new 'FloatRect referenceBoxRect(CSSBoxType) const' method.
RenderElement::referenceBoxRect(CSSBoxType) contains the SVG specific implementation, and
RenderBox::referenceBoxRect() the HTML/CSS one (previously named referenceBox()).

12:11 AM Changeset in webkit [292524] by Matt Woodrow
  • 11 edits
    2 adds
    4 deletes in trunk

Grid items that establish an independent formatting context should not be subgrids.
https://bugs.webkit.org/show_bug.cgi?id=237692

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/subgrid/abs-pos-003-expected.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-003.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-004-expected.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-004.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/independent-formatting-context-expected.html: Added.
  • web-platform-tests/css/css-grid/subgrid/independent-formatting-context.html: Added.

Removes tests that expect position:absolute combined with grid-template-X: subgrid to work.
Adds new test to confirm that elements that establish an independent formatting context can't
also be a subgrid.

Source/WebCore:

New WPT css/css-grid/subgrid/independent-formatting-context.html added to check this case.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createsNewFormattingContext const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::markForPaginationRelayoutIfNeeded):
(WebCore::RenderBox::isWritingModeRoot const): Deleted.
(WebCore::RenderBox::isDeprecatedFlexItem const): Deleted.
(WebCore::RenderBox::isFlexItemIncludingDeprecated const): Deleted.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createsNewFormattingContext const):

  • rendering/RenderElement.h:

(WebCore::RenderElement::isWritingModeRoot const):
(WebCore::RenderElement::isDeprecatedFlexItem const):
(WebCore::RenderElement::isFlexItemIncludingDeprecated const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::isBlockContainer const):

  • rendering/RenderObject.h:

Grid items establish a new formatting context, unless they're a subgrid [1], but subgrid
is disabled if any other property causes the element to establish a formatting context [2].
Adds a new helper to check everything except grid, so that we can resolve this without
infinite recursion.
Stops writing-mode changes from establishing an independent formatting context if
the box is a grid container, since this should only happen is the box is a block
container [3].
Adds new helper for isBlockContainer, since writing-mode changes use it.

[1] https://drafts.csswg.org/css-grid-2/#grid-item-display
[2] https://drafts.csswg.org/css-grid-2/#subgrid-listing
[3] https://drafts.csswg.org/css-writing-modes/#block-flow

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::isSubgrid const):
(WebCore::RenderGrid::createsNewFormattingContext const):
(WebCore::RenderGrid::mayBeSubgridExcludingAbsPos const): Deleted.
(WebCore::RenderGrid::gridSpanCoversRealTracks const): Deleted.

  • rendering/RenderGrid.h:
  • rendering/style/GridPositionsResolver.cpp:

(WebCore::adjustGridPositionsFromStyle):

Makes isSubgrid return false if the element establishes an independent formatting context
(excluding contexts established by being a grid item), and removes no longer needed code
for handling position:absolute subgrids.

Apr 6, 2022:

9:29 PM Changeset in webkit [292523] by ntim@apple.com
  • 4 edits in trunk

[:has() pseudo-class] Support invalidation for :placeholder-shown
https://bugs.webkit.org/show_bug.cgi?id=238894

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html

Use same pattern as other input pseudo classes.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):

7:44 PM Changeset in webkit [292522] by mmaxfield@apple.com
  • 4 edits
    4 adds in trunk

NBSP characters drawn in fonts that don't support the space character turn into boxes
https://bugs.webkit.org/show_bug.cgi?id=238836
<rdar://problem/91130503>

Reviewed by Alan Bujtas.

Source/WebCore:

We have some historical code in WebKit where we swap out the non-breaking space glyph
for the space glyphs when rendering. This is not what the other browsers do; they will
faithfully render the non-breaking space glyph. This patch aligns with the other
browsers.

This patch also fixes a similar problem with tab characters. Other browsers never
render any visible tab glyphs, even if the font has a visible glyph for the tab
character. This patch implements this.

This patch also only clobbers the glyphs used for carriageReturn and newlineCharacter
if the replacement glyph exists.

Test: fast/text/nbsp-no-space.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

LayoutTests:

  • fast/text/nbsp-no-space-expected.html: Added.
  • fast/text/nbsp-no-space.html: Added.
  • fast/text/resources/Ahem-nbsp-no-space.ttf: Added. Supports NBSP but not space.
  • fast/text/resources/Ahem-visible-tab-and-space.ttf: Added. Has visible glyphs for tab and space.
7:18 PM Changeset in webkit [292521] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey ] fast/text/khmer-lao-font.html is a constant text failure

https://bugs.webkit.org/show_bug.cgi?id=238917

Unreviewed test rebasline.

  • platform/mac/fast/text/khmer-lao-font-expected.txt:
6:21 PM Changeset in webkit [292520] by Andres Gonzalez
  • 7 edits in trunk

[ Mac ] accessibility/mac/expanded-notification.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=238830
rdar://91313419

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/expanded-notification.html

This patch fixes the flackiness of this test and also fixes this test
in isolated tree mode that was timing out.
Instead of AXIsolatedTree::updateChildren on the AXExpandedChanged
notification, we now update the ISExpanded property in the target object.
If new children are added or removed from the tree as the result of an
element's expanded state change, those tree mutations should generate
separate AXChildrenChanged notifications.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):

LayoutTests:

Fixes the flakiness by checking the number of notifications received in
the same async block where the changes are occuring. This now passes
with no flakiness in both isolated tree mode on and off.

  • accessibility/mac/expanded-notification-expected.txt:
  • accessibility/mac/expanded-notification.html:
  • platform/mac/TestExpectations:
6:08 PM Changeset in webkit [292519] by Dewei Zhu
  • 2 edits in trunk/Tools

Use 'open' command on macOS to launch URL should pass Safari app bundle instead of binary
https://bugs.webkit.org/show_bug.cgi?id=238915
<rdar://91384008>

Reviewed by Stephanie Lewis.

Pass 'Safari.app' instead of 'Safari.app/Contents/MacOS/Safari' when launching URL via 'open' command.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launch_url):

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

6:06 PM Changeset in webkit [292518] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.3

Tag Safari-613.2.4.1.3.

5:54 PM Changeset in webkit [292517] by Alan Coon
  • 9 edits in branches/safari-613.2.4.1-branch/Source

Versioning.

WebKit-7613.2.4.1.3

5:49 PM Changeset in webkit [292516] by Alan Coon
  • 1 copy in tags/Safari-614.1.7.7

Tag Safari-614.1.7.7.

5:47 PM Changeset in webkit [292515] by Alan Coon
  • 9 edits in branches/safari-614.1.7-branch/Source

Versioning.

WebKit-7614.1.7.7

4:35 PM Changeset in webkit [292514] by sbarati@apple.com
  • 15 edits
    1 move
    769 adds in trunk/PerformanceTests

Add versions of Speedometer2.0 and 2.1 in PerformanceTests
https://bugs.webkit.org/show_bug.cgi?id=238906

Rubber stamped by Yusuke Suzuki.

After this change, we'll end up with PerformanceTests/Speedometer2.0 and
PerformanceTests/Speedometer2.1.

3:47 PM Changeset in webkit [292513] by ysuzuki@apple.com
  • 5 edits in trunk/Source/bmalloc

[libpas] Run TLC decommit rarely
https://bugs.webkit.org/show_bug.cgi?id=238855

Reviewed by Saam Barati.

We were running libpas TLC decommit every time. But it is too frequent. We should capture IsoHeap allocation pattern
with much more longer period, and perform TLC decommit in such a low-frequency rate.
This patch changes it so that we run it only once a 128 scavenger run. It is roughly once a 13 seconds.

  • libpas/src/libpas/pas_scavenger.c:

(scavenger_thread_main):
(pas_scavenger_clear_all_caches):

  • libpas/src/libpas/pas_thread_local_cache.c:

(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/test/TLCDecommitTests.cpp:

(std::testTLCDecommit):
(std::testTLCDecommitThenDestroyImpl):
(std::testTLCDecommitThenDeallocate):

3:41 PM Changeset in webkit [292512] by Said Abou-Hallawa
  • 58 edits in trunk/Source/WebCore

[GPU Process] Make SVGFEImageElement::filterEffect() create an ImageBuffer compatible with the destination GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=236573
rdar://89209695

Reviewed by Simon Fraser.

Pass a GraphicsContext to CSSFilter::create() and SVGFilter::create().
If there is no GraphicsContext available, like the call we make in
CSSFilterImageValue::image(), pass a NullGraphicsContext(). This will
create a local ImageBuffer. And this is exactly what we want.

The GraphicsContext will be passed from SVGFilter::buildFilterExpression()
to all the overridden filterEffect(). SVGFEImageElement::filterEffect()
is the only one that is going to use it. It calls GraphicsContext::
createImageBuffer() to create an ImageBuffer for drawing the SVGElement.

In preparation to remove SVGFilterBuilder:

-- Pass an SVGFilter instead of SVGFilterBuilder to all the overridden

filterEffect() and all the overridden lightSource().

-- Make SVGFilterBuilder::calculateFilterOutsets() a static method.
-- Remove the members: SVGFilterBuilder::m_tragetBoundingBox and

SVGFilterBuilder::m_primitiveUnits since they exist in SVGFilter.

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • page/FrameView.cpp:

(WebCore::FrameView::adjustPageHeightDeprecated):

  • platform/graphics/NullGraphicsContext.h:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::create):
(WebCore::calculateReferenceFilterOutsets):
(WebCore::createReferenceFilter):
(WebCore::CSSFilter::buildFilterFunctions):

  • rendering/CSSFilter.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::beginFilterEffect):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::filterEffect const):

  • svg/SVGFEBlendElement.h:
  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::filterEffect const):

  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFEComponentTransferElement.cpp:

(WebCore::SVGFEComponentTransferElement::filterEffect const):

  • svg/SVGFEComponentTransferElement.h:
  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::filterEffect const):

  • svg/SVGFECompositeElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::filterEffect const):

  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::filterEffect const):

  • svg/SVGFEDiffuseLightingElement.h:
  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::filterEffect const):

  • svg/SVGFEDisplacementMapElement.h:
  • svg/SVGFEDistantLightElement.cpp:

(WebCore::SVGFEDistantLightElement::lightSource const):

  • svg/SVGFEDistantLightElement.h:
  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::filterEffect const):

  • svg/SVGFEDropShadowElement.h:
  • svg/SVGFEFloodElement.cpp:

(WebCore::SVGFEFloodElement::filterEffect const):

  • svg/SVGFEFloodElement.h:
  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::filterEffect const):

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::imageBufferForEffect const):
(WebCore::SVGFEImageElement::filterEffect const):
(WebCore::scaledImageBufferRect): Deleted.
(WebCore::clampingScaleForImageBufferSize): Deleted.
(WebCore::createImageBuffer): Deleted.

  • svg/SVGFEImageElement.h:
  • svg/SVGFELightElement.h:
  • svg/SVGFEMergeElement.cpp:

(WebCore::SVGFEMergeElement::filterEffect const):

  • svg/SVGFEMergeElement.h:
  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::filterEffect const):

  • svg/SVGFEMorphologyElement.h:
  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::filterEffect const):

  • svg/SVGFEOffsetElement.h:
  • svg/SVGFEPointLightElement.cpp:

(WebCore::SVGFEPointLightElement::lightSource const):

  • svg/SVGFEPointLightElement.h:
  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::filterEffect const):

  • svg/SVGFESpecularLightingElement.h:
  • svg/SVGFESpotLightElement.cpp:

(WebCore::SVGFESpotLightElement::lightSource const):

  • svg/SVGFESpotLightElement.h:
  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::filterEffect const):

  • svg/SVGFETileElement.h:
  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::filterEffect const):

  • svg/SVGFETurbulenceElement.h:
  • svg/SVGFilterElement.cpp:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:
  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):

  • svg/graphics/filters/SVGFilter.h:
  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::buildFilterExpression):
(WebCore::SVGFilterBuilder::calculateFilterOutsets):
(WebCore::SVGFilterBuilder::SVGFilterBuilder): Deleted.

  • svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::targetBoundingBox const): Deleted.
(WebCore::SVGFilterBuilder::primitiveUnits const): Deleted.
(): Deleted.

3:21 PM Changeset in webkit [292511] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

FilterImage::imageBufferFromPixelBuffer() can trigger accelerated buffers in the web process
https://bugs.webkit.org/show_bug.cgi?id=238848

Unreviewed.

Remove an icorrect FIXME comment now that I've verified that the issue does not occur.

  • platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::imageBufferFromPixelBuffer):

3:15 PM Changeset in webkit [292510] by Russell Epstein
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.1

3:10 PM Changeset in webkit [292509] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Run git svn fetch
https://bugs.webkit.org/show_bug.cgi?id=238759
<rdar://problem/91258277>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Add GitSvnFetch step.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Ditto.

  • Tools/CISupport/ews-build/steps.py:

(UpdatePullRequest.hideStepIf):
(GitSvnFetch):
(GitSvnFetch.init): git svn fetch will have a non-zero exit code if the Subversion
record of changes does not match the git one, which will happen imiediately after committing.
(GitSvnFetch.getResultSummary):
(GitSvnFetch.evaluateCommand): Support expected failure.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

2:57 PM Changeset in webkit [292508] by J Pascoe
  • 5 edits in trunk

Fix expected, actual links for variant-based imported wpt tests
https://bugs.webkit.org/show_bug.cgi?id=238832
rdar://problem/91313891

Reviewed by Brent Fulgham.

Tools:

Ensure that the workaround involving "len(fs.splitext(output_basename)[1]) - 1 > 5"
does not affect imported templated wpt tests that may match that condition, such as
".../pbkdf2.https.any.worker.html."

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

(TestResultWriter.output_filename):

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

(TestResultWriterTest.test_output_filename):
(TestResultWriterTest):
(TestResultWriterTest.test_output_filename_variant):

LayoutTests:

The changes to LayoutTests/fast/harness/results.html were wiped when
preparing https://bugs.webkit.org/show_bug.cgi?id=231544, causing the
links not to match. This patch fixes it.

  • fast/harness/results.html:
2:49 PM Changeset in webkit [292507] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ Mac , iOS Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html is a flaky failure.

https://bugs.webkit.org/show_bug.cgi?id=228127

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:Fixed typo
  • platform/mac-wk2/TestExpectations:Fixed typo
2:29 PM Changeset in webkit [292506] by Chris Dumez
  • 18 edits in trunk/Source

Drop unnecessary ExceptionOr<> return types
https://bugs.webkit.org/show_bug.cgi?id=238876

Reviewed by Alex Christensen.

Drop unnecessary ExceptionOr<> return types as they may cause unnecessary branching at runtime.

Source/WebCore:

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create):

  • animation/KeyframeEffect.h:
  • css/MediaList.cpp:

(WebCore::MediaList::setMediaText):

  • css/MediaList.h:
  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::getContext):

  • html/CustomPaintCanvas.h:
  • html/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::doCustomPaint):

Source/WebKitLegacy/mac:

  • DOM/DOMMediaList.mm:

(-[DOMMediaList setMediaText:]):

2:26 PM Changeset in webkit [292505] by Jonathan Bedard
  • 4 edits in trunk/LayoutTests

Remove Mojave references in TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=238890
<rdar://problem/91375011>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations: Remove Mojave references.
  • LayoutTests/platform/mac-wk2/TestExpectations: Ditto.
  • LayoutTests/platform/mac/TestExpectations: Ditto.

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

2:01 PM Changeset in webkit [292504] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Stop using the shared IOSurfacePool for WebGL
https://bugs.webkit.org/show_bug.cgi?id=238835

Reviewed by Kimmo Kinnunen.

Opt WebGL out of using the IOSurfacePool for its buffers; this would have almost never
used a surface from the pool, because only RemoteLayerBackingStore put surfaces in the
pool so it would be rare for the size to match. In addition, the pool has insufficient
guarantees about surface state.

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::allocateAndBindDisplayBufferBacking):

1:50 PM Changeset in webkit [292503] by Russell Epstein
  • 1 copy in tags/Safari-614.1.9

Tag Safari-614.1.9.

1:50 PM Changeset in webkit [292502] by Jonathan Bedard
  • 4 edits in trunk/LayoutTests

Remove Catalina references in TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=238886
<rdar://problem/91373532>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations: Remove Catalina references.
  • LayoutTests/platform/mac-wk2/TestExpectations: Ditto.
  • LayoutTests/platform/mac/TestExpectations: Ditto.

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

1:50 PM Changeset in webkit [292501] by Russell Epstein
  • 1 delete in tags/Safari-614.1.9

Remove tag.

1:47 PM Changeset in webkit [292500] by Russell Epstein
  • 1 edit in branches/safari-614.1.9-branch/Source/WebKit/ChangeLog

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
1:47 PM Changeset in webkit [292499] by Russell Epstein
  • 2 edits in branches/safari-614.1.9-branch/Source/WebKit

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
1:47 PM Changeset in webkit [292498] by Russell Epstein
  • 2 edits in branches/safari-614.1.9-branch/Source/WebKit

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build
https://bugs.webkit.org/show_bug.cgi?id=238783

Unreviewed build fix.

ConcreteImageBuffer<>::create() needs a default CreationContext argument.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):

1:23 PM Changeset in webkit [292497] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix assertion in CSSPropertyAnimationWrapperMap constructor
https://bugs.webkit.org/show_bug.cgi?id=238884

Patch by Ada Chan <adachan@apple.com> on 2022-04-06
Reviewed by Antoine Quint.

Add more non-animatable properties to the switch statement.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:10 PM Changeset in webkit [292496] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Use rebase over merge when canonicalizing commit
https://bugs.webkit.org/show_bug.cgi?id=238877
<rdar://problem/91363334>

Reviewed by Ryan Haddad and Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(Canonicalize.run): Specify rebase workflow instead of merge workflow.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

12:44 PM Changeset in webkit [292495] by J Pascoe
  • 3 edits in trunk/LayoutTests

pbkdf2.https.any.worker.html fails on WPE, GTK2 ports
https://bugs.webkit.org/show_bug.cgi?id=238885

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:40 PM Changeset in webkit [292494] by Lauro Moura
  • 3 edits in trunk/Tools

[Flatpak SDK] Avoid termination if gdbus is not installed after 249303@main
https://bugs.webkit.org/show_bug.cgi?id=238878

Reviewed by Philippe Normand.

Instead of bailing out, just disable a11y bus forwarding. Also hide
some debug messages.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_a11y_proxy):

  • glib/dependencies/apt: Add libglib2.0-bin
12:35 PM Changeset in webkit [292493] by sbarati@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Call Structure::get instead of Structure::getConcurrently on the mutator thread
https://bugs.webkit.org/show_bug.cgi?id=238823

Reviewed by Yusuke Suzuki.

We try to call Structure::get instead of Structure::getConcurrently when
we know for sure we're on the main thread. This is because getConcurrently
is slower than get.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::couldStillSucceed const):
(JSC::AccessCase::generateImpl):

  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:

(JSC::AdaptiveInferredPropertyValueWatchpointBase::install):

  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::install):

  • bytecode/ObjectPropertyCondition.cpp:

(JSC::ObjectPropertyCondition::structureEnsuresValidityAssumingImpurePropertyWatchpoint const):
(JSC::ObjectPropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):
(JSC::ObjectPropertyCondition::isStillValid const):
(JSC::ObjectPropertyCondition::structureEnsuresValidity const):

  • bytecode/ObjectPropertyCondition.h:
  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::ObjectPropertyConditionSet::structuresEnsureValidity const):
(JSC::generateConditionsForPropertyMiss):
(JSC::generateConditionsForPropertySetterMiss):
(JSC::generateConditionsForPrototypePropertyHit):
(JSC::generateConditionsForPrototypePropertyHitCustom):
(JSC::generateConditionsForPrototypeEquivalenceConcurrently):
(JSC::generateConditionsForPropertyMissConcurrently):
(JSC::generateConditionsForPropertySetterMissConcurrently):
(JSC::generateConditionForSelfEquivalence):
(JSC::ObjectPropertyConditionSet::structuresEnsureValidityAssumingImpurePropertyWatchpoint const): Deleted.
(JSC::ObjectPropertyConditionSet::isValidAndWatchable const): Deleted.

  • bytecode/ObjectPropertyConditionSet.h:
  • bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):
(JSC::watchabilityToConcurrency):
(JSC::PropertyCondition::isStillValid const):
(JSC::PropertyCondition::isWatchableWhenValid const):
(JSC::PropertyCondition::isWatchableAssumingImpurePropertyWatchpoint const):
(JSC::PropertyCondition::isWatchable const):

  • bytecode/PropertyCondition.h:
  • dfg/DFGAdaptiveStructureWatchpoint.cpp:

(JSC::DFG::AdaptiveStructureWatchpoint::install):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::check):
(JSC::DFG::ByteCodeParser::planLoad):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):

  • dfg/DFGDesiredWatchpoints.h:

(JSC::DFG::AdaptiveStructureWatchpointAdaptor::hasBeenInvalidated):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::watchCondition):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setupGetByIdPrototypeCache):

  • runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp:

(JSC::CachedSpecialPropertyAdaptiveStructureWatchpoint::install):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::tryInstallSpeciesWatchpoint):

  • runtime/JSObject.h:

(JSC::JSObject::getDirect const):

  • runtime/Structure.h:

(JSC::Structure::get):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::cacheSpecialPropertySlow):

12:33 PM Changeset in webkit [292492] by Russell Epstein
  • 1 copy in tags/Safari-614.1.9

Tag Safari-614.1.9.

12:32 PM Changeset in webkit [292491] by Russell Epstein
  • 2 edits in branches/safari-614.1.9-branch/Source/WebGPU

Cherry-pick r292479. rdar://problem/91351306

[WebGPU] Fix the tvOS build
https://bugs.webkit.org/show_bug.cgi?id=238881
<rdar://problem/91351306>

Unreviewed.

MTLTextureType2DMultisampleArray is not available on tvOS.

  • WebGPU/Texture.mm: (WebGPU::Device::createTexture): (WebGPU::Texture::createView):

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

12:13 PM Changeset in webkit [292490] by Jonathan Bedard
  • 7 edits
    1 add in trunk/Tools

[git-webkit] Provide https credentialing program
https://bugs.webkit.org/show_bug.cgi?id=238679
<rdar://problem/91177114>

Reviewed by Stephanie Lewis and Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py: Add Credentials program.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/credentials.py: Added.

(Credentials.main): Return credentials for remote.

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

(Setup.git): Set credential helper if remote is an http remote.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.credentials): Stub function to be replace by child classes.

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

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

12:09 PM Changeset in webkit [292489] by commit-queue@webkit.org
  • 5 edits in trunk/Source/bmalloc

Unreviewed, reverting r292450.
https://bugs.webkit.org/show_bug.cgi?id=238883

Membuster regression

Reverted changeset:

"[libpas] Run TLC decommit rarely"
https://bugs.webkit.org/show_bug.cgi?id=238855
https://commits.webkit.org/r292450

12:06 PM Changeset in webkit [292488] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Avoid calling IOSurfaceAlignProperty in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=238870
<rdar://91252359>

Reviewed by Geoffrey Garen.

Use cached values for bytes per row alignment.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::calculateBytesPerRow):

12:05 PM Changeset in webkit [292487] by Chris Dumez
  • 92 edits in trunk/Source

Start replacing String(const char*) constructor with a String::fromLatin1(const char*) function
https://bugs.webkit.org/show_bug.cgi?id=238701

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • API/JSValue.mm:

(createStructHandlerMap):
(handerForStructTag):

  • API/JSWrapperMap.mm:

(allocateConstructorForCustomClass):

  • API/ObjCCallbackFunction.mm:

(JSC::ObjCCallbackFunctionImpl::name):

  • API/glib/JSCContext.cpp:

(jsc_context_check_syntax):

  • b3/air/testair.cpp:
  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::functionName const):

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json):

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):

  • inspector/remote/socket/RemoteInspectorSocket.cpp:

(Inspector::RemoteInspector::sendMessageToBackend):

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):
(runWithOptions):
(CommandLine::parseArguments):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parsePrimaryExpression):

  • parser/Parser.h:

(JSC::Parser::updateErrorMessage):

  • parser/SourceProvider.h:
  • runtime/BytecodeCacheError.cpp:

(JSC::BytecodeCacheError::StandardError::message const):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::keywordValue const):
(JSC::IntlLocale::numberingSystems):

  • runtime/IntlObject.cpp:

(JSC::numberingSystemsForLocale):

  • runtime/NumberPrototype.cpp:

(JSC::toStringWithRadix):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::numberToStringInternal):
(JSC::int52ToString):

  • runtime/Options.cpp:

(JSC::Options::overrideAliasedOptionWithHeuristic):
(JSC::Options::setAliasedOption):

  • runtime/RegExpPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::displayName):

  • runtime/StringPrototype.cpp:

(JSC::toLocaleCase):

  • testRegExp.cpp:

(parseArguments):

  • tools/CompilerTimingScope.cpp:
  • tools/FunctionAllowlist.cpp:

(JSC::FunctionAllowlist::FunctionAllowlist):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionFailed):
(WebCore::RTCStatsLogger::toJSONString const):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::toException):
(WebCore::toRTCError):

  • Modules/webauthn/WebAuthenticationUtils.cpp:

(WebCore::buildAttestationMap):

  • Modules/webauthn/cbor/CBORValue.cpp:

(cbor::CBORValue::CBORValue):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::getVersionFromDatabase):
(WebCore::Database::setVersionInDatabase):

  • animation/KeyframeEffect.cpp:

(WebCore::processPropertyIndexedKeyframes):

  • animation/KeyframeEffect.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getDomainList):

  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
  • crypto/algorithms/CryptoAlgorithmAES_CFB.cpp:
  • crypto/algorithms/CryptoAlgorithmAES_CTR.cpp:
  • crypto/algorithms/CryptoAlgorithmAES_GCM.cpp:
  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
  • crypto/algorithms/CryptoAlgorithmECDSA.cpp:
  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:
  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
  • crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp:
  • css/DOMCSSCustomPropertyDescriptor.h:
  • css/makeprop.pl:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::types const):

  • dom/TextDecoder.cpp:

(WebCore::TextDecoder::encoding const):

  • editing/ApplyStyleCommand.cpp:

(WebCore::styleSpanClassString):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isInterchangeNewlineNode):
(WebCore::isInterchangeConvertedSpaceSpan):

  • editing/TextInsertionBaseCommand.cpp:

(WebCore::canAppendNewLineFeedToSelection):

  • html/HiddenInputType.cpp:

(WebCore::HiddenInputType::appendFormData const):

  • html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseFragments):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getSupportedExtensions):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::testPreloadScannerViewportSupport):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived):

  • loader/cache/CachedApplicationManifest.cpp:

(WebCore::CachedApplicationManifest::encoding const):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::didAddClient):
(WebCore::CachedCSSStyleSheet::encoding const):
(WebCore::CachedCSSStyleSheet::checkNotify):

  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::encoding const):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::encoding const):

  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::encoding const):

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::threadInfos):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::read):

  • platform/gamepad/GamepadConstants.cpp:

(WebCore::standardGamepadMappingString):
(WebCore::xrStandardGamepadMappingString):

  • platform/graphics/FourCC.h:

(WTF::LogArgument<WebCore::FourCC>::toString):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::initialize):
(WebCore::GraphicsContextGLANGLE::getString):

  • platform/mac/ThreadCheck.mm:

(WebCoreReportThreadViolation):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::hashStringWithSalt):

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::initializeVoiceList):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::authorizerFunction):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::LocaleCocoa::monthLabels):
(WebCore::LocaleCocoa::shortMonthLabels):

  • testing/Internals.cpp:

(WebCore::Internals::testDictionaryLogging):

  • xml/XPathValue.h:

(WebCore::XPath::Value::Value):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::XSLTProcessor::parseErrorFunc):
(WebCore::docLoaderFunc):
(WebCore::XSLTProcessor::transformToString):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

Source/WebCore/PAL:

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::adapterName):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::popErrorScope):

Source/WebGPU:

  • WebGPU/APIConversions.h:

(WebGPU::fromAPI):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/ComputePipeline.mm:

(WebGPU::createConstantValues):
(WebGPU::Device::createComputePipeline):

  • WebGPU/ShaderModule.mm:

(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):

Source/WTF:

  • wtf/Logger.h:

(WTF::LogArgument::toString):

  • wtf/text/WTFString.cpp:

(string):

  • wtf/text/WTFString.h:
12:04 PM Changeset in webkit [292486] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292417. rdar://problem/91311691

Implement faster lookup of HTML tags in the HTML parser
https://bugs.webkit.org/show_bug.cgi?id=238804

Reviewed by Geoffrey Garen.

Implement faster lookup of HTML tags in the HTML parser by having make_names.pl generate
a findHTMLTag function that returns very efficient well-known HTML tag names.

It is a little more efficient that our current HTMLNameCache (0.4% progression on
Speedometer on MacBookAir 10,1, neutral on iMac20,1). Unlike the HTMLNameCache, It doesn't
require any hashing or additional storage since the set of well-known HTML tags is known
at compile time.

  • dom/make_names.pl: (printNamesHeaderFile): (findMaxTagLength): (tagsWithLength): (generateFindTagForLength): (printNamesCppFile):
  • html/parser/AtomHTMLToken.h: (WebCore::AtomHTMLToken::AtomHTMLToken):
  • html/parser/HTMLNameCache.cpp: (WebCore::HTMLNameCache::atomStringCache):
  • html/parser/HTMLNameCache.h: (WebCore::HTMLNameCache::makeAttributeValue): (WebCore::HTMLNameCache::clear): (WebCore::HTMLNameCache::makeAtomString): (WebCore::HTMLNameCache::atomStringCacheSlot): (WebCore::HTMLNameCache::makeTagName): Deleted.

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

11:51 AM Changeset in webkit [292485] by Jonathan Bedard
  • 6 edits
    1 add in trunk/Tools

[git-webkit] Add automation to assist in branch cleanup
https://bugs.webkit.org/show_bug.cgi?id=238637
<rdar://problem/91127828>

Reviewed by Stephanie Lewis and Dewei Zhu.

  • 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: Add branch deletion and reset mocks.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:

(Svn.init): Add svn revert mock.

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

(Clean):
(Clean.parser): Allow caller to specify branch or pull request.
(Clean.cleanup): Delete a branch or branches associated with a pull request.
(Clean.main): Differentiate calls with branches and pull requests specified from those without.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/clean_unittest.py: Added.

(TestClean):
(TestClean.setUp):
(TestClean.test_checkout_none):
(TestClean.test_clean_git):
(TestClean.test_clean_svn):
(TestClean.test_clean_branch):
(TestClean.test_clean_pr):

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

11:48 AM Changeset in webkit [292484] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Substring resolving should check 8bit / 16bit again
https://bugs.webkit.org/show_bug.cgi?id=236775
<rdar://problem/89253391>

Reviewed by Saam Barati.

JSTests:

  • stress/8bit-16bit-atomize-conversion.js: Added.

(main.v64):
(main):

Source/JavaScriptCore:

Substring JSString is wrapping JSString. Thus it is possible that underlying JSString's 8Bit / 16Bit status
becomes different from substring JSString wrapper's bit. We should not assume they are the same.

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeInternal const):
(JSC::JSRopeString::resolveRopeToAtomString const):
(JSC::JSRopeString::resolveRopeToExistingAtomString const):
(JSC::JSRopeString::resolveRopeInternal8 const): Deleted.
(JSC::JSRopeString::resolveRopeInternal16 const): Deleted.

  • runtime/JSString.h:
11:29 AM Changeset in webkit [292483] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Improve API::SerializedScriptValue::deserialize to not allocate a new JSContext every second
https://bugs.webkit.org/show_bug.cgi?id=210920

Reviewed by Geoffrey Garen.

Instead of forcing the lifetime of the shared JSContext to 1 second, we now use a hysteresis
logic so that it can stay alive as long as it is used at least every 10 seconds.

  • UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:

(API::SharedJSContext::SharedJSContext):
(API::SharedJSContext::ensureContext):
(API::SharedJSContext::releaseContextIfNecessary):
(API::SharedJSContext::releaseContext): Deleted.

11:22 AM Changeset in webkit [292482] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

Check for document page in WorkerMessagingProxy::createCacheStorageConnection
https://bugs.webkit.org/show_bug.cgi?id=238872

Reviewed by Chris Dumez.

Add a check to the document page, similarily to how it is currently done in
WorkerMessagingProxy::createRTCDataChannelRemoteHandlerConnection.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::createCacheStorageConnection):

11:21 AM Changeset in webkit [292481] by Alexey Shvayka
  • 3 edits in trunk/JSTests

ICU was recently updated to use type="long" format if there is {month: "long"}
https://bugs.webkit.org/show_bug.cgi?id=238852
<rdar://90462186>

Reviewed by Saam Barati.

Since this update [1] is not yet released, we can't set expectations based on major / minor
ICU version, this patch loosens the tests to accept either of the format types.

[1]: https://github.com/unicode-org/icu/commit/23081486ffec0973b01e66e2cbad93a1a7dec267

  • stress/date-toLocaleString.js:
  • stress/intl-datetimeformat.js:
11:20 AM Changeset in webkit [292480] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Monterey wk2 Release ] imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-012.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=238880

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Marked expectations as [ Pass ImageOnlyFailure ] while test is reviewed.
11:08 AM Changeset in webkit [292479] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix the tvOS build
https://bugs.webkit.org/show_bug.cgi?id=238881
<rdar://problem/91351306>

Unreviewed.

MTLTextureType2DMultisampleArray is not available on tvOS.

  • WebGPU/Texture.mm:

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

10:57 AM Changeset in webkit [292478] by Said Abou-Hallawa
  • 5 edits in trunk

[GPU Process] Text filled with pattern sometimes draw with incorrect color
https://bugs.webkit.org/show_bug.cgi?id=236924
rdar://89196811

Reviewed by Myles C. Maxfield.

Source/WebCore:

applyFillPattern() and applyStrokePattern() have to explicitly called
for the GraphicsContext or the DisplayList::Recorder before drawing
with the pattern. But this is not happening for the DrawGlyphsRecorder
internalContext. When CoreText calls DrawGlyphsRecorder::recordDrawGlyphs()
back, it applies the CGGState fill color to the DisplayList::Recorder so
it overrides what applyFillPattern() did before recording the glyphs.

  • platform/graphics/DrawGlyphsRecorder.h:
  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::populateInternalContext):
(WebCore::DrawGlyphsRecorder::updateFillColor):
(WebCore::DrawGlyphsRecorder::updateStrokeColor):
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
10:48 AM Changeset in webkit [292477] by Chris Dumez
  • 58 edits in trunk/Source

Reduce number of conversions from StringView to String
https://bugs.webkit.org/show_bug.cgi?id=238841

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/RegExp.h:
  • runtime/StringPrototype.cpp:

(JSC::substituteBackreferencesSlow):

Source/WebCore:

  • Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::queryCacheMatch):

  • dom/ViewportArguments.cpp:

(WebCore::viewportErrorMessage):

  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::sourceMapURLForScript):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::validateCrossOriginRedirectionURL):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::disallowWebArchive const):
(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::checkURLSchemeAsCORSEnabled):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::representationExistsForURLScheme const):
(WebCore::EmptyFrameLoaderClient::generatedMIMETypeForURLScheme const):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/archive/mhtml/MHTMLArchive.cpp:

(WebCore::MHTMLArchive::create):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::freshnessLifetime const):

  • loader/soup/ResourceLoaderSoup.cpp:

(WebCore::ResourceLoader::loadGResource):

  • page/Page.cpp:

(WebCore::Page::userStyleSheetLocationChanged):
(WebCore::Page::allowsLoadFromURL const):

  • page/SecurityOrigin.cpp:

(WebCore::shouldTreatAsUniqueOrigin):
(WebCore::shouldTreatAsPotentiallyTrustworthy):
(WebCore::SecurityOrigin::isSecure):
(WebCore::SecurityOrigin::canDisplay const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowObjectFromSource const):
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource const):
(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::allowBaseURI const):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::schemeIsInHttpFamily):
(WebCore::ContentSecurityPolicySourceList::isValidSourceForExtensionMode):

  • platform/LegacySchemeRegistry.cpp:

(WebCore::LegacySchemeRegistry::schemeIsHandledBySchemeHandler):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsNoAccess):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsSecure):
(WebCore::LegacySchemeRegistry::shouldLoadURLSchemeAsEmptyDocument):
(WebCore::LegacySchemeRegistry::canDisplayOnlyIfCanRequest):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):
(WebCore::LegacySchemeRegistry::schemeShouldBypassContentSecurityPolicy):
(WebCore::LegacySchemeRegistry::shouldAlwaysRevalidateURLScheme):
(WebCore::LegacySchemeRegistry::isUserExtensionScheme):

  • platform/LegacySchemeRegistry.h:
  • platform/PublicSuffix.h:
  • platform/mac/PublicSuffixMac.mm:

(WebCore::isPublicSuffix):
(WebCore::topPrivatelyControlledDomain):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::getBlobDataFromURL const):

  • platform/network/CacheValidation.cpp:

(WebCore::headerValueForVary):
(WebCore::collectVaryingRequestHeadersInternal):
(WebCore::collectVaryingRequestHeaders):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::get const):
(WebCore::HTTPHeaderMap::getUncommonHeader const):

  • platform/network/HTTPHeaderMap.h:
  • platform/network/HTTPParsers.cpp:

(WebCore::isCrossOriginSafeHeader):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::httpHeaderField const):

  • platform/network/ResourceRequestBase.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
(WebCore::ResourceResponseBase::httpHeaderField const):

  • platform/network/ResourceResponseBase.h:
  • platform/network/curl/PublicSuffixCurl.cpp:

(WebCore::isPublicSuffix):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::checkTLSErrors):

  • platform/soup/PublicSuffixSoup.cpp:

(WebCore::isPublicSuffix):

Source/WebKit:

  • NetworkProcess/NetworkSchemeRegistry.cpp:

(WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::updateVaryInformation):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::proxyDictionary):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::representationExistsForURLScheme const):
(WebKit::WebFrameLoaderClient::generatedMIMETypeForURLScheme const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebCookieCache.cpp:

(WebKit::WebCookieCache::cookiesForDOM):
(WebKit::WebCookieCache::setCookiesFromDOM):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::canHandleRequest):
(WebKit::WebPage::urlSchemeHandlerForScheme):

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::representationExistsForURLScheme const):
(WebFrameLoaderClient::generatedMIMETypeForURLScheme const):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::representationExistsForURLScheme const):
(WebFrameLoaderClient::generatedMIMETypeForURLScheme const):

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WTF:

  • wtf/URL.cpp:

(WTF::defaultPortForProtocol):

  • wtf/text/StringHash.h:

(WTF::StringViewHashTranslator::hash):
(WTF::StringViewHashTranslator::equal):

10:46 AM Changeset in webkit [292476] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Further clean-ups for features.json
https://bugs.webkit.org/show_bug.cgi?id=238769

Reviewed by Tim Nguyen.

While editing the Features file, I noticed two things:

  1. A number of APIs that we do not support were missing.
  2. A number of APIs were included in the "Features" section, rather than the "Standards" section.

This patch corrects both issues.

  • features.json:
10:05 AM Changeset in webkit [292475] by Justin Michaud
  • 9 edits in trunk/Source/JavaScriptCore

CSE should be more careful with values that have WritesPinned, ExitsSideways, or are of different sizes
https://bugs.webkit.org/show_bug.cgi?id=238302

Reviewed by Saam Barati.

1) CSE for WasmAddressValue searches for any nodes marked with WritesPinned between all paths from the redundant
WasmAddressValue to the replacement that dominates it. For a switch construct, we might miss some paths while
performing this DFS of predecessor blocks because the termination condition was a break instead of a continue.

2) The CSE phase looks for a pattern it calls a store after clobber. That is, two stores to the same location where
the first store is not observable. It searches for reads and writes that overlap with the store and its clobber, and
bails if it finds them. When we add in CSE for WasmAddressValue, we expose the fact that WasmBoundsCheck has ExitSideways
but does not claim to read top, even though the code it exits to totally can. This can cause us to eliminate an observable store.

3) The store after clobber phase does not check that the size of the clobber is the same as the size of the store. Again,
this is usually hidden by JavaScript because the sizes are usually the same. Also, when WASM fast memory is enabled, this
bug is hidden because the loads/stores say that they may trap. That is why the unity test case only failed on iOS (although
it does fail on mac with XPC_JSC_useWebAssemblyFastMemory=0).

  • b3/B3EliminateCommonSubexpressions.cpp:
  • b3/testb3.h:
  • b3/testb3_8.cpp:

(testWasmAddressDoesNotCSE):
(addCopyTests):

9:36 AM Changeset in webkit [292474] by Jonathan Bedard
  • 9 edits in trunk/Tools

[git-webkit] Apply labels based on tracker
https://bugs.webkit.org/show_bug.cgi?id=238640
<rdar://problem/91135356>

Reviewed by Stephanie Lewis.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub._issue): Handle case where empty assignee can be resolved.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.init): Pass issues, projects and labels to base class.

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

(PullRequest.main): If we have an associated issue and can apply labels to our pull request,
apply the issue's component and version labels to our pull request.

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

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

9:16 AM Changeset in webkit [292473] by youenn@apple.com
  • 9 edits in trunk/Source

[Cocoa] Use GCD webrtc task queue
https://bugs.webkit.org/show_bug.cgi?id=238861

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/api/create_peerconnection_factory.cc:
  • Source/webrtc/api/create_peerconnection_factory.h:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Covered by existing tests.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnectionFactory):

9:02 AM Changeset in webkit [292472] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Remove test ResourceLoadStatistics.RemoveSessionID
https://bugs.webkit.org/show_bug.cgi?id=238815

Reviewed by Youenn Fablet.

This test should be removed because:

  1. The use case it wanted to examine no longer exists: this test was added in r246449 to verify that

WebResourceLoadStatisticsStore does not access storage session after a NetworkSession is removed in network
process. This could happen because NetworkSession was refcounted and it could stay alive after it's removed from
the map of NetworkProcess. NetworkSession is no longer refcounted after r247831.

  1. Session removal, which the test wants to check, is not happening during this test: simply put, a download can

hold WebsiteDataStore alive, and the test does not wait for the download to finish. (This can be easily verified
by checking if ~WebsiteDataStore() is invoked.)

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
9:00 AM Changeset in webkit [292471] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

ServiceWorkerDownloadTask starts listening for IPC in constructor
https://bugs.webkit.org/show_bug.cgi?id=238860

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

IPC messages will start to be delivered after connection->addThreadMessageReceiver(..., this, ..) from
the message receive queue. This function cannot be called in the constructor, since the
virtual function table of the this object has not been constructed fully yet. This means
that if a message arrives during the constructor, it is dispatched via incorrect virtual function pointer.

Initiate the listening from a separate function that is called from ServiceWorkerDownloadTask::create().

No new tests, not testable.

  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:

(WebKit::ServiceWorkerDownloadTask::startListeningForIPC):
(WebKit::ServiceWorkerDownloadTask::close):

  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:

(WebKit::ServiceWorkerDownloadTask::create):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::registerDownload):
(WebKit::WebSWServerToContextConnection::unregisterDownload):

8:40 AM Changeset in webkit [292470] by Jonathan Bedard
  • 2 edits in trunk/Source/WebCore/PAL

Support PKShippingMethods on iOS
https://bugs.webkit.org/show_bug.cgi?id=238845
<rdar://problem/91320467>

Reviewed by Devin Rousso.

  • Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h: Move PKShippingMethods SPI declarations out of MacOS specific #ifdefs.

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

8:22 AM Changeset in webkit [292469] by Simon Fraser
  • 35 edits in trunk

Unify the two ImageBuffer::create() functions, passing RenderingPurpose everywhere
https://bugs.webkit.org/show_bug.cgi?id=238851

Reviewed by Said Abou-Hallawa.

I need to extend RenderingPurpose flags to distinguish layer backing store buffers from
other kinds of buffers. Before doing so, collapse the two ImageBuffer::create() functions
together by combining RenderingMode and ShouldUseDisplayList into OptionSet<ImageBufferOptions>,
and passing RenderingPurpose everywhere.

Always passing RenderingPurpose is revealing, because it finds call sites in the
web process that can trigger accelerated buffers (e.g. webkit.org/b/238846).

Source/WebCore:

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::notifyFinished):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::copiedImage const):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createImageBuffer):

  • html/canvas/ImageBitmapRenderingContext.cpp:

(WebCore::ImageBitmapRenderingContext::setOutputBitmap):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRectWithClip):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::createImageBuffer const):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::create):

  • platform/graphics/RenderingMode.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::WTF_REQUIRES_LOCK):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawShadowLayer):

  • platform/graphics/SourceImage.cpp:

(WebCore::SourceImage::imageBuffer const):

  • platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::imageBufferFromPixelBuffer):
(WebCore::getConvertedPixelBuffer):

  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:

(WebCore::FETileSoftwareApplier::apply const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::imageBuffer const):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • svg/SVGFEImageElement.cpp:

(WebCore::createImageBuffer):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem):

Tools:

  • TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):

8:20 AM Changeset in webkit [292468] by youenn@apple.com
  • 10 edits in trunk

In case of COOP-based process swap, we need to make sure the document gets controlled by its matching service worker registration
https://bugs.webkit.org/show_bug.cgi?id=238800
<rdar://problem/91288849>

Reviewed by Chris Dumez.

Source/WebKit:

Make sure in case loader is transferred to call controlClient in the new WebProcess.
To do so, we also update page and frame IDs.
Covered by API test.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
8:11 AM Changeset in webkit [292467] by Oriol Brufau
  • 42 edits
    4 adds in trunk

[css] Turn -webkit-border-image into a shorthand
https://bugs.webkit.org/show_bug.cgi?id=237487

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update tests to take into account that '-webkit-border-image' is a shorthand.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

The '-webkit-border-image' property was considered to be a longhand,
sharing computed values with the various 'border-image-*'.

This patch turns it into a shorthand of 'border-image-*'.

Tests: fast/borders/border-image-legacy.html

fast/css/border-image-style-length.html
fast/css/getComputedStyle/computed-style.html
fast/css/getComputedStyle/computed-style-without-renderer.html
fast/css/image-set-parsing.html
fast/css/uri-token-parsing.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
svg/css/getComputedStyle-basic.xhtml

  • Sources.txt:

Add the new file CSSBorderImageWidthValue.cpp.

  • WebCore.xcodeproj/project.pbxproj:

Add the new files CSSBorderImageWidthValue.h and
CSSBorderImageWidthValue.cpp.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
When animating border-image-width, take into account that it can come
from -webkit-border-image, and thus override border widths.
Do not interpolate a value a does override border widths with another
value that does not.
Even if border-image-width accepts <length-percentage>, when overriding
border widths do not interpolate between a <length-percentage> and a
plain <length>, since only the latter are valid border widths.

  • css/CSSBorderImageWidthValue.cpp: Added.

(WebCore::CSSBorderImageWidthValue::CSSBorderImageWidthValue):
(WebCore::CSSBorderImageWidthValue::customCSSText const):
(WebCore::CSSBorderImageWidthValue::equals const):

  • css/CSSBorderImageWidthValue.h: Added.

Add CSSBorderImageWidthValue class, based on CSSBorderImageSliceValue.
It's a wrapper for a CSS_QUAD CSSPrimitiveValue, but with a bool that
indicates if the value will override border widths.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForNinePieceImage):
(WebCore::valueForReflection):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
Serialize border-image-width as empty string if it overrides border
widths, since its grammar doesn't allow this.
Serialize border-image as empty string if border-image-width overrides
border widths, since its grammar doesn't allow this.
Handle serialization of -webkit-border-image.

  • css/CSSProperties.json:

Turn -webkit-border-image into a shorthand of border-image-source,
border-image-slice, border-image-width, border-image-outset and
border-image-repeat.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImage):
(WebCore::CSSToStyleMap::mapNinePieceImageWidth):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

  • css/CSSToStyleMap.h:

Handle CSSBorderImageWidthValue values.
Remove old way of handling -webkit-border-image.

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isBorderImageWidthValue const):
Handle new CSSBorderImageWidthValue value.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderImagePropertyValue const):
(WebCore::StyleProperties::asText const):

  • css/StyleProperties.h:

Serialize border-image as empty string if border-image-width overrides
border widths, since its grammar doesn't allow this.
Handle serialization of -webkit-border-image.
Make cssText choose the right shorthand between border-image and
-webkit-border-image. Prefer the former if both are suitable.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBorderImageWidth):
(WebCore::consumeBorderImageComponents):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::consumeBorderImage):
(WebCore::CSSPropertyParser::parseShorthand):
Parse border-image-width as a CSSBorderImageWidthValue.
Parse -webkit-border-image as a shorthand.

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
Take into account that border widths may be overridden.

  • rendering/style/BorderData.h:

(WebCore::BorderData::borderLeftWidth const):
(WebCore::BorderData::borderRightWidth const):
(WebCore::BorderData::borderTopWidth const):
(WebCore::BorderData::borderBottomWidth const):
Add logic for overriding border widths. Same approach as 'border-style'
set to 'none' making the border widths compute to '0px'.

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::NinePieceImage):
(WebCore::NinePieceImage::Data::Data):
(WebCore::NinePieceImage::Data::create):
(WebCore::NinePieceImage::Data::operator== const):

  • rendering/style/NinePieceImage.h:

(WebCore::NinePieceImage::overridesBorderWidths const):
(WebCore::NinePieceImage::setOverridesBorderWidths):
(WebCore::NinePieceImage::copyBorderSlicesFrom):
Add flag for overriding border widths.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setBorderImageWidthOverridesBorderWidths):

  • rendering/style/RenderStyle.h:

Add method for setting flag to override border widths.

  • style/PropertyCascade.cpp:

(WebCore::Style::shouldApplyPropertyInParseOrder):
Stop deferring border image properties. That was previously needed since
-webkit-border-image was a longhand sharing a computed value with the
border-image longhands. No longer needed since -webkit-border-image is
now a horthand.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertBorderMask):
(WebCore::Style::BuilderConverter::convertReflection):
(WebCore::Style::BuilderConverter::convertBorderImage): Deleted.
Remove code no longer needed.

  • style/StyleBuilderCustom.h:

(WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):
(WebCore::Style::ApplyPropertyBorderImageModifier::applyValue):
Handle border-image-width as a CSSBorderImageWidthValue.

LayoutTests:

Update tests to take into account that '-webkit-border-image' is a shorthand.

  • fast/borders/border-image-legacy-expected.txt: Added.
  • fast/borders/border-image-legacy.html: Added.
  • fast/css/border-image-style-length-expected.txt:
  • fast/css/border-image-style-length.html:
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/resources/property-names.js:
  • fast/css/image-set-parsing-expected.txt:
  • fast/css/image-set-parsing.html:
  • fast/css/uri-token-parsing-expected.txt:
  • fast/css/uri-token-parsing.html:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
8:07 AM Changeset in webkit [292466] by ntim@apple.com
  • 6 edits in trunk

[:has() pseudo-class] Support invalidation for more input pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=238451

Reviewed by Antti Koivisto.

  • :indeterminate
  • :read-only
  • :read-write
  • :required
  • :optional

LayoutTests/imported/w3c:

Split the test in multiple subtests.

  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt:
  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html:

Source/WebCore:

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::parseAttribute):
(WebCore::HTMLFormControlElement::readOnlyStateChanged):
(WebCore::HTMLFormControlElement::requiredStateChanged):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setIndeterminate):

8:02 AM Changeset in webkit [292465] by Alan Bujtas
  • 6 edits in trunk

[CSS-Contain] Grid layout should take "contain: inline-size" into account when computing the grid item's logical width
https://bugs.webkit.org/show_bug.cgi?id=238850

Reviewed by Antti Koivisto.

Source/WebCore:

Ignore grid item's logical width when "contain: inline-size" is present (i.e. ignore descendant content in inline direction when sizing).

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::computeGridContainerIntrinsicSizes):
(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild const):
(WebCore::GridTrackSizingAlgorithm::advanceNextState):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat const):

LayoutTests:

7:33 AM Changeset in webkit [292464] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

REGRESSION(r292308): links to results is wrong for some tests
https://bugs.webkit.org/show_bug.cgi?id=238862

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-04-06
Reviewed by Youenn Fablet.

Since r292308 we generate the wrong links in the results for the tests that end with .https.html. This is because
the output_filename is expected to have the extension, that is removed before renturing the value. Since
r292308, the extension is removed first, so .https is considered the extension and removed too.

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

(TestResultWriter.output_filename):

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

(TestResultWriterTest.test_reftest_diff_image):
(TestResultWriterTest):
(TestResultWriterTest.test_output_filename):

7:19 AM Changeset in webkit [292463] by Oriol Brufau
  • 14 edits in trunk

[css] Turn -webkit-text-orientation into a legacy shorthand
https://bugs.webkit.org/show_bug.cgi?id=238356

Reviewed by Antti Koivisto.

Source/WebCore:

-webkit-text-orientation and text-orientation were both implemented
as longhands, just with a related-property flag so that declaration
blocks with both of them would use the one appearing last.

However, the logic for related-property wasn't always working well.
In bug 238350 I plan to merge it with shouldApplyPropertyInParseOrder(),
which has the same purpose and works better. But it's not suitable for
high priority properties like text-orientation.

So this patch turns -webkit-text-orientation into a shorthand that
expands into text-orientation.

-webkit-text-orientation continues accepting the legacy value
sideways-right, which is now mapped into sideways at parse time.
Previously this happened at computed-value time, but it implied that
serializing text-decoration could yield an invalid value.

Tests: fast/text/text-orientation-parse-competition.html

fast/text/text-orientation-parse-stylesheet.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator TextOrientation const):
Remove mapping of sideways-right into sideways, this is now
done at parse time. Also remove mapping of vertical-right into mixed
since vertical-right is a remnant of the past which has not been
considered valid syntax for years.

  • css/CSSProperties.json:

Turn -webkit-text-orientation into a shorthand of text-orientation.
Remove their related-property flags and a remnant of vertical-right.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
Add code for serializing the -webkit-text-orientation shorthand.

  • css/makeprop.pl:

Avoid a compile warning in getRelatedPropertyId() when no property has
the related-property flag.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
Remove -webkit-text-orientation from code which is only relevant for
longhands.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeLegacyTextOrientation):
(WebCore::CSSPropertyParser::parseShorthand):
Add parsing logic for -webkit-text-orientation as a shorthand.

  • css/parser/CSSPropertyParser.h:

Add parsing logic for -webkit-text-orientation as a shorthand.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueWebkitTextOrientation): Deleted.
Remove -webkit-text-orientation from code which is only relevant for
longhands.

LayoutTests:

  • fast/text/text-orientation-parse-competition-expected.txt:
  • fast/text/text-orientation-parse-competition.html:

Check that if a stylesheet specifies both -webkit-text-orientation and
text-orientation for the same element, the last specified one wins.

  • fast/text/text-orientation-parse-stylesheet-expected.txt:
  • fast/text/text-orientation-parse-stylesheet.html:

Check that only -webkit-text-orientation accepts sideways-right, and
that it's mapped to sideways at parse time.

6:33 AM Changeset in webkit [292462] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebCore

[TextureMapper] Clean up the GraphicsContextGLTextureMapperANGLE header
https://bugs.webkit.org/show_bug.cgi?id=238864

Reviewed by Carlos Garcia Campos.

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:

Remove two unused libgbm declarations and mark the class destructor as
virtual, which it is due to its inheritance.

6:29 AM Changeset in webkit [292461] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit

Media and WebRTC code uses ThreadMessageReceiverRefCounted with WorkQueues
https://bugs.webkit.org/show_bug.cgi?id=238858

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

Media and WebRTC code uses IPC::Connection::ThreadMessageReceiverRefCounted
to submit work to a WorkQueue. For this use-case, IPC::Connection has
IPC::Connection::WorkQueueMessageReceiver, which does the same.

This is work towards simplifying IPC::Connection by removing
ThreadMessageReceiverRefCounted.

No new tests, refactor.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::stopListeningForIPC):
(WebKit::LibWebRTCCodecsProxy::initialize):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::startListeningForIPC):
(WebKit::RemoteSampleBufferDisplayLayerManager::close):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThreadWithLock):
(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionAndDispatchToThread):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::stopListeningForIPC):
(WebKit::RemoteCaptureSampleManager::setConnection):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
5:36 AM Changeset in webkit [292460] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix GTK build after r292458

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::hostFileDescriptor):

4:17 AM Changeset in webkit [292459] by youenn@apple.com
  • 35 edits
    3 adds
    1 delete in trunk

Implement ServiceWorkerWindowClient.navigate
https://bugs.webkit.org/show_bug.cgi?id=238738

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt:

Source/WebCore:

Introduce a routine to navigate a Document.
Send FrameIdentifier as part of ServiceWorkerClientData.
Implement ServiceWorkerWindowClient::navigate by sending IPC to network process.

Test: http/wpt/service-workers/navigate-iframes-window-client.https.html

  • dom/Document.cpp:
  • dom/Document.h:
  • loader/FrameLoader.cpp:
  • workers/service/ServiceWorkerClientData.cpp:
  • workers/service/ServiceWorkerClientData.h:
  • workers/service/ServiceWorkerWindowClient.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServer.cpp:
  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerWorker.cpp:
  • workers/service/server/SWServerWorker.h:

Source/WebKit:

When receiving a request to navigate a client, send message to UIProcess.
UIProcess locates the WebFrameProxy which will send an IPC message to the WebProcess to do navigation.
We keep track of the navigation within WebFrameProxy.
In case of process swapping, we make sure to transfer the WebFrameProxy callback.
In case of policy decision to stop loads, we resolve the promise with an empty client.
A follow-up patch may reject the promise once the expected behavior will be clarified.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/ProvisionalPageProxy.cpp:
  • UIProcess/WebFrameProxy.cpp:
  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

LayoutTests:

  • http/wpt/service-workers/navigate-iframes-window-client.https-expected.txt: Added.
  • http/wpt/service-workers/navigate-iframes-window-client.https.html: Added.
  • http/wpt/service-workers/navigate-window-client-worker.js: Added.
  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt: Removed.
  • platform/mac-wk2/TestExpectations:
4:16 AM Changeset in webkit [292458] by zan@falconsigh.net
  • 14 edits in trunk/Source/WebKit

[Unix] Adopt UnixFileDescriptor in IPC::Attachment
https://bugs.webkit.org/show_bug.cgi?id=238801

Reviewed by Carlos Garcia Campos.

Adopt WTF::UnixFileDescriptor for usage in IPC::Attachment, in place of
a raw integer value. This simplifies move operations and destruction of
this value.

The two relevant constructors are changed to expect a UnixFileDescriptor
rvalue, and they're also made explicit. The file descriptor object is
accessible through both a const and a non-const getter, which allows the
user to read or release the file descriptor contained there. There's
also a release method that returns the contained UnixFileDescriptor.

The releaseFileDescriptor() and fileDescriptor() methods, previously
releasing or returning the contained integer value of the descriptor.
Call sites for these methods as well as the old-form constructors are
adjusted to the new variants.

  • Platform/IPC/Attachment.h:

(IPC::Attachment::isNull const):
(IPC::Attachment::fd const):
(IPC::Attachment::release):
(IPC::Attachment::releaseFileDescriptor): Deleted.
(IPC::Attachment::fileDescriptor const): Deleted.

  • Platform/IPC/unix/AttachmentUnix.cpp:

(IPC::Attachment::Attachment):
(IPC::Attachment::operator=):
(IPC::Attachment::~Attachment): Deleted.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):
(IPC::Connection::sendOutputMessage):
(IPC::Connection::createConnectionIdentifierPair):

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::Handle::isNull const):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::createHandle):

  • Shared/WebCoreArgumentCoders.cpp:

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

  • Shared/glib/UserMessage.cpp:

(WebKit::UserMessage::encode const):
(WebKit::UserMessage::decode):

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::hostFileDescriptor):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/GPU/GPUProcessConnectionInfo.h:

(WebKit::GPUProcessConnectionInfo::identifier const):
(WebKit::GPUProcessConnectionInfo::releaseIdentifier):

  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::setFrontendConnection):

  • WebProcess/Network/NetworkProcessConnectionInfo.h:

(WebKit::NetworkProcessConnectionInfo::identifier const):
(WebKit::NetworkProcessConnectionInfo::releaseIdentifier):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::hostFileDescriptor const):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

3:13 AM Changeset in webkit [292457] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add DoNotHaveTagRegisters mode to unboxDouble
https://bugs.webkit.org/show_bug.cgi?id=238018

Patch by Xan Lopez <Xan Lopez> on 2022-04-06
Reviewed by Yusuke Suzuki.

Wasm cannot use unboxDouble as-is because
GPRInfo::numberTagRegister is not available. Add a
DoNotHaveTagRegister mode so we can get rid of some duplicated
code.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::unboxDoubleWithoutAssertions):
(JSC::AssemblyHelpers::unboxDouble):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

3:05 AM Changeset in webkit [292456] by youenn@apple.com
  • 15 edits in trunk

ServiceWorkerClients.openWindow should not need to get all clients asynchronously to resolve its promise
https://bugs.webkit.org/show_bug.cgi?id=238503

Reviewed by Chris Dumez.

Source/WebCore:

Move matching client in openWindow in network process as an optimization.
This also prevents some race conditions where the opened page could quickly navigate to another page.
Also have a code path that rejects the openWindow promise, and trigger that code path in case of internal error.

Covered by existing and API test.

  • workers/WorkerGlobalScope.h:
  • workers/service/ServiceWorkerClients.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServer.cpp:
  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.h:

Source/WebKit:

Add logic to get the client from its page ID.
In case of internal error case, trigger promise rejection instead of promise resolution with null.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
2:16 AM Changeset in webkit [292455] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Remove some @apply leftover code
https://bugs.webkit.org/show_bug.cgi?id=238857

Reviewed by Tim Nguyen.

@apply is not a thing.

  • css/CSSVariableData.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeDeclarationList):

  • css/parser/CSSParserImpl.h:
  • css/parser/CSSVariableParser.cpp:

(WebCore::classifyBlock):
(WebCore::isValidVariableReference):
(WebCore::isValidConstantReference):
(WebCore::classifyVariableRange):
(WebCore::CSSVariableParser::containsValidVariableReferences):
(WebCore::CSSVariableParser::parseDeclarationValue):

2:04 AM Changeset in webkit [292454] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Nested includes do not change offlineasm hash output
https://bugs.webkit.org/show_bug.cgi?id=237779

Reviewed by Mark Lam.

The Ruby tooling around offlineasm can produce on their output a line containing a
checksum which depends on the input files processed. This is used to avoid redoing
in case the source files have not been changed since the last run. While there is
code to scan the "include" directives in the main input file and take the included
files into account for checksum calculation, included files themselves were not being
further processed for the second or additional levels of "include:. This adds the
missing recursive processing of "include" directives in order to take nested includes
into account.

  • offlineasm/parser.rb: Process nested includes recursively for checksum calculation.
1:52 AM Changeset in webkit [292453] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC]Squash alignment warning
https://bugs.webkit.org/show_bug.cgi?id=238670

Unreviewed gardening.

Squash a "cast increases required alignment of target type" due to
poiner arithmetic via char*

Patch by Geza Lore <Geza Lore> on 2022-04-06

  • wasm/WasmSignature.h:

(JSC::Wasm::Signature::storage):

12:48 AM Changeset in webkit [292452] by Lauro Moura
  • 4 edits in trunk/Tools

[Flatpak SDK][AT-SPI] Use xdg-dbus-proxy to expose the a11y bus
https://bugs.webkit.org/show_bug.cgi?id=238856

Reviewed by Carlos Garcia Campos.

Expose the host at-spi socket with xdg-dbus-proxy to avoid at-spi
bailing out by not being able to connect to the a11y bus.

Also add the exported address to the environement of the tests.

Based on the original patch by Patrick Griffis with minor updates.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.setup_environ_for_server):

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_a11y_proxy):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.get_user_runtime_dir): Deleted.

12:05 AM Changeset in webkit [292451] by youenn@apple.com
  • 6 edits in trunk/Source

Remove Notification::m_relatedNotificationIdentifier
https://bugs.webkit.org/show_bug.cgi?id=238603

Reviewed by Brady Eidson.

Source/WebCore:

m_relatedNotificationIdentifier was added as a temporary workaround for persistent notifications that are recreated in other contexts.
To directly support this case, Notification is no longer a Identified<UUID> and instead has a m_identifier.
When created from JS, Notification::m_identifier is generated.
When created from NotificationData, Notification::m_identifier is copied from NotificationData.

Covered by existing tests.

  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:

Source/WebKit:

Directly use identifier now that we correctly reuse them when needed.
We no longer store persistent notifications in the map since we do not use the map for click/close events.

  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.h:

Apr 5, 2022:

11:06 PM Changeset in webkit [292450] by ysuzuki@apple.com
  • 5 edits in trunk/Source/bmalloc

[libpas] Run TLC decommit rarely
https://bugs.webkit.org/show_bug.cgi?id=238855

Reviewed by Saam Barati.

We were running libpas TLC decommit every time. But it is too frequent. We should capture IsoHeap allocation pattern
with much more longer period, and perform TLC decommit in such a low-frequency rate.
This patch changes it so that we run it only once a 128 scavenger run. It is roughly once a 13 seconds.

  • libpas/src/libpas/pas_scavenger.c:

(scavenger_thread_main):
(pas_scavenger_clear_all_caches):

  • libpas/src/libpas/pas_thread_local_cache.c:

(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/test/TLCDecommitTests.cpp:

(std::testTLCDecommit):
(std::testTLCDecommitThenDestroyImpl):
(std::testTLCDecommitThenDeallocate):

10:30 PM Changeset in webkit [292449] by commit-queue@webkit.org
  • 17 edits
    2 adds in trunk

[WebXR] Add a new enum type to represent session features
https://bugs.webkit.org/show_bug.cgi?id=238837

Patch by Ada Chan <adachan@apple.com> on 2022-04-05
Reviewed by Dean Jackson.

Source/WebCore:

Test: http/wpt/webxr/xrDevice_requestSession_hand_tracking_feature.https.html

Add a new enum type, PlatformXR::SessionFeature, to represent session features.
It includes the ReferenceSpaceTypes and the hand-tracking feature for now.

Fix the algorithm to resolve the requested features to recognize hand-tracking
as a feature that requires explicit consent.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::referenceSpaceIsSupported const):
Convert the XRReferenceSpaceType to PlatformXR::SessionFeature first before
checking against the feature list.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject const):
Use PlatformXR::parseSessionFeatureDescriptor() to parse the feature string.
(WebCore::featureRequiresExplicitConsent):
Returns true for the hand tracking feature.
(WebCore::WebXRSystem::isFeatureSupported const):
Check whether the device supports the feature. For hand-tracking, make sure
the hand input module setting is enabled.
(WebCore::WebXRSystem::resolveRequestedFeatures const):
Update the string conversion between JS and WTF::String now that features cannot
be parsed as XRReferenceSpaceType enum. If the feature requires explicit consent
and it's not already in the granted list, add it to consentRequired or consentOptional
depending on whether it's specified as required.
(WebCore::WebXRSystem::resolveFeaturePermissions const):
If a feature is required but not given a clear signal of user intent, the session
should not be created.
(WebCore::WebXRSystem::DummyInlineDevice::DummyInlineDevice):
Updated to use PlatformXR::SessionFeature.

  • Modules/webxr/WebXRSystem.h:
  • platform/xr/PlatformXR.h:

(PlatformXR::sessionFeatureFromReferenceSpaceType):
(PlatformXR::parseSessionFeatureDescriptor):
Parse feature string to return PlatformXR::SessionFeature.
(PlatformXR::sessionFeatureDescriptor):
Return feature string from PlatformXR::SessionFeature.
(PlatformXR::Device::supports const):
Read from the m_supportedFeaturesMap.
(PlatformXR::Device::setSupportedFeatures):
Write to the m_supportedFeaturesMap.
(PlatformXR::Device::supportedFeatures const):
Read from the m_supportedFeaturesMap.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::collectSupportedFeatures const):
Updated to use PlatformXR::SessionFeature.

  • testing/WebXRTest.cpp:

(WebCore::WebXRTest::simulateDeviceConnection):
Updated to parse feature string to PlatformXR::SessionFeature.

Source/WebKit:

Add a new _WKXRSessionFeatureFlags entry for hand-tracking.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/XR/XRDeviceProxy.cpp:

(WebKit::XRDeviceProxy::XRDeviceProxy):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::toWKXRSessionFeatureFlags):
(WebKit::toPlatformXRFeatures):

  • UIProcess/XR/PlatformXRSystem.cpp:

(WebKit::PlatformXRSystem::requestPermissionOnSessionFeatures):

  • UIProcess/XR/PlatformXRSystem.h:
  • UIProcess/XR/PlatformXRSystem.messages.in:

LayoutTests:

Test listing "hand-tracking" as an optional feature while the device does not
support it allows the session to be created.
Test listing "hand-tracking" as a required feature while the device does not
support it would not create the session.

  • http/wpt/webxr/resources/webxr_test_constants_single_view.js:
  • http/wpt/webxr/xrDevice_requestSession_hand_tracking_feature.https-expected.txt: Added.
  • http/wpt/webxr/xrDevice_requestSession_hand_tracking_feature.https.html: Added.
9:07 PM Changeset in webkit [292448] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[iOS] Update the context menu item glyph for visual look up
https://bugs.webkit.org/show_bug.cgi?id=238853

Reviewed by Devin Rousso.

Switch from info.circle to the (private) symbol info.circle.and.sparkles, for the icon next to the Look Up
item when long pressing images that have visual look up results.

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

(+[_WKElementAction imageForElementActionType:]):

8:41 PM Changeset in webkit [292447] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Use inlined assertion for CodeBlock type
https://bugs.webkit.org/show_bug.cgi?id=238849

Reviewed by Michael Saboff.

We introduced probeDebug-based CodeBlock assertion, but it is too slow and causing timeout on Debug JSC tests.
Instead, we use inlined assertion which is much faster to prevent these Debug build timeout.

  • assembler/AbortReason.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileEntry):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertCodeBlockOnCallFrameWithType):
(JSC::AssemblyHelpers::jitAssertCodeBlockOnCallFrameIsOptimizingJIT):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::jitAssertCodeBlockOnCallFrameWithType):
(JSC::AssemblyHelpers::jitAssertCodeBlockOnCallFrameIsOptimizingJIT):

  • jit/JIT.cpp:

(JSC::JIT::compileAndLinkWithoutFinalizing):

  • jit/JITCode.h:

(JSC::JITCode::offsetOfJITType):

8:27 PM Changeset in webkit [292446] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Eliminate delays for processing live regions and modal notifications.
https://bugs.webkit.org/show_bug.cgi?id=238833
<rdar://problem/91314023>

Reviewed by Chris Fleizach.

We had arbitrary delays to process notifications for live regions and
modal elements. This is no longer necessary and may cause problems
updating the isolated tree that depends on these notifications being
processed in a timely manner.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleChildrenChanged):
(WebCore::AXObjectCache::postLiveRegionChangeNotification):
(WebCore::AXObjectCache::focusModalNode):

5:54 PM Changeset in webkit [292445] by ysuzuki@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

[JSC] Strictly annotate pointers with TrustedImmPtr in CCallHelpers
https://bugs.webkit.org/show_bug.cgi?id=238827

Reviewed by Mark Lam.

This allows us to detect pointer use in DFG easy. This is important in unlinked DFG development.
We also consistently use m_graph instead of m_jit.graph() in DFG::SpeculativeJIT.

We also purge CodeBlock* embedding in DFG code completely. Now we load it from the cfr
instead (compileLogShadowChickenTail and callOperationWithCallFrameRollbackOnException).

  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::emitOSRExitFuzzCheck):
(JSC::DFG::SpeculativeJIT::speculationCheck):
(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::useChildren):
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileLoopHint):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::createOSREntries):
(JSC::DFG::SpeculativeJIT::linkOSREntries):
(JSC::DFG::SpeculativeJIT::compileCheckTraps):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByVal):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::compileClampDoubleToByte):
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::nextBlock):
(JSC::DFG::SpeculativeJIT::masqueradesAsUndefinedWatchpointIsStillValid):
(JSC::DFG::SpeculativeJIT::identifierUID):
(JSC::DFG::SpeculativeJIT::callOperationWithCallFrameRollbackOnException):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::compileToBoolean):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::fillSpeculateBigInt32):
(JSC::DFG::SpeculativeJIT::compileCompareEqPtr):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::compileToBoolean):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithInt52Size):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):
(JSC::DFG::SpeculativeJIT::compileDateGet):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValImpl):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeysOrObjectGetOwnPropertyNames):
(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileNotifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • jit/CCallHelpers.cpp:
  • jit/CCallHelpers.h:

(JSC::CCallHelpers::std::is_pointer<CURRENT_ARGUMENT_TYPE>::value): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::emit_op_debug):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_new_regexp):
(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_profile_type):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_getter_by_id):
(JSC::JIT::emit_op_put_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emitWriteBarrier):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

5:24 PM Changeset in webkit [292444] by Elliott Williams
  • 3 edits in trunk/Source/WebCore/PAL

[XCBuild] PAL: Add headers-only dependency on WebGPU
https://bugs.webkit.org/show_bug.cgi?id=238646

Reviewed by Alexey Proskuryakov.

Lots of includes of WebGPU in pal/graphics/WebGPU/Impl, so the build system needs to know to
copy its headers before building PAL.

Clean up a file reference to a header that was removed in
https://commits.webkit.org/247364@main

  • PAL.xcodeproj/project.pbxproj:
5:08 PM Changeset in webkit [292443] by Russell Epstein
  • 2 edits in branches/safari-614.1.9-branch/Source/WebCore

Cherry-pick r292430. rdar://problem/91293025

[Cocoa] Video is sometimes not visible after r292049
https://bugs.webkit.org/show_bug.cgi?id=238826

Reviewed by Jer Noble.

RenderVideo::willBeDestroyed calls MediaPlayer::setPageIsVisible, which causes
MediaPlayerPrivateAVFoundationObjC::platformSetVisible to hide the AVPlayerLayer.
HTMLMediaElement::visibilityStateChanged is the only other thing that calls
MediaPlayer::setPageIsVisible, and it only calls it when the page visibility changes,
so if that doesn't happen the AVPlayerLayer is not shown when the renderer is
recreated.

  • rendering/RenderVideo.cpp: (WebCore::RenderVideo::willBeDestroyed): Don't call MediaPlayer::setPageIsVisible(false), the page visibility has not changed.

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

5:08 PM Changeset in webkit [292442] by Russell Epstein
  • 3 edits in branches/safari-614.1.9-branch/Source/WebKit

Cherry-pick r292426. rdar://problem/90808910

Verify generalStorageDirectory is not in use when creating WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=238686
rdar://90808910

Reviewed by Chris Dumez.

In r290739, we added assertion to verify that no two sessions share the same general storage directory. The
assertion is hit on macOS as shown in rdar://90808910. However, because we checked the directories when
launching new network process, not when creating WebsiteDataStore, the backtraces do not give much information
about when the problematic WebsiteDataStore (using the generalStorageDirectory that's already used by another
WebsiteDataStore) is created. To help debug the issue, let's move the assertion to the constructor of
WebsiteDataStore.

  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::activeGeneralStorageDirectories): (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::~WebsiteDataStore):

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

4:52 PM Changeset in webkit [292441] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression(r291729) The result of logging $0 to the console shows overlapping $0 and $[n] after the node
https://bugs.webkit.org/show_bug.cgi?id=238843

Reviewed by Devin Rousso.

r291729 was missing a check that the DOMTreeOutline is actually supposed to show an indicator for the
inspected node, which means other uses of DOMTreeOutline (the console, the sources tab, etc.) were showing the
$0 indicator as well.

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.update):

4:28 PM Changeset in webkit [292440] by stephan.szabo@sony.com
  • 6 edits in trunk/Source

[PlayStation[ Fix build break after r292408
https://bugs.webkit.org/show_bug.cgi?id=238840

Unreviewed build fix.

Source/WebCore:

  • platform/LocalizedStrings.cpp:
  • platform/network/playstation/CurlSSLHandlePlayStation.cpp:
  • platform/playstation/UserAgentPlayStation.cpp:

Source/WebKit:

  • UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:
4:19 PM Changeset in webkit [292439] by Alan Coon
  • 1 copy in tags/Safari-613.2.5.0.1

Tag Safari-613.2.5.0.1.

4:18 PM Changeset in webkit [292438] by Alan Coon
  • 3 edits in branches/safari-613.2.5.0-branch/Source/WebKit

Cherry-pick r292431. rdar://problem/90677955

Revert r291598
https://bugs.webkit.org/show_bug.cgi?id=238842
<rdar://90677955>

Reviewed by Geoff Garen.

It caused some problems and needs further analysis.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::createWebSocketTask):

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

4:16 PM Changeset in webkit [292437] by Alan Coon
  • 9 edits in branches/safari-613.2.5.0-branch/Source

Versioning.

WebKit-7613.2.5.0.1

4:05 PM Changeset in webkit [292436] by Alan Coon
  • 1 copy in tags/Safari-614.1.8.4

Tag Safari-614.1.8.4.

4:02 PM Changeset in webkit [292435] by Alan Coon
  • 3 edits in branches/safari-614.1.8-branch/Source/WebKit

Cherry-pick r292431. rdar://problem/91320393

Revert r291598
https://bugs.webkit.org/show_bug.cgi?id=238842
<rdar://90677955>

Reviewed by Geoff Garen.

It caused some problems and needs further analysis.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::createWebSocketTask):

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

4:00 PM Changeset in webkit [292434] by Alan Coon
  • 1 copy in branches/safari-613.2.5.0-branch

New branch.

3:33 PM Changeset in webkit [292433] by Elliott Williams
  • 2 edits in trunk/Source/WebKitLegacy

Fix STP build error "no such file or directory: 'Technology'"
https://bugs.webkit.org/show_bug.cgi?id=238834
<rdar://91271288>

Reviewed by Alexey Proskuryakov.

  • scripts/migrate-header-rule: Don't generate an export list when

building for Mac. We won't use it, and this script does not support
paths in FRAMEWORK_SEARCH_PATHS containing spaces.

3:31 PM Changeset in webkit [292432] by Matt Woodrow
  • 9 edits in trunk

Support transitions/animations on grid-template-columns|rows
https://bugs.webkit.org/show_bug.cgi?id=204580
LayoutTests/imported/w3c:

Reviewed by Antoine Quint.

Update expectation files for newly passing tests.

  • web-platform-tests/css/css-grid/animation/grid-template-columns-interpolation-expected.txt:
  • web-platform-tests/css/css-grid/animation/grid-template-rows-interpolation-expected.txt:

Source/WebCore:

Reviewed by Antoine Quint.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::canInterpolate):
(WebCore::blendFunc):

GridTrackLists can be interpolated if they are the same length, and if any repeat() functions
have the same length and count/type.
Adds function for determining if two GridTrackLists can be interpolated, and function for interpolating
per-entry if so.
Adds blending helpers for GridTrackSize and GridLength.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

Remove empty line name sets from the serialized computed style in order to satisfy the shortest equivalent
serialization principle.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::createGridTrackList):

Ensures computed track lists are stored in the canonical format (alternating between line name sets
and track sizes, starting and ending with a line name set), in order to make the interpolation
code simpler.

LayoutTests:

Reviewed by Antoine Quint.

3:16 PM Changeset in webkit [292431] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Revert r291598
https://bugs.webkit.org/show_bug.cgi?id=238842
<rdar://90677955>

Reviewed by Geoff Garen.

It caused some problems and needs further analysis.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):

2:56 PM Changeset in webkit [292430] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Video is sometimes not visible after r292049
https://bugs.webkit.org/show_bug.cgi?id=238826

Reviewed by Jer Noble.

RenderVideo::willBeDestroyed calls MediaPlayer::setPageIsVisible, which causes
MediaPlayerPrivateAVFoundationObjC::platformSetVisible to hide the AVPlayerLayer.
HTMLMediaElement::visibilityStateChanged is the only other thing that calls
MediaPlayer::setPageIsVisible, and it only calls it when the page visibility changes,
so if that doesn't happen the AVPlayerLayer is not shown when the renderer is
recreated.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::willBeDestroyed): Don't call MediaPlayer::setPageIsVisible(false),
the page visibility has not changed.

2:52 PM Changeset in webkit [292429] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Unreviewed, reverting r291821.
https://bugs.webkit.org/show_bug.cgi?id=238839

Invalid fix.

Reverted changeset:

"REGRESSION(r286590): Links with URL schemes are not clickable
in Mail"
https://bugs.webkit.org/show_bug.cgi?id=238262
https://commits.webkit.org/r291821

2:48 PM Changeset in webkit [292428] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Avoid unnecessary String constructions in IdentifiersFactory.cpp
https://bugs.webkit.org/show_bug.cgi?id=238819

Reviewed by Geoffrey Garen.

  • inspector/IdentifiersFactory.cpp:

(Inspector::addPrefixToIdentifier):
(Inspector::IdentifiersFactory::createIdentifier):
(Inspector::IdentifiersFactory::requestId):

2:38 PM Changeset in webkit [292427] by Alan Coon
  • 1 copy in tags/Safari-614.1.7.6

Tag Safari-614.1.7.6.

2:38 PM Changeset in webkit [292426] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Verify generalStorageDirectory is not in use when creating WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=238686
rdar://90808910

Reviewed by Chris Dumez.

In r290739, we added assertion to verify that no two sessions share the same general storage directory. The
assertion is hit on macOS as shown in rdar://90808910. However, because we checked the directories when
launching new network process, not when creating WebsiteDataStore, the backtraces do not give much information
about when the problematic WebsiteDataStore (using the generalStorageDirectory that's already used by another
WebsiteDataStore) is created. To help debug the issue, let's move the assertion to the constructor of
WebsiteDataStore.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::activeGeneralStorageDirectories):
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):

2:37 PM Changeset in webkit [292425] by Alan Coon
  • 9 edits in branches/safari-614.1.8-branch/Source

Versioning.

WebKit-7614.1.8.4

2:32 PM Changeset in webkit [292424] by Alan Coon
  • 2 edits in branches/safari-614.1.7-branch/Source/WebKit

Cherry-pick r291823. rdar://problem/91315158

REGRESSION(STP142): "A JavaScript exception occured: Can't find variable: utils" from SafariDriver
https://bugs.webkit.org/show_bug.cgi?id=238335

Reviewed by Devin Rousso.

Following r289467, we can't just copy the WebDriver atom scripts to the build products, since they now need to
have utils.js in any script that uses the utils namespace. The WebKit.framework copy of these scripts are
later used while building safaridriver, so they need to include the scripts as well.

  • WebKit.xcodeproj/project.pbxproj:

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

2:30 PM Changeset in webkit [292423] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed GTK build fix after r292408.

  • Platform/unix/LoggingUnix.cpp:

(WebKit::logLevelString):

2:27 PM Changeset in webkit [292422] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Make subtrees collapsible in the output of the AXLogger streamSubtree.
https://bugs.webkit.org/show_bug.cgi?id=238829
<rdar://problem/91310566>

Reviewed by Chris Fleizach.

Moved the TextStream::GroupScope from the method logging an individual
object to the method logging the hierarchy. This allows to collapse the
entire subtree rooted at a given object.

  • accessibility/AXLogger.cpp:

(WebCore::streamAXCoreObject):
(WebCore::streamSubtree):

2:21 PM Changeset in webkit [292421] by Alan Coon
  • 9 edits in branches/safari-614.1.7-branch/Source

Versioning.

WebKit-7614.1.7.6

2:10 PM Changeset in webkit [292420] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ Mac ] accessibility/mac/expanded-notification.html is a flaky text failure

https://bugs.webkit.org/show_bug.cgi?id=238830

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:45 PM Changeset in webkit [292419] by ntim@apple.com
  • 153 edits
    4 copies
    24 moves
    74 adds in trunk/LayoutTests

Re-import css/selectors WPT
https://bugs.webkit.org/show_bug.cgi?id=238820

Reviewed by Simon Fraser.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/ef2b67e4a79e8f8d37556533e6dc715d2c692a78

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/selectors/any-link-dynamic-001-ref.html: Added.
  • web-platform-tests/css/selectors/child-indexed-no-parent-expected.html: Added.
  • web-platform-tests/css/selectors/child-indexed-no-parent-ref.html: Added.
  • web-platform-tests/css/selectors/child-indexed-no-parent.html: Added.
  • web-platform-tests/css/selectors/dir-selector-auto-direction-change-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-auto-direction-change-001-expected.xht.
  • web-platform-tests/css/selectors/dir-selector-auto-direction-change-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-auto-direction-change-001.html.
  • web-platform-tests/css/selectors/dir-selector-auto-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-auto-expected.txt.
  • web-platform-tests/css/selectors/dir-selector-auto.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-auto.html.
  • web-platform-tests/css/selectors/dir-selector-change-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-001-expected.html.
  • web-platform-tests/css/selectors/dir-selector-change-001-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-003-expected.html.
  • web-platform-tests/css/selectors/dir-selector-change-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-001.html.
  • web-platform-tests/css/selectors/dir-selector-change-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-002-expected.xht.
  • web-platform-tests/css/selectors/dir-selector-change-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-002.html.
  • web-platform-tests/css/selectors/dir-selector-change-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-001-expected.html.
  • web-platform-tests/css/selectors/dir-selector-change-003-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-001-expected.html.
  • web-platform-tests/css/selectors/dir-selector-change-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-003.html.
  • web-platform-tests/css/selectors/dir-selector-change-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-004-expected.html.
  • web-platform-tests/css/selectors/dir-selector-change-004-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-004-expected.html.
  • web-platform-tests/css/selectors/dir-selector-change-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-change-004.html.
  • web-platform-tests/css/selectors/dir-selector-ltr-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-ltr-001-expected.xht.
  • web-platform-tests/css/selectors/dir-selector-ltr-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-ltr-001.html.
  • web-platform-tests/css/selectors/dir-selector-ltr-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-ltr-002-expected.xht.
  • web-platform-tests/css/selectors/dir-selector-ltr-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-ltr-002.html.
  • web-platform-tests/css/selectors/dir-selector-ltr-003-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-ltr-003-expected.xht.
  • web-platform-tests/css/selectors/dir-selector-ltr-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-ltr-003.html.
  • web-platform-tests/css/selectors/dir-selector-querySelector-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-querySelector-expected.txt.
  • web-platform-tests/css/selectors/dir-selector-querySelector.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-querySelector.html.
  • web-platform-tests/css/selectors/dir-selector-rtl-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-rtl-001-expected.xht.
  • web-platform-tests/css/selectors/dir-selector-rtl-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-rtl-001.html.
  • web-platform-tests/css/selectors/dir-selector-white-space-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001-expected.html.
  • web-platform-tests/css/selectors/dir-selector-white-space-001-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001-expected.html.
  • web-platform-tests/css/selectors/dir-selector-white-space-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001.html.
  • web-platform-tests/css/selectors/dir-style-01-ref.html: Added.
  • web-platform-tests/css/selectors/dir-style-01a-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-01a.html: Added.
  • web-platform-tests/css/selectors/dir-style-01b-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-01b.html: Added.
  • web-platform-tests/css/selectors/dir-style-02-ref.html: Added.
  • web-platform-tests/css/selectors/dir-style-02a-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-02a.html: Added.
  • web-platform-tests/css/selectors/dir-style-02b-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-02b.html: Added.
  • web-platform-tests/css/selectors/dir-style-03-ref.html: Added.
  • web-platform-tests/css/selectors/dir-style-03a-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-03a.html: Added.
  • web-platform-tests/css/selectors/dir-style-03b-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-03b.html: Added.
  • web-platform-tests/css/selectors/dir-style-04-expected.html: Added.
  • web-platform-tests/css/selectors/dir-style-04-ref.html: Added.
  • web-platform-tests/css/selectors/dir-style-04.html: Added.
  • web-platform-tests/css/selectors/first-letter-flag-001-ref.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-001-ref.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-002-ref.html: Added.
  • web-platform-tests/css/selectors/floating-first-letter-ref.html: Added.
  • web-platform-tests/css/selectors/focus-display-none-001.html:
  • web-platform-tests/css/selectors/focus-within-001-ref.html: Added.
  • web-platform-tests/css/selectors/focus-within-006-ref.html: Added.
  • web-platform-tests/css/selectors/focus-within-007-ref.html: Added.
  • web-platform-tests/css/selectors/focus-within-011-expected.html: Added.
  • web-platform-tests/css/selectors/focus-within-011-ref.html: Added.
  • web-platform-tests/css/selectors/focus-within-011.html: Added.
  • web-platform-tests/css/selectors/focus-within-012-expected.html: Added.
  • web-platform-tests/css/selectors/focus-within-012-ref.html: Added.
  • web-platform-tests/css/selectors/focus-within-012.html: Added.
  • web-platform-tests/css/selectors/focus-within-013-expected.html: Added.
  • web-platform-tests/css/selectors/focus-within-013-ref.html: Added.
  • web-platform-tests/css/selectors/focus-within-013.html: Added.
  • web-platform-tests/css/selectors/focus-within-display-none-001.html:
  • web-platform-tests/css/selectors/focus-within-shadow-001-ref.html: Added.
  • web-platform-tests/css/selectors/invalidation/class-id-attr-expected.html: Added.
  • web-platform-tests/css/selectors/invalidation/class-id-attr-ref.html: Added.
  • web-platform-tests/css/selectors/invalidation/class-id-attr.html: Added.
  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/location-pseudo-classes-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/location-pseudo-classes-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/sheet-going-away-002-ref.html: Added.
  • web-platform-tests/css/selectors/invalidation/user-action-pseudo-classes-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/user-action-pseudo-classes-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/w3c-import.log:
  • web-platform-tests/css/selectors/is-where-pseudo-elements-ref.html: Added.
  • web-platform-tests/css/selectors/is-where-visited-ref.html: Added.
  • web-platform-tests/css/selectors/nesting-ref.html: Added.
  • web-platform-tests/css/selectors/not-links-ref.html: Added.
  • web-platform-tests/css/selectors/of-type-selectors-ref.xhtml: Added.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-1.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-10.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-11.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-13.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-14.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-144.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-148.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-149.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-149b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-14b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-14c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-14d.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-14e.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-15.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-150.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-151.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-152.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-154.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-155.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-155a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-155b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-155c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-155d.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-156.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-156b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-156c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-157.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-158.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-15b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-160.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-166.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-166a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-167.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-167a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-168.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-168a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-169.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-169a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-170.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-170a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-170b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-170c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-170d.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-175a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-175b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-175c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-176.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-177b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-178.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-179.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-179a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-180a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-181.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-183.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184-ref.xht: Added.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184d.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184e.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-184f.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-2.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-21b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-21c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-22.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-25.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-27.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-27a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-27b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-28.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-28b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-29.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-29b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-30.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-31.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-32.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-33.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-34.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-35.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-36.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-37.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-38.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-39.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-39a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-39b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-39c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-3a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-4.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-41.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-41a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-42.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-42a.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-43.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-43b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-44.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-44b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-44c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-44d.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-45.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-45b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-45c.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-46.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-46b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-5.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-54.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-55.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-56.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-59.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-6.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-60.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-66b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-67.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-7.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-70.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-72.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-72b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-73.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-73b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-74.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-74b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-75.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-75b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-76.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-76b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-77.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-77b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-78.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-78b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-79.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-7b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-8.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-80.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-81.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-81b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-82.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-82b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-83-ref.xml: Added.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-86.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-87.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-87b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-88.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-88b.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-89.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-9.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-90.xml:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-90b.xml:
  • web-platform-tests/css/selectors/old-tests/w3c-import.log:
  • web-platform-tests/css/selectors/remove-hovered-element-ref.html: Added.
  • web-platform-tests/css/selectors/selector-placeholder-shown-type-change-001-ref.html: Added.
  • web-platform-tests/css/selectors/selector-placeholder-shown-type-change-002-ref.html: Added.
  • web-platform-tests/css/selectors/selector-placeholder-shown-type-change-003-ref.html: Added.
  • web-platform-tests/css/selectors/selector-read-write-type-change-001-ref.html: Added.
  • web-platform-tests/css/selectors/selector-read-write-type-change-002-ref.html: Added.
  • web-platform-tests/css/selectors/selector-required-ref.html: Added.
  • web-platform-tests/css/selectors/selector-required-type-change-001-ref.html: Added.
  • web-platform-tests/css/selectors/selector-required-type-change-002-ref.html: Added.
  • web-platform-tests/css/selectors/selector-structural-pseudo-root-ref.html: Added.
  • web-platform-tests/css/selectors/selectors-attr-white-space-001-ref.html: Added.
  • web-platform-tests/css/selectors/selectors-empty-001-ref.xml: Added.
  • web-platform-tests/css/selectors/selectors-namespace-001-ref.xml: Added.
  • web-platform-tests/css/selectors/sharing-in-svg-use-ref.html: Added.
  • web-platform-tests/css/selectors/visited-inheritance-expected.html: Added.
  • web-platform-tests/css/selectors/visited-inheritance-ref.html: Added.
  • web-platform-tests/css/selectors/visited-inheritance.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:
  • web-platform-tests/css/selectors/xml-class-selector-ref.xml: Added.

LayoutTests:

1:24 PM Changeset in webkit [292418] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Avoid unnecessary traversal when updating list markers
https://bugs.webkit.org/show_bug.cgi?id=238795

Reviewed by Anders Carlsson.

This code could use a full rewrite but there are also some simple optimizations that can be done.

  • rendering/RenderListItem.cpp:

(WebCore::nextListItemHelper):

Don't advance into non-rendered subtrees. We won't find any renderers there.

1:16 PM Changeset in webkit [292417] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Implement faster lookup of HTML tags in the HTML parser
https://bugs.webkit.org/show_bug.cgi?id=238804

Reviewed by Geoffrey Garen.

Implement faster lookup of HTML tags in the HTML parser by having make_names.pl generate
a findHTMLTag function that returns very efficient well-known HTML tag names.

It is a little more efficient that our current HTMLNameCache (0.4% progression on
Speedometer on MacBookAir 10,1, neutral on iMac20,1). Unlike the HTMLNameCache, It doesn't
require any hashing or additional storage since the set of well-known HTML tags is known
at compile time.

  • dom/make_names.pl:

(printNamesHeaderFile):
(findMaxTagLength):
(tagsWithLength):
(generateFindTagForLength):
(printNamesCppFile):

  • html/parser/AtomHTMLToken.h:

(WebCore::AtomHTMLToken::AtomHTMLToken):

  • html/parser/HTMLNameCache.cpp:

(WebCore::HTMLNameCache::atomStringCache):

  • html/parser/HTMLNameCache.h:

(WebCore::HTMLNameCache::makeAttributeValue):
(WebCore::HTMLNameCache::clear):
(WebCore::HTMLNameCache::makeAtomString):
(WebCore::HTMLNameCache::atomStringCacheSlot):
(WebCore::HTMLNameCache::makeTagName): Deleted.

1:11 PM Changeset in webkit [292416] by Alan Bujtas
  • 4 edits in trunk

[CSS-Contain] Flex layout should take "contain: inline-size" into account when computing the flex item's logical width
https://bugs.webkit.org/show_bug.cgi?id=238805

Reviewed by Antti Koivisto.

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths const):

LayoutTests:

1:02 PM Changeset in webkit [292415] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Unreviewed WinCairo build fix after r292408.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::initialize):

1:01 PM Changeset in webkit [292414] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Set svn:ignore on WebGPU.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=238828

Reviewed by Alexey Proskuryakov.

For people who use pure SVN, building causes some spurious files to be created.
Other WebKit projects solve this by setting svn:ignore on .xcodeproj directories.
This does the same.

% svn propget svn:ignore WebGPU.xcodeproj
*.mode*
*.pbxuser
*.perspective*
project.xcworkspace
xcuserdata

%

  • WebGPU.xcodeproj: Set svn:ignore.
12:54 PM Changeset in webkit [292413] by Chris Dumez
  • 5 edits in trunk/Source

Unreviewed WinCairo build fix after r292408.

Source/WebCore:

  • platform/win/GDIObjectCounter.cpp:

(WebCore::GDIObjectCounter::GDIObjectCounter):

  • platform/win/GDIObjectCounter.h:

Source/WebKitLegacy/win:

  • WebView.cpp:

(imeNotificationName):
(imeRequestName):

12:47 PM Changeset in webkit [292412] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows debug build fix after r292279.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

12:46 PM Changeset in webkit [292411] by Elliott Williams
  • 4 edits
    1 add in trunk/Source/ThirdParty/libwebrtc

Reland "[XCBuild] libwebrtc's headers are copied via rsync and do not emit task outputs"
https://bugs.webkit.org/show_bug.cgi?id=237112

Reviewed by Alexey Proskuryakov.

r291239 did not add all the headers needed for absl. In particular, some "internal" headers
which are included by public absl headers needed to be added. This omission was masked on
EWS by incremental build data, and on engineering builds by SDK content.

Add the missing headers. Additionally, commit a sorted version of the project (via
sort-Xcode-project-file) to reduce the scope of the diff and clean up the project for
future changes.

  • Configurations/Base.xcconfig: Same as before.
  • Configurations/libabsl.xcconfig: Same as before.
  • Configurations/libwebrtc.xcconfig: Same as before.
  • libwebrtc.xcodeproj/project.pbxproj: Headers added, project sorted.
12:42 PM Changeset in webkit [292410] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r292408.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

11:54 AM Changeset in webkit [292409] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ iOS Mac ] http/tests/workers/service/openwindow-from-notification-click.html is a flaky text failure

https://bugs.webkit.org/show_bug.cgi?id=238824

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:54 AM Changeset in webkit [292408] by Chris Dumez
  • 247 edits in trunk

Mark String(const char*) constructor as explicit
https://bugs.webkit.org/show_bug.cgi?id=238693

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • API/glib/JSCContext.cpp:

(jsc_context_check_syntax):

  • inspector/remote/socket/RemoteInspectorSocket.cpp:

(Inspector::RemoteInspector::startAutomationSession):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES):

Source/WebCore:

  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::fetchDescription):
(WebCore::GStreamerMediaEndpoint::storeRemoteMLineInfo):
(WebCore::GStreamerMediaEndpoint::addIceCandidate):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionFailed):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):

  • Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:

(WebCore::gstreamerRtpCapatiblities):
(WebCore::GStreamerPeerConnectionBackend::doCreateAnswer):

  • Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:

(WebCore::GStreamerRtpTransceiverBackend::mid):

  • Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::fillRTCStats):
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):

  • Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:

(WebCore::toRTCError):
(WebCore::toRTCEncodingParameters):

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):

  • accessibility/AXObjectCache.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::attributes const):
(WebCore::AccessibilityObjectAtspi::effectiveRoleName const):
(WebCore::AccessibilityObjectAtspi::roleName const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textAttributes const):

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::embedded):

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::notificationPlatformName):
(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityScroll:]):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):

  • editing/gtk/WebContentReaderGtk.cpp:

(WebCore::WebContentReader::readFilePath):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::removeUnchangeableStyles):

  • editing/libwpe/EditorLibWPE.cpp:

(WebCore::createFragmentFromPasteboardData):

  • html/HTMLMediaElement.cpp:

(WTF::LogArgument<URL>::toString):

  • html/OffscreenCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):

  • loader/soup/ResourceLoaderSoup.cpp:

(WebCore::ResourceLoader::loadGResource):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DebugPageOverlays.cpp:

(WebCore::InteractionRegionOverlay::valueForSetting):
(WebCore::InteractionRegionOverlay::drawRect):
(WebCore::InteractionRegionOverlay::mouseEvent):

  • page/cocoa/SettingsBaseCocoa.mm:

(WebCore::SettingsBase::initializeDefaultFontFamilies):

  • platform/PasteboardCustomData.h:

(WebCore::PasteboardCustomData::gtkType):

  • platform/UserAgent.h:
  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):

  • platform/glib/UserAgentGLib.cpp:

(WebCore::platformVersionForUAString):
(WebCore::standardUserAgent):

  • platform/graphics/ANGLEWebKitBridge.cpp:

(WebCore::ANGLEWebKitBridge::compileShaderSource):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::validateDepthStencil):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(printColor):
(printLayer):

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::toDataURL const):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::getFamilyNameStringFromFamily):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::parseGstStructureValue):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::ElementFactories::hasElementForMediaType const):
(WebCore::GStreamerRegistryScanner::initializeDecoders):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
(WebCore::MediaPlayerPrivateGStreamer::configureDownloadBuffer):
(WebCore::MediaPlayerPrivateGStreamer::downloadBufferFileCreatedCallback):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::parseInitDataFromProtectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleProtectionEvent):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
(WebCore::TrackPrivateBaseGStreamer::getTag):

  • platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp:

(webkitGstTraceProcessingTimeForElement):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcSetExtraHeader):
(webKitWebSrcMakeRequest):
(convertPlaybinURI):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):

  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp:

(WebCore::ExtensionsGLOpenGL::platformSupportsExtension):
(WebCore::ExtensionsGLOpenGL::isVertexArrayObjectSupported):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::platformSupportsExtension):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::validateDepthStencil):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::validateAttributes):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::validateAttributes):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitialize):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):

  • platform/graphics/texmap/TextureMapperFPSCounter.cpp:

(WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
(WebCore::CoordinatedGraphicsLayer::dumpAdditionalProperties const):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForGlobalSelection):

  • platform/gtk/PlatformKeyboardEventGtk.cpp:

(WebCore::PlatformKeyboardEvent::keyIdentifierForGdkKeyCode):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::nameOfDragPasteboard):

  • platform/ios/UserAgentIOS.mm:

(WebCore::osNameForUserAgent):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::read):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):

  • platform/libwpe/PlatformKeyboardEventLibWPE.cpp:

(WebCore::PlatformKeyboardEvent::keyIdentifierForWPEKeyCode):

  • platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp:

(WebCore::MediaRecorderPrivateGStreamer::containerProfile):

  • platform/network/MIMEHeader.cpp:

(WebCore::MIMEHeader::parseHeader):

  • platform/network/cf/ResourceErrorCF.cpp:

(WebCore::ResourceError::platformLazyInit):
(WebCore::ResourceError::ResourceError):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

  • platform/network/curl/CertificateInfoCurl.cpp:

(WebCore::CertificateInfo::verificationErrorDescription const):

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):

  • platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::defaultPathForURL):

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::CurlCacheEntry):
(WebCore::CurlCacheEntry::saveResponseHeaders):

  • platform/network/curl/CurlCacheManager.cpp:

(WebCore::CurlCacheManager::setCacheDirectory):
(WebCore::CurlCacheManager::saveIndex):

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::appendRequestHeader):
(WebCore::CurlHandle::removeRequestHeader):

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::willSendRequest):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setupPUT):
(WebCore::CurlRequest::setupSendData):

  • platform/network/curl/CurlResourceHandleDelegate.cpp:

(WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):

  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::defaultCookieJarPath):

  • platform/network/curl/OpenSSLHelper.cpp:

(OpenSSL::tlsVersion):
(OpenSSL::tlsCipherName):

  • platform/network/curl/PublicSuffixCurl.cpp:

(WebCore::topPrivatelyControlledDomainInternal):

  • platform/network/curl/ResourceError.h:
  • platform/network/curl/ResourceErrorCurl.cpp:
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::willSendRequest):

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/ios/LegacyPreviewLoaderClient.h:

(WebCore::LegacyPreviewLoaderClient::didRequestPassword):

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::hasCookies const):

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::transportError):
(WebCore::ResourceError::authenticationError):
(WebCore::ResourceError::genericGError):
(WebCore::ResourceError::tlsError):
(WebCore::ResourceError::timeoutError):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::scanDirectoryForDictionaries):

  • platform/text/win/LocaleWin.cpp:

(WebCore::LocaleWin::initializeLocaleData):

  • platform/win/KeyEventWin.cpp:

(WebCore::keyIdentifierForWindowsKeyCode):

  • platform/win/LocalizedStringsWin.cpp:

(WebCore::uploadFileText):
(WebCore::allFilesText):

  • platform/win/MIMETypeRegistryWin.cpp:

(WebCore::MIMETypeRegistry::mimeTypeForExtension):

  • platform/win/PasteboardWin.cpp:

(WebCore::addMimeTypesForFormat):
(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::readString):
(WebCore::writeURL):
(WebCore::Pasteboard::writeURLToDataObject):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::read):
(WebCore::createGlobalImageFileDescriptor):
(WebCore::Pasteboard::writeMarkup):

  • platform/win/SystemInfo.cpp:

(WebCore::osVersionForUAString):
(WebCore::architectureTokenForUAString):

  • platform/xr/openxr/OpenXRInputMappings.h:

(PlatformXR::buttonTypeToString):
(PlatformXR::axisTypetoString):

  • platform/xr/openxr/OpenXRUtils.h:

(PlatformXR::handenessToString):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

Source/WebCore/PAL:

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::adapterName):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::popErrorScope):

Source/WebDriver:

  • CommandResult.cpp:

(WebDriver::CommandResult::CommandResult):

  • Session.cpp:

(WebDriver::Session::handleUserPrompts):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::elementIsFileUpload):
(WebDriver::Session::elementIsEditable):
(WebDriver::Session::elementSendKeys):
(WebDriver::builtAutomationCookie):
(WebDriver::automationSourceType):
(WebDriver::automationOriginType):

  • WebDriverService.cpp:

(WebDriver::WebDriverService::run):
(WebDriver::deserializeProxy):
(WebDriver::WebDriverService::createSession):

  • socket/CapabilitiesSocket.cpp:

(WebDriver::CapabilitiesSocket::parseCapabilities):

  • socket/HTTPServerSocket.cpp:

(WebDriver::HTTPRequestHandler::didReceive):

Source/WebGPU:

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(stringForSSLProtocol):

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::readCallback):
(WebKit::NetworkDataTaskSoup::didRequestNextPart):
(WebKit::NetworkDataTaskSoup::download):
(WebKit::NetworkDataTaskSoup::writeDownloadCallback):
(WebKit::NetworkDataTaskSoup::didFinishDownload):
(WebKit::NetworkDataTaskSoup::didGetFileInfo):
(WebKit::NetworkDataTaskSoup::readFileCallback):
(WebKit::NetworkDataTaskSoup::enumerateFileChildrenCallback):

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::didConnect):

  • Shared/API/Cocoa/WKRemoteObjectCoder.h:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(WebKit::methodSignaturesAreCompatible):
(decodeInvocation):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(replyBlockSignature):
(-[_WKRemoteObjectRegistry _invokeMethod:]):

  • Shared/API/glib/WebKitURIRequest.cpp:

(webkit_uri_request_set_uri):

  • Shared/gtk/WebErrorsGtk.cpp:

(WebKit::printerNotFoundError):
(WebKit::invalidPageRangeToPrint):

  • UIProcess/API/glib/WebKitAutomationSession.cpp:

(webkitAutomationSessionGetBrowserName):

  • UIProcess/API/glib/WebKitCredential.cpp:

(webkit_credential_new_for_certificate_pin):

  • UIProcess/API/glib/WebKitInjectedBundleClient.cpp:
  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleRequest):

  • UIProcess/API/glib/WebKitSettings.cpp:

(_WebKitSettingsPrivate::_WebKitSettingsPrivate):
(webkit_settings_set_user_agent):

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):
(webkit_uri_scheme_request_finish_error):

  • UIProcess/API/gtk/DragSourceGtk4.cpp:

(WebKit::DragSource::begin):

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::DropTarget):

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::~RemoteInspectorProtocolHandler):
(WebKit::RemoteInspectorProtocolHandler::handleRequest):
(WebKit::RemoteInspectorProtocolHandler::targetListChanged):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseEnterFullScreen):

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkit_color_parse):

  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::malwareDetailsBase):
(WebKit::reportAnErrorBase):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::remoteFileReplaceContentsCallback):

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::fileReplaceContentsCallback):

  • UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::platformStartTask):

  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSymlinksRealPath):
(WebKit::bubblewrapSpawn):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions):

  • UIProcess/glib/WebsiteDataStoreGLib.cpp:
  • UIProcess/gtk/ClipboardGtk3.cpp:

(WebKit::Clipboard::write):

  • UIProcess/gtk/ClipboardGtk4.cpp:

(WebKit::Clipboard::write):

  • UIProcess/gtk/KeyBindingTranslator.cpp:
  • UIProcess/win/WebProcessPoolWin.cpp:

(WebKit::backendCommandsPath):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::WebView):

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkitWebPageDidReceiveMessage):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:

(webkit_dom_document_get_visibility_state):

  • WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:

(WebKit::handleKeyPress):
(WebKit::handleKeyDown):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const):

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::generateSyntheticEditingCommand):
(WebKit::WebPage::platformUserAgent const):

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::handleEditingKeyboardEvent):

  • webpushd/PushClientConnection.mm:

(WebPushD::ClientConnection::hostAppCodeSigningIdentifier):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(-[DOMHTMLLinkElement _mediaQueryMatches]):

  • WebCoreSupport/WebEditorClient.h:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord):

  • WebView/WebDataSource.mm:

(-[WebDataSource _setOverrideTextEncodingName:]):

  • WebView/WebView.mm:

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • AccessibleBase.cpp:

(AccessibleBase::AccessibleBase):
(AccessibleBase::~AccessibleBase):

  • CFDictionaryPropertyBag.cpp:

(CFDictionaryPropertyBag::CFDictionaryPropertyBag):
(CFDictionaryPropertyBag::~CFDictionaryPropertyBag):

  • DefaultDownloadDelegate.cpp:

(DefaultDownloadDelegate::DefaultDownloadDelegate):
(DefaultDownloadDelegate::~DefaultDownloadDelegate):

  • DefaultPolicyDelegate.cpp:

(DefaultPolicyDelegate::DefaultPolicyDelegate):
(DefaultPolicyDelegate::~DefaultPolicyDelegate):

  • MemoryStream.cpp:

(MemoryStream::MemoryStream):
(MemoryStream::~MemoryStream):

  • WebActionPropertyBag.cpp:

(WebActionPropertyBag::WebActionPropertyBag):
(WebActionPropertyBag::~WebActionPropertyBag):

  • WebApplicationCache.cpp:

(WebApplicationCache::WebApplicationCache):
(WebApplicationCache::~WebApplicationCache):
(WebApplicationCache::storage):

  • WebArchive.cpp:

(WebArchive::WebArchive):
(WebArchive::~WebArchive):

  • WebBackForwardList.cpp:

(WebBackForwardList::WebBackForwardList):
(WebBackForwardList::~WebBackForwardList):

  • WebCache.cpp:

(WebCache::WebCache):
(WebCache::~WebCache):

  • WebCoreStatistics.cpp:

(WebCoreStatistics::WebCoreStatistics):
(WebCoreStatistics::~WebCoreStatistics):
(WebCoreStatistics::javaScriptProtectedObjectTypeCounts):
(WebCoreStatistics::javaScriptObjectTypeCounts):
(WebCoreStatistics::memoryStatistics):

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::doTextFieldCommandFromEvent):

  • WebDataSource.cpp:

(WebDataSource::~WebDataSource):

  • WebDatabaseManager.cpp:

(WebDatabaseManager::WebDatabaseManager):
(WebDatabaseManager::~WebDatabaseManager):

  • WebDocumentLoader.cpp:

(WebDocumentLoader::WebDocumentLoader):
(WebDocumentLoader::~WebDocumentLoader):

  • WebDownload.cpp:

(WebDownload::WebDownload):
(WebDownload::~WebDownload):

  • WebDownloadCFNet.cpp:

(WebDownload::cancelAuthenticationChallenge):

  • WebDropSource.cpp:

(WebDropSource::WebDropSource):
(WebDropSource::~WebDropSource):

  • WebElementPropertyBag.cpp:

(WebElementPropertyBag::WebElementPropertyBag):
(WebElementPropertyBag::~WebElementPropertyBag):

  • WebError.cpp:

(WebError::WebError):
(WebError::~WebError):

  • WebFrame.cpp:

(WebFrame::WebFrame):
(WebFrame::~WebFrame):
(WebFrame::loadData):
(WebFrame::selectAll):

  • WebFramePolicyListener.cpp:

(WebFramePolicyListener::WebFramePolicyListener):
(WebFramePolicyListener::~WebFramePolicyListener):

  • WebGeolocationPolicyListener.cpp:

(WebGeolocationPolicyListener::WebGeolocationPolicyListener):
(WebGeolocationPolicyListener::~WebGeolocationPolicyListener):

  • WebGeolocationPosition.cpp:

(WebGeolocationPosition::WebGeolocationPosition):
(WebGeolocationPosition::~WebGeolocationPosition):

  • WebHTMLRepresentation.cpp:

(WebHTMLRepresentation::WebHTMLRepresentation):
(WebHTMLRepresentation::~WebHTMLRepresentation):

  • WebHistory.cpp:

(WebHistory::WebHistory):
(WebHistory::~WebHistory):

  • WebHistoryItem.cpp:

(WebHistoryItem::WebHistoryItem):
(WebHistoryItem::~WebHistoryItem):

(WebInspector::WebInspector):
(WebInspector::~WebInspector):

  • WebJavaScriptCollector.cpp:

(WebJavaScriptCollector::WebJavaScriptCollector):
(WebJavaScriptCollector::~WebJavaScriptCollector):

  • WebKitClassFactory.cpp:

(WebKitClassFactory::WebKitClassFactory):
(WebKitClassFactory::~WebKitClassFactory):

  • WebKitMessageLoop.cpp:

(WebKitMessageLoop::WebKitMessageLoop):
(WebKitMessageLoop::~WebKitMessageLoop):

  • WebKitStatistics.cpp:

(WebKitStatistics::WebKitStatistics):
(WebKitStatistics::~WebKitStatistics):

  • WebMutableURLRequest.cpp:

(WebMutableURLRequest::WebMutableURLRequest):
(WebMutableURLRequest::~WebMutableURLRequest):

  • WebNavigationData.cpp:

(WebNavigationData::WebNavigationData):
(WebNavigationData::~WebNavigationData):

  • WebNotification.cpp:

(WebNotification::WebNotification):
(WebNotification::~WebNotification):

  • WebNotificationCenter.cpp:

(WebNotificationCenter::WebNotificationCenter):
(WebNotificationCenter::~WebNotificationCenter):

  • WebPreferences.cpp:

(WebPreferences::WebPreferences):
(WebPreferences::~WebPreferences):

  • WebResource.cpp:

(WebResource::WebResource):
(WebResource::~WebResource):

  • WebScriptObject.cpp:

(WebScriptObject::WebScriptObject):
(WebScriptObject::~WebScriptObject):

  • WebScriptWorld.cpp:

(WebScriptWorld::WebScriptWorld):
(WebScriptWorld::~WebScriptWorld):

  • WebSecurityOrigin.cpp:

(WebSecurityOrigin::WebSecurityOrigin):
(WebSecurityOrigin::~WebSecurityOrigin):

  • WebSerializedJSValue.cpp:

(WebSerializedJSValue::WebSerializedJSValue):
(WebSerializedJSValue::~WebSerializedJSValue):

  • WebTextRenderer.cpp:

(WebTextRenderer::WebTextRenderer):
(WebTextRenderer::~WebTextRenderer):

  • WebURLAuthenticationChallenge.cpp:

(WebURLAuthenticationChallenge::WebURLAuthenticationChallenge):
(WebURLAuthenticationChallenge::~WebURLAuthenticationChallenge):

  • WebURLAuthenticationChallengeSender.cpp:

(WebURLAuthenticationChallengeSender::WebURLAuthenticationChallengeSender):
(WebURLAuthenticationChallengeSender::~WebURLAuthenticationChallengeSender):

  • WebURLCredential.cpp:

(WebURLCredential::WebURLCredential):
(WebURLCredential::~WebURLCredential):

  • WebURLProtectionSpace.cpp:

(WebURLProtectionSpace::WebURLProtectionSpace):
(WebURLProtectionSpace::~WebURLProtectionSpace):

  • WebURLResponse.cpp:

(WebURLResponse::WebURLResponse):
(WebURLResponse::~WebURLResponse):
(WebURLResponse::createInstance):

  • WebUserContentURLPattern.cpp:

(WebUserContentURLPattern::WebUserContentURLPattern):
(WebUserContentURLPattern::~WebUserContentURLPattern):

  • WebView.cpp:

(WebView::WebView):
(WebView::~WebView):
(WebView::execCommand):
(WebView::handleEditingKeyboardEvent):
(WebView::copy):
(WebView::cut):
(WebView::paste):
(WebView::copyURL):
(WebView::delete_):

  • WebWorkersPrivate.cpp:

(WebWorkersPrivate::WebWorkersPrivate):
(WebWorkersPrivate::~WebWorkersPrivate):

Source/WTF:

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::filesHaveSameVolume):

  • wtf/FileSystem.h:
  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::getFileDeviceId):

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::getFileDeviceId):

  • wtf/text/WTFString.h:
  • wtf/unix/LoggingUnix.cpp:

(WTF::logLevelString):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::getFileDeviceId):

  • wtf/win/LanguageWin.cpp:

(WTF::platformLanguage):

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(findFontFallback):

  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::readAllChunks):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasEmptyQuirk):
(TestWebKitAPI::TEST):

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

(TestWebKitAPI::Curl::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(cleanUpInAppBrowserPrivacyTestSettings):
(initializeInAppBrowserPrivacyTestSettings):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewWindowProperties):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionPageID):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::addWebSocketHandler):
(WebKitTestServer::getWebSocketURIForPath const):
(WebKitTestServer::getURIForPath const):

  • TestWebKitAPI/ios/PreferredContentMode.mm:

(TestWebKitAPI::setUpWebViewForPreferredContentModeTestingWithoutNavigationDelegate):
(TestWebKitAPI::setUpWebViewForPreferredContentModeTesting):
(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::xmlRoleValueString):
(WTR::roleValueToString):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::toJSONObject):

  • lldb/lldbWebKitTester/main.cpp:

(testSummaryProviders):

11:45 AM Changeset in webkit [292407] by basuke.suzuki@sony.com
  • 11 edits in trunk/Source/bmalloc

[PlayStation] Enable libpas.
https://bugs.webkit.org/show_bug.cgi?id=238753

Reviewed by Yusuke Suzuki.

PlayStation platform is ready to enable it finally.

  • PlatformPlayStation.cmake:
  • bmalloc/BPlatform.h:
  • libpas/src/libpas/pas_config.h:
  • libpas/src/libpas/pas_page_malloc.c:

(pas_page_malloc_try_allocate_without_deallocating_padding):
(commit_impl):

  • libpas/src/libpas/pas_platform.h:
  • libpas/src/libpas/pas_thread_local_cache.c:
11:25 AM Changeset in webkit [292406] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WTF

[PlayStation] Build fix after r292389
https://bugs.webkit.org/show_bug.cgi?id=238816

Unreviewed build fix

Add UnixFileDescriptor.h to PlatformPlayStation.cmake
as per the changes to PlatformGTK and PlatformWPE.

  • wtf/PlatformPlayStation.cmake:
11:05 AM Changeset in webkit [292405] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Extract bug_id when updating pull-request
https://bugs.webkit.org/show_bug.cgi?id=238772
<rdar://problem/91263398>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(LeaveComment.start): Leave comment on both bugzilla and pull request.
(LeaveComment.getResultSummary): Ditto.
(UpdatePullRequest):
(UpdatePullRequest.bug_id_from_log): Extract bug_id from commit message.
(UpdatePullRequest.evaluateCommand): Set bug_id property

  • Tools/CISupport/ews-build/steps_unittest.py:

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

11:04 AM Changeset in webkit [292404] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
10:58 AM Changeset in webkit [292403] by yurys@chromium.org
  • 4 edits in trunk

Do not create network process in ~WebsiteDataStore destructor
https://bugs.webkit.org/show_bug.cgi?id=238570

Reviewed by Chris Dumez.

Source/WebKit:

Check if m_networkProcess is initialized before removing session
from it instead, otherwise WebsiteDataStore::networkProcess() lazily
creates the process and it will keep running after WebsiteDataStore
is destroyed.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):

Tools:

The test is written by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST): Test that creating and destroying ephemer WebsiteDataStore doesn't initialize
default network process.

10:57 AM Changeset in webkit [292402] by Jonathan Bedard
  • 6 edits in trunk/Tools

[Merge-Queue] Add author to commit message
https://bugs.webkit.org/show_bug.cgi?id=238752
<rdar://problem/91254339>

Reviewed by Aakash Jain.

svn.webkit.org will attribute a change to a specific author
if "Patch by" is in the commit message.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Add AddAuthorToCommitMessage step.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Ditto.

  • Tools/CISupport/ews-build/master.cfg: Determine commit author from github.head.user.login.
  • Tools/CISupport/ews-build/steps.py:

(AddAuthorToCommitMessage):
(AddAuthorToCommitMessage.init):
(AddAuthorToCommitMessage.author): Return commit author's name and email, falling back
to the committers name and email if those cannot be determined.
(AddAuthorToCommitMessage.start): Insert "Patch by" into commit message.
(AddAuthorToCommitMessage.getResultSummary):
(AddAuthorToCommitMessage.doStepIf): Only do step if the author can be determined.
(AddAuthorToCommitMessage.hideStepIf): Hide step if skipped.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

10:38 AM Changeset in webkit [292401] by eric.carlson@apple.com
  • 5 edits in trunk

5 Media API tests are flakily timing out on iOS14
https://bugs.webkit.org/show_bug.cgi?id=230321
<rdar://problem/83168970>

Reviewed by Jer Noble.

Source/WebKit:

Un-skipped API test WKWebViewPausePlayingAudioTests.OutOfWindow

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationWillEnterForegroundForMedia): Log the correct name.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationDidEnterBackgroundForMedia): Call PlatformMediaSessionManager.
(WebKit::WebPage::applicationWillEnterForegroundForMedia): Ditto.

Tools:

  • TestWebKitAPI/Tests/ios/WKWebViewPausePlayingAudioTests.mm:

(TestWebKitAPI::TEST):

10:04 AM Changeset in webkit [292400] by Manuel Rego Casasnovas
  • 4 edits
    2 adds in trunk

[macOS][selectors] :focus-visible matching on button focused via script (after clicking on a different button)
https://bugs.webkit.org/show_bug.cgi?id=236782
<rdar://problem/89382543>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add specific test for <button> element.

  • web-platform-tests/css/selectors/focus-visible-script-focus-008-b-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-script-focus-008-b.html: Added.

Source/WebCore:

Document::m_latestFocusTrigger was not being updated after clicking on a button (or other form controls)
on platforms different than GTK and WPE.
This is because HTMLFormControlElement::isMouseFocusable() returns false on such platforms.

This issue is causing problems with :focus-visible, as the button is not actually focused via mouse click,
if you move the focus via script afterwards, the new focused element always match :focus-visible.

This patch is a workaround to solve that issue, by updating m_latestFocusTrigger on Document
even if the element is not actually focused.
That way :focus-visible doesn't match if there's a script focus afterwards.

Fix :focus-visible after clicking on a button on Mac

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-script-focus-008-b.html

  • dom/Document.h:

(WebCore::Document::setLatestFocusTrigger):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

9:57 AM Changeset in webkit [292399] by Brent Fulgham
  • 1 edit in trunk/Source/WebCore/features.json

Correct additional malformed entries in 'specifications' section.

9:44 AM Changeset in webkit [292398] by Simon Fraser
  • 8 edits in trunk/Source

Pass an IOSurfacePool to ImageBuffer::releaseBufferToPool()
https://bugs.webkit.org/show_bug.cgi?id=238768

Reviewed by Said Abou-Hallawa.

In order to move away from a singleton IOSurfacePool, we need to pass the pool
which the IOSurface will be added to.

Source/WebCore:

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::CreationContext::CreationContext):

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::releaseBufferToPool):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::releaseBufferToPool):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

For RemoteLayerBackingStore, pass the singleton WebProcess pool
(this is the non-GPU Process code path).

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::Buffer::discard):

9:32 AM Changeset in webkit [292397] by Alan Coon
  • 1 copy in tags/Safari-614.1.8.3

Tag Safari-614.1.8.3.

9:30 AM Changeset in webkit [292396] by Alan Coon
  • 9 edits in branches/safari-614.1.8-branch/Source

Versioning.

WebKit-7614.1.8.3

9:15 AM Changeset in webkit [292395] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the internal iOS build after r292370

Remove an extraneous opening parenthesis.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):

8:44 AM Changeset in webkit [292394] by Alan Bujtas
  • 11 edits in trunk

[CSS-Contain] Add support for contain: inline-size
https://bugs.webkit.org/show_bug.cgi?id=238787

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContain):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeIntrinsicLogicalWidths const):
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths const):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createsNewFormattingContext const):
(WebCore::RenderBox::establishesIndependentFormattingContext const):

  • rendering/RenderBox.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueContain):

LayoutTests:

6:50 AM Changeset in webkit [292393] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] GstCapsForeachFunc returns a gboolean
https://bugs.webkit.org/show_bug.cgi?id=238799

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-04-05
Reviewed by Adrian Perez de Castro.

  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:

(WebCore::RealtimeOutgoingVideoSourceGStreamer::RealtimeOutgoingVideoSourceGStreamer):

6:37 AM Changeset in webkit [292392] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk

ANGLE changes.diff contains differences that are from stale files or unneeded
https://bugs.webkit.org/show_bug.cgi?id=238798

Unreviewed, verifiable by running the script.

Source/ThirdParty/ANGLE:

Unneeded changes in changes.diff should be excluded:

  • ChangeLog files
  • WebKit specific build scripts
  • Diff to removed .jar files

Stale changes should be updated from the upstream, should be synced from upstream:

  • .gitignore entry from some old path
  • Wrong file names in DEQP test expectations, renamed in upstream
  • Unused EnvironmentVariable.h that is not present in upstream anymore

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-05

  • .gitignore:
  • ANGLE.xcodeproj/project.pbxproj:
  • changes.diff:
  • src/compiler/translator/TranslatorMetalDirect/EnvironmentVariable.h: Removed.
  • src/tests/deqp_support/deqp_egl_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_TestExpectations.
  • src/tests/deqp_support/deqp_gles2_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_TestExpectations.
  • src/tests/deqp_support/deqp_gles31_rotate_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_rotate_TestExpectations.
  • src/tests/deqp_support/deqp_gles31_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_TestExpectations.
  • src/tests/deqp_support/deqp_gles3_rotate_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_rotate_TestExpectations.
  • src/tests/deqp_support/deqp_gles3_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles2_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles2_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles31_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles32_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles32_TestExpectations.
  • src/tests/deqp_support/deqp_khr_gles3_TestExpectations: Renamed from Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_TestExpectations.

Tools:

Exclude WebKit ChangeLog entries from changes.diff
Exclude WebKit build script copy-frameworks-to-secondary-path.sh
Exclude a file that is not needed downstream custom_d8.jar

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-05

  • Scripts/update-angle:
4:30 AM Changeset in webkit [292391] by zandobersek@gmail.com
  • 7 edits in trunk/Source/WebCore

[GTK][WPE] Use UnixFileDescriptor in DMABufObject, DMABufReleaseFlag
https://bugs.webkit.org/show_bug.cgi?id=238733

Reviewed by Adrian Perez de Castro.

Replace integer values for file descriptors in the DMABufObject and
DMABufReleaseFlag structs with UnixFileDescriptors. This enables
simply defaulting the destructors and the move constructors and
assignment operatos for the two types since the fd wrapper takes care
of these operations.

Additionally, when constructing the UnixFileDescriptor objects from
file descriptors coming from different sources, we can more easily
adapt to the need for either adoption or duplication of the passed-in
file descriptor right there in the constructor invocation.

  • platform/graphics/gbm/DMABufObject.h:

(WebCore::DMABufObject::~DMABufObject): Deleted.
(WebCore::DMABufObject::operator=): Deleted.

  • platform/graphics/gbm/DMABufReleaseFlag.h:

(WebCore::DMABufReleaseFlag::DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::dup const):
(WebCore::DMABufReleaseFlag::released const):
(WebCore::DMABufReleaseFlag::release):
(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag): Deleted.
(WebCore::DMABufReleaseFlag::operator=): Deleted.

  • platform/graphics/gbm/GBMBufferSwapchain.cpp:

(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

4:17 AM WebKitFlatpakSDK edited by Philippe Normand
(diff)
4:15 AM WebKitFlatpakSDK/GstBuild edited by Philippe Normand
(diff)
4:10 AM WebKitFlatpakSDK/LocalProjects edited by Philippe Normand
(diff)
4:07 AM WebKitFlatpakSDK/LocalProjects edited by Philippe Normand
(diff)
4:05 AM WebKitFlatpakSDK/LocalProjects edited by Philippe Normand
(diff)
4:05 AM WebKitFlatpakSDK/LocalProjects created by Philippe Normand
3:59 AM WebKitFlatpakSDK/GstBuild edited by Philippe Normand
(diff)
3:58 AM WebKitFlatpakSDK edited by Philippe Normand
(diff)
3:55 AM Changeset in webkit [292390] by commit-queue@webkit.org
  • 2 edits
    6 adds in trunk/Tools

[Flatpak SDK] Local dependencies override support
https://bugs.webkit.org/show_bug.cgi?id=238452

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

When the environment variable WEBKIT_SDK_LOCAL_DEPS is set at compile-time and runtime, some
dependencies (currently only libsoup and GStreamer) will be picked up from local git
checkouts located in Tools/flatpak/. If no checkout is present, one will be made based on
the corresponding .wrap file.

Example: WEBKIT_SDK_LOCAL_DEPS=libsoup,gstreamer-full build-webkit --wpe ...

Additional Meson options can be supplied with WEBKIT_SDK_LOCAL_DEPS_OPTIONS. Nested
subprojects configuration is supported as well, for example:

export WEBKIT_SDK_LOCAL_DEPS_OPTIONS="-Dgstreamer-full:introspection=disabled -Dgst-plugins-good:soup=disabled"

This setup replaces the previous one that was specific to GStreamer.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.setup_local_deps):
(WebkitFlatpak._merge_env_variables):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.setup_dev_env):
(WebkitFlatpak.setup_gstbuild): Deleted.

  • flatpak/local-projects/meson.build: Added.
  • flatpak/local-projects/subprojects/gstreamer-full.wrap: Added.
  • flatpak/local-projects/subprojects/libsoup.wrap: Added.
3:48 AM Changeset in webkit [292389] by zandobersek@gmail.com
  • 8 edits
    1 add in trunk/Source

[Unix] Add UnixFileDescriptor, use it in IPC::Semaphore
https://bugs.webkit.org/show_bug.cgi?id=238726

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Use WTF::UnixFileDescriptor in IPC::Semaphore in place of a raw integer
value. This also simplifies other things, e.g. the move constructor and
assignment operator can now both be defaulted.

The IPC encoding and decoding of the semaphore object is also simpler,
leaning into the custom ArgumentCoder specialization for objects of the
WTF::UnixFileDescriptor type. The encoding and decoding is done by
chaperoning the file descriptor through IPC::Attachment.

  • Platform/IPC/IPCSemaphore.h:

(IPC::Semaphore::operator bool const):

  • Platform/IPC/unix/IPCSemaphoreUnix.cpp:

(IPC::Semaphore::Semaphore):
(IPC::Semaphore::signal):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):
(IPC::Semaphore::encode const):
(IPC::Semaphore::decode):
(IPC::Semaphore::destroy):
(IPC::Semaphore::operator=): Deleted.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WTF::UnixFileDescriptor>::encode):
(IPC::ArgumentCoder<WTF::UnixFileDescriptor>::decode):

  • Shared/WebCoreArgumentCoders.h:

Source/WTF:

Add the UnixFileDescriptor class, intended as a wrapper for a file
descriptor integer. Construction is a matter of adopting or duplicating
the passed-in file descriptor value. UnixFileDescriptor objects can be
moved around and explicitly duplicated, and the contained fd value can
be released.

The wrapper class makes it easier to handle file descriptor values when
embedded into other types as member variables. It also allows to specify
custom encoding and decoding in the WebKit IPC infrastructure.

  • wtf/PlatformGTK.cmake:
  • wtf/PlatformWPE.cmake:
  • wtf/unix/UnixFileDescriptor.h: Added.

(WTF::UnixFileDescriptor::UnixFileDescriptor):
(WTF::UnixFileDescriptor::operator=):
(WTF::UnixFileDescriptor::~UnixFileDescriptor):
(WTF::UnixFileDescriptor::operator bool const):
(WTF::UnixFileDescriptor::value const):
(WTF::UnixFileDescriptor::duplicate const):

2:40 AM Changeset in webkit [292388] by commit-queue@webkit.org
  • 4 edits in trunk

update-angle output varies unpredictably due to blob hash abbreviation
https://bugs.webkit.org/show_bug.cgi?id=238793

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-05
Reviewed by Antti Koivisto.

Source/ThirdParty/ANGLE:

Update the diff to contain unabbreviated blob hash values. These are more
predictable for all developers.

  • changes.diff:

Tools:

Add --full-index to diff to get the unabbreviated blob hash.

  • Scripts/update-angle:
2:11 AM Changeset in webkit [292387] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[GStreamer] gst_video_format_info_component not defined in GStreamer <1.18
https://bugs.webkit.org/show_bug.cgi?id=238685

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::webkitGstVideoFormatInfoComponent):

  • platform/graphics/gstreamer/GStreamerCommon.h:
1:50 AM Changeset in webkit [292386] by Cameron McCormack
  • 3 edits in trunk/LayoutTests

Skip editing-word-with-marker-1.html
https://bugs.webkit.org/show_bug.cgi?id=238767

Unreviewed test gardening.

1:36 AM Changeset in webkit [292385] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Expand autocorrect context for more accurate results.
https://bugs.webkit.org/show_bug.cgi?id=237990

Reviewed by Wenson Hsieh.

Covered by existing tests.

Expand autocorrect context to at least 10 words instead of 3, and with a min/max length of 40/100
instead of 12/30 and start context at the beginning of sentences to help with having more accurate
autocorrect suggestions.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::autocorrectionContext):

1:21 AM Changeset in webkit [292384] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Update ANGLE changes.diff after "Roll ANGLE to 2022-03-31 (fe28a4295af087ee82b8f629b67176b95019af6d)"
https://bugs.webkit.org/show_bug.cgi?id=238794

Unreviewed, verifiable by running the script.

Update the diff, turns out it was not up-to-date.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-05

  • changes.diff:
1:19 AM Changeset in webkit [292383] by timothy_horton@apple.com
  • 8 edits
    1 delete in trunk/Source

Remove system feature flags implementation
https://bugs.webkit.org/show_bug.cgi?id=238791

Reviewed by Megan Gardner.

Source/WebKit:

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::isFeatureFlagEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::isFeatureFlagEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:
  • Shared/win/WebPreferencesDefaultValuesWin.cpp: Removed.

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::isFeatureFlagEnabled): Deleted.

1:03 AM Changeset in webkit [292382] by Nikos Mouchtaris
  • 7 edits
    7 adds in trunk

Support rendering url(), CSS basic shapes other than path(), and coord-box for offset-path
https://bugs.webkit.org/show_bug.cgi?id=233382

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/motion/offset-path-shape-expected.html: Added.
  • web-platform-tests/css/motion/offset-path-shape.html: Added.
  • web-platform-tests/css/motion/offset-path-url-expected.html: Added.
  • web-platform-tests/css/motion/offset-path-url.html: Added.

Source/WebCore:

Introduce support for url(), CSS basic shapes, and coord-box. Url() allows references to SVG
shapes, so we check for either an SVGPathElement or SVGGeometryElement (which includes
circles, polygons, etc.). We can then get a Path object for that particular SVGElement

using pathFromGraphicsElement(). For coord-box, we check the value for the BoxPathOperation

(if it exists) in updateTransform(), and choose the corresponding reference box to the
referenceBox() value of the BoxPathOperation.

Tests: imported/w3c/web-platform-tests/css/motion/offset-path-shape.html

imported/w3c/web-platform-tests/css/motion/offset-path-url.html

  • Sources.txt:
  • rendering/PathOperation.cpp: Added.

(WebCore::ReferencePathOperation::create):
(WebCore::ReferencePathOperation::ReferencePathOperation):
(WebCore::ReferencePathOperation::element const):

  • rendering/PathOperation.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateTransform):

  • rendering/style/RenderStyle.cpp:

(WebCore::getPathFromPathOperation):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPathOperation):

1:01 AM Changeset in webkit [292381] by Megan Gardner
  • 4 edits
    4 adds in trunk

Moving forwards and backwards by sentences across a table results in different breaks in each direction.
https://bugs.webkit.org/show_bug.cgi?id=238621

Reviewed by Darin Adler.

Tests: editing/selection/move-selection-backwards-at-end-of-table-by-sentence-granularity.html

editing/selection/move-selection-forwards-at-beginning-of-table-by-sentence-granularity.html

We need to emit tabs even in a simplified backwards text iterator because otherwise traversing a table by
sentence granularity results in not having the same behavior backwards and forwards.

  • editing/TextIterator.cpp:

(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
(WebCore::SimplifiedBackwardsTextIterator::exitNode):

12:32 AM Changeset in webkit [292380] by zandobersek@gmail.com
  • 7 edits in trunk/Source/WebCore

Unreviewed, reverting r292377.

The depended-on patch hasn't landed yet

Reverted changeset:

"[GTK][WPE] Use UnixFileDescriptor in DMABufObject,
DMABufReleaseFlag"
https://bugs.webkit.org/show_bug.cgi?id=238733
https://commits.webkit.org/r292377

12:28 AM Changeset in webkit [292379] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE] Mark "backend" parameters of web view constructors not nullable
https://bugs.webkit.org/show_bug.cgi?id=238734

Reviewed by Martin Robinson.

No new tests needed.

  • UIProcess/API/wpe/WebKitWebViewWPE.cpp: Annotate web view constructors with (not nullable)

and while at it, fix documentation links, and improve the wording to better follow gi-docgen
copywriting style. Remove the mentions to the single process model, which is deprecated anyway.

12:09 AM Changeset in webkit [292378] by ntim@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

[iOS] Add timeout expectations for focus-after-close.html WPT

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt: Added.

Apr 4, 2022:

11:54 PM Changeset in webkit [292377] by zandobersek@gmail.com
  • 7 edits in trunk/Source/WebCore

[GTK][WPE] Use UnixFileDescriptor in DMABufObject, DMABufReleaseFlag
https://bugs.webkit.org/show_bug.cgi?id=238733

Reviewed by Adrian Perez de Castro.

Replace integer values for file descriptors in the DMABufObject and
DMABufReleaseFlag structs with UnixFileDescriptors. This enables
simply defaulting the destructors and the move constructors and
assignment operatos for the two types since the fd wrapper takes care
of these operations.

Additionally, when constructing the UnixFileDescriptor objects from
file descriptors coming from different sources, we can more easily
adapt to the need for either adoption or duplication of the passed-in
file descriptor right there in the constructor invocation.

  • platform/graphics/gbm/DMABufObject.h:

(WebCore::DMABufObject::~DMABufObject): Deleted.
(WebCore::DMABufObject::operator=): Deleted.

  • platform/graphics/gbm/DMABufReleaseFlag.h:

(WebCore::DMABufReleaseFlag::DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::dup const):
(WebCore::DMABufReleaseFlag::released const):
(WebCore::DMABufReleaseFlag::release):
(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag): Deleted.
(WebCore::DMABufReleaseFlag::operator=): Deleted.

  • platform/graphics/gbm/GBMBufferSwapchain.cpp:

(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

10:38 PM Changeset in webkit [292376] by Ziran Sun
  • 7 edits
    2 deletes in trunk

[Forms] change the default appearance of button, checkbox etc. to 'auto'
https://bugs.webkit.org/show_bug.cgi?id=236012

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt:

Source/WebCore:

Change the default appearance of a few element to 'auto'.
This shouldn't change rendering behavior, but changes

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Removed.
10:36 PM Changeset in webkit [292375] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

[CSS Container Queries] Simplify grammar
https://bugs.webkit.org/show_bug.cgi?id=238732

Reviewed by Sam Weinig.

Because size() function syntax is no longer supported, separate SizeQuery and SizeCondition productions
are no longer needed.

Some slightly unnecessary templatization is retained to help with future work.

  • css/ContainerQuery.cpp:
  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeContainerQuery):
(WebCore::ContainerQueryParser::consumeCondition):
(WebCore::ContainerQueryParser::consumeSizeFeature):
(WebCore::ContainerQueryParser::consumePlainSizeFeature):
(WebCore::ContainerQueryParser::consumeSizeQuery): Deleted.

  • css/ContainerQueryParser.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluateQuery const):

  • style/ContainerQueryEvaluator.h:
10:20 PM Changeset in webkit [292374] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

[libpas] Do not need to call pthread_set_qos_class_self_np repeatedly
https://bugs.webkit.org/show_bug.cgi?id=238785

Reviewed by Mark Lam.

Let's remember previously set QOS class and avoid resetting it if the value is not changed.

  • bmalloc/bmalloc.cpp:

(bmalloc::api::setScavengerThreadQOSClass):

  • libpas/src/libpas/pas_scavenger.c:

(pas_scavenger_set_requested_qos_class):
(scavenger_thread_main):

  • libpas/src/libpas/pas_scavenger.h:
9:18 PM Changeset in webkit [292373] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Reduce sizeof(BaselineCallLinkInfo) to make bug 238535 good
https://bugs.webkit.org/show_bug.cgi?id=238777

Reviewed by Mark Lam.

https://bugs.webkit.org/show_bug.cgi?id=238535 adds one pointer to CallLinkInfo.
To make BaselineCallLinkInfo small, this patch removes std::unique_ptr<CallFrameShuffleData>
in BaselineCallLinkInfo since it can be computed in repatching code.

  • bytecode/CallLinkInfo.cpp:

(JSC::BaselineCallLinkInfo::initialize):
(JSC::OptimizingCallLinkInfo::setFrameShuffleData):
(JSC::CallLinkInfo::setFrameShuffleData): Deleted.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::frameShuffleData): Deleted.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/Repatch.cpp:

(JSC::linkPolymorphicCall):

9:10 PM Changeset in webkit [292372] by ysuzuki@apple.com
  • 29 edits in trunk/Source/JavaScriptCore

[JSC] Store CodeBlock in caller side
https://bugs.webkit.org/show_bug.cgi?id=238535

Reviewed by Saam Barati.

This patch changes the calling convention of JS functions. Now, we need to store CodeBlock to the stack in the caller side instead.
This helps LLInt, unlinked Baseline, and DFG since we no longer need to load CodeBlock from callee via costly dependent loads: unlinked
ones cannot embed CodeBlock raw pointer into the machine code itself. So we needed to load it from callee. But now, caller puts the
right CodeBlock pointer into the stack so we do not need that code. And in most cases, caller already knows CodeBlock since it is tied
to actually used machine code pointer.
OSR entry also materializes CodeBlock in the stack in the OSR entry side instead of doing it in the callee side.

This contributes to 0.3% progression in Speedometer2.

  • assembler/CPU.h:

(JSC::prologueStackPointerDelta):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::setMonomorphicCallee):
(JSC::CallLinkInfo::clearCallee):
(JSC::CallLinkInfo::revertCallToStub):
(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::CallLinkInfo::setStub):
(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
(JSC::OptimizingCallLinkInfo::initializeDirectCall):
(JSC::OptimizingCallLinkInfo::setDirectCallTarget):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::offsetOfCodeBlock):

  • bytecode/Repatch.cpp:

(JSC::linkMonomorphicCall):
(JSC::linkDirectCall):
(JSC::linkPolymorphicCall):

  • bytecode/RepatchInlines.h:

(JSC::virtualForWithFunction):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileEntry):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):
(JSC::DFG::prepareCatchOSREntry):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • interpreter/CallFrame.h:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::calleeFrameCodeBlockBeforeCall):
(JSC::AssemblyHelpers::calleeFrameCodeBlockBeforeTailCall):
(JSC::AssemblyHelpers::prologueStackPointerDelta): Deleted.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/JIT.cpp:

(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::emitPutCodeBlockToFrameInPrologue): Deleted.

  • jit/JIT.h:
  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITOperations.h:
  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::boundFunctionCallGenerator):
(JSC::remoteFunctionCallGenerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • llint/WebAssembly.asm:
  • runtime/FunctionExecutable.h:
  • runtime/JSCast.h:
  • runtime/VM.cpp:

(JSC::VM::getRemoteFunction):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::doOSREntry):

8:59 PM Changeset in webkit [292371] by timothy_horton@apple.com
  • 2 edits
    3 deletes in trunk/Source/WebKit

Stop generating WebKit system feature flags plists
https://bugs.webkit.org/show_bug.cgi?id=238784

Reviewed by Wenson Hsieh.

  • FeatureFlags/WebKit-appletvos.plist: Removed.
  • FeatureFlags/WebKit-ios.plist: Removed.
  • FeatureFlags/WebKit-macos.plist: Removed.
  • FeatureFlags/WebKit-watchos.plist: Removed.
  • Scripts/combine-feature-flags-plist.py: Removed.
  • Scripts/generate-feature-flags-plist.sh: Removed.
  • WebKit.xcodeproj/project.pbxproj:
8:46 PM Changeset in webkit [292370] by Chris Dumez
  • 17 edits in trunk/Source/WebCore

Avoid repeated calls to WebCore::eventNames()
https://bugs.webkit.org/show_bug.cgi?id=238773

Reviewed by Geoffrey Garen.

Avoid repeated calls to WebCore::eventNames() by caching it where appropriate.
WebCore::eventNames() calls pthread_get_specific.

  • dom/Element.cpp:

(WebCore::isCompatibilityMouseEvent):

  • dom/EventContext.cpp:

(WebCore::EventContext::handleLocalEvents const):

  • dom/EventTarget.cpp:

(WebCore::legacyType):
(WebCore::EventTarget::removeAllEventListeners):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::toElement const):
(WebCore::MouseEvent::fromElement const):

  • dom/Node.cpp:

(WebCore::Node::moveNodeToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToTouchEvents):
(WebCore::Node::willRespondToMouseClickEvents):

  • dom/PointerEvent.h:

(WebCore::PointerEvent::typeIsEnterOrLeave):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::defaultEventHandler):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::willDispatchEvent):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::defaultEventHandler):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::forwardEvent):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::handleTouchEvent):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::deviceOrientationController const): Deleted.
(WebCore::DOMWindow::deviceMotionController const): Deleted.
(WebCore::DOMWindow::isAllowedToUseDeviceMotionOrOrientation const): Deleted.
(WebCore::DOMWindow::isAllowedToUseDeviceMotion const): Deleted.
(WebCore::DOMWindow::isAllowedToUseDeviceOrientation const): Deleted.
(WebCore::DOMWindow::hasPermissionToReceiveDeviceMotionOrOrientationEvents const): Deleted.
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary): Deleted.
(WebCore::DOMWindow::stopListeningForDeviceOrientationIfNecessary): Deleted.
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary): Deleted.
(WebCore::DOMWindow::stopListeningForDeviceMotionIfNecessary): Deleted.
(WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener): Deleted.
(WebCore::DOMWindow::incrementScrollEventListenersCount): Deleted.
(WebCore::DOMWindow::decrementScrollEventListenersCount): Deleted.
(WebCore::DOMWindow::resetAllGeolocationPermission): Deleted.
(WebCore::DOMWindow::removeEventListener): Deleted.
(WebCore::DOMWindow::languagesChanged): Deleted.
(WebCore::DOMWindow::dispatchLoadEvent): Deleted.
(WebCore::DOMWindow::dispatchEvent): Deleted.
(WebCore::DOMWindow::removeAllEventListeners): Deleted.
(WebCore::DOMWindow::captureEvents): Deleted.
(WebCore::DOMWindow::releaseEvents): Deleted.
(WebCore::DOMWindow::finishedLoading): Deleted.
(WebCore::DOMWindow::setLocation): Deleted.
(WebCore::DOMWindow::printErrorMessage const): Deleted.
(WebCore::DOMWindow::crossDomainAccessErrorMessage): Deleted.
(WebCore::DOMWindow::isInsecureScriptAccess): Deleted.
(WebCore::DOMWindow::createWindow): Deleted.
(WebCore::DOMWindow::open): Deleted.
(WebCore::DOMWindow::showModalDialog): Deleted.
(WebCore::DOMWindow::enableSuddenTermination): Deleted.
(WebCore::DOMWindow::disableSuddenTermination): Deleted.
(WebCore::DOMWindow::frame const): Deleted.
(WebCore::DOMWindow::eventListenersDidChange): Deleted.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::isKeyboardOptionTab):

8:32 PM Changeset in webkit [292369] by sbarati@apple.com
  • 10 edits in trunk

Turn off LLInt ICs in captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=238778
<rdar://84830873>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • bytecode/CallLinkInfo.cpp:

(JSC::BaselineCallLinkInfo::initialize):

  • bytecode/Repatch.cpp:

(JSC::unlinkCall):

  • llint/LLIntCommon.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::performLLIntGetByID):

  • runtime/OptionsList.h:

Source/WebKit:

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

Tools:

  • Scripts/run-jsc-stress-tests:
8:29 PM Changeset in webkit [292368] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix Apple's internal build
https://bugs.webkit.org/show_bug.cgi?id=238786
<rdar://problem/91271543>

Unreviewed build fix.

Copy FRAMEWORK_SEARCH_PATHS and SYSTEM_FRAMEWORK_SEARCH_PATHS from WebCore.xcconfig.

  • Configurations/WebGPU.xcconfig:
8:01 PM Changeset in webkit [292367] by Adrian Perez de Castro
  • 9 edits in trunk/Source/WebKit

[WPE][GTK] Fix code examples in reference documentation
https://bugs.webkit.org/show_bug.cgi?id=238770

Reviewed by Michael Catanzaro.

Replace DocBook SGML tags containing code examples with Markdown fenced code blocks
as consumed by gi-docgen.

  • UIProcess/API/glib/WebKitSettings.cpp:
  • UIProcess/API/glib/WebKitUserContentManager.cpp:
  • UIProcess/API/glib/WebKitWebContext.cpp:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_class_init):

  • UIProcess/API/glib/WebKitWebsitePolicies.cpp:
  • UIProcess/API/gtk/WebKitWebInspector.cpp:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp:
7:42 PM Changeset in webkit [292366] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build
https://bugs.webkit.org/show_bug.cgi?id=238783

Unreviewed build fix.

ConcreteImageBuffer<>::create() needs a default CreationContext argument.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):

7:09 PM Changeset in webkit [292365] by timothy_horton@apple.com
  • 10 edits in trunk/Source

Remove GPU process system feature flags
https://bugs.webkit.org/show_bug.cgi?id=238766

Reviewed by Simon Fraser.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultUseGPUProcessForCanvasRenderingEnabled): Deleted.
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled): Deleted.
(WebKit::defaultUseGPUProcessForMediaEnabled): Deleted.
(WebKit::defaultUseGPUProcessForWebGLEnabled): Deleted.
(WebKit::defaultCaptureVideoInGPUProcessEnabled): Deleted.
(WebKit::defaultWebRTCCodecsInGPUProcess): Deleted.

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
7:06 PM Changeset in webkit [292364] by Said Abou-Hallawa
  • 29 edits
    1 add in trunk/Source/WebCore

[GPU Process] CSSFilter should be created only at the painting time
https://bugs.webkit.org/show_bug.cgi?id=236574
rdar://89210004

Reviewed by Simon Fraser.

Instead of building the whole filter chain to get the filter outsets at
the layout time, we can use the SVGFilterPrimitiveStandardAttributes and
the FilterOperation super classes to get their outsets without having to
build the FilterEffects.

CSSFilter::calculateOutsets() is a static method which will loop through
the FilterOperations and will add up the outsets of the blur, the drop-
shadow and the reference FilterOperation.

SVGFilterBuilder::calculateFilterOutsets() will loop through the primitives
of the filter element and will call the new virtual method outsets() which
will call a static method in the corresponding FilterEffect.

FEDropShadow, FEGaussianBlur and FEOffset will be provide static methods
for calculating the effect outsets. These static methods will be called
from CSSFilter::calculateOutsets() and from the SVGFExxxElements.

To remove the duplication of the code from SVGFilterBuilder::
buildFilterEffects() and calculateFilterOutsets(), a new template class
named SVGFilterGraph will be introduced. It represents the graph of the
SVGFilter. The nodes of this graph will be of type FilterEffecct when
it is used to build the SVGFilterExpression. The nodes will be of type
SVGFilterPrimitiveStandardAttributes when it is used to calculate the
filter outsets.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::calculateOutsets):
(WebCore::FEDropShadow::outsets const): Deleted.

  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::calculateOutsets):
(WebCore::FEGaussianBlur::outsets const): Deleted.

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::calculateOutsets):
(WebCore::FEOffset::outsets const): Deleted.

  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/Filter.h:
  • platform/graphics/filters/FilterFunction.h:

(WebCore::FilterFunction::apply):
(WebCore::FilterFunction::outsets const): Deleted.

  • rendering/CSSFilter.cpp:

(WebCore::calculateBlurEffectOutsets):
(WebCore::calculateDropShadowEffectOutsets):
(WebCore::referenceFilterElement):
(WebCore::calculateReferenceFilterOutsets):
(WebCore::createReferenceFilter):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::calculateOutsets):
(WebCore::createSVGFilter): Deleted.
(WebCore::CSSFilter::outsets const): Deleted.

  • rendering/CSSFilter.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::filtersForPainting const):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::calculateOutsets):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::setFilter): Deleted.
(WebCore::RenderLayerFilters::buildFilter): Deleted.

  • rendering/RenderLayerFilters.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::outsets const):

  • svg/SVGFEDropShadowElement.h:
  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::outsets const):

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::outsets const):

  • svg/SVGFEOffsetElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.h:

(WebCore::SVGFilterPrimitiveStandardAttributes::outsets const):

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):
(WebCore::SVGFilter::calculateResolvedSize):
(WebCore::SVGFilter::resolvedSize const):
(WebCore::SVGFilter::outsets const): Deleted.

  • svg/graphics/filters/SVGFilter.h:
  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::SVGFilterBuilder):
(WebCore::appendEffectToExpression):
(WebCore::appendGraphToExpression):
(WebCore::SVGFilterBuilder::buildFilterExpression):
(WebCore::calculatePrimitiveOutsets):
(WebCore::calculateGraphOutsets):
(WebCore::SVGFilterBuilder::calculateFilterOutsets):
(WebCore::SVGFilterBuilder::setupBuiltinEffects): Deleted.
(WebCore::SVGFilterBuilder::buildFilterEffects): Deleted.
(WebCore::SVGFilterBuilder::sourceGraphic const): Deleted.
(WebCore::SVGFilterBuilder::sourceAlpha const): Deleted.
(WebCore::SVGFilterBuilder::addNamedEffect): Deleted.
(WebCore::SVGFilterBuilder::namedEffect const): Deleted.
(WebCore::SVGFilterBuilder::namedEffects const): Deleted.
(WebCore::SVGFilterBuilder::setEffectInputs): Deleted.
(WebCore::SVGFilterBuilder::appendEffectToEffectRenderer): Deleted.
(WebCore::SVGFilterBuilder::effectGeometry const): Deleted.
(WebCore::SVGFilterBuilder::buildEffectExpression const): Deleted.
(WebCore::SVGFilterBuilder::buildExpression const): Deleted.

  • svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::targetBoundingBox const):
(WebCore::SVGFilterBuilder::primitiveUnits const):
(WebCore::SVGFilterBuilder::effectByRenderer):
(WebCore::SVGFilterBuilder::setTargetBoundingBox): Deleted.
(WebCore::SVGFilterBuilder::setPrimitiveUnits): Deleted.

  • svg/graphics/filters/SVGFilterExpression.h:
  • svg/graphics/filters/SVGFilterGraph.h: Added.

(WebCore::SVGFilterGraph::SVGFilterGraph):
(WebCore::SVGFilterGraph::sourceGraphic const):
(WebCore::SVGFilterGraph::sourceAlpha const):
(WebCore::SVGFilterGraph::addNamedNode):
(WebCore::SVGFilterGraph::getNamedNode const):
(WebCore::SVGFilterGraph::getNamedNodes const):
(WebCore::SVGFilterGraph::setNodeInputs):
(WebCore::SVGFilterGraph::getNodeInputs const):
(WebCore::SVGFilterGraph::lastNode const):

7:03 PM Changeset in webkit [292363] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Remove lots of WebCore:: in RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=238765

Reviewed by Wenson Hsieh.

Add a using namespace WebCore to RemoteLayerBackingStore. WebCore::IOSurface still needs qualification.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::setNeedsDisplay):
(WebKit::RemoteLayerBackingStore::pixelFormat const):
(WebKit::RemoteLayerBackingStore::bytesPerPixel const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::dirtyRepaintCounterIfNecessary):
(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::drawInContext):
(WebKit::RemoteLayerBackingStore::enumerateRectsBeingDrawn):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::takePendingFlushers):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::setFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::bufferForType const):

6:48 PM Changeset in webkit [292362] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r291770-r291762): [ iOS ] css3/background/background-repeat-round-auto1.html is a flaky image failure

https://bugs.webkit.org/show_bug.cgi?id=238781

Unreviewed test gardening.

  • platform/ios/TestExpectations:
6:46 PM Changeset in webkit [292361] by gnavamarino@apple.com
  • 9 edits in trunk/Source

Use Ref and RefPtr pattern when handling document close calls
https://bugs.webkit.org/show_bug.cgi?id=238747

Reviewed by Sam Weinig.

Ensure document object remains for the scope of the call.

Source/WebCore:

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::patchDocument):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::init):
(WebCore::FrameLoader::clear):

  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::finishLoading):

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData):

  • xml/XMLHttpRequest.cpp:

Source/WebKitLegacy/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLDocument::close):

6:41 PM Changeset in webkit [292360] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Remove lots of WebCore:: in RemoteRenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=238763

Reviewed by Wenson Hsieh.

RemoteRenderingBackend already has a using namespace WebCore so remove the explicit namespacing.

Also clean up some includes in the header.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackend::getPixelBufferForImageBufferWithNewMemory):
(WebKit::RemoteRenderingBackend::putPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackend::getDataURLForImageBuffer):
(WebKit::RemoteRenderingBackend::getDataURLForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataForImageBuffer):
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer):
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheFont):
(WebKit::handleFromBuffer):
(WebKit::RemoteRenderingBackend::markSurfacesVolatile):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
6:33 PM Changeset in webkit [292359] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r290676?): [ iOS ] media/video-played-ranges-1.html is a flaky text failure

https://bugs.webkit.org/show_bug.cgi?id=238771

Unreviewed test gardening.

  • platform/ios/TestExpectations:
5:34 PM Changeset in webkit [292358] by timothy_horton@apple.com
  • 13 edits in trunk/Source

Remove VP8/9 and WebM-related system feature flags
https://bugs.webkit.org/show_bug.cgi?id=238757

Reviewed by Eric Carlson.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebMFormatReaderEnabled): Deleted.
(WebKit::defaultVP8DecoderEnabled): Deleted.
(WebKit::defaultVP9DecoderEnabled): Deleted.
(WebKit::defaultWebMParserEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.h:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Demote these to standard preferences, and stop using system feature flags to control their defaults.

4:42 PM Changeset in webkit [292357] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/mediarecorder/mute-tracks.html is a flaky crash

https://bugs.webkit.org/show_bug.cgi?id=238774

Unreviewed test gardening.

  • platform/ios/TestExpectations:
4:21 PM Changeset in webkit [292356] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

[macOS] [WK2] Add plumbing to extract video frames in element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238715
rdar://91216152

Reviewed by Tim Horton.

Implement (begin|cancel)ElementFullscreenVideoExtraction on macOS, leaving empty stubs for non-internal builds.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::beginElementFullscreenVideoExtraction):
(WebKit::WebViewImpl::cancelElementFullscreenVideoExtraction):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::beginElementFullscreenVideoExtraction):
(WebKit::PageClientImpl::cancelElementFullscreenVideoExtraction):

4:06 PM Changeset in webkit [292355] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit

Remove the 'general_directory_for_storage' system feature flag
https://bugs.webkit.org/show_bug.cgi?id=238762

Reviewed by Sihui Liu.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

3:28 PM Changeset in webkit [292354] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Remove the 'sw_vp9_decoder_on_battery' system feature flag
https://bugs.webkit.org/show_bug.cgi?id=238761

Reviewed by Eric Carlson.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9SWDecoderEnabledOnBattery): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Switch this to a standard experimental feature.
Also, remove the WebKitLegacy case, as it is not used there.

3:24 PM Changeset in webkit [292353] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Remove the 'async frame and overflow scrolling' system feature flag
https://bugs.webkit.org/show_bug.cgi?id=238758

Reviewed by Simon Fraser.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAsyncFrameAndOverflowScrollingEnabled): Deleted.
(WebKit::defaultAsyncFrameScrollingEnabled): Deleted.
(WebKit::defaultAsyncOverflowScrollingEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
3:22 PM Changeset in webkit [292352] by timothy_horton@apple.com
  • 13 edits in trunk/Source

Remove the incremental_pdf system feature flag
https://bugs.webkit.org/show_bug.cgi?id=238754

Reviewed by Wenson Hsieh.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:
  • Shared/WebPreferencesDefaultValues.h:

(WebKit::defaultIncrementalPDFEnabled): Deleted.
Remove the incremental_pdf system feature flag in favor of a traditional WebKit preference.

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.mm:
  • WebView/WebPreferencesDefaultValues.h:

(WebKit::defaultIncrementalPDFEnabled): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Demote incremental PDF rendering from a developer-exposed experimental feature
to a standard web preference now that it's been on and shipping for a while.

3:08 PM Changeset in webkit [292351] by timothy_horton@apple.com
  • 8 edits in trunk/Source

Remove the 'RB_full_manage_WK_jetsam' system feature flag and simplify adjacent logic
https://bugs.webkit.org/show_bug.cgi?id=238760

Reviewed by Chris Dumez.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::shouldLeakBoost):

Source/WTF:

  • wtf/PlatformHave.h:
3:04 PM Changeset in webkit [292350] by Matt Woodrow
  • 3 edits
    2 adds in trunk

intersectsWithAncestor should take fragmented boxes into account.
https://bugs.webkit.org/show_bug.cgi?id=238648

Reviewed by Dean Jackson.

Source/WebCore:

Test: compositing/backing/backing-store-columns-inside-position-fixed.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::intersectsWithAncestor):

Use boundingBox() for intersectsWithAncestor, so that we can explicitly request the box that contains
all fragment boxes.

LayoutTests:

  • compositing/backing/backing-store-columns-inside-position-fixed-expected.txt: Added.
  • compositing/backing/backing-store-columns-inside-position-fixed.html: Added.

Adds new test that scrolls content split into columns until the first column is offscreen, to confirm
that we still have a backing store.

3:01 PM Changeset in webkit [292349] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

Remove some unused system feature flags
https://bugs.webkit.org/show_bug.cgi?id=238755

Reviewed by Wenson Hsieh.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:

Neither of these flags is read anywhere, so they don't need to be in the plist.

2:56 PM Changeset in webkit [292348] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r292242. rdar://91259284

Change one-shot maxTimerNestingLevel from 5 to 10
https://bugs.webkit.org/show_bug.cgi?id=237168

Reviewed by Sam Weinig, Saam Barati, and Cameron McCormack .

Source/WebCore:

Recently, we found from Chromium change[1] that changing this from 5 to 10 offers 10% Speedometer2 improvement
because Speedometer2's setTimeout nesting level is typically 7-8. We discussed with folks including Chris, Maciej,
Saam, and Cameron and for now, we increase this from 5 to 10 to align to Blink's change to keep these kind of web
content fast. This is not aligned to the spec, and currently, we only apply it to one-shot timer.

[1]: https://chromium-review.googlesource.com/c/chromium/src/+/3473463

page/DOMTimer.cpp:
(WebCore::DOMTimer::intervalClampedToMinimum const):
(WebCore::DOMTimer::alignedFireTime const):

LayoutTests:

fast/dom/timer-increase-min-interval.html:
fast/dom/timer-throttling-hidden-page-expected.txt:
fast/dom/timer-throttling-hidden-page.html:

2:56 PM Changeset in webkit [292347] by Alan Coon
  • 11 edits
    5 adds in branches/safari-613-branch

Cherry-pick r291998. rdar://91259284

Remove the 1ms minimum for setTimeout
https://bugs.webkit.org/show_bug.cgi?id=221124
<rdar://problem/73852354>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

web-platform-tests/html/webappapis/timers/zero-settimeout.any-expected.txt:
web-platform-tests/html/webappapis/timers/zero-settimeout.any.html:
web-platform-tests/html/webappapis/timers/zero-settimeout.any.js:
(async_test):

web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker-expected.txt:
web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html:
New test checking that 0ms and 1ms timeouts are called in the right
order.

web-platform-tests/FileAPI/file/File-constructor.any.worker-expected.txt:
web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.worker-expected.txt:
web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.worker-expected.txt:
web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-redirect-to-cross-origin.sub.any.worker-expected.txt:
web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-same-origin.sub.any.worker-expected.txt:
web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-cross-origin.sub.any.worker-expected.txt:
web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-redirect-to-cross-origin.sub.any.worker-expected.txt:
web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-same-origin.sub.any.worker-expected.txt:
Disable console output in some worker tests where the reduced timeout
would cause intemittent failures due to the console message sometimes
not making it to the test output in time.

Source/WebCore:

This patch removes the 1ms minimum for setTimeout. The HTML spec makes
no mention of such a minimum, and Firefox and Chrome do not enforce
this minimum. Removing this for setTimeout results in a 0.7-2.1%
improvement on Speedometer, depending on platform and hardware.

The WPT added here demonstrates how this change can affect pages: if a
page schedules a 1ms and then a 0ms timeout in the same turn of the
event loop, then with this patch they will now be fired in the reverse
order. Since Firefox and Chrome do not impose a 1ms minimum, this
reduces the risk of this being a compatbility problem.

Scheduling a 0ms timeout will cause its callback to be called the next
time around the event loop. Other, non-timer queued tasks, will be
pre-empted. This behavior is permitted by the HTML spec, since the
event loop processing model[1] states that the implementation can
choose which task source to service, and timer callbacks are
dispatched using their own task source. Due to the way the SharedTimer
is called, we don't need to literally dispatch a task with a new
TaskSource::Timer source. (If we decided later to make a different
about whether to service timer callbacks before tasks from all other
task sources, we might need to.)

Not addressing the setTimeout 1ms minimum here, which should likely also
be removed.

While we're here, settle on "one shot" rather rather than "single
shot" as the term for timers that fire once.

[1] https://html.spec.whatwg.org/#event-loop-processing-model

Tests: imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.html

imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html

page/DOMTimer.h:
page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):
(WebCore::DOMTimer::updateTimerIntervalIfNecessary):
(WebCore::DOMTimer::intervalClampedToMinimum const):

LayoutTests:

TestExpectations: Disable console output in some worker tests where
the reduced timeout would cause intemittent failures due to the
console message sometimes not making it to the test output in time.

js/script-tests/weakref-finalizationregistry.js:
(turnEventLoop): Use a timeout of 1ms instead of 0ms so that
the deferred work task that calls the JS FinalizationRegistry
callback gets a chance to run before we continue on to the
assertion that it was run.

2:56 PM Changeset in webkit [292346] by Alan Coon
  • 2 adds in branches/safari-613-branch/Source/WebCore/html/parser

Add HTMLNameCache.h/cpp from r289991. Prior cherry-pick somehow missed it.

2:56 PM Changeset in webkit [292345] by Alan Coon
  • 9 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291889. rdar://91259284

Enable PGO when building for release and production
https://bugs.webkit.org/show_bug.cgi?id=238119
rdar://90182309

Reviewed by Alexey Proskuryakov and Geoff Garen.

Source/JavaScriptCore:

See WebCore/ChangeLog for more information.

Configurations/Base.xcconfig:
Configurations/JavaScriptCore.xcconfig:
JavaScriptCore.xcodeproj/project.pbxproj:
Source/WebCore:

Attempt to re-land support for compiling against profiling data, after it was reverted due to the profiling data
files being too large. We mitigate this by instead storing sparse profdata files as compressed files in
WebKitAdditions through git lfs, such that they don't cause the repo to grow significantly each time we update
profiling data.

At build time, we then introduce new build phase scripts to the JavaScriptCore, WebCore and WebKit builds to
decompress their respective .profdata.compressed files into .profdata files in the build, using
compression_tool. We compile against these profdata files when building for release and production
configurations, via the -fprofile-instr-use flag.

In the case where the *.profdata.compressed files are non-existent or haven't been downloaded yet, we instead
fall back to using an empty profiling data file, but only on non-production builds; this allows us to continue
passing in the -fprofile-instr-use flag, without running into build failures.

Note that we intentionally require production builds to use the (real) profiling data, and explicitly fail the
build with a specific error message in the case where the profiles are missing.

Additionally, note that in order to check for and deal with the case where the *.profdata.compressed files are
only undownloaded git-lfs stubs, we not only check whether or not the profdata.compressed file exists, but
also whether or not the file size is at least an arbitrary cutoff of 4 KB (which should already be an order of
magnitude larger than the git-lfs stub). While mostly arbitrary, I chose this cutoff due to the fact that it's
very close to the size of the Empty.profdata placeholder file in Tools; in practice, we should expect the
profiles for WebKit, WebCore and JavaScriptCore to be much, much larger than this empty file.

Configurations/Base.xcconfig:
Configurations/WebCore.xcconfig:
WebCore.xcodeproj/project.pbxproj:
Source/WebKit:

See WebCore/ChangeLog for more information.

Configurations/Base.xcconfig:
Configurations/BaseTarget.xcconfig:
WebKit.xcodeproj/project.pbxproj:
Tools:

Add an empty profiling data file that can be used as a fallback only for release (non-production) builds, when
the JavaScriptCore, WebCore or WebKit profiling data hasn't been locally downloaded.

Profiling/Empty.profdata: Added.

2:56 PM Changeset in webkit [292344] by Alan Coon
  • 6 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291981. rdar://91259284

Speed up Element::removedFromAncestor()
https://bugs.webkit.org/show_bug.cgi?id=238404

Reviewed by Geoffrey Garen.

Speed up Element::removedFromAncestor() by inlining some of the functions it is calling.
This is a confirmed 1.5-2% progression on Speedometer on iMac 20,1.

dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
(WebCore::Element::clearBeforePseudoElementSlow):
(WebCore::Element::clearAfterPseudoElementSlow):
(WebCore::Element::setSavedLayerScrollPositionSlow):
(WebCore::Element::clearBeforePseudoElement): Deleted.
(WebCore::Element::clearAfterPseudoElement): Deleted.
(WebCore::Element::setSavedLayerScrollPosition): Deleted.

dom/Element.h:
(WebCore::Element::setSavedLayerScrollPosition):
(WebCore::Element::clearBeforePseudoElement):
(WebCore::Element::clearAfterPseudoElement):

page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::elementWasRemovedSlow):
(WebCore::PointerCaptureController::elementWasRemoved): Deleted.

page/PointerCaptureController.h:
(WebCore::PointerCaptureController::elementWasRemoved):

page/PointerLockController.cpp:
(WebCore::PointerLockController::elementWasRemovedInternal):
(WebCore::PointerLockController::elementWasRemoved): Deleted.

page/PointerLockController.h:
(WebCore::PointerLockController::elementWasRemoved):

2:56 PM Changeset in webkit [292343] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291964. rdar://91259284

Optimize toJS() for HTMLElements
https://bugs.webkit.org/show_bug.cgi?id=238426

Reviewed by Yusuke Suzuki.

Optimize toJS() for HTMLElements. Previously, the more generic Element's toJS() would be called,
which would have to do more checks.

This is a 0.6% progression on Speedometer 2.0 on MacBook Air 10,1 (AS).

bindings/js/JSHTMLElementCustom.cpp:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

html/HTMLElement.idl:

2:56 PM Changeset in webkit [292342] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291933. rdar://91259284

Simplify / Optimize JSNodeOwner::isReachableFromOpaqueRoots()
https://bugs.webkit.org/show_bug.cgi?id=238380

Reviewed by Geoffrey Garen.

Drop checks specific to HTMLAudioElement and HTMLImageElement from
JSNodeOwner::isReachableFromOpaqueRoots() so that other Node wrappers
that are not audio or image elements do not have to pay the cost.

In the HTMLAudioElement case, HTMLAudioElement already subclasses HTMLMediaElement which
is an ActiveDOMObject and HTMLMediaElement::virtualHasPendingActivity() already takes
care of keeping the JS wrapper alive is there is audio playing.

For HTMLImageElement, I made it subclass ActiveDOMObject so that the JSHTMLImageElement
wrapper is now calling HTMLImageElement::hasPendingActivity() instead of every JS Node
wrapper via JSNodeOwner::isReachableFromOpaqueRoots().

bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):

html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::create):
(WebCore::HTMLImageElement::createForLegacyFactoryFunction):
(WebCore::HTMLImageElement::activeDOMObjectName const):
(WebCore::HTMLImageElement::virtualHasPendingActivity const):
(WebCore::HTMLImageElement::hasPendingActivity const): Deleted.

html/HTMLImageElement.h:
html/HTMLImageElement.idl:
html/ImageDocument.cpp:
(WebCore::ImageDocumentElement::create):

2:56 PM Changeset in webkit [292341] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/dom/EventListenerMap.h

Cherry-pick r291866. rdar://91259284

Reduce EventListenerVector's minimum capacity from 16 to 2
https://bugs.webkit.org/show_bug.cgi?id=238374

Reviewed by Geoffrey Garen.

Reduce EventListenerVector's minimum capacity from 16 to 2 to save memory and get a small speedup on Speedometer.
Very few event listeners are registered for a given type in the common case so eagerly allocating enough memory for 16 is wasteful.
This is a confirmed 0.4% progression on Speedometer according to A/B bots.

dom/EventListenerMap.h:

2:56 PM Changeset in webkit [292340] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source/WebCore/rendering

Cherry-pick r291793. rdar://91259284

Devirtualize RenderText::width
https://bugs.webkit.org/show_bug.cgi?id=238285

Reviewed by Antti Koivisto.

RenderCombineText handling is moved to RenderText (we already handle combine text in RenderText::widthFromCache).

rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::combineTextIfNeeded): These are all non-text-combine callsites.
(WebCore::RenderCombineText::width const): Deleted.

rendering/RenderCombineText.h:
rendering/RenderText.cpp:
(WebCore::combineTextWidth): RenderCombineText::combinedTextWidth returns the same value as RenderCombineText::width.
(WebCore::RenderText::widthFromCache const):
(WebCore::RenderText::width const):

rendering/RenderText.h:

2:56 PM Changeset in webkit [292339] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source/WebCore/style

Cherry-pick r291790. rdar://91259284

Allow styles with appearance in matched declaration cache
https://bugs.webkit.org/show_bug.cgi?id=238247

Reviewed by Antoine Quint.

Improve cache efficiency by allowing styles with appearance (typically form controls) to be cached.

In Speedometer this improves the cache hit rate ~75% -> 94%.

style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::isCacheable):

Remove appearance check.

(WebCore::Style::MatchedDeclarationsCache::add):

Also cache the UA style for styles with appearance.

(WebCore::Style::MatchedDeclarationsCache::remove):

style/MatchedDeclarationsCache.h:
style/StyleResolver.cpp:
(WebCore::Style::Resolver::applyMatchedProperties):

Also simplify the case where inherited properties affect resolution of other properties by
kicking out the existing entry. This also makes the second attempt cacheable.

style/StyleResolver.h:

2:56 PM Changeset in webkit [292338] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source/WebCore/dom

Cherry-pick r291538. rdar://91259284

Optimize EventTarget::visitJSEventListeners()
https://bugs.webkit.org/show_bug.cgi?id=238116

Reviewed by Darin Adler.

This was confirmed by A/B bots to be a 1-1.5% progression on Speedometer on
iMac 20,1 (Intel).

dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::clear):
(WebCore::EventListenerMap::replace):
(WebCore::EventListenerMap::add):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
(WebCore::EventListenerMap::assertNoActiveIterators const): Deleted.
(WebCore::EventListenerMap::EventListenerMap): Deleted.
(WebCore::EventListenerIterator::EventListenerIterator): Deleted.
(WebCore::EventListenerIterator::~EventListenerIterator): Deleted.
(WebCore::EventListenerIterator::nextListener): Deleted.

dom/EventListenerMap.h:
(WebCore::EventListenerMap::visitJSEventListeners):
(): Deleted.
(WebCore::EventListenerMap::assertNoActiveIterators const): Deleted.

dom/EventTarget.cpp:
(WebCore::EventTarget::visitJSEventListeners): Deleted.

dom/EventTarget.h:
(WebCore::EventTarget::visitJSEventListeners):

2:56 PM Changeset in webkit [292337] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/html/parser/AtomHTMLToken.h

Cherry-pick r291508. rdar://91259284

Optimize AtomHTMLToken::initializeAttributes()
https://bugs.webkit.org/show_bug.cgi?id=238074

Reviewed by Geoffrey Garen.

Use a HashSet to find duplicate attributes instead of doing a linear search.
This is a confirmed 1.2% progression on Speedometer on iMac20,1 via A/B bots.

html/parser/AtomHTMLToken.h:
(WebCore::AtomHTMLToken::initializeAttributes):

2:56 PM Changeset in webkit [292336] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore/dom

Cherry-pick r291495. rdar://91259284

Avoid extra pointer dereference in EventListenerMap::m_entries
https://bugs.webkit.org/show_bug.cgi?id=238075

Reviewed by Geoffrey Garen.

This is a confirmed 0.5-0.8% progression on Speedometer according to A/B
bots.

dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::clear):
(WebCore::EventListenerMap::add):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::find):
(WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
(WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerIterator::nextListener):
(WebCore::EventListenerMap::find const): Deleted.

dom/EventListenerMap.h:
(WebCore::EventListenerMap::find const):

2:56 PM Changeset in webkit [292335] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/JavaScriptCore/Configurations/Base.xcconfig

Cherry-pick r290993 and r291087.

2:56 PM Changeset in webkit [292334] by Alan Coon
  • 29 edits
    7 adds in branches/safari-613-branch

Cherry pick r290574 r290639 r291028 r291961.

Patches needed for Cameron's "Make input element UA shadow tree creation lazy" change.

2:55 PM Changeset in webkit [292333] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/JavaScriptCore/runtime/Options.cpp

Cherry-pick r290405. rdar://91259284

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

Reviewed by Mark Lam.

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

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

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

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

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

runtime/Options.cpp:
(JSC::overrideDefaults):

2:55 PM Changeset in webkit [292332] by Alan Coon
  • 15 edits in branches/safari-613-branch/Source/WebCore/html

Cherry-pick r290086. rdar://91259284

Always use ChildChange::Source::Parser when creating input element UA shadow tree contents
https://bugs.webkit.org/show_bug.cgi?id=236740

Reviewed by Dean Jackson.

When creating an input element's UA shadow tree, we currently use a
ChildChange::Source value that depends on whether the input element
itself was parser- or script-inserted. But since UA shadow trees are
not exposed to content, and we don't have any dependency on the extra
work that inserting using ChildChange::Source::API does, we can use
ChildChange::Source::Parser unconditionally.

Local testing shows this scores a 0.1% Speedometer 2 improvement.

html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/BaseDateAndTimeInputType.h:
html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/ColorInputType.h:
html/FileInputType.cpp:
(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/FileInputType.h:
html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/InputType.cpp:
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/InputType.h:
html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/RangeInputType.h:
html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/SearchInputType.h:
html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

html/TextFieldInputType.h:

2:55 PM Changeset in webkit [292331] by Alan Coon
  • 8 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r289991. rdar://91259284

Cache an entire attribute QualifiedName when parsing HTML, not just its local name AtomString
https://bugs.webkit.org/show_bug.cgi?id=236570
<rdar://problem/88876545>

Reviewed by Darin Adler.

Bug 229907 added HTMLAtomStringCache, which uses a fast to compute hash
that works well to cache HTML tag names, attribute names, and attribute
values. When AtomHTMLToken initializes its list of Attributes, it uses
HTMLAtomStringCache to look up or create an AtomString for the
attribute's local name, and then creates a QualifiedName to wrap it.
QualifiedName construction involves looking up QualifiedNameCache, which
is a thread-specific cache of QualifiedNameImpl objects. If we make
HTMLAtomStringCache responsible for caching an attribute's QualifiedName
instead of just its local name AtomString, we can avoid the work of
looking up the QualifiedNameCache.

To reflect its broader responsibilities, HTMLAtomStringCache is renamed
to HTMLNameCache.

Doing this results in a 0.2-0.3% improvement on Speedometer 2, and a
0.3-0.4% improvement on PLT5 (with the lower end of those ranges being
on Apple Silicon and the higher end on Intel).

Sources.txt:
WebCore.xcodeproj/project.pbxproj:
dom/QualifiedName.h:
(WebCore::QualifiedName::QualifiedName):

html/parser/AtomHTMLToken.h:
(WebCore::AtomHTMLToken::initializeAttributes):
(WebCore::AtomHTMLToken::AtomHTMLToken):

html/parser/HTMLAtomStringCache.h: Removed.
(WebCore::HTMLAtomStringCache::makeTagOrAttributeName): Deleted.
(WebCore::HTMLAtomStringCache::makeAttributeValue): Deleted.
(WebCore::HTMLAtomStringCache::clear): Deleted.
(WebCore::HTMLAtomStringCache::make): Deleted.
(WebCore::HTMLAtomStringCache::cacheSlot): Deleted.

html/parser/HTMLNameCache.cpp: Renamed from Source/WebCore/html/parser/HTMLAtomStringCache.cpp.
(WebCore::HTMLNameCache::atomStringCache):
(WebCore::HTMLNameCache::qualifiedNameCache):

html/parser/HTMLNameCache.h: Added.
(WebCore::HTMLNameCache::makeTagName):
(WebCore::HTMLNameCache::makeAttributeQualifiedName):
(WebCore::HTMLNameCache::makeAttributeValue):
(WebCore::HTMLNameCache::clear):
(WebCore::HTMLNameCache::makeAtomString):
(WebCore::HTMLNameCache::makeQualifiedName):
(WebCore::HTMLNameCache::slotIndex):
(WebCore::HTMLNameCache::atomStringCacheSlot):
(WebCore::HTMLNameCache::qualifiedNameCacheSlot):

page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory):

page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):

2:55 PM Changeset in webkit [292330] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore/rendering

Cherry-pick r289692. rdar://91259284

Make WidgetHierarchyUpdatesSuspensionScope cheaper if it has nothing to do
https://bugs.webkit.org/show_bug.cgi?id=236486

Reviewed by Simon Fraser.

With content that does a lot of DOM manipulation, we can create and
destroy a WidgetHierarchyUpdatesSuspensionScope on the stack many times.
When this object has nothing to do, it calls an out of line function.
This patch pulls out the check for whether it needs to call
moveWidgets() into the inline destructor.

This is a 1% saving on the jQuery-TodoMVC subtest of Speedometer 2,
though the effect on the top line score is minimal.

rendering/RenderWidget.cpp:
(WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):

rendering/RenderWidget.h:
(WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope):
(WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove):

2:55 PM Changeset in webkit [292329] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/html/InputType.cpp

Cherry-pick r289691. rdar://91259284

Look up InputTypeFactoryMap with an ASCII lowercase string instead of using a ASCIICaseInsensitiveHash
https://bugs.webkit.org/show_bug.cgi?id=236532

Reviewed by Myles C. Maxfield.

InputType::create looks up the InputTypeFactoryMap based on the
AtomString value of the <input type> attribute. The HashMap uses an
ASCIICaseInsensitiveHash, but the AtomStrings stored in the map are all
ASCII lowercase to begin with. This means that we spend time doing an
ASCII case insensitive hash computation on the query string. Most
content already supplies an ASCII lowercase type value, so it's less
work to ASCII lowercase the type value and then look up the HashMap
using the regular hash for AtomStrings (i.e., pulling the hash out of
AtomString).

Doing this is a 0.5% improvement on a couple of Speedometer 2 subtests,
and a 0.1% improvement to the overall score.

html/InputType.cpp:
(WebCore::InputType::create):

2:55 PM Changeset in webkit [292328] by Alan Coon
  • 8 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r289359. rdar://91259284

[JSC] Convert JSString's non-atomic WTF::String to atomic string while concurrent compilers / heap threads run
https://bugs.webkit.org/show_bug.cgi?id=236262

Reviewed by Saam Barati.

Inspired from r289177. This patch introduces a new protocol which allows us to replace JSString's underlying non-atomic String
to atomic String if we once call toIdentifier / toAtomString.

We had a problem that,

We have a JSString, which has a "test" WTF::String.
We already have "test" atomic string in the table.
Then, when we call JSString::toIdentifier, we know that there is an atomic "test" string, but we cannot replace the current JSString's WTF::String because it can be accessed concurrently from concurrent compilers and GC heap helpers.
Thus, JSString keeps non atomic "test" WTF::String.
But this means that we need to lookup atom string table every time we would like to get an atom string from this JSString.

So, in this patch, we introduce a new protocol, which allows swapping existing WTF::String with an atom string.

When we found that JSString has a WTF::String and we already have atom string in the table with the same content (when calling
toIdentifier / toAtomString), we attempt to replace JSString's WTF::String with the atom string, but *keep the old string in JSC::Heap's
vector called m_possiblyAccessedStringsFromConcurrentThreads. Then, we can keep these strings alive until next GC ends. This ensures that
all concurrent compilers / heap helpers can keep accessing to the old strings. And then, in the GC finalize, we clear this vector since
resumed concurrent compilers and GC heap helpers will not touch these old strings in the next GC cycle. Only case we have a problem is
that we keep having StringImpl* of the old string after GC safepoint in the concurrent compiler, and the only use of that is
DFG::Graph::m_copiedStrings. So, I changed the code not to keep old StringImpl* in DFG::Graph::m_copiedStrings. Also, note that we do
this only when we convert non-atom string to atom string so all UniquedStringImpl* from JSString* (it is atom ones) does not matter since
they are already atom one: they will not be replaced.

This does not increase memory usage, rather, improve memory usage since this kept string was anyway held by the wrapper's JSString at least
until the next GC run. And we clear m_possiblyAccessedStringsFromConcurrentThreads in the next GC run, so we can shrink memory.

It improves Speedometer2 by 0.2%.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |106.193333 |105.690000 |0.995260 | 0.050074 |
| VueJS-TodoMVC |21.671667 |21.741667 |1.003230 | 0.715305 |
| EmberJS-TodoMVC |113.146667 |110.871667 |0.979893 | 0.000000 (significant) |
| BackboneJS-TodoMVC |42.481667 |42.346667 |0.996822 | 0.358040 |
| Preact-TodoMVC |15.796667 |16.016667 |1.013927 | 0.226011 |
| AngularJS-TodoMVC |117.568333 |117.345000 |0.998100 | 0.543369 |
| Vanilla-ES2015-TodoMVC |58.348333 |57.905000 |0.992402 | 0.000381 (significant) |
| Inferno-TodoMVC |54.656667 |54.946667 |1.005306 | 0.254310 |
| Flight-TodoMVC |61.106667 |61.141667 |1.000573 | 0.880780 |
| Angular2-TypeScript-TodoMVC |37.030000 |37.065000 |1.000945 | 0.918550 |
| VanillaJS-TodoMVC |47.741667 |47.911667 |1.003561 | 0.497675 |
| jQuery-TodoMVC |205.251667 |203.903333 |0.993431 | 0.000420 (significant) |
| EmberJS-Debug-TodoMVC |312.448333 |308.848333 |0.988478 | 0.000020 (significant) |
| React-TodoMVC |78.381667 |78.268333 |0.998554 | 0.654647 |
| React-Redux-TodoMVC |131.246667 |131.626667 |1.002895 | 0.138912 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |57.860000 |57.533333 |0.994354 | 0.156536 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 290.61106
b mean = 291.21768
pValue = 0.1419936818
(Bigger means are better.)
1.002 times better
Results ARE NOT significant

bytecompiler/BytecodeGenerator.cpp:
(JSC::prepareJumpTableForStringSwitch):

dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):

dfg/DFGGraph.h:
dfg/DFGLazyJSValue.cpp:
(JSC::DFG::CrossThreadStringTranslator::hash):
(JSC::DFG::CrossThreadStringTranslator::equal):
(JSC::DFG::CrossThreadStringTranslator::translate):
(JSC::DFG::LazyJSValue::tryGetString const):

dfg/DFGLazyJSValue.h:
(JSC::DFG::LazyJSValue::knownStringImpl):

heap/Heap.cpp:
(JSC::Heap::finalize):

heap/Heap.h:
(JSC::Heap::appendPossiblyAccessedStringFromConcurrentThreads):

runtime/JSString.h:
(JSC::JSString::swapToAtomString const):
(JSC::JSString::toIdentifier const):
(JSC::JSString::toAtomString const):

2:55 PM Changeset in webkit [292327] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore/runtime

Cherry-pick r289177. rdar://91259284

Cache the most recent AtomString produced by JSString::toIdentifier
https://bugs.webkit.org/show_bug.cgi?id=236124

Reviewed by Yusuke Suzuki.

JSString::toIdentifier does not store the result of atomizing its string
value, except when it is a rope. We can often end up atomizing the same
JSString a number of times.

This patch caches the last atomized string produced from
JSString::toIdentifier in a given VM. From local testing, this is a 0.5%
Speedometer2 improvement on an M1 MacBook Air, although surprisingly is
neutral on a recent Intel MacBook Pro.

runtime/JSString.h:
(JSC::JSRopeString::toIdentifier const):
(JSC::JSString::toIdentifier const):

runtime/VM.h:

2:55 PM Changeset in webkit [292326] by Alan Coon
  • 5 edits
    1 add in branches/safari-613-branch

Cherry-pick r289020. rdar://91259284

Speed-up JSON.stringify() by avoiding "toJSON" property lookups
https://bugs.webkit.org/show_bug.cgi?id=235996

Patch by Alexey Shvayka ashvayka@apple.com> on 2022-02-02
Reviewed by Saam Barati.

JSTests:

microbenchmarks/json-stringify-many-objects-to-json.js:
Make this test a little more realistic by moving "toJSON" onto prototype.

microbenchmarks/vanilla-todomvc-json-stringify.js: Added.
Source/JavaScriptCore:

Speedometer2/Vanilla* subtests are highly reliant on JSON.stringify() for "storage":
it accounts for 10-15% of running time. EmberJS* subtests rely on JSON.stringify() as
well, although they are significantly slower overall, and also encounter only a few
different structures.

This patch caches "toJSON" properties on Structure's rare data; it's the same technique
we are using in toPrimitive() to avoid "toString" / "valueOf" lookups. The microbenchmark,
which was carefully extracted from Speedometer2/Vanilla* subtests, progressed by 3.7%.

While we could come up with a solution that doesn't involve creating StructureRareData
for all structures we stringify, like keeping a list of StructureIDs w/o "toJSON" method,

which will be correct as long as m_hasFastObjectProperties
m_isJSArray is true for all

seen objects, that would probably miss some edge case, won't persist between JSON.stringify()
calls, and won't speed-up structures with "toJSON" methods like Dates.

runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp:
(JSC::CachedSpecialPropertyAdaptiveStructureWatchpoint::fireInternal):

runtime/JSONObject.cpp:
(JSC::Stringifier::toJSON):

runtime/StructureRareData.cpp:
(JSC::StructureRareData::cacheSpecialPropertySlow):
(JSC::CachedSpecialPropertyAdaptiveInferredPropertyValueWatchpoint::handleFire):

runtime/StructureRareData.h:

2:55 PM Changeset in webkit [292325] by Alan Coon
  • 112 edits
    3 copies
    2 adds in branches/safari-613-branch/Source

Cherry pick r288815 r288854 r288870 r289592 r289717 r289718 r291448 r291456.

These are all part of Keith's StructureID overhaul.

2:54 PM Changeset in webkit [292324] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/JavaScriptCore/yarr/YarrJIT.cpp

Cherry-pick r288748. rdar://91259284

[JSC] YarrJIT optimization for character BM search
https://bugs.webkit.org/show_bug.cgi?id=235738

Reviewed by Saam Barati.

Add micro-optimization of BM search path. Since it is super hot path,
this small improvement offsers 1% in jquery-todomvc-regexp microbenchmark.

ToT Patched

jquery-todomvc-regexp 484.1399+-1.0527 479.0932+-1.0999 definitely 1.0105x faster

yarr/YarrJIT.cpp:

2:54 PM Changeset in webkit [292323] by Alan Coon
  • 2 edits in branches/safari-613-branch

Cherry-pick r288669. rdar://91259284

Avoid setting and clearing :active state when dispatching synthetic click events when possible
https://bugs.webkit.org/show_bug.cgi?id=235672
<rdar://problem/88095418>

Reviewed by Simon Fraser.

Source/WebCore:

Simulated click events are dispatched with two options:

whether to send associated events mouseover, mouseup, mousedown
whether to repaint the target element with its pressed look
We currently always set the element's :active state just after when we'd
send the mousedown event, and clear it just after that.

When we dispatch a simulated click event with neither of the above
options set, there's no way to observe the temporary :active state on
the element. We can skip it in that case.

We need to continue clearing clearing the :active state regardless,
because some callers have already set :active and are relying on
simulateClick to clear it.

This patch is a 0.3-0.4% improvement on Speedometer 2.

dom/SimulatedClick.cpp:
(WebCore::simulateClick):

LayoutTests:

platform/gtk/inspector/timeline/line-column-expected.txt:

2:54 PM Changeset in webkit [292322] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/JavaScriptCore/runtime

Cherry-pick r288537. rdar://91259284

Remove VM::stringCache
https://bugs.webkit.org/show_bug.cgi?id=235536

Reviewed by Sam Weinig.

We consult VM::stringCache when creating a JSString, but since
bug 142115 we never insert anything into it.

Removing this results in almost-significant improvements in the VueJS,
Vanilla-ES2015, and jQuery sub-tests of Speedometer 2 (of 0.5-2%,
0.03 <= p <= 0.05), and an almost significant 0.2% improvement in the
overall score (p = 0.06).

runtime/JSString.cpp:
(JSC::jsStringWithCacheSlowCase):

runtime/VM.cpp:
(JSC::VM::VM):

runtime/VM.h:

2:52 PM Changeset in webkit [292321] by Brent Fulgham
  • 1 edit in trunk/Source/WebCore/features.json

Correct typo in features.json

2:38 PM Changeset in webkit [292320] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.2.6

2:38 PM Changeset in webkit [292319] by Cameron McCormack
  • 4 edits in trunk/Source/WebKit

Remove display list map entry before remote resource
https://bugs.webkit.org/show_bug.cgi?id=238764

Reviewed by Simon Fraser.

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::clearImageBufferReference):

  • GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):

2:30 PM Changeset in webkit [292318] by Simon Fraser
  • 2 edits in trunk/Tools

Fix the TestWebKitAPI build with an iOS 15.4 internal SDK
https://bugs.webkit.org/show_bug.cgi?id=238750

Reviewed by Alex Christensen.

Add needed include.

  • TestWebKitAPI/ios/UIKitSPI.h:
2:21 PM Changeset in webkit [292317] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[CSS-contain] Update select element based test failures.

Unreviewed.

2:16 PM Changeset in webkit [292316] by Wenson Hsieh
  • 7 edits in trunk/Source

[macOS] Add helper methods to install and uninstall VKCImageAnalysisOverlayView
https://bugs.webkit.org/show_bug.cgi?id=238714

Reviewed by Tim Horton.

Source/WebCore/PAL:

Add soft-linking support for VKCImageAnalysisOverlayView. See WebKit/ChangeLog for more details.

  • pal/cocoa/VisionKitCoreSoftLink.h:
  • pal/cocoa/VisionKitCoreSoftLink.mm:

Source/WebKit:

Add helper methods for adding and removing a temporary VKCImageAnalysisOverlayView as a subview of WKWebView.
See below for more details. No change in behavior (yet).

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::imageAnalysisInteractionBounds const):
(WebKit::WebViewImpl::imageAnalysisOverlayView const):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::processImageAnalyzerRequest):

Pull logic for processing an image analyzer request and invoking the completion handler on the main thread (via
callOnMainRunLoop) out into a separate helper method (to be used in a subsequent patch).

(WebKit::WebViewImpl::requestTextRecognition):
(-[WKImageAnalysisOverlayViewDelegate initWithWebViewImpl:]):

Add an Objective-C object that acts as a delegate for the image analysis overlay view. This is done to correctly
position the overlay, but also for a couple of additonal reasons below.

(-[WKImageAnalysisOverlayViewDelegate dealloc]):
(-[WKImageAnalysisOverlayViewDelegate observeValueForKeyPath:ofObject:change:context:]):

Add logic to steal first responder status away from VKCImageAnalysisOverlayView's internal text selection view
and restore it to the web view when there is no longer an active text selection in the overlay. This ensures
that key events are only routed to the image analysis overlay view in the case where the overlay actually
contains a text selection.

(-[WKImageAnalysisOverlayViewDelegate firstResponderIsInsideImageOverlay]):
(-[WKImageAnalysisOverlayViewDelegate imageAnalysisOverlay:shouldHandleKeyDownEvent:]):

Never allow the image overlay view to override Escape key handling.

(-[WKImageAnalysisOverlayViewDelegate contentsRectForImageAnalysisOverlayView:]):
(WebKit::WebViewImpl::installImageAnalysisOverlayView):
(WebKit::WebViewImpl::uninstallImageAnalysisOverlayView):
(WebKit::WebViewImpl::imageAnalysisOverlayViewHasCursorAtPoint const):

Allow the image analysis overlay view to set the mouse cursor when the mouse is over interactable content.

  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::setCursor):

1:54 PM Changeset in webkit [292315] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Only check isPagedOut() under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=238742

Reviewed by Cameron McCormack.

Worth about 0.4% on Speedometer.

In theory, if we're not under memory pressure, we're either (a) not
paged out because we were not recently under memory pressure or (b)
paged out but OK to page in again because memory is available.

This could increase swap if a system frequently oscillated between
yes-memory-pressure and no-memory-pressure; but in practice the systems
we see under significant memory pressure tend to stay that way.

  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):

1:41 PM Changeset in webkit [292314] by Tyler Wilcock
  • 4 edits
    5 adds in trunk

AccessibilityNodeObject::elementRect should use children rects for display:contents AX objects
https://bugs.webkit.org/show_bug.cgi?id=238680

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

Because display:contents AccessibilityNodeObjects can have rendered
content (unlike hidden, aria-hidden="false" node objects), we can compute
AccessibilityNodeObject::elementRect by adding up the rectangles of the object's children.
This provides a more accurate frame for these objects.

Test: accessibility/node-only-object-element-rect.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::boundingBoxRect const):

LayoutTests:

  • accessibility/node-only-object-element-rect-expected.txt: Added.
  • accessibility/node-only-object-element-rect.html: Added.
  • platform/glib/accessibility/node-only-object-element-rect-expected.txt: Added.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/node-only-object-element-rect-expected.txt: Added.
  • platform/win/accessibility/node-only-object-element-rect-expected.txt: Added.
12:53 PM Changeset in webkit [292313] by stephan.szabo@sony.com
  • 2 edits in trunk

[PlayStation] Re-disable WebDriver
https://bugs.webkit.org/show_bug.cgi?id=238756

Unreviewed build fix

  • Source/cmake/OptionsPlayStation.cmake:
12:48 PM Changeset in webkit [292312] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

[Apple Pay] buttons should be localized based on the system if not specified by the HTML
https://bugs.webkit.org/show_bug.cgi?id=238743
<rdar://problem/89592004>

Reviewed by Wenson Hsieh.

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):

12:44 PM Changeset in webkit [292311] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Update 'features.json' for current state of WebKit
https://bugs.webkit.org/show_bug.cgi?id=238746

Reviewed by Tim Nguyen.

I noticed that the current 'features.json' file is out of date. I think the attached changes more
accurately reflect the state of the engine.

  • features.json:
12:25 PM Changeset in webkit [292310] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Simplify / Optimize the whitespace cache implementation
https://bugs.webkit.org/show_bug.cgi?id=238736

Reviewed by Sam Weinig.

Instead of using 2 C arrays of size maximumCachedStringLength + 1 Vector with an inline
buffer of size maximumCachedStringLength, we now used a single FixedVector of size
maximumCachedStringLength.

Because the Vector has an inline buffer whose size is the max size of the cache, using
a FixedVector is just more efficient. It also means we don't need to store indexes in
that Vector in a separate C array. Finally, I used a struct named AtomStringWithCode to
store { AtomString, uint64 code } so we don't need separate containers for the AtomString
and the code.

Note that I added VectorTraits for the new AtomStringWithCode struct to make sure it can
get initialized via a simple memset.

This is a 0.25-0.3% progression on Speedometer according to A/B bots.

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::WhitespaceCache::lookup):

  • html/parser/HTMLConstructionSite.h:

(WebCore::WhitespaceCache::WhitespaceCache):

12:06 PM Changeset in webkit [292309] by Wenson Hsieh
  • 5 edits
    2 adds in trunk/Tools

[iOS] Add API tests for video extraction in element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238706
rdar://91205141

Reviewed by Eric Carlson.

Add a WebKitAdditions hook for the new API test, as well as a new test page that exercises element fullscreen
with a video element.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenVideoExtraction.mm: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/element-fullscreen.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:
11:31 AM Changeset in webkit [292308] by J Pascoe
  • 16 edits
    26 adds
    4 deletes in trunk

[ iOS 15 ] imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=231544
rdar://problem/84122086

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

Update expectations to account for variant metadata.

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.html:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.worker.html:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.worker_1-1000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.worker_1001-2000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.worker_2001-3000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any.worker_3001-last-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any_1-1000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any_1001-2000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any_2001-3000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.any_3001-last-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.html:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_1-1000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_1001-2000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_2001-3000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_3001-4000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_4001-5000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_5001-6000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_6001-7000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_7001-8000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker_8001-last-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_1-1000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_1001-2000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_2001-3000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_3001-4000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_4001-5000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_5001-6000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_6001-7000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_7001-8000-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any_8001-last-expected.txt: Added.

Tools:

This patch adds support for running js templated WPT tests with the variant
meta tag seperately, as the WPT test infrastructure does.

New unit tests were added to webkitpy scripts to test the new behavior.

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

(LayoutTestFinder._expand_variants):
(LayoutTestFinder._real_tests):

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

(LayoutTestFinderTests.test_find_template_variants):
(LayoutTestFinderTests.test_preserves_order_directories): Deleted.
(LayoutTestFinderTests.test_preserves_order_mixed_file_type): Deleted.
(LayoutTestFinderTests.test_preserves_order_mixed_file_type_b): Deleted.
(LayoutTestFinderTests.test_find_directory_multiple_times): Deleted.
(LayoutTestFinderTests.test_no_reference): Deleted.
(LayoutTestFinderTests.test_glob_no_references): Deleted.
(LayoutTestFinderTests.test_find_with_skipped_directories): Deleted.
(LayoutTestFinderTests.test_find_with_skipped_directories_2): Deleted.
(LayoutTestFinderTests.test_is_test_file): Deleted.
(LayoutTestFinderTests.test_is_w3c_resource_file): Deleted.

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

(SingleTestRunner):

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

(TestResultWriter.output_filename):

  • Scripts/webkitpy/port/base.py:

(Port._expected_baselines_for_suffixes):

  • Scripts/webkitpy/w3c/common.py:
  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter._variant_lines):
(TestImporter):
(TestImporter._write_html_template):
(TestImporter._read_environments_and_variants_for_template_test):
(TestImporter.write_html_files_for_templated_js_tests):
(TestImporter.readEnvironmentsForTemplateTest): Deleted.

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

LayoutTests:

Remove timeout expectation.

  • platform/ios-wk2/TestExpectations:
11:27 AM Changeset in webkit [292307] by ntim@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

Make focus-after-close.html WPT pass
https://bugs.webkit.org/show_bug.cgi?id=233525

Reviewed by Simon Fraser.

The last subtest doesn't pass, because WebKit intentionally differs from other browsers by scrolling
to the focused element asynchronously (see bug 181575). Wait for a scroll event + tick to make it pass.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html:
11:11 AM Changeset in webkit [292306] by ntim@apple.com
  • 12 edits
    3 deletes in trunk

Conditionally inject <attachment> styles based on runtime flag
https://bugs.webkit.org/show_bug.cgi?id=238739

Reviewed by Tim Horton.

Source/WebCore:

Also use appearance: auto instead of -webkit-appearance: attachment, since it also works thanks to
RenderTheme::adjustAppearanceForElement().

Test: LayoutTests/fast/attachment/attachment-disabled-rendering.html

  • css/html.css:

(#endif):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::attachmentStyleSheet const):
Move html.css styles in there.
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustAttachmentStyle const): Deleted.
adjustAttachmentStyle was unused, not overriden and no-op.

  • rendering/RenderTheme.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::attachmentStyleSheet const):
Put iOS specific styles there.

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):
Append styles to UA styling.

  • style/UserAgentStyle.h:

LayoutTests:

Update test expectations, now that display is no longer forced to inline-block by appearance, and now that
color is no longer unconditionally set on iOS to -apple-system-blue.

  • fast/attachment/attachment-disabled-rendering-expected.txt:
  • fast/attachment/attachment-disabled-rendering.html:
  • platform/ios/fast/attachment/attachment-disabled-rendering-expected.txt: Removed.
  • platform/mac/fast/attachment/attachment-disabled-rendering-expected.png:
  • platform/win/fast/attachment/attachment-disabled-rendering-expected.txt: Removed.
  • platform/wpe/fast/attachment/attachment-disabled-rendering-expected.txt: Removed.
10:56 AM Changeset in webkit [292305] by vjaquez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Compilation error in debug mode after r292279
https://bugs.webkit.org/show_bug.cgi?id=238741

Reviewed by Philippe Normand.

No functional changes.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Add symbol
guards.

10:56 AM Changeset in webkit [292304] by Jonathan Bedard
  • 3 edits in trunk/Tools

[git-webkit canonicalize] Support multiple empty lines
https://bugs.webkit.org/show_bug.cgi?id=238744
<rdar://problem/91246947>

Reviewed by Stephanie Lewis and Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py:

(main): When committing a change with 'Patch by' in it, SVN adds an
extra empty line in the commit message.

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

(TestCanonicalize.test_git_svn_existing_merge_queue): Added.

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

10:52 AM Changeset in webkit [292303] by Alan Coon
  • 1 copy in tags/Safari-614.1.8.2

Tag Safari-614.1.8.2.

10:49 AM Changeset in webkit [292302] by Alan Coon
  • 1 copy in tags/Safari-614.1.7.5

Tag Safari-614.1.7.5.

10:49 AM Changeset in webkit [292301] by Alan Coon
  • 16 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292258. rdar://problem/91069927

Stop copying StagedFrameworks to the secondary path by default
https://bugs.webkit.org/show_bug.cgi?id=238688

Reviewed by Saam Barati.

Decoupled COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH from USE_SYSTEM_CONTENT_PATH so we won't
always copy frameworks to the secondary path on macOS. Instead, the build configuration can set
COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH as appropriate.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WebGPU:

  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:

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

10:46 AM Changeset in webkit [292300] by Alan Coon
  • 9 edits in branches/safari-614.1.8-branch/Source

Versioning.

WebKit-7614.1.8.2

10:37 AM Changeset in webkit [292299] by Chris Dumez
  • 7 edits in trunk

Drop mostly unused String(const LChar*) constructor
https://bugs.webkit.org/show_bug.cgi?id=238716

Reviewed by Geoffrey Garen.

Source/WTF:

  • wtf/text/WTFString.cpp:
  • wtf/text/WTFString.h:

Tools:

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

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

(TestWebKitAPI::TEST):

10:33 AM Changeset in webkit [292298] by Russell Epstein
  • 1 copy in branches/safari-614.1.9-branch

New branch.

10:32 AM Changeset in webkit [292297] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.10

10:31 AM Changeset in webkit [292296] by youenn@apple.com
  • 3 edits
    4 adds in trunk

Service-Worker-Navigation-Preload header not being sent when Navigation Preload is enabled.
https://bugs.webkit.org/show_bug.cgi?id=238564

Reviewed by Alex Christensen.

Source/WebKit:

We were cancelling the preload as soon as receiving a response through FetchEvent.respondWith.
But it is possible to answer with a synthetic response and then use the preload to fill the synthetic response body.
To allow this, we no longer cancel the preload when receiving a response in case of enabled navigation preload.

Test: http/wpt/service-workers/service-worker-iframe-preload-after-response.https.html

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

LayoutTests:

  • http/wpt/service-workers/resources/service-worker-iframe-preload-after-response-script.py: Added.
  • http/wpt/service-workers/service-worker-iframe-preload-after-response-worker.js: Added.
  • http/wpt/service-workers/service-worker-iframe-preload-after-response.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-iframe-preload-after-response.https.html: Added.
10:21 AM Changeset in webkit [292295] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GStreamer 1.21 build fix after r292215

  • Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::fillInboundRTPStreamStats): Fix typo in packetsLost variable name.

10:20 AM Changeset in webkit [292294] by Said Abou-Hallawa
  • 9 edits in trunk

[GPU Process] [iOS] Sometimes the text drop shadow is not drawn
https://bugs.webkit.org/show_bug.cgi?id=236923
rdar://89196794

Reviewed by Simon Fraser.

Source/WebCore:

The baseCTM of internal context of DrawGlyphsRecorder has to match the
baseCTM of the owner DisplayList::Recorder.

When recording the glyph runs, DrawGlyphsRecorder::recordDrawGlyphs()
updates the shadow of the recorder such that ShadowsIgnoreTransforms is
set to "false". That means no shadow transformation will be applied to
the offset or the blur radius in GPUP.

  • platform/graphics/DrawGlyphsRecorder.h:
  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::populateInternalState):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):

  • platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • rendering/RenderThemeIOS.mm:

(WebCore::paintAttachmentText):

LayoutTests:

Unskip failed the text drop shadow layout test.

  • platform/ios-wk2/TestExpectations:
10:07 AM Changeset in webkit [292293] by youenn@apple.com
  • 7 edits in trunk

CORS: Allow particular Range header values without a preflight
https://bugs.webkit.org/show_bug.cgi?id=231174
<rdar://problem/84101544>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/range/general.any-expected.txt:
  • web-platform-tests/fetch/range/general.any.js:
  • web-platform-tests/fetch/range/general.any.worker-expected.txt:
  • web-platform-tests/fetch/range/resources/long-wav.py:

Source/WebCore:

Covered by updated tests.

  • platform/network/HTTPParsers.cpp:
9:59 AM Changeset in webkit [292292] by Elliott Williams
  • 9 edits
    1 add
    2 deletes in trunk

[XCBuild] WebKitLegacy's "Migrated headers" script does not emit task information
https://bugs.webkit.org/show_bug.cgi?id=238409
<rdar://problem/90869551>

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Small build rule fix to prevent "no rule to process

file" warnings on every generated forwarding header. This happened because the build rule
that generates these temporary forwarding headers looked like it was supposed to _process_
those headers, too.

Source/WebKitLegacy:

Like r291809, replace MigrateHeaders.make with a "Migrated Headers" group in
WebKitLegacy.xcodeproj, and use a build rule to rewrite the headers at build-time. This
provides the build system with sufficient metadata to reason about the migrated headers and
when they need to be re-processed.

Since WebKitLegacy uses an export symbols list, run tapi-reexport on each migrated header as
it is processed. In the "Generate Export Files" phase, stitch these together to form the
EXPORTED_SYMBOLS_FILE given to the linker.

  • scripts/migrate-header-rule: Added. Runs sed and tapi-reexport on headers as they are

migrated. For tapi, include <TargetConditionals.h> so that TARGET_OS_* declarations get
resolved according to the target triple. This was not needed in the Make-based approach
because it processed all the headers in one invocation, and one of them imports
TargetConditionals early enough that it affects the others.

Running one tapi instance per header is obviously more overhead, but on a sufficiently
multicore machine it should be faster than blocking WebKitLegacy's build process on the
Make-based script phase.

  • WebKitLegacy.xcodeproj/project.pbxproj: Delete script phases, add "Migrated Headers" group

and build rule. Add a legacy-only "Install Headers" phase which launches a child xcodebuild
to install headers using the new build system. Unlike prior implementations in WebKit, WTF,
and PAL, the child xcodebuild needs access to existing build products so that clang (via
tapi) can import them. Do this by populating the child xcodebuild's SYMROOT with symlinks to
the real build products.

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig: Use EXCLUDED_SOURCE_FILE_NAMES and

INCLUDED_SOURCE_FILE_NAMES to control which headers are exported. Set
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES, so that the "Generate Export Files" phase can
depend on the whole directory of reexport files and be invoked when any of them change.

  • MigrateHeaders.make: Removed.

Tools:

  • Scripts/check-for-inappropriate-files-in-framework: We were relying on a script to create

an (empty) WebKitLegacy.framework/Headers directory, which was being scanned here.
WebKitLegacy is entirely private API, so change it to check PrivateHeaders/.

9:31 AM Changeset in webkit [292291] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Remove custom summaries when skipped
https://bugs.webkit.org/show_bug.cgi?id=238633
<rdar://problem/91125435>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(ValidateSquashed.getResultSummary):
(AddReviewerToCommitMessage.getResultSummary):
(AddReviewerToChangeLog.getResultSummary):
(ValidateCommitMessage.getResultSummary):
(Canonicalize.getResultSummary):
(PushPullRequestBranch.getResultSummary):
(UpdatePullRequest.getResultSummary):

  • Tools/CISupport/ews-build/steps_unittest.py:

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

8:55 AM Changeset in webkit [292290] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[Perf] HTMLVideoElement is performing synchronous paints; causing main thread hangs
https://bugs.webkit.org/show_bug.cgi?id=238707
<rdar://91025299>

Reviewed by Eric Carlson.

Spin trace diagnostics show that the main thread of the WebContent process is often hung,
blocked on a synchronous Paint message to the GPU process; in turn, the GPU process is often
busy performing media-related work, but in each of the cases found, painting is unnecessary.
The media player in question is accelerated, and should only be painted during layer snapshotting
or during a print operation.

Only paint if the renderer is not accelerated, the media element is not accelerated, or if
the paint operation isn't flattening or snapshotting. HTMLMediaElement inappropriately caches
the value of MediaPlayer::supportsAcceleratedRendering(), under the (incorrect) assumption that
the value cannot change during the lifetime of the MediaPlayer, so remove this caching layer.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::clearMediaPlayer):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::supportsAcceleratedRendering const):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

8:45 AM Changeset in webkit [292289] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

RemoteRenderingBackendProxy fails to maintain correct state when gpu process crashes and upon deletion
https://bugs.webkit.org/show_bug.cgi?id=238618

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-04
Reviewed by Simon Fraser.

RemoteRenderingBackendProxy::m_needsWakeUpSemaphoreForDisplayListStream
was not reset when proxy would connect to a new gpu process after a crash.
RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy() would not
remove the GPUConnection::Client registration.

  • Platform/IPC/MessageReceiveQueueMap.cpp:

(IPC::MessageReceiveQueueMap::remove):

  • Platform/IPC/StreamClientConnection.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteRenderingBackendProxy::disconnectGPUProcess):
(WebKit::RemoteRenderingBackendProxy::streamConnection):
(WebKit::RemoteRenderingBackendProxy::didCreateWakeUpSemaphoreForDisplayListStream):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
8:40 AM Changeset in webkit [292288] by Sam Sneddon
  • 2 edits in trunk/Tools

WPT export broken under Python 3
https://bugs.webkit.org/show_bug.cgi?id=238735

Reviewed by Tim Nguyen.

  • Scripts/webkitpy/w3c/wpt_github.py:

(WPTGitHub.request): Ensure we have bytes, not str.

4:19 AM Changeset in webkit [292287] by Adrian Perez de Castro
  • 5 edits in trunk

[WPE][GTK] REGRESSION(r292263): Cannot make release tarballs
https://bugs.webkit.org/show_bug.cgi?id=238698

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/WebKitDist.cmake: Make "dist" and "distcheck" targets depend on "doc-all".

Tools:

  • gtk/manifest.txt.in: Fix paths of generated documentation to be included in release tarballs.
  • wpe/manifest.txt.in: Ditto.
4:17 AM Changeset in webkit [292286] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Provide better messages when gi-docgen cannot be found
https://bugs.webkit.org/show_bug.cgi?id=238729

Reviewed by Carlos Garcia Campos.

When gi-docgen cannot be found, or cannot be executed, provide better error messages
than those provided by CMake. While at it, make the messages mention how gi-docgen
can be installed inside the WebKit source tree to be used for the build.

  • Source/cmake/FindGIDocgen.cmake:
2:39 AM Changeset in webkit [292285] by magomez@igalia.com
  • 2 edits in trunk

Change contributor status of Miguel Gomez from committer to reviewer
https://bugs.webkit.org/show_bug.cgi?id=238730

Unreviewed.

  • metadata/contributors.json:
1:37 AM Changeset in webkit [292284] by cathiechen
  • 6 edits
    2 deletes in trunk

REGRESSION(r291797): [wk1] 5 contain-intrinsic-size* tests are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=238584

Reviewed by Simon Fraser.

Source/WTF:

Enable ResizeObserver for legacy WebKit.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

Enable ResizeObserver for wk1 test.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-031-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/resize-observer/change-layout-in-error-expected.txt: Removed.
1:03 AM Changeset in webkit [292283] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

[WebGPU] Unskip the first few passing WebGPU tests
https://bugs.webkit.org/show_bug.cgi?id=238709

Reviewed by Tim Nguyen.

The tests pass, so they shouldn't be marked as skip.

  • platform/ios-device-wk1/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
12:53 AM Changeset in webkit [292282] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

StreamClientConnection should have waitForAndDispatchImmediately
https://bugs.webkit.org/show_bug.cgi?id=238622

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-04
Reviewed by Simon Fraser.

IPC::StreamClientConnection should have the same communication methods
as the IPC::Connection. The stream connection will forward
the calls to underlying IPC::Connection, if needed.
Add missing IPC::StreamClientConnection::waitForAndDispatchImmediately()
and use it.
Remove conveinence accessor methods for the IPC::Connection, as that should be
accessed by accessing the stream connection in the respective classes.

No new tests, refactor.

  • Platform/IPC/StreamClientConnection.h:

(IPC::StreamClientConnection::waitForAndDispatchImmediately):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::waitUntilInitialized):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:

(WebKit::RemoteGraphicsContextGLProxy::sendSync):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::streamConnection):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:

(WebKit::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::RemoteGPUProxy::waitUntilInitialized):

12:36 AM Changeset in webkit [292281] by commit-queue@webkit.org
  • 157 edits
    1 add
    7 deletes in trunk/Source/ThirdParty/ANGLE

Roll ANGLE to 2022-03-31 (fe28a4295af087ee82b8f629b67176b95019af6d)
https://bugs.webkit.org/show_bug.cgi?id=238647

Large autogenerated ChangeLog elided.

Tested locally with MiniBrowser on M1.

Patch by Kenneth Russell <kbr@chromium.org> on 2022-04-04
Reviewed by Kimmo Kinnunen.

12:29 AM Changeset in webkit [292280] by commit-queue@webkit.org
  • 35 edits in trunk/Source/WebKit

IPC::StreamServerConnectionBase has only one subclass, it should be removed
https://bugs.webkit.org/show_bug.cgi?id=238676

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-04
Reviewed by Wenson Hsieh.

Merge IPC::StreamServerConnectionBase and IPC::StreamServerConnection.
The base was useful when the concrete classes were templates per message receiver.
The concrete class was changed to use multiple message receivers, and the templating
was replaced with id lookup.

No new tests, refactor.

  • GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/WebGPU/RemoteAdapter.h:
  • GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
  • GPUProcess/graphics/WebGPU/RemoteBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
  • GPUProcess/graphics/WebGPU/RemoteDevice.h:
  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
  • GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
  • GPUProcess/graphics/WebGPU/RemoteQueue.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
  • GPUProcess/graphics/WebGPU/RemoteSampler.h:
  • GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
  • GPUProcess/graphics/WebGPU/RemoteTexture.h:
  • GPUProcess/graphics/WebGPU/RemoteTextureView.h:
  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageSynchronous):

  • Platform/IPC/StreamConnectionWorkQueue.cpp:

(IPC::StreamConnectionWorkQueue::addStreamConnection):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::processStreams):

  • Platform/IPC/StreamConnectionWorkQueue.h:
  • Platform/IPC/StreamMessageReceiver.h:
  • Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnection::StreamServerConnection):
(IPC::StreamServerConnection::startReceivingMessages):
(IPC::StreamServerConnection::stopReceivingMessages):
(IPC::StreamServerConnection::enqueueMessage):
(IPC::StreamServerConnection::tryAcquire):
(IPC::StreamServerConnection::acquireAll):
(IPC::StreamServerConnection::release):
(IPC::StreamServerConnection::releaseAll):
(IPC::StreamServerConnection::alignedSpan):
(IPC::StreamServerConnection::size):
(IPC::StreamServerConnection::clampedLimit const):
(IPC::StreamServerConnection::dispatchStreamMessages):

  • Platform/IPC/StreamServerConnection.h:

(IPC::StreamServerConnection::sendSyncReply):

  • Scripts/webkit/messages.py:

(generate_message_handler):

  • Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:

(WebKit::TestWithStream::didReceiveStreamMessage):

  • Shared/IPCStreamTester.h:

Apr 3, 2022:

11:18 PM Changeset in webkit [292279] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Make it hard to add a new CSS property to WebKit wihtout adding animation support
https://bugs.webkit.org/show_bug.cgi?id=238447

Reviewed by Dean Jackson.

It's easy to add a new CSS property to WebKit without thinking about animation support.
Down the line, it would be better to add support to the script dealing with CSSProperties.json
to automatically generate animation support where possible, but to get started we now
ASSERT() whether all properties have been found to have animated support, except those
known not to be animatable.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

7:35 PM Changeset in webkit [292278] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Standardize naming of WK_NETWORK_EXTENSION_LDFLAGS (from LD_FLAGS)
https://bugs.webkit.org/show_bug.cgi?id=238717

Reviewed by Wenson Hsieh.

No new tests, just a style fix.

  • Configurations/WebCore.xcconfig:
6:14 PM Changeset in webkit [292277] by ggaren@apple.com
  • 2 edits in trunk/Source/WebCore

Document::addListenerTypeIfNeeded should not call pthread_get_specific 14 times
https://bugs.webkit.org/show_bug.cgi?id=238702

Reviewed by Cameron McCormack.

Document::addListenerTypeIfNeeded => pthread_get_specific showed up in
a profile of Preact-TodoMVC, and I verified by disassembly that the
generated code really does call pthread_get_specific 14x, along with
related inefficiencies.

Only worth about 0.5%, so I didn't A/B test it.

You could imagine lots of other ways to speed up this function /
functionality, but why don't we start with 14x and see where that takes
us.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded): Use a local variable
because, like, come on.

12:51 PM Changeset in webkit [292276] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:] should fail fast if the given parameter wrapper has no backing object
https://bugs.webkit.org/show_bug.cgi?id=238635

Reviewed by Chris Fleizach.

If this method is called with a parameter wrapper object that has lost
its backing object, we should return early to avoid dereferencing a
null pointer.

This could happen in rare split-second transition states where a wrapper
has lost its backing object but has not yet been cleaned up by a notification.
This could also happen if WebKit is vending detached objects (e.g. via AXChildren)
in a similar transition state.

No test added because I haven't been able to find any scenario reproducing
this issue either in our existing layout tests or on real webpages.

rdar://90925399

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

1:04 AM Changeset in webkit [292275] by timothy_horton@apple.com
  • 6 edits in trunk/Source

_WKDataTask doesn't work in macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=238655

Reviewed by Alexey Proskuryakov.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]): Deleted.

Source/WTF:

  • wtf/PlatformHave.h:

Enable HAVE(NSURLSESSION_TASK_DELEGATE) on macCatalyst.
Drive-by enable a few other things on macCatalyst.
Remove and simplify some always-true version checks.
Leave some comments about ones I'm not sure about.

Note: See TracTimeline for information about the timeline view.