Timeline



Apr 10, 2022:

11:17 PM Changeset in webkit [292703] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix use of ASCIILiteral for a literal containing non-ASCII characters after r292251.

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST):

11:13 PM Changeset in webkit [292702] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix use of ASCIILiteral for a literal containing non-ASCII characters after r292251.

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

10:29 PM Changeset in webkit [292701] by Chris Dumez
  • 6 edits in trunk/Source

Unreviewed Windows build fix after r292696.

Source/WebCore:

  • platform/win/LoggingWin.cpp:

(WebCore::logLevelString):

Source/WebCore/PAL:

  • pal/win/LoggingWin.cpp:

(PAL::logLevelString):

Source/WebKit:

  • Platform/win/LoggingWin.cpp:

(WebKit::logLevelString):

10:27 PM Changeset in webkit [292700] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed WatchOS build fix.

  • runtime/MathCommon.cpp:

(JSC::fdlibmPow):

10:23 PM Changeset in webkit [292699] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed Windows build fix after r292696.

  • wtf/win/LoggingWin.cpp:

(WTF::logLevelString):

10:21 PM Changeset in webkit [292698] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed WatchOS build fix.

  • runtime/MathCommon.cpp:

(JSC::fdlibmPow):

9:57 PM Changeset in webkit [292697] by ysuzuki@apple.com
  • 42 edits
    4 adds in trunk

[JSC] DFG / FTL should be aware of JSString's String replacement
https://bugs.webkit.org/show_bug.cgi?id=238918

Reviewed by Saam Barati.

JSTests:

  • stress/resolve-rope-get-by-val.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-char-at.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-char-code-at.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-code-point-at.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

After r289359, String in JSString* can be replaced even after it is resolved. When atomizing String inside JSString*,
we may replace the existing one to new AtomStringImpl if different AtomStringImpl is already registered in the
AtomStringTable. However, DFG / FTL GetIndexedPropertyStorage assumes that StringImpl* in JSString* never changes after
resolving. And this is wrong.

This patch decouples String handling in GetIndexedPropertyStorage as ResolveRope DFG node. GetIndexedPropertyStorage no
longer handles JSString and it is now tailored to object cases. ResolveRope does not expose StringImpl::m_data pointer,
and instead it keeps resolved JSString*. After this change,

GetByVal(String:@0, Untyped:@1, GetIndexedProperty(String:@0))

is changed to

GetByVal(ResolveRope(String:@0), Untyped:@1)

Also, we revisit all the value(...) callsites (by changing function name) and ensure that we have no code assuming String
cannot be changed after resolving.

A/B test ensured that this is perf-neutral.

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOpImpl):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::checkArray):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasStorageChild const):
(JSC::DFG::Node::storageChildIndex):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileStringCodePointAt):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAtImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCodePointAt):

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/HashMapImplInlines.h:

(JSC::jsMapHashImpl):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::name):
(JSC::InternalFunction::displayName):
(JSC::InternalFunction::calculatedDisplayName):

  • runtime/InternalFunction.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCJSValueInlines.h:

(JSC::toPreferredPrimitiveType):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::importModule):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::computeNext):

  • runtime/JSRemoteFunction.h:
  • runtime/Operations.h:

(JSC::jsString):
(JSC::compareBigIntToOtherPrimitive):
(JSC::compareBigInt32ToOtherPrimitive):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/SymbolConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::reportViolationForUnsafeEval):

9:40 PM Changeset in webkit [292696] by Chris Dumez
  • 131 edits in trunk

Finish porting code base to String::fromLatin1() and make String(const char*) private
https://bugs.webkit.org/show_bug.cgi?id=238977

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:

(WebCore::GStreamerDataChannelHandler::createDataChannelEvent):

  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::fetchDescription):
(WebCore::GStreamerMediaEndpoint::storeRemoteMLineInfo):
(WebCore::GStreamerMediaEndpoint::addRemoteStream):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):

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

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::ProtectionSystemEvents::ProtectionSystemEvents):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::platformMaximumBufferSize const):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::ExtensionsGLOpenGLCommon):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::getExtensions):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::getString):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::pageLoadStrategyString const):

  • WebDriverService.cpp:

(WebDriver::WebDriverService::run):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::connectToBrowser):
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::processPointerMoveAction):
(WebDriver::processPointerAction):
(WebDriver::processWheelAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):

  • gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformParseCapabilities const):

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformParseCapabilities const):

Source/WTF:

  • wtf/text/WTFString.h:
  • wtf/unix/LanguageUnix.cpp:

(WTF::platformLanguage):

  • wtf/unix/LoggingUnix.cpp:

(WTF::logLevelString):

Tools:

  • TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/HexNumber.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/URL.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
  • TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:

(TEST):

  • TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/PushDatabase.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(testIdentity2):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::signUnlinkableTokenAndSendSecretToken):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
  • TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebViewCanPasteURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WillPerformClientRedirectToURLCrash.mm:

(-[WebKit1TestDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::webSocketHandshake):
(TestWebKitAPI::HTTPServer::testCertificate):
(TestWebKitAPI::HTTPServer::testPrivateKey):

9:25 PM Changeset in webkit [292695] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] Child process happens to remain alive even after IPC::Connection is disconnected
https://bugs.webkit.org/show_bug.cgi?id=204221

Reviewed by Don Olmstead.

After running layout tests, I observed some processes of
WebKitWebProcess.exe and WebKitNetworkProcess.exe were still
alive. These child processed should exit if the named pipe of
IPC::Connection is broken.

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::readEventHandler): Call connectionDidClose() in the case of ERROR_BROKEN_PIPE.

9:22 PM Changeset in webkit [292694] by commit-queue@webkit.org
  • 18 edits in trunk/Source/WebCore

Unreviewed, reverting r292690.
https://bugs.webkit.org/show_bug.cgi?id=239060

fast/multicol tests are randomly failing

Reverted changeset:

"[LBSE] Activate SVG transform support through layers"
https://bugs.webkit.org/show_bug.cgi?id=237711
https://commits.webkit.org/r292690

6:32 PM Changeset in webkit [292693] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Update listMarkerTextForNodeAndPosition() to return a StringView instead of a String
https://bugs.webkit.org/show_bug.cgi?id=239022
<rdar://problem/91509602>

Reviewed by Darin Adler.

Update listMarkerTextForNodeAndPosition() to return a StringView instead of a String. listMarkerTextForNodeAndPosition()
has a StringView internally and none it its call sites actually need a String. The call sites either use StringBuilder
or want a NSString*. This avoids unnecessary String allocations.

  • accessibility/AccessibilityObject.cpp:

(WebCore::listMarkerTextForNode):
(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapperBase contentForSimpleRange:attributed:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):

4:54 PM Changeset in webkit [292692] by Chris Dumez
  • 10 edits in trunk/Source/WebCore

Avoid redundant calls to findHTTPHeaderName()
https://bugs.webkit.org/show_bug.cgi?id=239021

Reviewed by Darin Adler.

Some call sites of HTTPHeaderMap::add() / set() or ResourceResponse::addHTTPHeaderField() / setHTTPHeaderField()
have already called findHTTPHeaderName() and determined that this wasn't a common header. As a result, we were
doing redundant findHTTPHeaderName() checks inside those functions. To avoid this, add overloads that take in
a header that we already know is uncommon.

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::filterAndFill):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::resourceResponse const):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readHTTPHeaders):

  • platform/network/CacheValidation.cpp:

(WebCore::updateResponseHeadersAfterRevalidation):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::setUncommonHeader):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::addUncommonHeader):

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

(WebCore::ResourceResponseBase::setHTTPHeaderField):
(WebCore::ResourceResponseBase::setUncommonHTTPHeaderField):
(WebCore::ResourceResponseBase::addHTTPHeaderField):
(WebCore::ResourceResponseBase::addUncommonHTTPHeaderField):

  • platform/network/ResourceResponseBase.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):

4:52 PM Changeset in webkit [292691] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[Line clamp] Move line clamp only code from RenderBlockFlow to RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=239041

Reviewed by Antti Koivisto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::shouldIncludeLinesForParentLineCount): Deleted.
(WebCore::RenderBlockFlow::clearTruncation): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::shouldIncludeLinesForParentLineCount):
(WebCore::clearTruncation):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

3:51 PM Changeset in webkit [292690] by Nikolas Zimmermann
  • 18 edits in trunk/Source/WebCore

[LBSE] Activate SVG transform support through layers
https://bugs.webkit.org/show_bug.cgi?id=237711

Reviewed by Rob Buis.

Activate transforms for SVG layers.

Use the flag to keep track of the presence of SVG transformations
on a renderer. CSS/HTML renderers can rely only on the RenderStyle
to determine if transformations are applied, whereas SVG has to
consult additional sources, such as the SVG 'transform' attribute.

A SVG renderer with the 'HasSVGTransform' flag set should behave
like any SVG/HTML renderer that has CSS transformations applied.

With this patch applied SVG transform and CSS transforms can
be applied to <g> / <rect> elements in LBSE. However, the order
of the matrix multiplication is not correct yet for SVG -- that
will be adressed in a follow-up patch.

Covered by existing tests, no change in behaviour.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiplyAffineTransform):

  • platform/graphics/transforms/TransformationMatrix.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateLayerTransform): Deleted.

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

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::updateLayerTransform):
(WebCore::RenderLayerModelObject::applySVGTransform const):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setHasSVGTransform):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasSVGTransform const):
(WebCore::RenderObject::hasTransform const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::SVGLayerTransformUpdater::SVGLayerTransformUpdater):
(WebCore::SVGLayerTransformUpdater::~SVGLayerTransformUpdater):
(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGContainer.h:

(WebCore::RenderSVGContainer::updateLayerInformation): Deleted.

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::updateFromStyle):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::updateFromStyle):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::applyTransform const):

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

(WebCore::RenderSVGTransformableContainer::updateFromStyle):
(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

3:01 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:56 PM Changeset in webkit [292689] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Line clamp specific line-count code should be in RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=239029

Reviewed by Antti Koivisto.

Moving the line-clamp specific code to RenderDeprecatedFlexibleBox enables us to
make RenderBlockFlow::lineCount "children inline" only.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::lineCountFor):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

2:29 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:20 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:09 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
9:50 AM Changeset in webkit [292688] by commit-queue@webkit.org
  • 8 edits
    4 deletes in trunk/Tools/buildstream

[Flatpak SDK] Pre-easter eggs update
https://bugs.webkit.org/show_bug.cgi?id=239007

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

  • elements/freedesktop-sdk.bst: Bump junction.
  • elements/qt5/qtbase.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk-platform.bst: Replace duplicate recipes with their upstream version.
  • elements/sdk/adwaita-icon-theme.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/bubblewrap.bst: Removed.
  • elements/sdk/ffmpeg.bst: Bump to version 5, inspired from upstream version of the recipe.
  • elements/sdk/gst-plugins-base.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/gst-plugins-good.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/gtk+-3.bst: Removed.
  • patches/fdo-0001-shared-mime-info-Backport-meson-0.60-build-fix.patch: Removed.
  • patches/gtk-gcc11-build-fix.patch: Removed.
9:47 AM Changeset in webkit [292687] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] clangd wrapper improvements
https://bugs.webkit.org/show_bug.cgi?id=239032

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

The path of the compile_commands.json is now implied from the webkit-clangd command-line
arguments, defaulting to the GTK/Release configuration.

The path mappings were incorrect, the src part being /app/webkit/{Debug,Release}, which are
invalid paths in the sandbox. They should instead point to
/app/webkit/WebKitBuild/{Debug,Release}.

Finally, there should be no need to add a path mapping for /usr/include because clangd is
launched in the sandbox runtime, where /usr/include/ is already bind-mounded by
flatpak/bwrap.

  • flatpak/webkit-clangd:
3:26 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
12:29 AM Changeset in webkit [292686] by Tyler Wilcock
  • 7 edits in trunk

Fix accessibility/aria-invalid.html in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=238978

Reviewed by Chris Fleizach.

Source/WebCore:

With this patch, we update the isolated tree when the aria-invalid
attribute changes.

Fixes accessibility/aria-invalid.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Drive-by re-ordering of case AXPropertyName::IdentifierAttribute such that this
function handles properties in alphabetical order.

LayoutTests:

  • accessibility/aria-invalid-expected.txt:
  • accessibility/aria-invalid.html:

Rewrite to call debug only once at the end of the test. Also made
this test use accessibleElementById instead of
accessibilityController.focusedElement.

  • resources/accessibility-helper.js:

Add new expect function, which is like the more ubiquitous
shouldBe from js-test.js, but returns the output as a string instead
of calling debug to output to a console DOM element.

Apr 9, 2022:

7:59 PM Changeset in webkit [292685] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[Text autosizing] Remove redundant lineCountForTextAutosizing member function
https://bugs.webkit.org/show_bug.cgi?id=239034

Reviewed by Antti Koivisto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustComputedFontSizes): stop walking the list item children when we see multiple lines.
(WebCore::RenderBlockFlow::lineCountForTextAutosizing): Deleted.

  • rendering/RenderBlockFlow.h:
7:14 PM Changeset in webkit [292684] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Include locale.h for LC_MESSAGES definition.
https://bugs.webkit.org/show_bug.cgi?id=239030

Patch by Khem Raj <raj.khem@gmail.com> on 2022-04-09
Reviewed by Michael Catanzaro.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:
3:42 PM Changeset in webkit [292683] by Simon Fraser
  • 7 edits in trunk/Source

Put layer backing store buffers into the per-RemoteRenderingBackend IOSurfacePool
https://bugs.webkit.org/show_bug.cgi?id=238972
<rdar://83437978>

Reviewed by Tim Horton.

Source/WebCore:

Add IOSurfacePool::create().

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::create):

  • platform/graphics/cg/IOSurfacePool.h:

Source/WebKit:

Give each RemoteRenderingBackend its own IOSurfacePool. RemoteImageBuffer gets surfaces
from this pool, and RemoteRenderingBackend::willDestroyImageBuffer() puts surfaces in,
if they are layer backing store surfaces.

The low memory handler removes all surfaces from the pool.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):
(WebKit::RemoteImageBuffer::~RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::willDestroyImageBuffer):
(WebKit::RemoteRenderingBackend::lowMemoryHandler):

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::ioSurfacePool const):

3:25 PM Changeset in webkit [292682] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use Vector with inline capacity in ObjectPropertyConditionSet creation
https://bugs.webkit.org/show_bug.cgi?id=239025

Reviewed by Keith Miller.

Since we anyway allocate ThreadSafeRefCountedFixedVector<ObjectPropertyCondition> in ObjectPropertyConditionSet, which has exact size,
generateXXX and mergeWith should not allocate heap Vector just for temporarily collecting ObjectPropertyCondition.
We pick 8 in generateXXX function and 16 for mergeWith function. This looks reasonable number and at least covers all cases in Speedometer2.

  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::ObjectPropertyConditionSet::mergedWith const):
(JSC::generateConditionsForPropertyMiss):
(JSC::generateConditionsForPropertySetterMiss):
(JSC::generateConditionsForPrototypePropertyHit):
(JSC::generateConditionsForPrototypePropertyHitCustom):
(JSC::generateConditionsForInstanceOf):
(JSC::generateConditionsForPrototypeEquivalenceConcurrently):
(JSC::generateConditionsForPropertyMissConcurrently):
(JSC::generateConditionsForPropertySetterMissConcurrently):

  • bytecode/ObjectPropertyConditionSet.h:

(JSC::ObjectPropertyConditionSet::create):

1:26 PM Changeset in webkit [292681] by mmaxfield@apple.com
  • 4 edits in trunk

[WKTR] Reset minimum font size WKPreference between tests
https://bugs.webkit.org/show_bug.cgi?id=239027
<rdar://problem/88938768>

Reviewed by Chris Dumez.

Tools:

Some tests use uiController to set the minimum font size WKPreference. We need to reset it between tests.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Remove unnecessary ephemeral session.

  • fast/forms/visual-hebrew-text-field.html:
12:05 PM Changeset in webkit [292680] by Chris Dumez
  • 6 edits
    1 add in trunk

The Youtube plugin replacement should only work for actual Youtube URLs
https://bugs.webkit.org/show_bug.cgi?id=239003
<rdar://91323230>

Reviewed by Brent Fulgham.

Source/WebCore:

The Youtube plugin replacement was too permissive and was falling back to using
the original URL in cases there the original URL wasn't an expected Youtube
URL. This patch hardens the plugin replacement and drops the URL if it is not
a valid youtube URL instead.

Covered by new API test.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::isYouTubeURL):
(WebCore::processAndCreateYouTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):

Tools:

Add API test coverage.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:

(TestWebKitAPI::test):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/YoutubeReplacementPlugin.mm: Added.

(TEST):

10:55 AM Changeset in webkit [292679] by Alan Bujtas
  • 9 edits
    2 adds in trunk

REGRESSION (Safari 15.4): Focused element doesn't render outline when it has an underline
https://bugs.webkit.org/show_bug.cgi?id=238998
<rdar://problem/91484512>

Reviewed by Antti Koivisto.

Source/WebCore:

While outline is supposed to be part of the ink overflow(1), WebKit historically has been
treating it as a special "non ink overflow" type of overflow.

This patch is in preparation for transitioning the outline to regular ink overflow.

First we start treating outline as part of ink overflow within IFC and
handle it as special repaint content only at the block (RenderBlockFlow) level.

Test: fast/repaint/incorrect-outline-repaint.html

(1) https://www.w3.org/TR/css-overflow-3/#ink

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::computeInkOverflowForInlineLevelBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::computeBoxShadowInkOverflow): Deleted.

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::hasContent const):

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::hasVisualOverflow const):
(WebCore::LayoutIntegration::InlineContent::setHasVisualOverflow):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines): This may cause overly inflated repaintTop/Bottom when
the ink overflow is not outline based (text stroke only atm) but we will anyway trigger
similar repaint rect on that part later when we process ink overflow.

LayoutTests:

  • fast/repaint/incorrect-outline-repaint-expected.txt: Added.
  • fast/repaint/incorrect-outline-repaint.html: Added.
  • fast/text/simple-line-layout-text-stroke-width.html: now we produce a slightly different (more accurate)

vertical repaint range. However this test is about moving the content horizontally, so let's make this
test more robust by focusing on the horizontal part.

1:35 AM Changeset in webkit [292678] by Adrian Perez de Castro
  • 10 edits
    3 adds in trunk

[GTK][WPE] Missing inter-module documentation links
https://bugs.webkit.org/show_bug.cgi?id=239016

Reviewed by Michael Catanzaro.

Add JS snippets to be used in the gi-docgen output to setup links to
other modules. Take advantage of being able to compute the documentation
API version suffix from the currently loaded page URL, which avoids having
a number of templates depending on the API version and having to deal with
the documentation API version being sometimes different than the actual API
version of the library. The URLs for GTK3 vs. GTK4 documentation cannot be
handled in the same way, and instead the JS snippet is also a template
expanded by CMake to allows using the ${GTK_API_VERSION} variable there.

.:

  • Source/cmake/FindGIDocgen.cmake: Add a new CONTENT_TEMPLATES option

to GI_DOCGEN(), which allows setting up files to be expanded as CMake
@ONLY templates and then be used as documentation content files.

Source/JavaScriptCore:

  • API/glib/docs/jsc.toml.in: Use added urlmap.js file.
  • API/glib/docs/urlmap.js: Added.

Source/WebKit:

  • PlatformGTK.cmake: Set urlmap.js as documentation content template.
  • gtk/urlmap.js.in: Added.
  • gtk/webkit2gtk-webextension.toml.in: Use urlmap.js from added template.
  • gtk/webkit2gtk.toml.in: Ditto.
  • wpe/urlmap.js: Added.

(const.baseURLApiLevelSuffix):

  • wpe/wpewebextension.toml.in: Use added urlmap.js file.
  • wpe/wpewebkit.toml.in: Ditto.
1:28 AM Changeset in webkit [292677] by sihui_liu@apple.com
  • 25 edits in trunk/Source

Move canAccessStorage() check from SecurityOrigin to ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=238524
<rdar://problem/91318259>

Reviewed by Chris Dumez.

Source/WebCore:

Add canAccessResource() to ScriptExecutionContext because ScriptExecutionContext, instead of SecurityOrigin,
should be the place that holds StorageBlockingPolicy (otherwise it's confusing that the origin and top origin
disagrees with each other on policy). Also, because ScriptExecutionContext has access to origin and topOrigin,
callers don't need to explicitly get them before the access check.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::getSupportedConfiguration):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::shouldBlockGeolocationRequests):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::shouldThrowSecurityException):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/storage/StorageManager.cpp:

(WebCore::connectionInfo):

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • dom/Document.cpp:

(WebCore::m_whitespaceCache):
(WebCore::Document::cookie):
(WebCore::Document::setCookie):
(WebCore::Document::storageBlockingStateDidChange):
(WebCore::Document::initSecurityContext):
(WebCore::Document::applyQuickLookSandbox):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::domainForCachePartition const):
(WebCore::isOriginEquivalentToLocal):
(WebCore::ScriptExecutionContext::canAccessResource const):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::setStorageBlockingPolicy):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadMainResource):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):

  • page/DOMWindow.cpp:
  • page/Page.cpp:

(WebCore::Page::setupForRemoteWorker):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::domainForCachePartition const):
(WebCore::SecurityOrigin::canAccessStorage const): Deleted.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::encode const):
(WebCore::SecurityOrigin::decode):
(WebCore::SecurityOrigin::setStorageBlockingPolicy): Deleted.
(WebCore::SecurityOrigin::canAccessDatabase const): Deleted.
(WebCore::SecurityOrigin::canAccessSessionStorage const): Deleted.
(WebCore::SecurityOrigin::canAccessLocalStorage const): Deleted.
(WebCore::SecurityOrigin::canAccessStorageManager const): Deleted.
(WebCore::SecurityOrigin::canAccessPluginStorage const): Deleted.
(WebCore::SecurityOrigin::canAccessApplicationCache const): Deleted.
(WebCore::SecurityOrigin::canAccessCookies const): Deleted.
(WebCore::SecurityOrigin::canRequestGeolocation const): Deleted.

  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

  • workers/WorkerGlobalScope.cpp:

(WebCore::m_credentials):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):

  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::ServiceWorkerJobData::isolatedCopy const):

  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::startScriptFetch):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):

Source/WebKit:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::storageBlockingStateChanged):

Apr 8, 2022:

11:29 PM Changeset in webkit [292676] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

Sharing services picker menu Mail presents in the wrong place when compose web view is scrolled
https://bugs.webkit.org/show_bug.cgi?id=238672
<rdar://problem/88966924>

Reviewed by Wenson Hsieh.

Image menu is offset by the amount the view is scrolled. This patch
changes the menu location point by calculating the bottom corner of
the picker button then using contentsToWindow which handles
the scroll position offset

  • dom/mac/ImageControlsMac.cpp:

(WebCore::ImageControlsMac::handleEvent):

11:18 PM Changeset in webkit [292675] by Alan Coon
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.2

8:12 PM Changeset in webkit [292674] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

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

Unreviewed build fix.

  • WebGPU/Device.mm:

(WebGPU::Device::Device):

7:56 PM Changeset in webkit [292673] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Make callbacks in unimplemented functions execute
https://bugs.webkit.org/show_bug.cgi?id=238727

Reviewed by Dean Jackson.

CompletionHandler ASSERT()s that it has been executed in its destructor. We have some
functions which we haven't implemented yet which take CompletionHandlers, so let's
temporarily just call the completion handlers just to make tests stop ASSERT()ing.

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipelineAsync):

7:28 PM Changeset in webkit [292672] by Matteo Flores
  • 5 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 4 http/tests/inspector/paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test rebaslining. * http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt: * http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https-expected.txt: * http/tests/paymentrequest/payment-request-change-shipping-option.https-expected.txt: * http/tests/paymentrequest/payment-response-retry-method.https-expected.txt:

7:14 PM Changeset in webkit [292671] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Implement the concept of device lost
https://bugs.webkit.org/show_bug.cgi?id=238725

Reviewed by Dean Jackson.

This patch builds on https://bugs.webkit.org/show_bug.cgi?id=238723 to finish
the implementation of the concept of device lost. The device can only be lost
on macOS, where you can register a block callback to be run when it happens.
Also, the registration function returns a token that you can pass to the
unregistration function, which happens in Device's destructor.

  • WebGPU/Buffer.mm:

(WebGPU::validateDescriptor):

  • WebGPU/Device.h:

(WebGPU::Device::isLost const):

  • WebGPU/Device.mm:

(WebGPU::Device::Device):
(WebGPU::Device::~Device):
(WebGPU::Device::loseTheDevice):
(WebGPU::Device::destroy):
(WebGPU::Device::validatePopErrorScope const):
(WebGPU::Device::setDeviceLostCallback):

6:45 PM Changeset in webkit [292670] by mmaxfield@apple.com
  • 24 edits in trunk/Source/WebGPU

[WebGPU] Represent failure by invalidity rather than nullptr
https://bugs.webkit.org/show_bug.cgi?id=238724

Reviewed by Dean Jackson.

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. Now that objects have the notion of invalidity, this patch
migrates from creation functions returning RefPtr to creation functions returning Ref. All
the places where we previously returned nullptr now return invalid objects.

  • WebGPU/APIConversions.h:

(WebGPU::releaseToAPI):

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):

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

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

  • WebGPU/ComputePipeline.mm:

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

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

(WebGPU::Device::create):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):

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

(WebGPU::Instance::create):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::requestAdapter):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):

  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:

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

  • WebGPU/RenderPipeline.mm:

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

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::Device::createSwapChain):

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

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

5:31 PM Changeset in webkit [292669] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.6

Tag WebKit-7613.2.6.

5:14 PM Changeset in webkit [292668] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291629. rdar://problem/91446360

YouTube.com - Clicking anywhere on the progress bar pauses the video
https://bugs.webkit.org/show_bug.cgi?id=237750
<rdar://problem/90364846>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-unexpected-pause.html

When calling play() or pause() on a MediaPlayerPrivateMediaSourceAVFObjC, the object will
respond by calling m_player->playbackStateChanged(), which will in turn call
HTMLMediaElement::mediaPlayerPlaybackStateChanged() with the new state. However, HTMLMediaElement
expects this to be called only for unanticipated state changes, not expected state changes. And
when that method is called and the reported state does not match the element's own expected state,
the element calls its own play() or pause() function to update its own state to match the player's.
And because MediaPlayerPrivateMediaSourceAVFObjC calls this method on the next run loop, there is
an opportunity for those states to get out of sync, which happens when YouTube responds to a tap
in its timeline.

Remove the unnecessary "call on next run loop" behavior of …
play() and ::pause(). Also, remove the unnecessary notification that the play state has changed. In the future, this can be accomplished by adding a callback parameter to MediaPlayer::play() rather than relying on a state change notification.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playAtHostTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseAtHostTime):

LayoutTests:

  • media/media-source/media-source-unexpected-pause-expected.txt: Added.
  • media/media-source/media-source-unexpected-pause.html: Added.

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

5:14 PM Changeset in webkit [292667] by Alan Coon
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r291493. rdar://problem/91446052

REGRESSION (r290628): Scrubber makes a visual trail when scrubbing on tv.youtube.com
https://bugs.webkit.org/show_bug.cgi?id=238047
<rdar://problem/90451319>

Reviewed by Alan Bujtas.

Source/WebCore:

In r290628 I added a call to clearRepaintRects() when changing the backing sharing
target layer for a RenderLayer. However, for a layer using backing sharing, this
gets called twice during a normal compositing update, which has the effect of
clearing the cached repaint rects so that a layer repaint always computes new rects.
Thus, if a layer moved, we'd fail to repaint the old rect.

RenderLayerBacking::setBackingSharingLayers() already has logic to update repaint
rects when state changes, so we don't need this clearing.

Test: compositing/repaint/move-backing-sharing-layer.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::setBackingProviderLayer):

LayoutTests:

  • compositing/repaint/move-backing-sharing-layer-expected.txt: Added.
  • compositing/repaint/move-backing-sharing-layer.html: Added.

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

5:14 PM Changeset in webkit [292666] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291118. rdar://problem/91446071

[iOS] Netflix.com fails to resume after moving app to background during playback
https://bugs.webkit.org/show_bug.cgi?id=237659
<rdar://88775037>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-interruption-with-resume-allowing-play.html

When the MediaPlayerPrivateMediaSourceAVFObjC player is asked to play or pause, it notifies
the client (HTMLMediaElement) that its playback state has changed. HTMLMediaElement will in response
call playInternal() or pauseInternal() to ensure that a state change driven by the MediaPlayer
is reflected up to the DOM. However, when an interruption causes the media element to suspend
and pause playback, this results in an additional call to pauseInternal(), which updates the
"state to resume" after an interruption ends to "Paused".

In mediaPlayerPlaybackStateChanged(), only call pauseInternal() or playInternal() if the reported
player state does not match the HTMLMediaElement's own state.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):

LayoutTests:

  • media/media-source/media-source-interruption-with-resume-allowing-play-expected.txt: Added.
  • media/media-source/media-source-interruption-with-resume-allowing-play.html: Added.

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

5:14 PM Changeset in webkit [292665] by Alan Coon
  • 7 edits in branches/safari-613-branch

Cherry-pick r288622. rdar://problem/91446028

[WebAuthn] Add authenticator attachment used during authentication to credential payload
https://bugs.webkit.org/show_bug.cgi?id=235621
rdar://86538235

Reviewed by Dean Jackson.

Source/WebCore:

This patch adds the authenticator attachment used to the credential response in get/create
webauthn calls as described in the merged PR to the spec: https://github.com/w3c/webauthn/pull/1668/files

Modified layout tests to check for authenticator attachment = (cross-platform/platform) where appropriate
and verified response in manual calls.

  • Modules/webauthn/PublicKeyCredential.cpp: (WebCore::PublicKeyCredential::authenticatorAttachment const):
  • Modules/webauthn/PublicKeyCredential.h:
  • Modules/webauthn/PublicKeyCredential.idl:

LayoutTests:

Modify webauthn layout tests to check for new authenticatorAttachment field.

  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/util.js:

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

5:14 PM Changeset in webkit [292664] by Alan Coon
  • 8 edits
    5 adds in branches/safari-613-branch

Cherry-pick r292229. rdar://problem/90778752

CSP: WASM fails to execute after window.open
https://bugs.webkit.org/show_bug.cgi?id=238562
<rdar://problem/90778752>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open.html

Reset WASM enabled value after a window.open() call. This patch simplifies
eval and wasm setters by removing the distinct enable/disable functions
and using one consistent setter.

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::setEvalEnabled): (WebCore::ScriptController::setWebAssemblyEnabled): (WebCore::ScriptController::enableEval): Deleted. (WebCore::ScriptController::enableWebAssembly): Deleted. (WebCore::ScriptController::disableEval): Deleted. (WebCore::ScriptController::disableWebAssembly): Deleted.
  • bindings/js/ScriptController.h:
  • dom/Document.cpp: (WebCore::Document::disableEval): (WebCore::Document::disableWebAssembly):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::clear):
  • page/csp/ContentSecurityPolicy.h: (WebCore::ContentSecurityPolicy::webAssemblyErrorMessage const):

LayoutTests:

Layout test coverage. Copy some wasm helper scripts into the http directory.

  • platform/win/TestExpectations: We don't support wasm on win.
  • http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/load_wasm.js: Added. (createWasmModule):
  • http/tests/security/contentSecurityPolicy/resources/run-web-assembly.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/wasm-builder.js: Added. (const._fail): (const.isNotA.assert.isNotA): (const): (switch.typeof): (Builder): (Builder.prototype.setChecked): (Builder.prototype.setPreamble): (Builder.prototype._functionIndexSpaceKeyHash): (Builder.prototype._registerFunctionToIndexSpace): (Builder.prototype._getFunctionFromIndexSpace): (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section): (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e): (Builder.prototype._registerSectionBuilders.this.Unknown):

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

5:14 PM Changeset in webkit [292663] by Alan Coon
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r292155. rdar://problem/90572543

Interop issue with position: sticky within contain: paint
https://bugs.webkit.org/show_bug.cgi?id=238016

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-31
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-expected.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container.html: Added.

Source/WebCore:

Elements with overflow: clip (contain: paint enables it) are
not scroll containers, so they can't act as scrolling
ancestor for sticky elements.

Tests: imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html

imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::enclosingOverflowClipLayer const):

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

5:14 PM Changeset in webkit [292662] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r292075. rdar://problem/88323776

Web Inspector: Add check for null entryScope in JSC::Debugger::detach
https://bugs.webkit.org/show_bug.cgi?id=238518

Reviewed by Devin Rousso.

A virtual machine may not always have an entryScope, which can occur if a JSGlobalObject is being destructed
(which will call into JSC::Debugger::Detach) before a VMEntryScope is created or after a VMEntryScope has
fallen out of scope, causing the VM's entryScope to be null again. In the original internal issue that led to
finding this, this most commonly occurred in conjunction with page refresh while the debugger was paused.

Because it is possible that we were previously paused in the VM that now has no entryScope, we should go ahead
and unpause.

  • debugger/Debugger.cpp: (JSC::Debugger::detach):

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

5:14 PM Changeset in webkit [292661] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292054. rdar://problem/80630664

WebCore::LegacyRootInlineBox::lineSnapAdjustment should bail out on grid line height < 1
https://bugs.webkit.org/show_bug.cgi?id=238465
<rdar://80630664>

Reviewed by Antti Koivisto.

The !gridLineHeight check was added to avoid division by zero but the integral roundToInt() may also produce a 0 value for
gridLineHeight.

  • rendering/LegacyRootInlineBox.cpp: (WebCore::LegacyRootInlineBox::lineSnapAdjustment const):

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

5:14 PM Changeset in webkit [292660] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292034. rdar://problem/90916916

Check page exists before trying to access authenticatorCoordinator
https://bugs.webkit.org/show_bug.cgi?id=238507

Reviewed by Brent Fulgham.

Check we have a valid page before trying to access the authenticatorCoordinator.

  • Modules/webauthn/PublicKeyCredential.cpp: (WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):

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

5:14 PM Changeset in webkit [292659] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r292029. rdar://problem/90977336

Use Canvas/CanvasText system colors for <dialog> default styling
https://bugs.webkit.org/show_bug.cgi?id=238425

Reviewed by Antti Koivisto.

Per HTML spec change: https://github.com/whatwg/html/commit/22154a4c1d426dddf187fb12c05fbcb8816c94a5
Main change is that the colors now adapt to dark mode by default.

LayoutTests/imported/w3c:

Updated test result to pass.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt:

Source/WebCore:

Test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html

  • css/dialog.css: (dialog):

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

5:14 PM Changeset in webkit [292658] by Alan Coon
  • 4 edits
    40 moves
    4 adds in branches/safari-613-branch/LayoutTests

Cherry-pick r292028. rdar://problem/90977255

Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=238502

Reviewed by Antti Koivisto.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/46e50fc357127c76c898675cd30ae34090a2268d

Main changes:

  • Removes .tentative.html suffix from inert tests
  • Adds default-color.html test for <dialog>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative-expected.txt.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/dynamic-inert-on-focused-element-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt.
  • web-platform-tests/inert/dynamic-inert-on-focused-element.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html.
  • web-platform-tests/inert/inert-and-contenteditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-and-contenteditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html.
  • web-platform-tests/inert/inert-canvas-fallback-content-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt.
  • web-platform-tests/inert/inert-canvas-fallback-content.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative.html.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative-expected.txt.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html.
  • web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative.html.
  • web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-tabbing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative.html.
  • web-platform-tests/inert/inert-in-shadow-dom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative-expected.txt.
  • web-platform-tests/inert/inert-in-shadow-dom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative.html.
  • web-platform-tests/inert/inert-inlines-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative-expected.txt.
  • web-platform-tests/inert/inert-inlines.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative.html.
  • web-platform-tests/inert/inert-label-focus-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative-expected.txt.
  • web-platform-tests/inert/inert-label-focus.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative.html.
  • web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-uneditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unfocusable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unfocusable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unselectable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unselectable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html.
  • web-platform-tests/inert/inert-on-non-html-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-non-html.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative.html.
  • web-platform-tests/inert/inert-on-slots-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-slots.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative.html.
  • web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-svg-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html.
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.

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

5:13 PM Changeset in webkit [292657] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r292009. rdar://problem/90918765

The lazy symbolObjectStructure should be realized before we allocate a SymbolObject.
https://bugs.webkit.org/show_bug.cgi?id=238474
<rdar://problem/90918765>

Reviewed by Yusuke Suzuki and Saam Barati.

We should not be allocating the symbolObjectStructure while in the middle of
initializing a SymbolObject.

  • runtime/Symbol.cpp: (JSC::Symbol::toObject const): (JSC::SymbolObject::create): Deleted.
  • runtime/SymbolObject.h:

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

5:13 PM Changeset in webkit [292656] by Alan Coon
  • 15 edits
    1 copy
    3 adds in branches/safari-613-branch

Cherry-pick r291886. rdar://problem/72814440

PointerEvent.movementX always 0 (breaks https://noisecraft.app/)
https://bugs.webkit.org/show_bug.cgi?id=220194
<rdar://problem/72814440>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt: This change causes the test to progress further than before, but there still appear to be other issues elsewhere, so adjust the expected output to reflect that.

Source/WebCore:

Test: pointer-lock/pointermove-movement-delta.html

  • dom/PointerEvent.cpp: (WebCore::PointerEvent::PointerEvent): Also pass along the movement delta in the constructor that takes a MouseEvent.
  • dom/MouseEvent.h:
  • dom/MouseEvent.cpp: (WebCore::MouseEvent::create): (WebCore::MouseEvent::MouseEvent): Require that all constructors that aren't invoked from JS always provide a movement delta.
  • dom/MouseRelatedEvent.h: (WebCore::MouseRelatedEvent::movementX const): (WebCore::MouseRelatedEvent::movementY const): Expose these methods even when !ENABLE(POINTER_LOCK) so that they can be called without the callsite having to also have a #if.
  • page/EventHandler.cpp: (WebCore::EventHandler::dispatchDragEvent): Pass along the movement delta even when !ENABLE(POINTER_LOCK).

Tools:

  • DumpRenderTree/mac/EventSendingController.mm: (-[EventSendingController mouseMoveToX:Y:]):
  • WebKitTestRunner/mac/EventSenderProxy.mm: (WTR::EventSenderProxy::mouseMoveTo): On macOS, the screen's origin is the bottom-left corner, so we need to flip the deltaY.

LayoutTests:

  • pointer-lock/pointermove-movement-delta.html: Added.
  • pointer-lock/pointermove-movement-delta-expected.txt: Added.
  • pointer-lock/mouse-event-delivery-expected.txt: Added. On macOS, the screen's origin is the bottom-left corner, so we need to flip the deltaY.
  • platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt: Added. This change causes the test to progress further than before, but there still appear to be other issues elsewhere, so adjust the expected output to reflect that.
  • platform/mac-wk1/TestExpectations:

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

5:13 PM Changeset in webkit [292655] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r291881. rdar://problem/90848454

[GPU Process] RemoteRenderingBackend::stopListeningForIPC() should not change the RemoteResourceCache on the main thread
https://bugs.webkit.org/show_bug.cgi?id=238298
rdar://90731372

Reviewed by Simon Fraser.

To release the RemoteResourceCache and the rendering resource request on
the WorkQueue thread, RemoteRenderingBackend::stopListeningForIPC() dispatches
an empty lambda to its WorkQueue but m_renderingResourcesRequest and
m_remoteResourceCache are captured by-move to initializers to this lambda.

But this means m_remoteResourceCache is changed on the main thread while
the WorkQueue thread may be accessing it to get a cached remote resource.
The EWS crashes showed that, RemoteRenderingBackend::stopListeningForIPC()
on the main thread is waiting its WorkQueue to stop and complete all its
work including the dispatched empty lambda. And the WorkQueue thread is
getting wrong resource counters from the RemoteResourceCache. This would
happen if the HashMaps of RemoteResourceCache were emptied on the main
thread while the counters had outdated values.

To fix this thread safety issue, the RemoteResourceCache should not ever
be changed on the main thread. Since capturing by-move is kind of change,
we will capture m_renderingResourcesRequest and m_remoteResourceCache by
reference and we let the dispatched lambda explicitly releases them on
the WorkQueue thread.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::stopListeningForIPC):

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

5:13 PM Changeset in webkit [292654] by Alan Coon
  • 6 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r291821. rdar://problem/89145552

REGRESSION(r286590): Links with URL schemes are not clickable in Mail
https://bugs.webkit.org/show_bug.cgi?id=238262
<rdar://89145552>

Reviewed by Geoffrey Garen.

This feature requires access to the Launch Services daemon in Mail and other apps on iOS.
This patch is a partial revert of r286590.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::nonBrowserServices): (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

5:13 PM Changeset in webkit [292653] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291816. rdar://problem/90599352

REGRESSION (Safari 15.4): Nonce from link isn't used when loading style sheet
https://bugs.webkit.org/show_bug.cgi?id=238014
<rdar://problem/90599352>

Reviewed by Brent Fulgham.

Source/WebCore:

In https://bugs.webkit.org/show_bug.cgi?id=179728 we implemented
nonce hiding from the DOM. It seems we missed once location
where we need to reference the element.nonce() instead of the
nonce attribute.

  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/stylesheet-allowed-with-nonce-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/stylesheet-allowed-with-nonce.py: Added.

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

5:13 PM Changeset in webkit [292652] by Alan Coon
  • 5 edits
    4 adds in branches/safari-613-branch

Cherry-pick r291813. rdar://problem/88761053

Safari can't play video completely at bilibili.com
https://bugs.webkit.org/show_bug.cgi?id=236440
rdar://88761053

Reviewed by Jer Noble.

Source/WebCore:

Video frames were incorrectly evicted during a call to appendBuffer
as the Source Buffer incorrectly assumed a discontinuity was present.

When appending data to a source buffer, the MSE specs describe a method
to detect discontinuities in the Coded Frame Processing algorithm
(https://www.w3.org/TR/media-source/#sourcebuffer-coded-frame-processing)
step 6:
"

  • If last decode timestamp for track buffer is set and decode timestamp is less than last decode timestamp: OR
  • If last decode timestamp for track buffer is set and the difference between decode timestamp and last decode timestamp is greater than 2 times last frame duration. " The issue being what defines the last frame duration. Is it the frame last seen in the coded frame processing loop or the frame whose presentation timestamp is just before the one we are currently processing.

H264 and HEVC have a concept of b-frames: that is a frame that depends
on a future frame to be decoded.
Those frames are found in the container and can be identified by their
presentation timestamp higher than the frame following in decode order.
Those present a challenge as the frame prior the current one in
presentation order, may actually only be found several frames back in
decode order.
Bug 181891 attempted to fix a similar issue, and used the longest
"decode duration" as a workaround to detect discontinuity in the content.
It mentioned adopting the same technique as in Mozilla's MSE
implementation, but Mozilla also skip discontinuity detection within a
media segment (https://www.w3.org/TR/media-source/#media-segment which for
fMP4 is a single moof box) an approach that can't be achieved with
CoreMedia's AVStreamDataParser.
As mentioned in bug 181891, CoreMedia ignore the decode timestamps' delta
and juggles with the sample's duration so that there's no discontinuity
in the demuxed samples' presentation time, causing false positive in the
gap detection algorithm.

Bilibili uses HEVC content, and uses an encoding that generate lots
of b-frames, with a very wide sliding window (seen up to 12 frames).
By using the longest frame duration found in either presentation or
decode duration as threshold to identify a discontinuity, we can
properly parse the content and not incorrectly evict appended frames.
(As a side note, the use of HEVC with B-Frames is peculiar as not all
hardware support it.)
It is difficult to identify here if the issue is within the bilibili's
content or CoreMedia's output, though the responsibility more than
likely lies with bilibili.

Test: media/media-source/media-mp4-hevc-bframes.html

  • platform/graphics/SourceBufferPrivate.cpp: (WebCore::SourceBufferPrivate::TrackBuffer::TrackBuffer): (WebCore::SourceBufferPrivate::resetTrackBuffers): (WebCore::SourceBufferPrivate::didReceiveSample):
  • platform/graphics/SourceBufferPrivate.h:

LayoutTests:

  • media/media-source/content/test-bframes-hevc-manifest.json: Added.
  • media/media-source/content/test-bframes-hevc.mp4: Added.
  • media/media-source/media-mp4-hevc-bframes-expected.txt: Added.
  • media/media-source/media-mp4-hevc-bframes.html: Added.

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

5:13 PM Changeset in webkit [292651] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r291791. rdar://problem/90694727

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.

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

5:13 PM Changeset in webkit [292650] by Alan Coon
  • 6 edits
    5 adds in branches/safari-613-branch

Cherry-pick r291741. rdar://problem/88979099

Computation of Document siteForCookies is buggy in case document is created by window.open
https://bugs.webkit.org/show_bug.cgi?id=238202
<rdar://88979099>

Reviewed by John Wilander.

Source/WebCore:

For top level navigations, we need to use the security origin to compute siteForCookies as the document
may have the opener security origin.
Add a Document routine to handle this case.

Tests: http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form.html

http/tests/cookies/same-site/popup-same-site-with-post-form.html

  • dom/Document.cpp:
  • dom/Document.h:
  • loader/FrameLoader.cpp:

LayoutTests:

  • http/tests/cookies/resources/testharness-helpers.js:
  • http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form-expected.txt: Added.
  • http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form.html: Added.
  • http/tests/cookies/same-site/popup-same-site-with-post-form-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-with-post-form.html: Added.
  • http/tests/cookies/same-site/resources/popup-iframe.html: Added.

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

5:13 PM Changeset in webkit [292649] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r291602. rdar://problem/89822922

Fix bug in Relationship::mergeImpl
https://bugs.webkit.org/show_bug.cgi?id=238183
<rdar://89822922>

Reviewed by Yusuke Suzuki.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

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

5:13 PM Changeset in webkit [292648] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r291601. rdar://problem/87345895

AirFixObviousSpills needs to consider a PreIndex and PostIndex as clobbering the Reg used for indexing
https://bugs.webkit.org/show_bug.cgi?id=238178
<rdar://87345895>

Reviewed by Mark Lam.

Inside AirFixObviousSpills, we run a basic alias analysis for StackSlots and
registers. For example, when we overwrite a register, we clear anything
it's aliased with. However, the way we were doing this was by looking at
each Arg that was Defd. However, this iteration was missing that
PostIndex/PreIndex mutate the register that feeds into the address Arg.
This patch fixes the issue by walking the instruction in such a way that
we visit all the Defs we care about, both Regs and StackSlots.

  • b3/air/AirFixObviousSpills.cpp:

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

5:13 PM Changeset in webkit [292647] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291526. rdar://problem/90385586

REGRESSION (r285529): Flash of missing text when content on https://ahumanfuture.co animates
https://bugs.webkit.org/show_bug.cgi?id=237972
rdar://90385586

Reviewed by Simon Fraser.

Source/WebCore:

Accelerated animations are added to a CALayer in two different ways.

Transform-related animations are added in a CAAnimationGroup so that we can have control of the
way they interact with each other. We added this system when we added support for individual CSS
transform properties on top of the existing "transform" property. All CAAnimationGroup animations
are timed to start at 1s and thus we subtract that same 1s value from all animations contained
within such groups.

All other animations, such as "opacity" animations, are added as simple leaf animations and their
begin time is not subject to that 1s subtraction.

In r285529, when we introduced leaf animations for transform properties other than transform-related
properties, we took an unfortunate approach to deal with that 1s subtraction. We would *always* subtract
1s for all animations, and for leaf animation add that 1s back when we added them in the
addLeafAnimation() lambda.

However, we *did not* check whether that animation was newly started or if we were merely adding it
again. This meant that every time GraphicsLayerCA::updateAnimations() was called, any leaf animation
would have 1s added to their begin time.

So, if for instance a page ran on a given element a "scale" animation for 1s and an "opacity" animation
for 2s, when the "scale" animation would complete, GraphicsLayerCA::updateAnimations() would be called
to remove that animation, and add 1s to the "opacity" animation begin time.

We now set the begin time, if not already set, in two places: in the addLeafAnimation() lambda for
leaf animations, and in the addAnimationsForProperty() lambda for animations added to groups. We
only ever set the begin time if not already set during a previous update and only subtract the
parent group begin time for animations contained within a group.

Additionally, this means we set the begin times when we iterate over remaining animations after culling
finished animations. As such, we no longer need to iterate over *all* known animations to set their
begin time if needed prior to adding them.

Test: webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test which would fail prior to the source change. In this test we start two animations: a "scale"
animation which lasts for 100ms, and an "opacity" animation which lasts much longer but only visually updates
for the duration of the "scale" animation. When the "scale" animation completes, we stop the test and ensure
that the reference test shows that the "opacity" animation is at the state it should be in at at that time,
and was not rewound due to the bug being fixed.

  • webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends-expected.html: Added.
  • webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends.html: Added.

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

5:13 PM Changeset in webkit [292646] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291446. rdar://problem/90434296

Microsoft Teams fails to launch from Safari
https://bugs.webkit.org/show_bug.cgi?id=238045
<rdar://90434296>

Reviewed by Geoffrey Garen.

Extend MS Teams quirk to teams.microsoft.com, not just teams.live.com.

  • page/Quirks.cpp: (WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):

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

5:13 PM Changeset in webkit [292645] by Alan Coon
  • 9 edits in branches/safari-613-branch

Cherry-pick r291420. rdar://problem/90335275

REGRESSION (iOS 15.4 / r287669): Mobile app stopped working due to CSS / angular animation
https://bugs.webkit.org/show_bug.cgi?id=237920
LayoutTests/imported/w3c:

<rdar://problem/90335275>

Reviewed by Antti Koivisto.

Add a test that looks at the default computed style for the "transition" and "animation"
shorthands.

  • web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-computed.html:
  • web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
  • web-platform-tests/css/css-transitions/parsing/transition-computed-expected.txt:
  • web-platform-tests/css/css-transitions/parsing/transition-computed.html:

Source/WebCore:

Reviewed by Antti Koivisto.

We refactored the computed style output for the "transition" and "animation" shorthand
properties in r287669 and always returned a CSSValueList, even when the list of transitions
or animations was empty. This meant that for an element without any transition or animation
properties, we'd return the empty string for those properties.

Now we return the computed style for a default animation instead.

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::animationShorthandValue):

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

5:13 PM Changeset in webkit [292644] by Alan Coon
  • 4 edits
    6 adds in branches/safari-613-branch

Cherry-pick r290628. rdar://problem/85814854

Compositing/paint invalidation with transforms
https://bugs.webkit.org/show_bug.cgi?id=233421
<rdar://problem/85814854>

Reviewed by Alan Bujtas.

Source/WebCore:

When changing transform from something like translate(0) to `translate3d(0, 0, 0)
scale(0.5, 0.5)`, we trigger compositing, and thus need to repaint the previous rect of the
layer in its old repaint container. However, the existing code would take the new transform
into account when computing that rect, thus dirtying a rect that is too small.

To fix this, we need to use the cached repaint rects on RenderLayer for this repaint.
However, doing so revealed a bug (via
compositing/shared-backing/repaint-into-shared-backing.html) in how we compute repaint
cached repaint rects in the presence of shared backing. During a compositing update, if a
layer's composited state changed, we'd call computeRepaintRectsIncludingDescendants(), which
computes rect relative to the layer's repaint container. But at this time, the state of
backing sharing in BackingSharingState is in flux (we essentially don't know yet if a layer
can use shared backing). So we may compute and cache repaint rects relative to the wrong
container.

To fix this, leverage the existing m_layersPendingRepaint logic, and delay computing the
repaint rects until we've established our final backing sharing configuration.

Tests: compositing/repaint/composite-and-scale-change.html

compositing/shared-backing/repaint-into-shared-backing-become-composited.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::setBackingProviderLayer): (WebCore::RenderLayer::calculateClipRects const):
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints): (WebCore::RenderLayerCompositor::updateBacking):

LayoutTests:

  • compositing/repaint/composite-and-scale-change-expected.txt: Added.
  • compositing/repaint/composite-and-scale-change.html: Added.

Test that dumps repaint rects.

  • compositing/shared-backing/repaint-into-shared-backing-become-composited-expected.html: Added.
  • compositing/shared-backing/repaint-into-shared-backing-become-composited.html: Added.

Companion to repaint-into-shared-backing.html but toggles compositing in the other
direction.

  • platform/gtk/compositing/repaint/composite-and-scale-change-actual.txt: Added.
  • platform/mac-wk1/compositing/repaint/composite-and-scale-change-expected.txt: Added.

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

5:04 PM Changeset in webkit [292643] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.1

Tag WebKit-7614.1.9.1.

4:41 PM Changeset in webkit [292642] by Truitt Savell
  • 3 edits in trunk/Source/WTF

Unreviewed, reverting r292586.

Caused 50+ test failures on Mac wk1

Reverted changeset:

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

4:00 PM Changeset in webkit [292641] by Chris Dumez
  • 13 edits in trunk/Source

Drop unused pluginReplacementScriptObject
https://bugs.webkit.org/show_bug.cgi?id=239008

Reviewed by Geoff Garen.

Drop unused pluginReplacementScriptObject as it is always null.

Source/WebCore:

  • Modules/plugins/PluginReplacement.h:

(): Deleted.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginScriptObject):
(WebCore::pluginElementCustomGetCallData):
(WebCore::pluginScriptObjectFromPluginViewBase): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::visitChildrenImpl):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Deleted.

  • html/HTMLPlugInElement.h:

(WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Deleted.

  • plugins/PluginViewBase.h:

(WebCore::PluginViewBase::scriptObject): Deleted.

Source/WebKit:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::scriptObject): Deleted.

  • WebProcess/Plugins/PluginView.h:
3:56 PM Changeset in webkit [292640] by Elliott Williams
  • 35 edits in trunk

[Xcode] Avoid targeting 32-bit iOS and Mac architectures
https://bugs.webkit.org/show_bug.cgi?id=238971

Reviewed by Alexey Proskuryakov.

PerformanceTests:

  • DecoderTest/Configurations/DebugRelease.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

Modern Xcode supports building armv7 iOS and i386 macOS, but only when targeting older OSes.
We do not support these targets, but our ARCHS override implies we do. Remove our setting
and use the default.

This improves support for building directly from WebKit.xcworkspace to a generic/*
destination.

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/General.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:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
3:47 PM Changeset in webkit [292639] by Oriol Brufau
  • 7 edits in trunk/Source/WebCore

[css-cascade] Sort deferred properties at the end of CSSPropertyID enum
https://bugs.webkit.org/show_bug.cgi?id=238345

Reviewed by Darin Adler.

Bug 238260 will optimize the logic for cascading deferred properties.
This sorts them at the end, after low priority ones, which will allow
some further optimizations.
This is in preparation of bug 238260, which plans to turn all logical
and physical properties into deferred.

No new tests since there should be no change in behavior.

  • css/makeprop.pl:

(sortByDescendingPriorityAndName):
Sort deferred properties at the end of CSSPropertyID enum.
Add firstHighPriorityProperty, firstLowPriorityProperty,
lastLowPriorityProperty, firstDeferredProperty and lastDeferredProperty.

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::setDeferred):
(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::shouldApplyPropertyInParseOrder): Deleted.
Delete shouldApplyPropertyInParseOrder(), since instead we can just
compare the CSSPropertyId and firstDeferredProperty with < or >=.

  • style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::hasNormalProperty const):
(WebCore::Style::PropertyCascade::normalProperty const):
(WebCore::Style::PropertyCascade::hasDeferredProperty const):
(WebCore::Style::PropertyCascade::hasProperty const): Deleted.
(WebCore::Style::PropertyCascade::property const): Deleted.
Rename hasProperty() and property() to hasNormalProperty() and
normalProperty(), to make it clear they are not for deferred properties.
Reduce the size of m_properties array and m_propertyIsPresent bitset,
since they don't need to include deferred properties.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyAllProperties):
(WebCore::Style::Builder::applyHighPriorityProperties):
(WebCore::Style::Builder::applyNonHighPriorityProperties):
(WebCore::Style::Builder::applyPropertiesImpl):
(WebCore::Style::Builder::applyProperty):
(WebCore::Style::Builder::applyLowPriorityProperties): Deleted.
Rename applyLowPriorityProperties() to applyNonHighPriorityProperties()
to make it clear that it includes custom and deferred properties.
Use the new firstHighPriorityProperty and lastLowPriorityProperty
constants for clarity and to skip deferred properties.
Rename hasProperty() and property() to hasNormalProperty() and
normalProperty(), to make it clear they are not for deferred properties.

  • style/StyleBuilder.h:

Rename applyLowPriorityProperties() to applyNonHighPriorityProperties()
to make it clear that it includes custom and deferred properties.

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::applyMatchedProperties):
Rename applyLowPriorityProperties() to applyNonHighPriorityProperties()
to make it clear that it includes custom and deferred properties.

3:07 PM Changeset in webkit [292638] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Simplify / Optimize the whitespace cache implementation
https://bugs.webkit.org/show_bug.cgi?id=238736
<rdar://problem/91255370>

Reviewed by Darin Adler.

Follow-up to r292310 to add missing blank lines.

  • html/parser/HTMLConstructionSite.h:
3:00 PM Changeset in webkit [292637] by mmaxfield@apple.com
  • 11 edits in trunk/Source/WebGPU

[WebGPU] Implement destroy() methods
https://bugs.webkit.org/show_bug.cgi?id=238723

Reviewed by Dean Jackson.

The destroy() methods cause objects to become invalid. This is important because
the test suite creates and destroys lots of objects, and we want to make sure we
free up resources before GC runs.

This patch also makes Device own a Ref<Adapter> instead of Ref<Instance> because
part of the implementation of Device::destroy() involves interacting with its
adapter.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::makeInvalid):
(WebGPU::Adapter::instance const):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/Buffer.h:
  • WebGPU/Device.h:

(WebGPU::Device::createInvalid):
(WebGPU::Device::instance const):
(WebGPU::Device::makeInvalid):

  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::loseTheDevice):
(WebGPU::Device::destroy):
(WebGPU::Device::generateAValidationError):
(WebGPU::Device::popErrorScope):

  • WebGPU/QuerySet.h:
  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::destroy):

  • WebGPU/Queue.h:

(WebGPU::Queue::makeInvalid):

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

(WebGPU::Texture::destroy):

2:40 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:39 PM Changeset in webkit [292636] by Oriol Brufau
  • 6 edits in trunk/Source/WebCore

[css-cascade] Merge getRelatedPropertyId() and shouldApplyPropertyInParseOrder()
https://bugs.webkit.org/show_bug.cgi?id=238350

Reviewed by Darin Adler.

Both getRelatedPropertyId() and shouldApplyPropertyInParseOrder() pursue
the same thing: if there are two properties (typically a standard one
and a -webkit- prefixed one) which share the same field in RenderStyle,
then we should take specified order into account when applying them.

The problem is that the logic for getRelatedPropertyId() doesn't work
well in all cases. It was only used for -webkit-text-orientation and
text-orientation, but bug 238356 implemented the former as a shorthand.
So now there is no consumer of getRelatedPropertyId().

On the other hand, shouldApplyPropertyInParseOrder() works better, but
it will need to be automatically generated for bug 238345, and bug
238125 will need to know which property shares a computed value with a
given one.

So this patch removes the consumers of the old getRelatedPropertyId(),
and changes shouldApplyPropertyInParseOrder() to be based on it.

No new tests since there is no change in behavior.

  • css/CSSProperties.json:

Mark properties for which shouldApplyPropertyInParseOrder() returned
true with the "related-property" flag.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
Remove old getRelatedPropertyId() logic which was unused.

  • css/makeprop.pl:

Throw errors if "related-property" flag is invalid.

  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
Remove old getRelatedPropertyId() logic which was unused.

  • style/PropertyCascade.cpp:

(WebCore::Style::shouldApplyPropertyInParseOrder):
Base shouldApplyPropertyInParseOrder() on getRelatedPropertyId().

2:35 PM Changeset in webkit [292635] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Search query containers for ::slotted and and ::part rules in their scope
https://bugs.webkit.org/show_bug.cgi?id=238997

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

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

Source/WebCore:

"For selectors with pseudo elements, query containers can be established by the shadow-including inclusive ancestors of
the ultimate originating element."

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

  • style/ContainerQueryEvaluator.cpp:

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

For rules coming from a non-local scope, search query container starting from the originating element in that scope.

  • style/ContainerQueryEvaluator.h:
  • style/ElementRuleCollector.cpp:

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

Pass rule's style scope ordinal so we can find the right scope.

  • style/ElementRuleCollector.h:
2:33 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:25 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
1:36 PM Changeset in webkit [292634] by Jonathan Bedard
  • 6 edits in trunk/Tools

[Merge-Queue] Create seperate queue for unsafe version
https://bugs.webkit.org/show_bug.cgi?id=239005
<rdar://problem/91484664>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Add Unsafe-Merge-Queue.
  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request): merge-queue and unsafe-merge-queue
should trigger different queues.

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

(CommitQueueFactory.init):
(MergeQueueFactoryBase): Moved from MergeQueueFactory.
(MergeQueueFactory): Depend on MergeQueueFactoryBase.
(UnsafeMergeQueueFactory): Added.
(UnsafeMergeQueueFactory.init):

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

(TestExpectedBuildSteps):

  • Tools/CISupport/ews-build/loadConfig.py: Import UnsafeMergeQueueFactory.

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

1:32 PM Changeset in webkit [292633] by Brent Fulgham
  • 4 edits in trunk/Source

Move WebGPU to WebCore/features.json and add <model> element
https://bugs.webkit.org/show_bug.cgi?id=238981

Reviewed by Myles C. Maxfield

Source/JavaScriptCore:

Move WebGPU stuff to the WebCore features.json file.

  • features.json:

Source/WebCore:

This patch makes the following corrections:

  1. Moves the WebGPU Specification definition from JavaScriptCore/features.json to WebCore/features.json
  2. Removes the extraneous WebGPU "feature" from both files.
  3. Adds the HTML <model> element.
  • features.json:
1:29 PM Changeset in webkit [292632] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Unreviewed, reverting r292429.
https://bugs.webkit.org/show_bug.cgi?id=239011

Introduced Data Detectors regression in Mail

Reverted changeset:

"Unreviewed, reverting r291821."
https://bugs.webkit.org/show_bug.cgi?id=238839
https://commits.webkit.org/r292429

1:27 PM Changeset in webkit [292631] by commit-queue@webkit.org
  • 9 edits
    3 deletes in trunk/Source/WebKit

Remove unneeded CoreIPC messages and corresponding handlers related to StorageManagerSet
https://bugs.webkit.org/show_bug.cgi?id=238938

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-04-08
Reviewed by Chris Dumez.

There are various CoreIPC messages related to StorageManagerSet which are no longer needed. This
change removes them.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp: Removed.
  • NetworkProcess/WebStorage/StorageManagerSet.h: Removed.
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebStorage/StorageAreaMap.cpp:
1:11 PM Changeset in webkit [292630] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Fix data-channel handler build for GStreamer 1.21
https://bugs.webkit.org/show_bug.cgi?id=238989

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

The GST_WEBRTC_DATA_CHANNEL_STATE_NEW enum value was removed from public API in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2099.

  • Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:

(WebCore::GStreamerDataChannelHandler::checkState):

12:56 PM Changeset in webkit [292629] by Jonathan Bedard
  • 4 edits in trunk/Source

[iOS 15.4] Fix embedded device build
https://bugs.webkit.org/show_bug.cgi?id=239012
<rdar://problem/91495761>

Reviewed by Ryan Haddad.

  • Source/ThirdParty/ANGLE/Configurations/Base.xcconfig: Allow AdHoc codesigning.
  • Source/WebKit/Configurations/Base.xcconfig: Ditto.

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

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

[WPE][2.36] Build with a11y disabled fails
https://bugs.webkit.org/show_bug.cgi?id=239004

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-08
Reviewed by Michael Catanzaro.

Add accessibility build guards.

  • UIProcess/Launcher/glib/XDGDBusProxy.cpp:

(WebKit::XDGDBusProxy::XDGDBusProxy):
(WebKit::XDGDBusProxy::launch const):

11:41 AM Changeset in webkit [292627] by Chris Dumez
  • 12 edits in trunk/Source

static_pointer_cast<>() may cause some unnecessary ref-counting churn
https://bugs.webkit.org/show_bug.cgi?id=238961

Reviewed by Darin Adler.

Source/WebCore:

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementFromPoint):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::textNodeForRebalance const):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::firstInSpecialElement):
(WebCore::lastInSpecialElement):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::selectionQuadsDidChange):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::pageDestroyed):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):

Source/WTF:

  • wtf/RefPtr.h:

(WTF::adoptRef):
(WTF::static_pointer_cast):

11:29 AM Changeset in webkit [292626] by Elliott Williams
  • 35 edits in trunk

Unreviewed, reverting r292591.

Causing spurious EWS errors

Reverted changeset:

"[XCBuild] Enable dependency validation by default"
https://bugs.webkit.org/show_bug.cgi?id=238901
https://commits.webkit.org/r292591

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

Unreviewed, reverting r292521.

This broke the test further.

Reverted changeset:

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

10:58 AM Changeset in webkit [292624] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebKit

Remove misc unused CoreIPC messages/handlers that have no instances of messages being dispatched to them
https://bugs.webkit.org/show_bug.cgi?id=238996

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-04-08
Reviewed by Chris Dumez.

Remove misc unused CoreIPC messages/handlers that have no instances of messages being dispatched to them. This includes:
WebPage::FrameBecameRemote, WebInspectorUIProxy::BringInspectedPageToFront, WebProcess::refreshPlugins, NetworkProcess::SetQOS
WebPage::GetPositionInformation, WebPage::InvalidateMediaSessionCoordinator, RemoteCDMInstanceSessionProxy::DisplayIDChanged.

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::displayIDChanged): Deleted.

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.h:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::bringInspectedPageToFront): Deleted.

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createMediaSessionCoordinator):
(WebKit::WebPage::frameBecameRemote): Deleted.
(WebKit::WebPage::invalidateMediaSessionCoordinator): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isObscuredElement):
(WebKit::WebPage::getPositionInformation): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::refreshPlugins): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
10:58 AM Changeset in webkit [292623] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 133

Added a tag for Safari Technology Preview release 133.

10:58 AM Changeset in webkit [292622] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 134

Added a tag for Safari Technology Preview release 134.

10:55 AM Changeset in webkit [292621] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 135

Added a tag for Safari Technology Preview release 135.

10:55 AM Changeset in webkit [292620] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 136

Added a tag for Safari Technology Preview release 136.

10:54 AM Changeset in webkit [292619] by Chris Dumez
  • 26 edits in trunk/Source

Reduce number of StringView to String conversions in JSC
https://bugs.webkit.org/show_bug.cgi?id=238911

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::getValue const):
Resolve ambiguity by explicitly converting the StringImpl to a String before
calling jsString(). [1]

  • jsc.cpp:

Avoid constructing a String from the StringView, just to compute a hash.
Instead, rely on the StringViewHashTranslator for this.

  • profiler/ProfilerOSRExit.cpp:

(JSC::Profiler::OSRExit::toJS const):
exitKindToString() returns an ASCIILiteral whose length is always greater
than 1 so we can call the more efficient jsNontrivialString() instead of
jsString(). Calling jsString() here had become ambiguous because an
ASCIILiteral can be implicitely converted to both a String and a
StringView [2].

  • runtime/ArrayPrototype.cpp:

(JSC::fastJoin):
Call the new jsString() overload that takes a StringView, to avoid
unnecessarily constructing a String in the case where the length is <= 1 [3].

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToErrorMessage):

  • runtime/ErrorInstance.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::defaultApproximateSourceError):
(JSC::defaultSourceAppender):
(JSC::functionCallBase):
(JSC::notAFunctionSourceAppender):
(JSC::invalidParameterInSourceAppender):
(JSC::invalidParameterInstanceofSourceAppender):
(JSC::invalidParameterInstanceofNotFunctionSourceAppender):
(JSC::invalidParameterInstanceofhasInstanceValueNotFunctionSourceAppender):
(JSC::invalidPrototypeSourceAppender):

  • runtime/ExceptionHelpers.h:

Call SourceAppender with a StringView since this is what we have. In most
cases, these appenders end up calling makeString() and it is thus beneficial
to avoid temporary/intermediate String constructions.

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::toStringSlow):
Same as [3].

  • runtime/IdentifierInlines.h:

(JSC::identifierToJSValue):
(JSC::identifierToSafePublicJSValue):
Same as [1].

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::formatToParts const):
(JSC::IntlDateTimeFormat::formatRangeToParts):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::textInfo):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::formatRangeToPartsInternal):
(JSC::IntlNumberFormat::formatToPartsInternal):
Same as [2].

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::formatToParts const):
Same as [3].

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation):
Same as [2].

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::requestImportModule):
(JSC::JSC_DEFINE_HOST_FUNCTION):
Same as [1].

  • runtime/JSString.h:

(JSC::jsString):
Add a jsString() overload that takes in a StringView instead of a String.
This avoids construction of a String for call sites having a StringView
in the event where the view's length is <= 1.

  • runtime/SymbolConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
Same as [1].

Source/WTF:

Provide a reverseFind(StringView, unsigned) overload on StringView, for consistency
with String and to facilitate the converting of code from String to StringView.

  • wtf/text/StringCommon.h:

(WTF::reverseFindInner):

  • wtf/text/StringImpl.cpp:

(WTF::reverseFindInner): Deleted.

  • wtf/text/StringView.cpp:

(WTF::StringView::reverseFind const):

  • wtf/text/StringView.h:
10:53 AM Changeset in webkit [292618] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 137

Added a tag for Safari Technology Preview release 137.

10:53 AM Changeset in webkit [292617] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 138

Added a tag for Safari Technology Preview release 138.

10:53 AM Changeset in webkit [292616] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 139

Added a tag for Safari Technology Preview release 139.

10:52 AM Changeset in webkit [292615] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 140

Added a tag for Safari Technology Preview release 140.

10:52 AM Changeset in webkit [292614] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 142

Added a tag for Safari Technology Preview release 142.

10:51 AM Changeset in webkit [292613] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 124

Added a tag for Safari Technology Preview release 124.

10:50 AM Changeset in webkit [292612] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 123

Added a tag for Safari Technology Preview release 123.

10:48 AM Changeset in webkit [292611] by Simon Fraser
  • 6 edits in trunk/Source/WebKit

Have GPU Process call lowMemoryHandler() on each RemoteRenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=238967

Reviewed by Tim Horton.

Hook up RemoteRenderingBackend::lowMemoryHandler(), which doesn't do anything yet,
but will clear the IOSurface pool.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::lowMemoryHandler):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::lowMemoryHandler):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::lowMemoryHandler):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
10:48 AM Changeset in webkit [292610] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 122

Added a tag for Safari Technology Preview release 122.

9:41 AM Changeset in webkit [292609] by keith_miller@apple.com
  • 4 edits in trunk/Source

Broaden TypedArray API fix to all apps not just Bleacher Report
https://bugs.webkit.org/show_bug.cgi?id=238955

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • API/JSTypedArray.cpp:

(isLinkedBeforeTypedArrayLengthQuirk):
(JSObjectGetArrayBufferByteLength):
(isBleecherReport): Deleted.

Source/WTF:

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:
8:16 AM Changeset in webkit [292608] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

imported/blink/fast/multicol/vertical-lr/float-content-break.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239002

Unreviewed.

  • platform/mac/TestExpectations:
8:10 AM Changeset in webkit [292607] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Add queue triggered by label addition (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=237615
<rdar://problem/89983452>

Unreviewed device management.

  • Tools/CISupport/ews-build/config.json: Remove ews151 from Merge-Queue

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

8:00 AM Changeset in webkit [292606] by Alan Bujtas
  • 26 edits in trunk

Do not use std::numeric_limits<float>::min() as the initial value to collect max values for glyph overflow
https://bugs.webkit.org/show_bug.cgi?id=238334

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt:

Source/WebCore:

With zero height glpyhs, glyph (vertical)overflow may still back as 1px due to ceilf(std::max(0.f, std::numeric_limits<float>::min())).
(see WidthIterator::advanceInternal() -> m_maxGlyphBoundingBoxY = std::max(m_maxGlyphBoundingBoxY, bounds.maxY())
and FontCascade::floatWidthForSimpleText() -> std::max<int>(glyphOverflow->bottom, ceilf(it.maxGlyphBoundingBoxY()) - (glyphOverflow->computeBounds ? 0 : metricsOfPrimaryFont().descent())))

  • platform/graphics/ComplexTextController.h:
  • platform/graphics/WidthIterator.h:

LayoutTests:

  • platform/ios/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/ios/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/ios/mathml/presentation/roots-expected.txt:
  • platform/mac/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/mac/mathml/presentation/roots-expected.txt:
7:52 AM Changeset in webkit [292605] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Comment on PR when failing validation
https://bugs.webkit.org/show_bug.cgi?id=238969
<rdar://problem/91451392>

Reviewed by Aakash Jain.

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

(ValidateChangeLogAndReviewer.evaluateCommand): Add BlockPullRequest on failure.
(ValidateCommitMessage.evaluateCommand): Block and comment on pull request if
validation fails.

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

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

7:32 AM Changeset in webkit [292604] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

[ iOS EWS ] fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237218
<rdar://problem/89484834>

Unreviewed.

  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html:
  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html: Change font family to Ahem.
7:22 AM Changeset in webkit [292603] by Andres Gonzalez
  • 6 edits
    2 moves
    5 adds
    1 delete in trunk/LayoutTests

Fix for accessibility/table-sections.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=238970
<rdar://problem/91451873>

Reviewed by Chris Fleizach.

Fixed this test in ITM by splitting the test into two smaller, faster
tests:
accessibility/table-multiple-tbodies.html
accessibility/table-thead-tfoot.html
In addition, the new tests write to the console only once after all the
accessibility calls are made.

  • TestExpectations: Removed the old test marked as Slow.
  • accessibility/resources/table-helper.js: Added.

(tableProperties): Helper function used in several tests.

  • accessibility/table-attributes.html:
  • accessibility/table-multiple-tbodies-expected.txt: Copied from LayoutTests/accessibility/table-sections-expected.txt.
  • accessibility/table-multiple-tbodies.html: Added.
  • accessibility/table-sections.html: Removed.
  • accessibility/table-thead-tfoot-expected.txt: Added.
  • accessibility/table-thead-tfoot.html: Added.
  • platform/glib/accessibility/table-multiple-tbodies-expected.txt: Renamed from LayoutTests/accessibility/table-sections-expected.txt.
  • platform/glib/accessibility/table-sections-expected.txt: Removed.
  • platform/glib/accessibility/table-thead-tfoot-expected.txt: Added.
  • platform/win/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
7:11 AM Changeset in webkit [292602] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Reset git-svn cache on commit failure
https://bugs.webkit.org/show_bug.cgi?id=238975
<rdar://problem/91454550>

Reviewed by Aakash Jain.

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

(PushCommitToWebKitRepo.evaluateCommand): Reset git-svn cache if commit fails.
(ResetGitSvn): Reset git-svn cache by removing .git/svn.

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

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

5:41 AM Changeset in webkit [292601] by clopez@igalia.com
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update patchelf recipe
https://bugs.webkit.org/show_bug.cgi?id=238976

Reviewed by Philippe Normand.

Update patchelf to the last stable release (0.14.5)
patchelf is needed by the script generate-bundle.

  • elements/sdk/patchelf.bst:
5:37 AM Changeset in webkit [292600] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.34.7

WPE WebKit 2.34.7

4:56 AM Changeset in webkit [292599] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit

[GTK] RemoteInspector: update target list page contents on change instead of reloading
https://bugs.webkit.org/show_bug.cgi?id=238990

Reviewed by Adrian Perez de Castro.

We can use webkit_web_view_run_javascript() to replace the target list with the new one. This also fixes the race
condition when loading inspector:// for the first time that target list is always empty. The web view HashSet is
now a HashMap where the value is a pointer to the client to be able to associate web view with its client
without having to check the host and port.

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::~RemoteInspectorProtocolHandler): Disconnect web view signals.
(WebKit::RemoteInspectorProtocolHandler::handleRequest): On new web view, connect to notify::uri and remove the
web view if it's no longer showing an inspector page list.
(WebKit::RemoteInspectorProtocolHandler::updateTargetList): Update the target list html.
(WebKit::RemoteInspectorProtocolHandler::webViewLoadChanged): Call updateTargetList() when load finished.
(WebKit::RemoteInspectorProtocolHandler::targetListChanged): Call updateTargetList() for web views that are not
loading. For loading web view connect to load-event to update the target list once the load finishes.
(WebKit::RemoteInspectorProtocolHandler::connectionClosed): Remove the associated web views.

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.h:
  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::appendTargertList const): Append the target list html to the given GString.
(WebKit::RemoteInspectorClient::buildTargetListPage const): Use appendTargertList() now.

  • UIProcess/Inspector/glib/RemoteInspectorClient.h:
4:15 AM Changeset in webkit [292598] by Andres Gonzalez
  • 3 edits in trunk/LayoutTests

Fix for accessibility/roles-table-and-cell.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=238936
<rdar://problem/91414958>

Reviewed by Chris Fleizach.

Fixes this test in isolated tree mode by not writing to the console
until the end of the test.

  • accessibility/roles-table-and-cell-expected.txt:
  • accessibility/roles-table-and-cell.html:
3:23 AM Changeset in webkit [292597] by Carlos Garcia Campos
  • 7 edits in trunk/Source

Web Inspector: Use computedStyleMap() instead of deprecated getPropertyCSSValue()
https://bugs.webkit.org/show_bug.cgi?id=238661

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Add Element.getComputedCSSPropertyNumberValue() instead of using computedStyleMap() directly to have a fallback
in case CSS_TYPED_OM is disabled in build.

  • UserInterface/Base/Utilities.js:

(get return):

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.isEventWithinDisclosureTriangle):

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype._handleMouseMoved.inlineStyleValue):
(WI.TabBar.prototype._handleMouseMoved):

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.isEventWithinDisclosureTriangle):

Source/WebKit:

Ensure CSS Type OM is enabled in inspector frontend page.

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::enableFrontendFeatures):

2:59 AM Changeset in webkit [292596] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Take top layers into account in addLayers/removeLayers
https://bugs.webkit.org/show_bug.cgi?id=238946

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-08
Reviewed by Simon Fraser.

Take top layers into account in addLayers/removeLayers, they
should use the RenderView layer as parent (emulating layerParent).

  • rendering/RenderElement.cpp:

(WebCore::addLayers):
(WebCore::RenderElement::addLayers):
(WebCore::RenderElement::removeLayers):
(WebCore::RenderElement::willBeRemovedFromTree):

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

(WebCore::RenderLayer::calculateClipRects const):

1:30 AM Changeset in webkit [292595] by commit-queue@webkit.org
  • 19 edits
    20 moves
    23 adds in trunk

Incorrect CORP/COEP check in 304 responses
https://bugs.webkit.org/show_bug.cgi?id=238238
<rdar://problem/90706510>

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

LayoutTests/imported/w3c:

Sync cross-origin-embedder-policy tests to include the new test require-corp-revalidated-images.https.html.

  • web-platform-tests/html/cross-origin-embedder-policy/block-local-documents-inheriting-none.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.js.headers: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.js.headers.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/w3c-import.log:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html.headers:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-cached-images.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-cached-images.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/resources/corp-image.py:

(main):

  • web-platform-tests/html/cross-origin-embedder-policy/resources/fetch-and-create-url.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/resources/load-corp-images.html:
  • web-platform-tests/html/cross-origin-embedder-policy/resources/w3c-import.log:
  • web-platform-tests/html/cross-origin-embedder-policy/resources/worker-support.js: Added.

(setCoep):
(resolveUrl):
(async withIframe):
(waitForMessage):
(async createLocalUrl):

  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/w3c-import.log:

Source/WebKit:

Add CORP header to the 304 response if previously set to avoid being blocked by load checker due to COEP.

Test: imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

LayoutTests:

Mark some tests with DumpJSConsoleLogInStdErr modifier.

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:
Note: See TracTimeline for information about the timeline view.