Timeline



Jan 15, 2022:

10:22 PM Changeset in webkit [288071] by weinig@apple.com
  • 18 edits in trunk

CSS Gradients: interpolation mode should default to OKLab if any non-legacy color syntax colors are used in the stops
https://bugs.webkit.org/show_bug.cgi?id=235071

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update test to also include non-legacy color syntax stops and update results
to match new expected behavior.

  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed-expected.txt:
  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed.html:
  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt:
  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid.html:

Source/WebCore:

Change the default interpolation mode for CSS gradients that have any color stops specified using non-legacy
color syntax (e.g. color(...), lab(...), oklch(...), etc.) to OKLab from sRGB.

This is the current behavior specified (kind of, it could be clearer) by the spec, but I have concerns about
whether it is a good idea for the behavior to be dependent on what syntax style you use. This has been raised
with the editors at https://github.com/w3c/csswg-drafts/issues/6914.

To implement, we now compute the default color interpolation method from the parsed stop list and pass the
result to CSSGradientValue along with the stops and other data. The CSSGradientValue needs this information
avoid computing on serialization, since we need to conditionally exclude either "in srgb" or "in oklab"
depending on which one is computed.

To continue passing the interpolation color method to the CSSGradientValue constructor so it can be immutable,
we now need to consume all the color stops before we can create the CSSGradientValue. This also allows us to
pass the stops to the constructor and make them immutable as well.

  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::equals const):
(WebCore::appendColorInterpolationMethod):
(WebCore::CSSLinearGradientValue::customCSSText const):
(WebCore::CSSRadialGradientValue::customCSSText const):
(WebCore::CSSConicGradientValue::customCSSText const):

  • css/CSSGradientValue.h:

(WebCore::CSSGradientValue::setSecondY):
(WebCore::CSSGradientValue::CSSGradientValue):
(WebCore::CSSGradientValue::defaultColorInterpolationMethod const):
(WebCore::CSSGradientValue::addStop): Deleted.
(WebCore::CSSGradientValue::doneAddingStops): Deleted.
(WebCore::CSSGradientValue::hasAtLeastTwoStops const): Deleted.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumePrefixedRadialGradient):
(WebCore::CSSPropertyParserHelpers::computeGradientColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumePrefixedLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSGradientInterpolationColorSpacesEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::cssGradientInterpolationColorSpacesEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):
Add default for Windows WebKitLegacy testing which still requires it.

LayoutTests:

Update test to use an explicit interpolation method when using non-legacy colors to maintain srgb interpolation.

  • css3/color/gradients.html:
8:43 PM Changeset in webkit [288070] by Alan Bujtas
  • 29 edits
    3 copies
    2 deletes in trunk

[LFC][IFC] Enable content with complex font codepath for IFC
https://bugs.webkit.org/show_bug.cgi?id=235266

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFontAndText):

LayoutTests:

  • TestExpectations:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html: Removed.
  • fast/text/simple-line-layout-simple-text-but-complex-font-path.html: Removed.
  • platform/mac-bigsur/fast/dom/52776-expected.txt:
  • platform/mac-bigsur/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/mac-catalina/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
  • platform/mac/fast/dom/52776-expected.txt:
  • platform/mac/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/mac/fast/text/atsui-spacing-features-expected.txt:
  • platform/mac/fast/text/combining-enclosing-keycap-expected.txt:
  • platform/mac/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/mac/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/mac/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/mac/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/mac/fast/text/wide-zero-width-space-expected.txt:
  • platform/mac/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
  • platform/win/TestExpectations:
5:33 PM Changeset in webkit [288069] by Chris Dumez
  • 65 edits in trunk/Source

Introduce dynamicDowncast<>() for convenience
https://bugs.webkit.org/show_bug.cgi?id=235259

Reviewed by Darin Adler.

Source/WebCore:

Start adopting dynamicDowncast<>().

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::willChangeRenderer):
(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::invalidateEffect):
(WebCore::WebAnimation::finishNotificationSteps):
(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::persist):
(WebCore::WebAnimation::commitStyles):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::isCloneInShadowTreeOfSVGUseElement):
(WebCore::JSLazyEventListener::initializeJSFunction const):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fontRangesForFamily):

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::insertRule):

  • dom/Attr.cpp:

(WebCore::Attr::style):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::MainThreadBridge::ensureOnMainThread):
(WebCore::BroadcastChannel::isEligibleForMessaging const):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

  • dom/CharacterData.h:

(WebCore::Node::length const):

  • dom/ComposedTreeAncestorIterator.h:

(WebCore::ComposedTreeAncestorIterator::traverseParent):
(WebCore::ComposedTreeAncestorAdapter::begin):

  • dom/ComposedTreeIterator.h:

(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):
(WebCore::destroyRenderTreeIfNeeded):
(WebCore::containsIncludingHostElements):
(WebCore::checkAcceptChild):

  • dom/ContainerNode.h:

(WebCore::Node::countChildNodes const):
(WebCore::Node::traverseToChildAt const):
(WebCore::Node::firstChild const):
(WebCore::Node::lastChild const):

  • dom/Document.cpp:

(WebCore::widgetForElement):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::adjustFocusedNodeOnNodeRemoval):

  • dom/Element.cpp:

(WebCore::Element::insertedIntoAncestor):
(WebCore::Element::removedFromAncestor):

  • dom/ElementInlines.h:

(WebCore::Node::parentElement const):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::toElement const):
(WebCore::MouseEvent::fromElement const):

  • dom/Node.cpp:

(WebCore::Node::renderBox const):
(WebCore::Node::renderBoxModelObject const):
(WebCore::Node::containingShadowRoot const):
(WebCore::Node::compareDocumentPosition):

  • dom/Position.cpp:

(WebCore::Position::containerText const):

  • dom/TextNodeTraversal.cpp:

(WebCore::TextNodeTraversal::contentsAsString):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementsFromPoint):

  • dom/TypedElementDescendantIterator.h:

(WebCore::ElementDescendantRange<ElementType>::from const):
(WebCore::InclusiveElementDescendantRange<ElementType>::from const):

  • dom/VisitedLinkState.cpp:

(WebCore::linkHashForElement):

  • dom/messageports/MessagePortChannelProvider.cpp:

(WebCore::MessagePortChannelProvider::fromContext):

  • editing/Editing.cpp:

(WebCore::enclosingBlock):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::ownerSelectElement const):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::renderEmbeddedObject const):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::updateAutoscrollRenderer):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):

  • page/DragController.cpp:

(WebCore::asFileInput):
(WebCore::DragController::operationForLoad):

  • platform/DragImage.cpp:

(WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):

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

(WebCore::SourceBufferPrivateAVFObjC::setCDMInstance):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::computeLogicalBoxHeights):
(WebCore::placeChildInlineBoxesInBlockDirection):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::marginValuesForChild const):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findAutoscrollable):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::imageOrientation const):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::uploadButton const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::renderBox const):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::updateValueNow const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::offsetParent const):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::table const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeDebugInfo):

  • rendering/RenderView.cpp:

(WebCore::RenderView::paintBoxDecorations):

  • rendering/SelectionRangeData.cpp:

(WebCore::containingBlockBelowView):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::Parent::Parent):

  • style/ChildChangeInvalidation.h:

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::findViewAnchor const):
(WebCore::SVGSVGElement::findRootAnchor const):

  • testing/Internals.cpp:

(WebCore::bitmapImageFromImageElement):
(WebCore::pdfDocumentImageFromImageElement):

Source/WebKit:

Start adopting dynamicDowncast<>().

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::didEnterFullScreen):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::paymentCoordinator):

Source/WebKitLegacy/mac:

Start adopting dynamicDowncast<>().

  • DOM/DOMUIKitExtensions.mm:

(-[DOMHTMLElement structuralComplexityContribution]):

  • WebView/WebHTMLRepresentation.mm:

(inputElementFromDOMElement):

Source/WTF:

Introduce dynamicDowncast<>() for convenience. It can result in more concise code for the common pattern
where we call is<T>(x) and then downcast<T>(x).

  • wtf/TypeCasts.h:

(WTF::dynamicDowncast):

3:10 PM Changeset in webkit [288068] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Only use diff --binary switch on Windows
<https://webkit.org/b/235268>
<rdar://problem/87490487>

Reviewed by Alexey Proskuryakov.

  • Scripts/VCSUtils.pm:

(mergeChangeLogs):

  • Only pass --binary switch on Windows.
2:29 PM Changeset in webkit [288067] by Darin Adler
  • 39 edits in trunk/Source/WebCore

First step to fix hacked isReplaced: Rename isReplaced functions to isReplacedOrInlineBlock
https://bugs.webkit.org/show_bug.cgi?id=235258

Reviewed by Alan Bujtas.

The isReplaced function returns true for things that are not CSS replaced
elements. That's confusing and not good. We want to straighten this out.
In this first step, we rename the isReplaced and setReplaced functions
to isReplacedOrInlineBlock and setReplacedOrInlineBlock. There are still
functions with out arguments named "isReplaced", which we can deal with
later. Other later clean-up and clarification could one day change what
bits we store in RenderStyle and possibly even remove this function entirely.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::nextContinuation):

  • accessibility/atk/WebKitAccessible.cpp:

(interfaceMaskFromObject):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::isNonReplacedInline):

  • dom/Node.cpp:

(WebCore::Node::renderRect):

  • dom/Position.cpp:

(WebCore::endsOfNodeAreVisuallyDistinctPositions):

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • page/TextIndicator.cpp:

(WebCore::hasNonInlineOrReplacedElements):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::renderRectForPoint const):

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForBox):

  • rendering/LegacyInlineBox.cpp:

(WebCore::LegacyInlineBox::adjustPosition):
(WebCore::LegacyInlineBox::canAccommodateEllipsis const):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::LegacyInlineFlowBox::computeOverAnnotationAdjustment const):
(WebCore::LegacyInlineFlowBox::computeUnderAnnotationAdjustment const):

  • rendering/LegacyInlineIterator.h:

(WebCore::isIteratorTarget):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForLine):
(WebCore::LegacyLineLayout::layoutLineBoxes):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):
(WebCore::LegacyRootInlineBox::includeLeadingForBox const):
(WebCore::LegacyRootInlineBox::includeFontForBox const):
(WebCore::LegacyRootInlineBox::includeGlyphsForBox const):
(WebCore::LegacyRootInlineBox::includeInitialLetterForBox const):
(WebCore::LegacyRootInlineBox::includeMarginForBox const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::paintChild):
(WebCore::RenderBlock::positionForPoint):
(WebCore::RenderBlock::lineHeight const):
(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::firstLineBlock const):
(WebCore::findFirstLetterBlock):
(WebCore::RenderBlock::getFirstLetter):

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

(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::InlineMinMaxIterator::next):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::offsetFromContainer const):
(WebCore::RenderBox::positionLineBox):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::shouldTreatChildAsReplacedInTableCells const):
(WebCore::RenderBox::computePositionedLogicalWidth const):
(WebCore::RenderBox::computePositionedLogicalHeight const):
(WebCore::RenderBox::avoidsFloats const):
(WebCore::RenderBox::isUnsplittableForPagination const):
(WebCore::RenderBox::lineHeight const):
(WebCore::RenderBox::baselinePosition const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::shouldComputeSizeAsReplaced const):

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::canHaveBoxInfoInFragment const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getLeadingCorner const):
(WebCore::RenderElement::getTrailingCorner const):
(WebCore::RenderElement::absoluteAnchorRect const):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::RenderFullScreen):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::RenderListMarker):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlockForPositionType):
(WebCore::RenderObject::caretMaxOffset const):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasIntrinsicAspectRatio const):
(WebCore::RenderObject::isReplacedOrInlineBlock const):
(WebCore::RenderObject::setReplacedOrInlineBlock):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::isAtomicInlineLevelBox const):
(WebCore::RenderObject::isReplaced const): Deleted.
(WebCore::RenderObject::setReplaced): Deleted.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::RenderReplaced):

  • rendering/RenderReplica.cpp:

(WebCore::RenderReplica::RenderReplica):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::RenderRubyRun):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::nextLineBreak):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::nextContinuation):
Renamed in all these places. Also added one FIXME for something
Alan pointed out we'd like to do in the future.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::removeOnlyThisLayer): Removed unhelpful use
of RenderLayer::reflection function just to find out whether the
RenderLayer::reflectionLayer function will return null or not.

  • rendering/RenderLayer.h: Removed unneeded RenderLayer::reflection.
  • rendering/RenderLayerCompositor.cpp: Removed an unneeded include

of RenderReplica.h.

1:35 PM Changeset in webkit [288066] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Fix Date functions' argument coercion
https://bugs.webkit.org/show_bug.cgi?id=235271

Reviewed by Alexey Shvayka.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

Even if the input Date is NaN or the result looks like NaN, we need to coerce passed
arguments to Number[1] since it has observable side effect.

[1]: https://github.com/tc39/ecma262/pull/2136

  • runtime/DatePrototype.cpp:

(JSC::applyToNumbersToTrashedArguments):
(JSC::fillStructuresUsingTimeArgs):
(JSC::fillStructuresUsingDateArgs):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):

1:32 PM Changeset in webkit [288065] by ysuzuki@apple.com
  • 11 edits
    5 deletes in trunk

[JSC] Fix misc issues in WebAssembly.Exception
https://bugs.webkit.org/show_bug.cgi?id=235261

Reviewed by Alexey Shvayka.

JSTests:

  • wasm/stress/create-tag-from.js:
  • wasm/v8/exceptions-api.js:

(TestGetArg):

LayoutTests/imported/w3c:

Remove web-platform-tests/wasm/jsapi/exception/type.tentative.any.js test since
this behavior is not defined in wasm exception-handling and/or wasm js-types spec.
Probably this test was confused with WebAssembly.Tag (and that test is in wasm/jsapi/tag/).

Also change RangeError to TypeError according to the spec[1].

[1]: https://webassembly.github.io/exception-handling/js-api/index.html#dom-exception-getarg

  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.js:

(test):

  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any-expected.txt: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.html: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.js: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker-expected.txt: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker.html: Removed.

Source/JavaScriptCore:

  1. Add @toStringTag to WebAssembly.Exception.prototype.
  2. Add argument count check for WebAssembly.Exception methods (since it is specified in WebIDL and these methods do not have optional parameters).
  • wasm/js/WebAssemblyExceptionPrototype.cpp:

(JSC::WebAssemblyExceptionPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

1:17 PM Changeset in webkit [288064] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Fix misc WebAssembly.Table issues
https://bugs.webkit.org/show_bug.cgi?id=235262

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

Fix length of WebAssembly.Table.set from 2 to 1.
According to the spec[1], it should be 1 since the second argument is an optional.

Also fix stray argument test. Previously, it was stray argument. But after the update
of the wasm spec, the second argument of Table constructor can be used for initial value.
So, WebAssembly.Table "anyfunc" with {} initial value throws an error since it is not
a function. This fixes a test, passing null for the second argument, and adding third
stray argument for the stray argument test.

[1]: https://webassembly.github.io/spec/js-api/index.html#tables

  • web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:
  • web-platform-tests/wasm/jsapi/idlharness.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/interface.any.js:
  • web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/constructor.any.js:

(test):

  • web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt:

Source/JavaScriptCore:

  • wasm/js/WebAssemblyTablePrototype.cpp:
12:32 PM Changeset in webkit [288063] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Bug 234910 - jsc_fuz/wktr: crash with exotic settings
https://bugs.webkit.org/show_bug.cgi?id=234910

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-15
Reviewed by Michael Saboff.

ASAN release build of WebKitTestRunner and DumpRenderTree may crash when loading the file
with content "<script>'a'+Math.floor()+'a';</script>" when the ASAN option
detect_stack_use_after_return=1 is set and when the JSC option slowPathAllocsBetweenGCs takes
to specific values. This is because the 'TestRendered' string of WTR::sendTestRenderedEvent
can be garbage collected. This patch fixes that issue by protecting that string. The fix has
been verified for all slowPathAllocsBetweenGCs values from 1 to 100.

  • TestRunnerShared/ReftestFunctions.cpp:

(WTR::sendTestRenderedEvent): Protect "TestRendered" JSString from garbage collection until
the event is dispatched.

12:24 PM Changeset in webkit [288062] by ysuzuki@apple.com
  • 92 edits
    4 copies
    134 adds in trunk/JSTests

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

Reviewed by Alexey Shvayka.

Update to the latest one.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/test262-Revision.txt:
12:10 PM Changeset in webkit [288061] by Alan Bujtas
  • 6 edits in trunk

web-platform-tests/html/rendering/dimension-attributes.html is failing when table width is set to 0px
https://bugs.webkit.org/show_bug.cgi?id=235267

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/dimension-attributes-expected.txt:

Source/WebCore:

This patch is based on the following Blink commit:

https://chromium-review.googlesource.com/c/chromium/src/+/2458587

This only applies to width (not height) - see:

https://wpt.fyi/results/html/rendering/dimension-attributes.html?label=master&label=experimental&aligned&q=dimension-attributes

See also: https://drafts.csswg.org/css-tables-3/#mapping

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::addHTMLLengthToStyle):

  • html/HTMLElement.h:
  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::collectPresentationalHintsForAttribute):

10:58 AM Changeset in webkit [288060] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Share some code that looks at visibility in order to short-circuit repaint rect computation
https://bugs.webkit.org/show_bug.cgi?id=235242

Reviewed by Dean Jackson.

There were five instances of this common code pattern that short-circuited clippedOverflowRect()
when we know that the renderer is hidden with visibility:hidden, so factor it into a common
function on RenderElement.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::clippedOverflowRect const):

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

(WebCore::RenderElement::isInsideEntirelyHiddenLayer const):

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

(WebCore::RenderReplaced::clippedOverflowRect const):

  • rendering/svg/LegacyRenderSVGRoot.cpp:

(WebCore::LegacyRenderSVGRoot::clippedOverflowRect const):

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::clippedOverflowRect const):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::clippedOverflowRect const):

10:51 AM Changeset in webkit [288059] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Make a function that returns the ordered list of top layer RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=235251

Reviewed by Alan Bujtas.

Factor the code in RenderLayer::rebuildZOrderLists() that generates the list of
top-layer RenderLayers into its own function.

Add Document::hasTopLayerElement() to avoid calling it when there are no top layer
elements.

  • dom/Document.h:

(WebCore::Document::hasTopLayerElement const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::rebuildZOrderLists):

  • rendering/RenderLayer.h:
9:23 AM Changeset in webkit [288058] by Tyler Wilcock
  • 10 edits in trunk

AX: Fix disabled-controls-not-focusable.html in isolated tree mode by updating AXPropertyName::CanSetFocusAttribute when the disabled attribute changes
https://bugs.webkit.org/show_bug.cgi?id=235246

Reviewed by Chris Fleizach.

Source/WebCore:

Fixes disabled-controls-not-focusable.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):
Post a AXDisabledStateChanged notification when the disabled attribute changes.
(WebCore::AXObjectCache::updateIsolatedTree):
Handle the AXDisabledStateChanged notification to update AXPropertyName::CanSetFocusAttribute.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Re-compute AXPropertyName::CanSetFocusAttribute when asked to do so.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::isAttributeSettable):
Use new isAttributeSettable(NSString *attribute) helper function.
(WTR::AccessibilityUIElement::isAttributeSettable const):
Added. Dispatches call to accessibilityIsAttributeSettable on the AX thread.

(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
Use new isAttributeSettable to reduce repetition.

LayoutTests:

  • accessibility/disabled-controls-not-focusable-expected.txt:
  • accessibility/disabled-controls-not-focusable.html:

Make this test async so that it can pass in isolated tree mode. This
test must be async because it dynamically changes the disabled
attribute via JS.

  • platform/win/accessibility/disabled-controls-not-focusable-expected.txt:

Update Windows-specific expectation to match test changes.

9:21 AM Changeset in webkit [288057] by commit-queue@webkit.org
  • 4 edits in trunk

[css-contain] Fix contain-size-replaced-002.html
https://bugs.webkit.org/show_bug.cgi?id=235175

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-15
Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

If the SVG root has zero content width and/or height, there is no point
in painting the children contents.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-002.html

  • rendering/svg/LegacyRenderSVGRoot.cpp:

(WebCore::LegacyRenderSVGRoot::paintReplaced):

LayoutTests:

9:11 AM Changeset in webkit [288056] by Tyler Wilcock
  • 5 edits in trunk/Source/WebCore

AX: Remove AXAriaAttributeChanged notification because it's not used by anything
https://bugs.webkit.org/show_bug.cgi?id=235253

Reviewed by Chris Fleizach.

Nothing uses AXAriaAttributeChanged, but we still spend time processing
it through the notification pipeline (postNotification -> m_notificationsToPost -> updateIsolatedTree(notifications) + postPlatformNotification(notifications)).

This patch deletes it.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):

  • accessibility/AXObjectCache.h:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

5:36 AM Changeset in webkit [288055] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html fails with incorrect run position
https://bugs.webkit.org/show_bug.cgi?id=235011

Reviewed by Antti Koivisto.

IFC (inherited from simple line layout) uses this technique of measuring the content with the trailing whitespace
and then simply subtract the whitespace width. It enables us to keep pushing content to the line without re-measuring it each time.
(the "non-whitespace + whitespace" pattern is extremely common for IFC content).
However in some cases when the trailing whitespace is trimmed, subtracting the trimmed width from the
content width instead of measuring it produces a visually incorrect result.
This patch fixes the most obvious cases when the incorrect width turns into an offset for the RTL content.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::Run::removeTrailingLetterSpacing):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

  • layout/formattingContexts/inline/text/TextUtil.h:
5:32 AM Changeset in webkit [288054] by graouts@webkit.org
  • 10 edits
    1 copy in trunk

Setting content: normal on a ::marker should make computed style return resolved values
https://bugs.webkit.org/show_bug.cgi?id=235222

Reviewed by Aditya Keerthi.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-pseudo/marker-computed-size-expected.txt:

Source/WebCore:

Until now, StyleBuilder would treat "none" and "normal" values the same way for the "content"
CSS property. However, "normal", the initial value, is not the same as "none" which explicitly
states that we do not have any content. The WPT test css/css-pseudo/marker-computed-size.html
checks on this by setting content: normal on a ::marker and expecting the computed style
for "width" and "height" to be pixel values and not "auto".

We already have a bit in RenderStyle that would be turned on when we would parse either "none"
or "normal". We're now only setting that bit, with a better name when the value is explicitly "none".

So we now remove hasExplicitlyClearedContent() and instead expose hasEffectiveContentNone()
on RenderStyle.

We also remove a stale comment in applyInheritContent() since the spec has not changed to make
"content" inherited.

Finally, Styleable::renderer() now returns the markerRenderer() unless
RenderStyle::hasEffectiveContentNone() is true.

For reference, the relevant spec is https://drafts.csswg.org/css-content-3/#content-property.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::contentToCSSValue):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::isControlStyled const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasEffectiveContentNone const):
(WebCore::RenderStyle::setHasContentNone):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::setHasExplicitlyClearedContent): Deleted.
(WebCore::RenderStyle::hasExplicitlyClearedContent const): Deleted.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialContent):
(WebCore::Style::BuilderCustom::applyInheritContent):
(WebCore::Style::BuilderCustom::applyValueContent):

  • style/Styleable.cpp:

(WebCore::Styleable::renderer const):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-pseudo/marker-computed-size-expected.txt:

Jan 14, 2022:

11:30 PM Changeset in webkit [288053] by Peng Liu
  • 3 edits in trunk/Source/WebCore

Unable to playback portrait videos on HTML canvas elements
https://bugs.webkit.org/show_bug.cgi?id=235238

Reviewed by Jer Noble.

We need to make sure the destination pixel buffer is IOSurface-backed.
Otherwise, VTImageRotationSession cannot rotate a pixel buffer with
a compressed pixel format.

Manually tested.

Layout tests for this exist, but unless they run on an iPhone 12 or
later HW, they won't fail. For example:

  • media/video-orientation-canvas.html
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):

  • platform/graphics/cv/ImageRotationSessionVT.mm:

(WebCore::ImageRotationSessionVT::rotate):

11:00 PM Changeset in webkit [288052] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

null ptr deref in WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor()
https://bugs.webkit.org/show_bug.cgi?id=233463

Patch by Frederic Wang <fwang@igalia.com> on 2022-01-14
Reviewed by Wenson Hsieh.

Source/WebCore:

One line of ReplaceSelectionCommand::moveNodeOutOfAncestor() assumes that the pointer
ancestor.parentNode() is non-null. However, the call to removeNode(node) just before can
lead to arbitrary tree mutations that leaves the ancestor orphan, causing a nullptr deref.
This patch mitigates that issue by exiting early if that situation happens.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Exit early if the ancestor
is no longer connected.

LayoutTests:

Add non-regression test.

  • editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash-expected.txt: Added.
  • editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html: Added.
  • editing/execCommand/resources/paste-as-quotation-disconnected-paragraph-ancestor-crash-iframe.html: Added.
  • platform/win/TestExpectations: Skip test on windows, as the test seems to shift expectations with text output

of other execCommand tests.

8:16 PM Changeset in webkit [288051] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

[macOS WK1] fast/canvas/large-getImageData.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235169

Unreviewed.

This test gets very close to the canvas memory limit. Because
JSC has no guarantees about when objects are collected, this test
has to be run in its own process, which means it requires WK2 and
<!-- webkit-test-runner [ runSingly=true ] -->.

7:14 PM Changeset in webkit [288050] by Mikhail R. Gadelha
  • 11 edits in trunk

[JSC] Fix Linux 64bit compilation
https://bugs.webkit.org/show_bug.cgi?id=235232

Reviewed by Saam Barati.

.:

  • Source/cmake/OptionsCommon.cmake:

Source/bmalloc:

Add new pas_lenient_compact_ptr related files to CMakeLists.txt too.

  • CMakeLists.txt:
  • bmalloc/BPlatform.h:
  • bmalloc/Gigacage.cpp:
  • bmalloc/IsoHeap.cpp:
  • bmalloc/IsoHeap.h:
  • bmalloc/bmalloc.h:

Source/JavaScriptCore:

Define PAS_BMALLOC in all projects since JavaScriptCore includes some files which can require this macro variable.
Previously, JSDollarVM.cpp includes these files first, then at that time, we can define PAS_BMALLOC.
However, after enabling jit-heap, these files are included before JSDollarVM.cpp and include pas_config.h without
PAS_BMALLOC definition, which later causes the problem when including pas_lock.h since non PAS_BMALLOC libpas requires
darwin specific locking.

Since defining PAS_BMALLOC does not matter to whether using libpas or not, this patch just defines it globally.
And for Apple ports, we define this when we define BENABLE_LIBPAS.

  • tools/JSDollarVM.cpp:
7:11 PM Changeset in webkit [288049] by ysuzuki@apple.com
  • 31 edits
    21 copies
    6 moves
    61 adds
    9 deletes in trunk

[JSC] Fix WebAssembly.Global's typename for "anyfunc"
https://bugs.webkit.org/show_bug.cgi?id=235105

Reviewed by Keith Miller.

LayoutTests/imported/w3c:

Update wpt/wasm which includes "anyfunc" tests.

  • web-platform-tests/wasm/jsapi/assertions.js:

(assert_exported_function):

  • web-platform-tests/wasm/jsapi/constructor/toStringTag.any.js:
  • web-platform-tests/wasm/jsapi/exception/basic.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/basic.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/exception/basic.tentative.any.js: Added.

(assert_throws_wasm):
(promise_test.async const):
(promise_test):

  • web-platform-tests/wasm/jsapi/exception/basic.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/basic.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/exception/constructor.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/exception/is.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/is.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/exception/is.tentative.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/exception/is.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/is.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.js: Added.

(assert_type):
(test):

  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/exception/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/function/call.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/call.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/function/call.tentative.any.js: Added.

(addxy):
(test):
(string_appeared_here.test):

  • web-platform-tests/wasm/jsapi/function/call.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/call.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/function/constructor.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/constructor.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/function/constructor.tentative.any.js: Added.

(addxy):
(test):
(string_appeared_here.test):

  • web-platform-tests/wasm/jsapi/function/constructor.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/constructor.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/function/table.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/table.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/function/table.tentative.any.js: Added.

(testfunc):
(test):

  • web-platform-tests/wasm/jsapi/function/table.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/table.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/function/type.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/type.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/function/type.tentative.any.js: Added.

(addNumbers):
(doNothing):
(assert_function):
(test):
(string_appeared_here.test):

  • web-platform-tests/wasm/jsapi/function/type.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/function/type.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/function/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/global/type.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/global/type.tentative.any.js:

(test):
(string_appeared_here.test):

  • web-platform-tests/wasm/jsapi/global/type.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/proto-from-ctor-realm.html:
  • web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any.js: Removed.
  • web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/constructor.any.js:

(test.get assert_array_equals):
(test):

  • web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/get-set.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/get-set.any.js:

(test):

  • web-platform-tests/wasm/jsapi/table/get-set.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any.js: Removed.
  • web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/grow.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/grow.any.js:

(test):

  • web-platform-tests/wasm/jsapi/table/grow.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any.js: Removed.
  • web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/type.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/type.tentative.any.js:

(test):

  • web-platform-tests/wasm/jsapi/table/type.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/type.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/table/w3c-import.log:
  • web-platform-tests/wasm/jsapi/tag/constructor.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/tag/toString.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/tag/toString.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/tag/toString.tentative.any.js: Added.

(test):

  • web-platform-tests/wasm/jsapi/tag/toString.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/tag/toString.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/tag/type.tentative.any-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/tag/type.tentative.any.html: Added.
  • web-platform-tests/wasm/jsapi/tag/type.tentative.any.js: Added.

(assert_type):
(test):

  • web-platform-tests/wasm/jsapi/tag/type.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/wasm/jsapi/tag/type.tentative.any.worker.html: Added.
  • web-platform-tests/wasm/jsapi/tag/w3c-import.log: Added.
  • web-platform-tests/wasm/jsapi/wasm-module-builder.js:

(WasmModuleBuilder.prototype.addTable):
(WasmModuleBuilder.prototype.toBuffer):

  • web-platform-tests/wasm/serialization/module/cross-origin-module-sharing-fails-expected.txt: Added.
  • web-platform-tests/wasm/serialization/module/cross-origin-module-sharing-fails.html: Added.
  • web-platform-tests/wasm/serialization/module/resources/incrementer-iframe-failure.html: Added.
  • web-platform-tests/wasm/serialization/module/resources/w3c-import.log:
  • web-platform-tests/wasm/serialization/module/share-module-cross-origin-fails.sub-expected.txt: Added.
  • web-platform-tests/wasm/serialization/module/share-module-cross-origin-fails.sub.html: Added.
  • web-platform-tests/wasm/serialization/module/w3c-import.log:
  • web-platform-tests/wasm/webapi/contenttype.any-expected.txt:
  • web-platform-tests/wasm/webapi/contenttype.any.js:
  • web-platform-tests/wasm/webapi/contenttype.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/resources/incrementer.no_mime_type.wasm: Added.
  • web-platform-tests/wasm/webapi/resources/incrementer.wasm: Added.
  • web-platform-tests/wasm/webapi/resources/incrementer.wasm.headers: Added.
  • web-platform-tests/wasm/webapi/resources/incrementer.wrong_mime_type.wasm: Added.
  • web-platform-tests/wasm/webapi/resources/incrementer.wrong_mime_type.wasm.headers: Added.
  • web-platform-tests/wasm/webapi/resources/w3c-import.log: Added.
  • web-platform-tests/wasm/webapi/w3c-import.log:
  • web-platform-tests/wasm/webapi/wasm_stream_compile_test-expected.txt: Added.
  • web-platform-tests/wasm/webapi/wasm_stream_compile_test.html: Added.
  • web-platform-tests/wasm/webapi/wasm_stream_instantiate_test-expected.txt: Added.
  • web-platform-tests/wasm/webapi/wasm_stream_instantiate_test.html: Added.

Source/JavaScriptCore:

We should return "anyfunc" string instead of "funcref" according to the spec[1,2].

[1]: https://webassembly.github.io/spec/js-api/#globals
[2]: https://webassembly.github.io/spec/js-api/#tables

  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::type):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::type):

6:11 PM Changeset in webkit [288048] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14

Tag Safari-613.1.14.

6:04 PM Changeset in webkit [288047] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.9

Tag Safari-613.1.12.1.9.

5:50 PM Changeset in webkit [288046] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE

Cherry-pick r288041. rdar://problem/87627318

ANGLE: Supports32BitFloatFiltering is not supported on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235239

Reviewed by Darin Adler.

<rdar://86457081>
Broke an internal build. Caused by https://trac.webkit.org/changeset/286323/webkit

  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::supports32BitFloatFiltering const):

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

5:49 PM Changeset in webkit [288045] by Russell Epstein
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.14

5:47 PM Changeset in webkit [288044] by Russell Epstein
  • 2 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE

Cherry-pick r288041. rdar://problem/86457081

ANGLE: Supports32BitFloatFiltering is not supported on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235239

Reviewed by Darin Adler.

<rdar://86457081>
Broke an internal build. Caused by https://trac.webkit.org/changeset/286323/webkit

  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::supports32BitFloatFiltering const):

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

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

[EWS] Only trigger builds for open and synchronize events
https://bugs.webkit.org/show_bug.cgi?id=235249
<rdar://problem/87615392>

Reviewed by Aakash Jain.

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

(Events.stopService):
(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request):

  • Tools/CISupport/ews-build/master.cfg:

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

5:26 PM Changeset in webkit [288042] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.9

5:16 PM Changeset in webkit [288041] by Kyle Piddington
  • 2 edits in trunk/Source/ThirdParty/ANGLE

ANGLE: Supports32BitFloatFiltering is not supported on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235239

Reviewed by Darin Adler.

<rdar://86457081>
Broke an internal build. Caused by https://trac.webkit.org/changeset/286323/webkit

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::supports32BitFloatFiltering const):

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

[EWS] ShowIdentifier should support pull-requests
https://bugs.webkit.org/show_bug.cgi?id=235252
<rdar://problem/87618736>

Reviewed by Aakash Jain.

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

(ShowIdentifier.start): Extract revision from diverse set of properties.
(ShowIdentifier.evaluateCommand):

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

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

4:56 PM Changeset in webkit [288039] by Wenson Hsieh
  • 4 edits in trunk

[iOS] Occasional crash under -[UITargetedPreview initWithView:parameters:target:] when focusing form controls
https://bugs.webkit.org/show_bug.cgi?id=235248
rdar://79220540

Reviewed by Tim Horton and Aditya Keerthi.

Source/WebKit:

It's possible for -resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets: to return a nil snapshot
view in the case where a screen update has not been performed yet (among other scenarios). In the case where
UIKit returns nil when we're creating the targeted preview for the context menu when focusing a select element
or file input, we'll crash due to an Objective-C exception in the initializer of UITargetedPreview. Mitigate
this by falling back to an empty UIView after requesting the snapshot view to make our code robust against this
scenario.

Test: KeyboardInputTests.DoNotCrashWhenFocusingSelectWithoutViewSnapshot

  • UIProcess/ios/WKContentViewInteraction.mm:

(createFallbackTargetedPreview):

Tools:

Add an API test that exercises the crash by forcing -resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:
to return nil via swizzling.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::nilResizableSnapshotViewFromRect):
(TestWebKitAPI::TEST):

4:48 PM Changeset in webkit [288038] by Jonathan Bedard
  • 8 edits
    3 adds in trunk/Tools

[webkitbugspy] Support radar as issue tracker type
https://bugs.webkit.org/show_bug.cgi?id=234993
<rdar://problem/87276178>

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/init.py:
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/base.py:

(Base): Radar mock should not inherit from mocks.Requests.

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

(Bugzilla): Inherit from both Base and mocks.Requests.

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

(GitHub): Inherit from both Base and mocks.Requests.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py: Added.

(AppleDirectoryUserEntry): Mock AppleDirectoryUserEntry from radarclient.
(AppleDirectoryQuery): Mock AppleDirectoryQuery from radarclient.
(RadarModel): Mock various Model objects from radarclient.
(RadarClient): Mock RadarClient from radarclient.
(Radar): Mock radarclient library.
(NoRadar): Mock unavailable radarclient library.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py: Added.

(Tracker):
(Tracker.radarclient): Optionally import radarclient.
(Tracker.init):
(Tracker.authentication): Determine which authentication strategy to use.
(Tracker.from_string): Construct issue given Radar string
(Tracker.user): Find user given name, DSID or email.
(Tracker.issue): Construct issue given Radar ID.
(Tracker.populate): Populate Issue arguments.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py: Added.

(TestGitHub):
(TestGitHub.test_no_radar):
(TestGitHub.test_users):
(TestGitHub.test_link):
(TestGitHub.test_title):
(TestGitHub.test_timestamp):
(TestGitHub.test_creator):
(TestGitHub.test_description):
(TestGitHub.test_assignee):
(TestGitHub.test_comments):
(TestGitHub.test_watchers):
(TestGitHub.test_references):
(TestGitHub.test_reference_parse):

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

(Tracker): Match single integer issue URLs.

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

4:44 PM Changeset in webkit [288037] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSStringJoiner's constructor should take a size_t length.
https://bugs.webkit.org/show_bug.cgi?id=235217
rdar://87538657

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/max-typed-array-length-toString.js: Added.

Source/JavaScriptCore:

Also removed an unnecessary exception check in JSStringJoiner::append().
This is because appendWithoutSideEffects() cannot throw any exceptions.

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::JSStringJoiner):
(JSC::JSStringJoiner::append):

3:48 PM Changeset in webkit [288036] by commit-queue@webkit.org
  • 4 edits in trunk

JSArray::fastSlice() should not convert the source from CoW
https://bugs.webkit.org/show_bug.cgi?id=234990

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-14
Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-slice-cow.js:

Source/JavaScriptCore:

Since we aren't modifying the source array in fastSlice() nor its slow path,
there is no reason to convert it from CopyOnWrite.

  • runtime/JSArray.cpp:

(JSC::JSArray::fastSlice):

3:24 PM Changeset in webkit [288035] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Cleanup] Remove redundant (and incorrect) RenderStyle::isDisplayReplacedType
https://bugs.webkit.org/show_bug.cgi?id=235250

Reviewed by Simon Fraser.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::isDisplayInlineType): display types do not make a box replaced.
(WebCore::RenderStyle::isDisplayReplacedType): Deleted.

2:58 PM Changeset in webkit [288034] by dino@apple.com
  • 4 edits in trunk/Source/WebKit

REGRESSION: ARKit example loads a page full of random symbols instead of a 3D model
https://bugs.webkit.org/show_bug.cgi?id=235254

Reviewed by Tim Horton.

When we enabled the ModelDocument support, we disabled the ContentProvider path.
This was a mistake - it has to be a runtime check.

  • UIProcess/API/Cocoa/WKPreferences.mm: Expose the ModelDocumentEnabled WebPreference so that

it can be read from a WKWebViewConfiguration.
(-[WKPreferences _setModelDocumentEnabled:]):
(-[WKPreferences _modelDocumentEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Rather than the compile-time test, check the

WebPreferences to see if ModelDocument is disabled.
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):

2:46 PM Changeset in webkit [288033] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Clarify / Optimize <select> logic given that deeply nested <option> or <optgroup> are not supported
https://bugs.webkit.org/show_bug.cgi?id=235247

Reviewed by Geoffrey Garen.

Clarify / Optimize <select> logic given that deeply nested <option> or <optgroup> are not supported, as per the
specification.

An <option> is only associated with a <select> element if it is either a child of the <select> or a child of an
<optgroup> that is itself a child of the <select>:

As a result, an <optgroup> is only associated with a <select> element if it is a child of that <select>.

No new tests, no Web-facing behavior change.

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::recalcSelectOptions):
(WebCore::HTMLOptGroupElement::ownerSelectElement const):
(WebCore::HTMLOptGroupElement::accessKeyAction):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setText):
(WebCore::HTMLOptionElement::accessKeyAction):
(WebCore::HTMLOptionElement::index const):
(WebCore::HTMLOptionElement::selected const):
(WebCore::HTMLOptionElement::setSelected):
(WebCore::HTMLOptionElement::childrenChanged):
(WebCore::HTMLOptionElement::ownerSelectElement const):
(WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel const):
(WebCore::HTMLOptionElement::insertedIntoAncestor):
(WebCore::HTMLOptionElement::collectOptionInnerText const):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::recalcListItems const):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):

2:23 PM Changeset in webkit [288032] by Wenson Hsieh
  • 8 edits in trunk

Avoid redundant text analysis requests when long pressing inside an image that contains Live Text
https://bugs.webkit.org/show_bug.cgi?id=235129
rdar://87366539

Reviewed by Tim Horton.

Source/WebKit:

When long pressing over a non-Live-Text part of an image that otherwise contains Live Text, we currently trigger
Live Text analysis on the image a second time and re-inject the same text recognition results into the image
element. In addition to being unnecessary, this extra text analysis operation causes regular Live Text results
to be injected into images that already contain "block"-style recognized text results, replacing the blocks in
the process.

Address this by adding an optimization to avoid this unnecessary Live Text analysis and injection. See below for
more details.

Test: ImageAnalysisTests.AvoidRedundantTextRecognitionRequests

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

Add a new elementContainsImageOverlay bit to position information.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView imageAnalysisGestureDidBegin:]):

In the case where the image already contains an overlay, short-circuit logic to perform text analysis and inject
the results into the image, and instead directly call into the new helper method below to compute visual look up
results and invoke pending context menu completion handler blocks. We pass YES for hasTextResults here
because we know that the image already contains recognized text, due to the elementContainsImageOverlay being
set.

(-[WKContentView _completeImageAnalysisRequestForContextMenu:requestIdentifier:hasTextResults:]):

Factor out logic for requesting visual look up results on the image into a separate helper method.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::videoPositionInformation):
(WebKit::imagePositionInformation):

Set the elementContainsImageOverlay bit (see above).

Tools:

Add a new API test and refactor some existing tests.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(swizzledLocationInView):
(-[TestWKWebView simulateImageAnalysisGesture:]):

Add a helper method to simulate the image analysis gesture recognizer being activated on iOS, and wait for image
analysis to finish.

(TestWebKitAPI::swizzledProcessRequestWithResults):
(TestWebKitAPI::TEST):

Add a new API test to verify that we make at most one extra VKImageAnalyzer request when invoking a non-Live-
Text part of the image a second time. Additionally, adjust an existing test (HandleImageAnalyzerErrors) to
verify that we invoke VKImageAnalyzer a total of two times during the course of one image analysis gesture (once
for Live Text recognition, and another for visual look up). This test currently passes with only a single check
because it ends too early (i.e. after only one round trip to the web process and back).

(TestWebKitAPI::swizzledLocationInView): Deleted.

  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm:

(-[TestVKImageAnalysis hasResultsForAnalysisTypes:]):

Implement this method stub to avoid an unrecognized selector crash.

1:58 PM Changeset in webkit [288031] by jer.noble@apple.com
  • 12 edits
    6 adds in trunk

[Cocoa] rVFC() isn't called for initial video load
https://bugs.webkit.org/show_bug.cgi?id=235006

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/request-video-frame-loadstart.html

media/request-video-frame-seek.html

Add a new utility class, QueuedVideoOutput, which will pull pixel buffers out of an AVPlayerItemVideoOutput
pre-emptively. Once those pixel buffers are enqueued locally, their associated timing information can be used to
fire a callback for that buffer's display time.

Previously, paints were blocked from pulling new pixel buffers from the video output. With the QueuedVideoOutput
class, this is no longer necessary. The QueuedVideoOutput will notify its client when the image for currentTime
changes, and other clients can freely ask for the currentTime's image.

To curb runaway memory growth, frames are purged as soon as a new image for the current time is available, and when
the video output signals that its own queues were purged.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::cancelVideoFrameCallback):
(WebCore::HTMLVideoElement::serviceRequestVideoFrameCallbacks):

  • html/HTMLVideoElement.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::startVideoFrameMetadataGathering):
(WebCore::MediaPlayerPrivateAVFoundationObjC::checkNewVideoFrameMetadata):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::colorSpace):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(WebCore::globalPullDelegateQueue): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): Deleted.
(-[WebCoreAVFPullDelegate initWithPlayer:]): Deleted.
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]): Deleted.
(-[WebCoreAVFPullDelegate outputSequenceWasFlushed:]): Deleted.

  • platform/graphics/avfoundation/objc/QueuedVideoOutput.h: Added.
  • platform/graphics/avfoundation/objc/QueuedVideoOutput.mm: Added.

(-[WebQueuedVideoOutputDelegate initWithParent:]):
(-[WebQueuedVideoOutputDelegate outputMediaDataWillChange:]):
(-[WebQueuedVideoOutputDelegate outputSequenceWasFlushed:]):
(-[WebQueuedVideoOutputDelegate observeValueForKeyPath:ofObject:change:context:]):
(WebCore::globalOutputDelegateQueue):
(WebCore::QueuedVideoOutput::create):
(WebCore::QueuedVideoOutput::QueuedVideoOutput):
(WebCore::QueuedVideoOutput::~QueuedVideoOutput):
(WebCore::QueuedVideoOutput::invalidate):
(WebCore::decltype):
(WebCore::QueuedVideoOutput::hasImageForTime const):
(WebCore::QueuedVideoOutput::takeVideoFrameEntryForTime):
(WebCore::QueuedVideoOutput::addCurrentImageChangedObserver):
(WebCore::QueuedVideoOutput::configureNextImageObserver):
(WebCore::QueuedVideoOutput::imageForCurrentTimeChanged):
(WebCore::QueuedVideoOutput::addVideoFrameEntries):
(WebCore::QueuedVideoOutput::purgeVideoFrameEntries):
(WebCore::QueuedVideoOutput::purgeImagesBeforeTime):
(WebCore::QueuedVideoOutput::rateChanged):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

LayoutTests:

  • media/request-video-frame-loadstart-expected.txt: Added.
  • media/request-video-frame-loadstart.html: Added.
  • media/request-video-frame-seek-expected.txt: Added.
  • media/request-video-frame-seek.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:47 PM Changeset in webkit [288030] by Devin Rousso
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: cannot copy grouping of blackboxed call frames
https://bugs.webkit.org/show_bug.cgi?id=234615
<rdar://problem/86989248>

Reviewed by Patrick Angle.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype.handleCopyEvent):
(WI.SourcesNavigationSidebarPanel.prototype.handleCopyEvent.addCallFrame): Added.
Include every WI.CallFrame managed by any selected WI.BlackboxedGroupTreeElement when
copying. Also make sure that any async boundaries are taken into account.

  • UserInterface/Views/BlackboxedGroupTreeElement.js:

(WI.BlackboxedGroupTreeElement):
(WI.BlackboxedGroupTreeElement.prototype.get callFrames): Added.
(WI.BlackboxedGroupTreeElement.prototype.get expandable): Added.
(WI.BlackboxedGroupTreeElement.prototype.onenter): Added.
(WI.BlackboxedGroupTreeElement.prototype.onspace): Added.
Make WI.BlackboxedGroupTreeElement selectable, and add extra action handlers for expansion.

  • UserInterface/Views/BlackboxedGroupTreeElement.css:

(.tree-outline .item.blackboxed-group):
(.tree-outline .item.blackboxed-group:not(.selected) > *, .tree-outline:not(:focus-within) .item.blackboxed-group.selected > *, body:is(.window-inactive, .window-docked-inactive) .tree-outline .item.blackboxed-group.selected > *): Added.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.blackboxed-group.selected .icon): Added.
Only make the content more transparent if not .selected (when the window/tree has focus).

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.get expandable): Added.
(WI.TreeElement.treeElementToggled):
Allow toggleOnClick to be used when selectable too. This allows WI.BlackboxedGroupTreeElement
to expand on click while also being able to be selected (e.g. shift-up, command-A, etc.).
All other uses of toggleOnClick set this.selectable = false; anyways, so this will have
no effect to other clients.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.insertChild):
(WI.TreeOutline.prototype._treeKeyDown):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.update):
Add a helper get expandable instead of assuming it from get hasChildren. This allows
WI.BlackboxedGroupTreeElement to override it and always be true, since there is no
situation where we would disallow expansion (which shows the grouped blackboxed call frames).

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame.prototype.get displayName): Added.

  • UserInterface/Views/CallFrameView.js:

(WI.CallFrameView):

  • UserInterface/Views/CallFrameTreeElement.js:

(WI.CallFrameTreeElement):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype.toClipboardString):
Add a helper get displayName to avoid repeated specialized logic.

1:34 PM Changeset in webkit [288029] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: add a contextmenu item to create a URL Breakpoint for resources initiated by script
https://bugs.webkit.org/show_bug.cgi?id=235216

Reviewed by Dean Jackson.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
Since URL Breakpoints only work with XHR/fetch, only offer to create a URL Breakpoint if
the WI.SourceCode has initiatorCallFrames, meaning it was triggered by JS. We could
offer this contextmenu item for _all_ resources, but there are many different resource types
that are unlikely (if ever) to be loaded via XHR/fetch (e.g. favicons, manifests, fonts,
initial JS/CSS files, etc.) that it would likely add clutter and possibly confuse developers
into thinking that URL Breakpoints can somehow pause things other than JS. Plus, this can
always be changed in a followup, so better to do something minimal first.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.urlBreakpointsMatchingURL): Added.
Helper method to find all WI.URLBreakpoint that match a given URL, sorted by how exact
they would match (e.g. a regex match is less exact than ===).

  • Localizations/en.lproj/localizedStrings.js:
1:07 PM Changeset in webkit [288028] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Make isJITPC fast
https://bugs.webkit.org/show_bug.cgi?id=235241

Reviewed by Yusuke Suzuki.

Make it an inlined function, and stop tagging g_jscConfig.startExecutableMemory
and g_jscConfig.endExecutableMemory, since they're in the Config page, and
not mutable after it's frozen.

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):
(JSC::isJITPC): Deleted.

  • jit/ExecutableAllocator.h:

(JSC::isJITPC):

1:04 PM Changeset in webkit [288027] by Tyler Wilcock
  • 5 edits in trunk/Source/WebCore

AX: AXIsolatedObject::initializeAttributeData should compute AXAncestorFlags if they are unexpectedly uninitialized
https://bugs.webkit.org/show_bug.cgi?id=235189

Reviewed by Andres Gonzalez.

Currently in AXIsolatedObject::initializeAttributeData, we don't store
any ancestor flags if they are unexpectedly uninitialized (i.e. we're
asked to initialize an isolated object for a live AX object that has
not been added to the live AX tree).

Rather than not storing flags and thus creating an isolated object
with incorrect properties, we should do a single traversal to initialize them.
We should have to do this very rarely since we generally expect to be
given live AX objects with initialized flags here (and debug ASSERT that this is the case).

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::computeAncestorFlagsWithTraversal const):
Added.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::enumerateAncestors):
Added.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
Compute ancestor flags with a single traversal if they are unexpected uninitialized.

12:43 PM Changeset in webkit [288026] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

MediaPlayerPrivateMediaStreamAVFObjC::m_videoTransform is redundant
https://bugs.webkit.org/show_bug.cgi?id=235181

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

The video sample transform was stored as a member variable during video sample
enqueuing. However, this is just a normal video sample property, and
does not need to be handled specially. The member variable anyway ended up being assigned
during use. Calculating the transform is not a heavy operation, since it
is accessed once per video paint.

This simplifies the future code where the underlying video frame would be
used as-is by WebGL, as there we need to have the correct transform.

No new tests, refactor.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateRenderingMode):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):

12:41 PM Changeset in webkit [288025] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

gl.texImage2D upload of getUserMedia streams via <video> element fails
https://bugs.webkit.org/show_bug.cgi?id=230617
<rdar://problem/83407577>

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

Source/WebCore:

Fix MSE camera to WebGL texture uploads.
Partially revert r280963 for Cocoa MediaPlayer implementatations
that do not have nativeImageForCurrentTime / pixelBufferForCurrentTime.
Turns out MSE does not have these implemented, so currently fall back
to the painting path.

Test: fast/mediastream/getUserMedia-to-canvas.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::videoFrameToImage):

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas-expected.txt: Added.
  • fast/mediastream/getUserMedia-to-canvas.html: Added.

Add a test to test getting video frame to 2DContext and
WebGL canvas elements.

  • webrtc/routines.js:

Add a function to assert that ImageData contains
the simulated mock camera image. This is useful
in verifying that the image is exactly as
expected. The test tests only the default orientation.
Later changes will update the test to address the
camera rotation.

12:07 PM Changeset in webkit [288024] by Chris Dumez
  • 21 edits in trunk

Regression(r281520) 3 subtests started failing on dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=235153
<rdar://problem/87485756>

Unreviewed, revert r281520 since it regressed dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html WPT test.

LayoutTests/imported/w3c:

  • web-platform-tests/geolocation-API/non-fully-active.https-expected.txt:

Source/WebCore:

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::getCurrentPosition):
(WebCore::Geolocation::watchPosition):

  • Modules/web-locks/WebLockManager.cpp:

(WebCore::WebLockManager::didCompleteLockRequest):
Covered by "Removed Frame as lock is granted" test in imported/w3c/web-platform-tests/web-locks/frames.tentative.https.html.
Before this change, WebLockGrantedCallback was using incumbent global object (main frame in test) to create a promise instead
of lexical (removed frame in test), causing the test to be false-passing.

  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):

  • dom/TaskSource.h:

LayoutTests:

  • TestExpectations:
  • fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
  • fast/dom/Geolocation/callback-to-deleted-context.html:
  • fast/dom/Geolocation/disconnected-frame-already-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-already.html:
  • fast/dom/Geolocation/disconnected-frame-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied.html:
  • fast/dom/Geolocation/disconnected-frame.html:
  • fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
  • fast/events/detached-svg-parent-window-events-expected.txt:
  • fast/events/detached-svg-parent-window-events.html:
12:05 PM Changeset in webkit [288023] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Use IRC for Wasm, and Briggs for JS on ARM64
https://bugs.webkit.org/show_bug.cgi?id=235235
<rdar://87090631>

Reviewed by Yusuke Suzuki and Robin Morisset.

When I turned on IRC for everything in r287218, we saw some
regressions on iOS on JetStream2. So, this patch makes it so
JS code on arm64 goes back to using Briggs, and Wasm will
use IRC.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • b3/air/AirCode.h:

(JSC::B3::Air::Code::setForceIRCRegisterAllocation):
(JSC::B3::Air::Code::forceIRCRegisterAllocation):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompileB3):

11:57 AM Changeset in webkit [288022] by Justin Michaud
  • 3 edits in trunk/JSTests

Update libWABT
https://bugs.webkit.org/show_bug.cgi?id=235050

Update libWabt to support new simd instructions, and add stubs so that the
wasm test runner can run in v8.

Reviewed by Yusuke Suzuki.

  • wasm/assert.js:
  • wasm/libwabt.js:

(WabtModule):
(set get if):

11:37 AM Changeset in webkit [288021] by Jonathan Bedard
  • 5 edits in trunk/Tools

[EWS] Support pull-requests in ValidateChange
https://bugs.webkit.org/show_bug.cgi?id=234861
<rdar://problem/87114299>

Reviewed by Aakash Jain.

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

(Factory.init): Rename ValidatePatch to ValidateChange.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.
(WindowsFactory.init): Ditto.
(CommitQueueFactory.init): Ditto.

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

(TestExpectedBuildSteps): Step name changed from validate-patch to validate-change.

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

(GitHub.pr_url): Add missing /.
(GitHub.api_url): Convert a repository URL to the API url for that repository.
(GitHub.credentials): Access GitHub credentials from passwords.json.
(GitHubMixin):
(GitHubMixin.fetch_data_from_url_with_authentication):
(GitHubMixin.get_pr_json):
(GitHubMixin._is_pr_closed): Check if a pull-request is closed.
(GitHubMixin._is_pr_obsolete): Check if a pull-request is obsolete.
(ValidateChange): Renamed from ValidatePatch.
(ValidateChange.getResultSummary):
(ValidateChange.start): Invoke validate_bugzilla or validate_github.
(ValidateChange.validate_bugzilla): Check a bugzilla patch.
(ValidateChange.validate_github): Check a GitHub pull-request.
(CompileWebKit.evaluateCommand): Rename ValidatePatch to ValidateChange.
(RunJavaScriptCoreTests.evaluateCommand): Ditto.
(RunWebKitTests.evaluateCommand): Ditto.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunWebKitTestsRedTree.evaluateCommand): Ditto.
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand): Ditto.
(RunAPITests.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.
(ValidatePatch): Renamed to ValidateChange.

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

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

10:10 AM Changeset in webkit [288020] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WTF

Fix WTF::UUID's potential collision with empty and deleted values
https://bugs.webkit.org/show_bug.cgi?id=235177

Reviewed by Chris Dumez.

Since cryptographicallyRandomValues generates random values, it is possible that it produces 0 or 1.
In that case, it conflicts with empty and deleted values of UUID for hash table. When it is generated
and used, it can break hash tables. This patch avoids that by picking 2 when we generate 0 or 1.

We also avoid using UInt128Impl and instead using UInt128. UInt128Impl is implementation, so we should
always use UInt128. UInt128 can be native uint128_t when it is supported by the compiler: clang and
GCC on 64bit support it.

In this patch, we do not use strict UUID v4. This patch focuses on fixing the existing hash table corruption
bug, and we defer discussion about UUID v4 since it reduces usable bits from 128 to 122, which we need to
investigate the existing usage of UUID (and UUID string) in our tree.

  • wtf/UUID.cpp:

(WTF::UUID::UUID):

  • wtf/UUID.h:

(WTF::UUID::UUID):
(WTF::UUID::isHashTableDeletedValue const):
(WTF::UUID::encode const):
(WTF::UUID::decode):

9:10 AM Changeset in webkit [288019] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

Inject Launch Services database before NSApplication is initialized
https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>

Reviewed by Chris Dumez and Simon Fraser.

To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm:

(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

8:40 AM Changeset in webkit [288018] by Tyler Wilcock
  • 5 edits in trunk/Source/WebCore

AX: Move methods that are unnecessarily in AccessibilityRenderObject to AccessibilityNodeObject (part 1 of n)
https://bugs.webkit.org/show_bug.cgi?id=235204

Reviewed by Chris Fleizach.

Many methods in AccessibilityRenderObject don't actually do anything renderer-specific,
and thus should be in the base class AccessibilityNodeObject. This will help improve our support
for AX objects that normally have renderers, but don't because of CSS or ARIA markup (e.g. display: contents).

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isFileUploadButton const):
(WebCore::AccessibilityNodeObject::correspondingControlForLabelElement const):
(WebCore::AccessibilityNodeObject::correspondingLabelForControlElement const):
(WebCore::AccessibilityNodeObject::labelElementContainer const):
(WebCore::AccessibilityNodeObject::exposesTitleUIElement const):
(WebCore::AccessibilityNodeObject::hasTextAlternative const):

  • accessibility/AccessibilityNodeObject.h:

Add all of the above methods from AccessibilityRenderObject.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineDropEffects const):
(WebCore::AccessibilityRenderObject::isFileUploadButton const):
(WebCore::AccessibilityRenderObject::labelElementContainer const):
(WebCore::AccessibilityRenderObject::hasTextAlternative const):
(WebCore::AccessibilityRenderObject::exposesTitleUIElement const):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement const):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement const):

  • accessibility/AccessibilityRenderObject.h:

Move all of the above methods to AccessibilityNodeObject.

7:23 AM Changeset in webkit [288017] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Reduce use of KeyframeEffect::targetElementOrPseudoElement()
https://bugs.webkit.org/show_bug.cgi?id=235228

Reviewed by Antti Koivisto.

The KeyframeEffect::targetElementOrPseudoElement() method is one of the few remaining places
in animation-related code where we deal with PseudoElement objects. As it turns out, a lot of
its remaning call sites are not actually making any use of PseudoElement and should just use
the simple target() method.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::invalidate):

  • dom/Document.cpp:

(WebCore::Document::matchingAnimations):

  • dom/Element.cpp:

(WebCore::Element::getAnimations):

7:21 AM Changeset in webkit [288016] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Stop forcing the creation of PseudoElement in KeyframeEffect
https://bugs.webkit.org/show_bug.cgi?id=235225

Reviewed by Antti Koivisto.

At the time we started supporting targeting pseudo-elements using the Web Animations API,
we resorted to some hack-ish code to enforce the creation of a PseudoElement should the
target of the animation be a ::before or ::after pseudo-element.

This isn't necessary, and was due to some incorrect code in
RenderTreeUpdater::GeneratedContent::updatePseudoElement() which this patch corrects.
Indeed, if there are animations targeting the pseudo-element in question, we should not
be removing the pseudo-element and exiting this method.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::didChangeTargetStyleable):
(WebCore::elementOrPseudoElementForStyleable): Deleted.

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

5:40 AM Changeset in webkit [288015] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Incorrect root inline box position when non-empty atomic inline level child box has height: 0px
https://bugs.webkit.org/show_bug.cgi?id=235218
<rdar://84617690>

Reviewed by Antti Koivisto.

Source/WebCore:

Even if the atomic inline level box itself does not stetch the line box, it may still affect the root inline box position
through baseline "syncing" (This is mostly the case with 0 tall boxes as (non-empty) atomic inline boxes in general stretch the line box).

Test: fast/block/line-layout/non-empty-inline-block-with-zero-height.html

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):

LayoutTests:

  • fast/block/line-layout/non-empty-inline-block-with-zero-height-expected.html: Added.
  • fast/block/line-layout/non-empty-inline-block-with-zero-height.html: Added.
4:55 AM Changeset in webkit [288014] by Chris Lord
  • 8 edits
    2 moves
    1 add in trunk/Source/WebCore

[GTK][WPE] Share code between NicosiaGCGLLayer+ANGLE and NicosiaImageBufferPipe
https://bugs.webkit.org/show_bug.cgi?id=235182

Reviewed by Alejandro G. Castro.

Rename NicosiaGCGLANGLELayer to NicosiaGCGLANGLEPipe and have it
inherit from NicosiaImageBufferPipe instead of NicosiaGCGLLayer.

No new tests, no change in behaviour.

  • platform/TextureMapper.cmake:
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipe::NicosiaImageBufferPipe):
(Nicosia::NicosiaImageBufferPipe::source const):
(Nicosia::NicosiaImageBufferPipe::layerContentsDisplayDelegate):
(): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::NicosiaImageBufferPipeSource): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::~NicosiaImageBufferPipeSource): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::handle): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::swapBuffersIfNeeded): Deleted.

  • platform/graphics/nicosia/NicosiaImageBufferPipe.h: Added.

(Nicosia::NicosiaImageBufferPipeSource::platformLayer const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp.
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h.
  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::GCGLLayer):
(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

4:08 AM Changeset in webkit [288013] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[GTK][a11y] Unregister objects and clear cache when last client disconnect with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234781

Reviewed by Adrian Perez de Castro.

We currently register objects when there are clients asking for cached items or connect event listeners. We
could unregister the objects and clear the cache if all the clients are disconnected. This patch adds a low
priority timer to clear the cache and unregister the objects if there aren't new clients after 10 seconds
since the last client disconnected.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::initializeRegistry): Remove the calls to registerTrees(), since it's now done by
addClient() when the first client is added.
(WebCore::AccessibilityAtspi::addEventListener): Call addClient().
(WebCore::AccessibilityAtspi::addClient): Register the trees if this is the first client. Add the client to the
map and subscribe to NameOwnerChanged to remove the client when it's disconnected.
(WebCore::AccessibilityAtspi::removeClient): Remove the client and start the clear cache timer if the clients
map is empty.
(WebCore::AccessibilityAtspi::cacheClearTimerFired): Unregister all the objects and clear the cache.
(WebCore::AccessibilityAtspi::registerTrees const): Deleted.

  • accessibility/atspi/AccessibilityAtspi.h:

(WebCore::AccessibilityAtspi::hasClients const): Return whether there are clients connected.
(WebCore::AccessibilityAtspi::hasEventListeners const): Deleted.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::didUnregisterObject): Object was unregistered by the clear cache timer,
reset the path and isRegistered members.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::registerTree): Return early if already registered.
(WebCore::AccessibilityRootAtspi::didUnregisterTree): Tree was unregistered by the clear caceh timer, reset the
treeIsRegistered member.
(WebCore::AccessibilityRootAtspi::embedded): Check if there are clients.

  • accessibility/atspi/AccessibilityRootAtspi.h:
3:56 AM Changeset in webkit [288012] by Antti Koivisto
  • 8 edits
    2 adds in trunk

[:has() pseudo-class] Avoid O(n2) in style invalidation with repeated DOM mutations
https://bugs.webkit.org/show_bug.cgi?id=234842
<rdar://problem/87397176>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/has-complexity-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/has-complexity.html: Added.

Source/WebCore:

Use invalidation selectors to check if a given mutation needs :has() invalidation.

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-complexity.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorChecker.h:
  • style/ChildChangeInvalidation.cpp:

(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

Invalidate only if the invalidation ruleset has an invalidation selector that matches
the added/removed element. Even in that case we only need to invalidate if that selector
has not already matched within this parent.

As we don't have persistent state that would remember what already matched accross multiple
mutations, approximate this by checking if the closest sibling matched.

(WebCore::Style::ChildChangeInvalidation::invalidateForHasBeforeMutation):
(WebCore::Style::ChildChangeInvalidation::invalidateForHasAfterMutation):

  • style/ChildChangeInvalidation.h:

LayoutTests:

1:42 AM Changeset in webkit [288011] by Nikolas Zimmermann
  • 6 edits
    2 adds in trunk/Source/WebCore

[LBSE] Introduce SVGContainerLayout
https://bugs.webkit.org/show_bug.cgi?id=235101

Reviewed by Rob Buis.

Upstream SVGContainerLayout, a utility class centralizing
the "layout children in SVG render tree" algorithm. The legacy
engines relies on various helper methods in SVGRenderingSupport -- for
LBSE it's all in one place: SVGContainerLayout.

The actual two-pass algorithm is described in the technical document
covering LBSE. It's identical to the LBSE downstream version, which
used to pass all layout tests.

Currently the functionality is not observable, as we don't create
LBSE renderers yet.

Covered by existing tests, no change in behaviour.

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

(WebCore::RenderObject::isSVGLayerAwareRenderer const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layoutChildren):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • rendering/svg/SVGContainerLayout.cpp: Added.

(WebCore::SVGContainerLayout::SVGContainerLayout):
(WebCore::SVGContainerLayout::layoutChildren):
(WebCore::layoutLocationFromRenderer):
(WebCore::setLayoutLocationForRenderer):
(WebCore::SVGContainerLayout::positionChildrenRelativeToContainer):
(WebCore::SVGContainerLayout::verifyLayoutLocationConsistency):
(WebCore::SVGContainerLayout::layoutDifferentRootIfNeeded):
(WebCore::SVGContainerLayout::invalidateResourcesOfChildren):
(WebCore::SVGContainerLayout::layoutSizeOfNearestViewportChanged const):
(WebCore::SVGContainerLayout::transformToRootChanged):

  • rendering/svg/SVGContainerLayout.h: Added.
12:02 AM Changeset in webkit [288010] by J Pascoe
  • 5 edits in trunk

Expose way to encode CTAP commands with only the hash of ClientDataJSON
https://bugs.webkit.org/show_bug.cgi?id=235191
<rdar://problem/87557846>

Reviewed by Brent Fulgham.

Source/WebKit:

CTAP command encoding covered by existing tests (see CtapRequestTest) and the SPI
in new API tests.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]):
(+[_WKWebAuthenticationPanel encodeGetAssertionCommandWithClientDataHash:options:userVerificationAvailability:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):
Tests for new SPIs.

Jan 13, 2022:

11:51 PM Changeset in webkit [288009] by graouts@webkit.org
  • 55 edits
    13 copies
    13 moves
    172 adds
    6 deletes in trunk/LayoutTests

Update WPT for css/css-pseudo
https://bugs.webkit.org/show_bug.cgi?id=235197

Unreviewed WPT import.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-pseudo/README.md:
  • web-platform-tests/css/css-pseudo/active-selection-011.html:
  • web-platform-tests/css/css-pseudo/active-selection-012-expected.html:
  • web-platform-tests/css/css-pseudo/active-selection-012.html:
  • web-platform-tests/css/css-pseudo/active-selection-016.html:
  • web-platform-tests/css/css-pseudo/active-selection-018.html:
  • web-platform-tests/css/css-pseudo/active-selection-021.html:
  • web-platform-tests/css/css-pseudo/active-selection-025.html:
  • web-platform-tests/css/css-pseudo/active-selection-027.html:
  • web-platform-tests/css/css-pseudo/active-selection-031.html:
  • web-platform-tests/css/css-pseudo/active-selection-041-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-041-expected.html.
  • web-platform-tests/css/css-pseudo/active-selection-043.html:
  • web-platform-tests/css/css-pseudo/active-selection-045.html:
  • web-platform-tests/css/css-pseudo/active-selection-051-ref.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-056.html:
  • web-platform-tests/css/css-pseudo/active-selection-057.html:
  • web-platform-tests/css/css-pseudo/active-selection-063.html:
  • web-platform-tests/css/css-pseudo/backdrop-animate-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/before-after-dynamic-custom-property-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/cascade-highlight-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-012-expected.html.
  • web-platform-tests/css/css-pseudo/cascade-highlight-001.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-002.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-004-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-012-expected.html.
  • web-platform-tests/css/css-pseudo/cascade-highlight-004.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-012-expected.html.
  • web-platform-tests/css/css-pseudo/cascade-highlight-005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/cascade-highlight-004.html.
  • web-platform-tests/css/css-pseudo/file-selector-button-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/file-selector-button-001-expected.html.
  • web-platform-tests/css/css-pseudo/file-selector-button-after-part-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/file-selector-button-after-part-expected.html.
  • web-platform-tests/css/css-pseudo/file-selector-button-inherit-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-inherit.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-001.html:
  • web-platform-tests/css/css-pseudo/first-letter-002.html:
  • web-platform-tests/css/css-pseudo/first-letter-003.html:
  • web-platform-tests/css/css-pseudo/first-letter-004-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-004.html:
  • web-platform-tests/css/css-pseudo/first-letter-005-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-and-whitespace-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-background-image-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-block-to-inline-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-exclude-block-child-marker-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-exclude-inline-child-marker-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-exclude-inline-marker-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-hi-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-hi-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-hi-001.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-hi-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-hi-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-hi-002.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-list-item-dynamic-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-of-html-root-crash-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-opacity-001-not-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-opacity-001-ref-expected.html.
  • web-platform-tests/css/css-pseudo/first-letter-opacity-001-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-opacity-001-ref-expected.html.
  • web-platform-tests/css/css-pseudo/first-letter-opacity-float-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-and-space-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-and-space.html:
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-dynamic-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-nested-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-marker-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-width-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-with-quote-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-with-span-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-and-marker-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-and-placeholder-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-change-inline-color-nested-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-change-inline-color-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-line-height-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-line-height-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-line-height-001.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-line-height-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-line-height-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-line-height-002.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-on-ancestor-block-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-opacity-001-not-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-opacity-001-ref-expected.html.
  • web-platform-tests/css/css-pseudo/first-line-opacity-001-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-opacity-001-ref-expected.html.
  • web-platform-tests/css/css-pseudo/first-line-replaced-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-before-after-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-inline-block-before-ref.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-out-of-flow-ref.html: Added.
  • web-platform-tests/css/css-pseudo/grammar-error-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/grammar-error-001.html.
  • web-platform-tests/css/css-pseudo/grammar-error-001.html:
  • web-platform-tests/css/css-pseudo/grammar-spelling-errors-001.html:
  • web-platform-tests/css/css-pseudo/grammar-spelling-errors-002.html:
  • web-platform-tests/css/css-pseudo/highlight-cascade-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-001.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-002.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-003-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-003-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-003.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-004-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-004-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-cascade-004.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-001-expected.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-001-expected.html.
  • web-platform-tests/css/css-pseudo/highlight-painting-001.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-002-expected.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-002-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-002-expected.html.
  • web-platform-tests/css/css-pseudo/highlight-painting-002.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-003-expected.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-003-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-003-expected.html.
  • web-platform-tests/css/css-pseudo/highlight-painting-003.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-004-expected.html:
  • web-platform-tests/css/css-pseudo/highlight-painting-004-ref1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-004-expected.html.
  • web-platform-tests/css/css-pseudo/highlight-painting-004-ref2.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-004-ref3.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-004.html:
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-001.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-002.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-003-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-003-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-003.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-004-notref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-004.tentative-expected-mismatch.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-004.tentative.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-005-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-005.tentative-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-005.tentative.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-006-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-006-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-paired-cascade-006.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-styling-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-styling-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-styling-001.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-styling-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-styling-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-styling-002.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-z-index-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-z-index-001.html:
  • web-platform-tests/css/css-pseudo/highlight-z-index-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-z-index-002.html:
  • web-platform-tests/css/css-pseudo/marker-and-other-pseudo-elements-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-animate-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-color-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-003-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-004-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-005-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-006-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-007-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-008-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-009-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-011-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-012-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-013-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-014-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-015-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-016-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-017-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-018-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-019-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-020-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-021-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-022-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-023-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-024-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-font-properties-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref-expected.html.
  • web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref-expected.html.
  • web-platform-tests/css/css-pseudo/marker-hyphens-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-inherit-line-height-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-inherit-values-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-intrinsic-contribution-002-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-line-break-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-line-height-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-tab-size-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-align-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-combine-upright-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-decoration-skip-ink-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-emphasis-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-shadow-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-transform-default-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-transform-uppercase-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-unicode-bidi-default-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-unicode-bidi-default-ref-expected.html.
  • web-platform-tests/css/css-pseudo/marker-unicode-bidi-normal-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-unicode-bidi-normal-ref-expected.html.
  • web-platform-tests/css/css-pseudo/marker-word-break-ref.html: Added.
  • web-platform-tests/css/css-pseudo/marker-word-spacing-ref.html: Added.
  • web-platform-tests/css/css-pseudo/outside-marker-paint-order-ref.html: Added.
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation.html:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties.html:
  • web-platform-tests/css/css-pseudo/placeholder-inherit-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/placeholder-inherit.html: Added.
  • web-platform-tests/css/css-pseudo/placeholder-input-number-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/placeholder-input-number-expected.html.
  • web-platform-tests/css/css-pseudo/selection-background-painting-order-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-background-painting-order-ref1.html: Added.
  • web-platform-tests/css/css-pseudo/selection-background-painting-order-ref2.html: Added.
  • web-platform-tests/css/css-pseudo/selection-background-painting-order.html: Added.
  • web-platform-tests/css/css-pseudo/selection-contenteditable-011.html:
  • web-platform-tests/css/css-pseudo/selection-decoration-p1-expected.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-decoration-p2-expected.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-decoration-p2.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-decoration-p3-expected.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-decoration-p4-expected.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-decoration-p4.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-input-011.html:
  • web-platform-tests/css/css-pseudo/selection-originating-decoration-color-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-decoration-color-ref.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-decoration-color.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/selection-decoration-p3.html.
  • web-platform-tests/css/css-pseudo/selection-originating-strikethrough-order-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-strikethrough-order-ref.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-strikethrough-order.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-underline-order-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-underline-order-ref.html: Added.
  • web-platform-tests/css/css-pseudo/selection-originating-underline-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/selection-decoration-p1.html.
  • web-platform-tests/css/css-pseudo/selection-overlay-and-grammar-001.html:
  • web-platform-tests/css/css-pseudo/selection-overlay-and-spelling-001.html:
  • web-platform-tests/css/css-pseudo/selection-paint-image-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/selection-paint-image-expected.html.
  • web-platform-tests/css/css-pseudo/selection-textarea-011.html:
  • web-platform-tests/css/css-pseudo/spelling-error-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/spelling-error-001.html.
  • web-platform-tests/css/css-pseudo/spelling-error-001.html:
  • web-platform-tests/css/css-pseudo/target-text-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-001.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-002.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-003-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-003.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-004-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-004.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-005-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-005.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-006-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-006.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-007-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/target-text-007.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-001.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-002.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-003-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-003.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-004-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-dynamic-004.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-lime-green-ref.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-lime-ref.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-text-decoration-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-text-decoration-001-ref.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-text-decoration-001.html: Added.
  • web-platform-tests/css/css-pseudo/target-text-two-words-ref.html: Added.
  • web-platform-tests/css/css-pseudo/textpath-selection-011-expected.html:
  • web-platform-tests/css/css-pseudo/textpath-selection-011-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/textpath-selection-011-expected.html.
  • web-platform-tests/css/css-pseudo/textpath-selection-011.html:
  • web-platform-tests/css/css-pseudo/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
10:15 PM Changeset in webkit [288008] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Don't call invalidateRectsForAllMarkers() for every layer in the updateLayerPositions() traversal
https://bugs.webkit.org/show_bug.cgi?id=235211

Reviewed by Alan Bujtas.

RenderLayer::updateLayerPositions() called renderer().document().markers().invalidateRectsForAllMarkers()
but that is called on every layer in the recursive updateLayerPositions() traveral. Yet it only needs
to be called once.

So differentiate the entry points for layer traversal from the recursive traversal functions
by using "recursive" in the naming of the latter, and move two of those entrypoints from
RenderLayerScrollableArea back to RenderLayer so everything is in the same file.

Now the entrypoints can call willUpdateLayerPositions() which does the invalidateRectsForAllMarkers().

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayerPositionsAfterScrolling):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::willUpdateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterStyleChange):
(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::RenderLayer::recursiveUpdateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll):
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
(WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll):
(WebCore::RenderLayer::updateLayerPositions): Deleted.
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Deleted.

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Deleted.

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollTo):
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterDocumentScroll): Deleted.
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterOverflowScroll): Deleted.

  • rendering/RenderLayerScrollableArea.h:
8:37 PM Changeset in webkit [288007] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] riscv64 backend should lower offlineasm instructions
https://bugs.webkit.org/show_bug.cgi?id=234952
<rdar://problem/87440612>

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-13
Reviewed by Yusuke Suzuki.

In the riscv64 offlineasm backend, instead of handling higher-level
offlineasm instructions with different operand combinations and manually
juggling temp registers, use the approach of aggressively lowering these
opcodes into sequences of RISC-V instructions.

Addresses and immediate values are lowered into usable forms where
necessary. Different lowering phases handle any offlineasm instruction
so that the resulting opcodes can be, with accompanying operands, used
trivially to construct the RISC-V assembly.

Lowered RISC-V opcodes use the 'rv_' prefix so that they can be easily
diassociated from any offlineasm opcode that might share the same name.
The prefix is removed when the assembly is finally generated.

  • offlineasm/riscv64.rb:
7:25 PM Changeset in webkit [288006] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Cleanup] Line::selectionState logic is slightly confusing and redundant
https://bugs.webkit.org/show_bug.cgi?id=235187

Reviewed by Antti Koivisto.

Go from a seemingly random set of conditions to a incremental state change (None -> Start -> Inside -> End).

(This also removes redundant code like "if (state == None
((boxState == Start boxState == End) && (state == None state == Inside)))"

and clears up what "state" here actually means.)

  • layout/integration/InlineIteratorLine.cpp:

(WebCore::InlineIterator::Line::selectionState const):

7:14 PM Changeset in webkit [288005] by Chris Dumez
  • 9 edits in trunk

Unable to have new lines in HTMLTextArea's placeholder text
https://bugs.webkit.org/show_bug.cgi?id=235205

Reviewed by Wenson Hsieh.

Source/WebCore:

Unlike the placeholder for HTMLInputElement, the placeholder for HTMLTextAreaElement needs
to allow new lines as per:

This aligns our behavior with Blink and Gecko.

No new tests, unskipped existing WPT tests.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::placeholder const):

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

(WebCore::HTMLTextAreaElement::updatePlaceholderText):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::strippedPlaceholder const): Deleted.

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

(WebCore::TextFieldInputType::updatePlaceholderText):

LayoutTests:

Unskip WPT tests that are no longer failing.

7:06 PM Changeset in webkit [288004] by Chris Dumez
  • 6 edits in trunk

html/semantics/scripting-1/the-script-element/script-type-and-language-empty.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=235202

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline test that is now passing.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-type-and-language-empty-expected.txt:

Source/WebCore:

Per https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script (step 8), we should assume
the type is "text/javascript" if the type attribute is present and its value is the empty string.
Our logic in ScriptElement::determineScriptType() was slightly wrong and didn't get this case right
because it was doing an isEmpty() check which could mean both that the attribute is missing or present
with a value that is the empty string.

No new tests, rebaselined existing test.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::determineScriptType const):

6:53 PM Changeset in webkit [288003] by Cameron McCormack
  • 3 edits
    2 adds in trunk

Only apply automatic minimum block-size aspect-ratio rules to non-replaced elements
https://bugs.webkit.org/show_bug.cgi?id=235058
<rdar://85505101>

Reviewed by Alan Bujtas.

Source/WebCore:

The rules in https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum
that define the automatic minimum size of an element subject to an
aspect-ratio only apply if the element is non-replaced.

In constrainLogicalHeightByMinMax specifically, when min-height is
auto, after applying the aspect-ratio to produce an automatic minimum
height, we bump it up to the content height if the element has
children. This, presumably, is to account for the way the height of a
block is computed in CSS 2.2. (As CSS 2.2 doesn't have an auto value
for min-height, and a CSS Block Layout module has not been written in
terms of CSS Sizing concepts, there is no clear definition of
automatic minimum sizing for blocks at the moment.) If we erroneously
apply this to a replaced element, such as an image or video, it can
get a computed min-height equal to the intrinsic height of the image,
which may be much larger than expected.

This commit adds an is<RenderReplaced>() check for both automatic
minimum logical width and height calculations, although I was unable to
produce a test to exercise the logical width case (which does not take
the intrinsic size into account when computing the automatic minimum).

Test: fast/css/aspect-ratio-min-height-replaced.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):

LayoutTests:

Test that replaced elements with child content (in this case, a
<video> element's controls in the UA shadow tree) don't influence the
automatic minimum size calculation.

  • fast/css/aspect-ratio-min-height-replaced-expected.html: Added.
  • fast/css/aspect-ratio-min-height-replaced.html: Added.
6:40 PM Changeset in webkit [288002] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Link Wasm code on the same thread that JITs
https://bugs.webkit.org/show_bug.cgi?id=235201

Reviewed by Yusuke Suzuki and Mark Lam.

This is preparing us for the changes that'll be needed by
https://bugs.webkit.org/show_bug.cgi?id=235192.

It should also be a small perf improvement, as we're now linking
in parallel instead of doing it after all compilations have finished.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompileB3):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::prepareImpl):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):
(JSC::Wasm::BBQPlan::initializeCallees):

  • wasm/WasmBBQPlan.h:
5:57 PM Changeset in webkit [288001] by Russell Epstein
  • 1 copy in tags/Safari-613.1.13

Tag Safari-613.1.13.

5:15 PM Changeset in webkit [288000] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Move the code that computes layer content visibility into its own function
https://bugs.webkit.org/show_bug.cgi?id=235195

Reviewed by Alan Bujtas.

Just move into its own function the code with the odd-looking RenderObject walk that looks
for visibility:visible non-layer children in a visibility:hidden ancestor.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::computeHasVisibleContent const):

  • rendering/RenderLayer.h:
5:01 PM Changeset in webkit [287999] by commit-queue@webkit.org
  • 23 edits in trunk/Source

[XCBuild] Add "product dependencies" which influence workspace build order
https://bugs.webkit.org/show_bug.cgi?id=235094

Source/JavaScriptCore:

Some ancillary targets (e.g. script-only targets like Derived Sources) do not have implicit
dependencies visible to Xcode. In workspace builds, we need to give XCBuild additional
information to ensure that they always run after their dependencies.

This patch adds "Product Dependencies" phases, which are Copy Files phases that copy the
_product_ of another dependency. The product names are also added to
EXCLUDED_SOURCE_FILE_NAMES, making the actual copy a no-op, but these phases give XCBuild
enough metadata to infer the relationship between targets.

For example, JavaScriptCore's "Generate Unified Sources" target depends on headers from WTF,
so it lists libWTF.a in its Product Dependencies. Xcode sees the relationship between the
target doing the copy (Generate Unified Sources) and the target which produces the product
(WTF) and schedules them accordingly.

Because these dependencies are _implicit_ and the copy phases are no-ops, they do not
influence command-line or production builds where each project is built separately.

Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
  • Configurations/JavaScriptCore.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
  • JavaScriptCore.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebCore:

Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.

No tests, build system only.

  • Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
  • Configurations/WebCore.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
  • WebCore.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebCore/PAL:

Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
  • Configurations/PAL.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
  • PAL.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebInspectorUI:

Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
  • WebInspectorUI.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WebKit:

Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.

  • Configurations/WebKit.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
  • WebKit.xcodeproj/project.pbxproj: Add Product Dependencies

Source/WTF:

Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
  • Configurations/WTF.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
  • WTF.xcodeproj/project.pbxproj: Add Product Dependencies
3:47 PM Changeset in webkit [287998] by Adrian Perez de Castro
  • 5 edits in trunk/Source/WebCore

Non-unified build fixes, mid January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235180

Unreviewed non-unified build fixes.

No new tests needed.

  • platform/graphics/filters/SourceAlpha.cpp: Add missing ImageBuffer.h header.
  • svg/SVGFEPointLightElement.cpp: Add missing FilterEffectVector.h header.
  • svg/SVGFESpotLightElement.cpp: Add missing headers FilterEffectVector.h,

GeometryUtilities.h, and ImageBuffer.h.

  • svg/graphics/filters/SVGFilterBuilder.h: Add missing FilterEffectVector.h header.
3:44 PM Changeset in webkit [287997] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/MomentumEventDispatcher.cpp:

(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):

  • WebProcess/WebPage/MomentumEventDispatcher.h:

We store std::optional<ScrollingAccelerationCurve> in a map, but then
when looking at whether we have a curve (to decide whether or not to even
use MomentumEventDispatcher), we check if the map has *any* value for the
given page... even an unengaged optional. To fix, check if the optional is engaged.

3:19 PM Changeset in webkit [287996] by Chris Dumez
  • 11 edits in trunk

Implement HTMLScriptElement.supports(type) method
https://bugs.webkit.org/show_bug.cgi?id=229929
<rdar://problem/82933899>

Reviewed by Geoff Garen and Darin Adler.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-supports-expected.txt:

Source/WebCore:

Implement HTMLScriptElement.supports(type) method which was fairly recently
introduced in the HTML specification:

Blink and Gecko already implement this.

No new tests, rebaselined existing tests.

  • html/HTMLScriptElement.h:
  • html/HTMLScriptElement.idl:

LayoutTests:

Rebaseline test now that more checks are passing.

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
3:04 PM Changeset in webkit [287995] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Avoid unnecessary call to windowScreenDidChange
https://bugs.webkit.org/show_bug.cgi?id=235198
<rdar://87458502>

Reviewed by Geoffrey Garen.

It is a page load performance progression to avoid this call in initWithDrawingAreaProxy.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler initWithDrawingAreaProxy:]):

2:45 PM Changeset in webkit [287994] by fpizlo@apple.com
  • 3 edits in trunk/Source/bmalloc

[libpas] pas_segregated_page_lock_with_mode in try_lock mode should check that the page still uses the lock after the try_lock
https://bugs.webkit.org/show_bug.cgi?id=235203

Reviewed by Yusuke Suzuki.

The bug I was trying to find by assertions in bug 235190 is that lock_with_mode has an incorrect
implementation of the try_lock case. It forgets to check if the lock it acquired is the right one
after locking.

I don't know how to test this without writing a test that is very gross. It's a super subtle race
condition - one that would be hard to reliably trigger even if I used the race_test_hooks
functionality.

  • libpas/src/libpas/pas_local_allocator.c:

(stop_impl):

  • libpas/src/libpas/pas_segregated_page_inlines.h:

(pas_segregated_page_switch_lock_with_mode):

1:53 PM Changeset in webkit [287993] by commit-queue@webkit.org
  • 5 edits
    2 moves
    3 adds in trunk

null ptr deref while trying to access DeferredPromise::promise()
https://bugs.webkit.org/show_bug.cgi?id=234447

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-13
Reviewed by Darin Adler.

Source/WebCore:

The sequence of steps is as follows:
1) In Document::~Document() the parent class ScriptExecutionContext::~ScriptExecutionContext() destroys the context

on all m_destructionObservers.

2) One of these objects is a DeferredPromise created earlier and stored in the JSCustomElementRegistry's promiseMap.
3) Destroying the context via DOMGuardedObject::contextDestroyed() nulls out m_globalObject.
4) Later, an event listener is invoked and tries to access the DeferredPromise stored in the

JSCustomElementRegistry's promiseMap.

5) However, this DeferredPromise has a null m_globalObject and we crash after trying to access it.

We should check in DeferredPromise::promise() if isEmpty().
This is true when the DeferredPromise's context has been destroyed in DOMGuardedObject::contextDestroyed().

Tests: fast/js-promise/js-promise-from-detached-iframe.html

fast/js-promise/js-promise-invalid-context-access.html

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::promise const):

LayoutTests:

  • fast/js-promise/js-promise-from-detached-iframe-expected.txt: Renamed from LayoutTests/fast/js-promise-from-detached-iframe-expected.txt.
  • fast/js-promise/js-promise-from-detached-iframe.html: Renamed from LayoutTests/fast/js-promise-from-detached-iframe.html.
  • fast/js-promise/js-promise-invalid-context-access-expected.txt: Added.
  • fast/js-promise/js-promise-invalid-context-access.html: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
1:25 PM Changeset in webkit [287992] by Wenson Hsieh
  • 6 edits
    1 add in trunk

Crash in Document::updateStyleIfNeeded() when removing a node containing the drag caret
https://bugs.webkit.org/show_bug.cgi?id=235184
rdar://74845918

Reviewed by Darin Adler.

Source/WebCore:

While performing drag and drop over editable content, DragCaretController handles updating and painting a drag
caret, which indicates where the dragged content will be inserted upon drop. If the node containing this drag
caret is disconnected, DragCaretController::nodeWillBeRemoved() resets the drag caret position and issues a
repaint on the renderer responsible for drawing the drag caret. This call to nodeWillBeRemoved() occurs in the
middle of node removal, so it's encapsulated by a ScriptDisallowedScope::InMainThread scope which causes a
release assertion in WebKit2 if anything tries to trigger layout or style updates.

Currently, if the node being removed would cause the caret position to be removed as well, DragCaretController
calls into setCaretPosition() with a null visible position, which then calls into invalidateCaretRect with
the current caret position's anchor node. In turn, invalidateCaretRect contains logic to issue a repaint on
the anchor node's renderer if the node is editable. However, to check whether the node is editable, we use the
helper function WebCore::isEditableNode(), which triggers a style update if needed, only in the case where:

  1. A style recalc is needed, and...
  2. The document contains an element with the -webkit-user-modify CSS property.

As such, dirtying element styles right before removing the drag caret's anchor node from the document while
dispatching a drag or drop event in an editor with -webkit-user-modify: read-write; is sufficient to
trigger the release assertion and cause a crash.

To address this, instead of calling clear() inside of DragCaretController::nodeWillBeRemoved(), we can
instead directly invalidate the caret rect using the current drag caret anchor (passing in true for
caretRectChanged() since we already know that the drag caret is being cleared out), and then reset the current
drag caret position and caret rect. This allows us to avoid the isEditableNode() check in this scenario when
deciding whether to trigger paint invalidation, which is unnecessary because we already know that the node
containing the caret is being removed, so the renderer is going to be repainted anyways. We also pull this logic
out into a separate helper method, clearCaretPositionWithoutUpdatingStyle(), to make it clear that we must
avoid triggering style recalc here.

Test: DragAndDropTests.DoNotCrashWhenRemovingNodeOnDrop

  • editing/FrameSelection.cpp:

(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::DragCaretController::clearCaretPositionWithoutUpdatingStyle):

  • editing/FrameSelection.h:

Tools:

Add a test to exercise the crash using drag and drop in WebKit2, on both iOS and macOS.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/remove-node-on-drop.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(TEST):

1:12 PM Changeset in webkit [287991] by fpizlo@apple.com
  • 4 edits in trunk/Source/bmalloc

[libpas] add assertions that we aren't switching to a NULL lock
https://bugs.webkit.org/show_bug.cgi?id=235190

Reviewed by Yusuke Suzuki.

This adds a pas_panic call when pas_local_allocator_stop sees a NULL page->lock_ptr. That's one
possible explanation of a very rare crash I'm seeing where return_memory_to_page fails its assertion
that we are holding the page lock.

This also adds TESTING asserts in a bunch of other places. The PAS_TESTING_ASSERTS about this are in
places that are perf-sensitive, so we probably cannot assert in production. The hope behind those is
that it will help to catch this issue in test_pas.

  • libpas/src/libpas/pas_local_allocator.c:

(stop_impl):

  • libpas/src/libpas/pas_segregated_page.c:

(pas_segregated_page_switch_lock_and_rebias_while_ineligible_impl):

  • libpas/src/libpas/pas_segregated_page_inlines.h:

(pas_segregated_page_lock_with_unbias_not_utility):
(pas_segregated_page_lock_with_unbias):
(pas_segregated_page_lock):
(pas_segregated_page_switch_lock_impl):
(pas_segregated_page_switch_lock_with_mode):

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

[iOS][Networking] Add access to required network service
https://bugs.webkit.org/show_bug.cgi?id=235188
<rdar://86781432>

Reviewed by Brent Fulgham.

Add access to required network service in the Networking process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
1:03 PM Changeset in webkit [287989] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.1.4

Tag Safari-612.4.9.1.4.

12:59 PM Changeset in webkit [287988] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.4

12:34 PM Changeset in webkit [287987] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove use of PseudoElement in ComputedStyleExtractor
https://bugs.webkit.org/show_bug.cgi?id=235158

Reviewed by Darin Adler.

When we fixed bug 234987, the easiest thing was to add some code that uses PseudoElement,
which was already used in several places in ComputedStyleExtractor. However, we want to
remove code using PseudoElement, not add more.

This patch does that throughout ComputedStyleExtractor and also removes some use in
KeyframeEffect by always invalidating the host instead of going through PseudoElement,
which wasn't necessary anymore.

We also had to modify Styleable::renderer() to return nullptr for the "::marker" case
in case there is no content set for the marker, because essentially there is nothing
being rendered for the marker and it would cause ComputedStyleExtractor::propertyValue()
to return computed value instead of "auto" for width and height for instance.

  • animation/KeyframeEffect.cpp:

(WebCore::invalidateElement):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::styledRenderer const):
(WebCore::hasValidStyleForProperty):
(WebCore::computeRenderStyleForProperty):
(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::ComputedStyleExtractor::getLayerCount):
(WebCore::ComputedStyleExtractor::styledElement const): Deleted.

  • css/CSSComputedStyleDeclaration.h:
  • style/Styleable.cpp:

(WebCore::Styleable::renderer const):

12:22 PM Changeset in webkit [287986] by timothy_horton@apple.com
  • 8 edits in trunk/Source

Fix a few Objective-C object leaks due to early returns in init
https://bugs.webkit.org/show_bug.cgi?id=235162
<rdar://problem/87489048>

Reviewed by Wenson Hsieh.

Source/JavaScriptCore:

  • API/JSValue.mm:

(-[JSValue initWithValue:inContext:]):

Source/WebCore:

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController init]):

Source/WebKit:

  • UIProcess/ios/WKHoverPlatter.mm:

(-[WKHoverPlatter initWithView:delegate:]):

Source/WebKitLegacy/mac:

  • Storage/WebDatabaseQuotaManager.mm:

(WebCore::if):

12:10 PM Changeset in webkit [287985] by Ross Kirsling
  • 4 edits in trunk/Tools

PlayStation MiniBrowser should accept a command-line URL argument
https://bugs.webkit.org/show_bug.cgi?id=235193

Reviewed by Don Olmstead.

Windows MiniBrowser can be launched from the command line with a URL argument for the initial page to load;
this patch allows PlayStation MiniBrowser to do similarly.

  • MiniBrowser/playstation/MainWindow.cpp:

(MainWindow::MainWindow):

  • MiniBrowser/playstation/MainWindow.h:
  • MiniBrowser/playstation/main.cpp:

(main):

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

Remove the code inside USE(OPENGL) && ENABLE(WEBGL2)
https://bugs.webkit.org/show_bug.cgi?id=235178

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-01-13
Reviewed by Dean Jackson.

No port is supporting WebGL2 without ANGLE nowadays, that code is
historical and we can remove it.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::getRestartIndex): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::primitiveRestartIndex): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
11:03 AM Changeset in webkit [287983] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK][WPE][WebGL2] compilation fixes
https://bugs.webkit.org/show_bug.cgi?id=225563

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-01-13
Reviewed by Chris Lord.

Fix the compilation and add the ANGLE dependency, the architecture
is still not the final one but it is handy to use WebGL2 demos for
testing already.

.:

  • Source/cmake/OptionsGTK.cmake: Added dependency with ANGLE.
  • Source/cmake/OptionsWPE.cmake: Added dependency with

ANGLE. Remove the default ENABLE_WEBGL2 because it is the same
default value in WebKitFeatures.cmake.

Source/WebCore:

We are still not enabling the tests until we have the final
architecture.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::drawElements): Leftover code,
there is no port using OpenGL directly to support WebGL2 anymore.
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
Ditto.

10:58 AM Changeset in webkit [287982] by Said Abou-Hallawa
  • 13 edits
    2 adds in trunk

Referenced SVG filter uses always sRGB color space for its result
https://bugs.webkit.org/show_bug.cgi?id=235159

Reviewed by Simon Fraser.

Source/WebCore:

Do not setOperatingColorSpace() of the lastEffect() of the referenced
SVGFilter to DestinationColorSpace::SRGB(). This will have the pixels
of the result FilterImage of the lastEffect() in the color space which
is defined by the color-interpolation style of the effect SVGElement.

Test: css3/filters/reference-filter-color-space.html

  • platform/graphics/filters/Filter.h:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::create):
Move checking the CoreImage support to this function.

(WebCore::CSSFilter::buildFilterFunctions):
Remove resetting m_functions and m_outsets from this function since it
is now called only once from CSSFilter::create().

(WebCore::CSSFilter::lastEffect const): Deleted.

  • rendering/CSSFilter.h:
  • svg/graphics/filters/SVGFilter.h:

LayoutTests:

The new test defines a <feComponentTransfer> effect with linear component
functions. The values of these functions make the lookup tables have zeros
in the first 65 elements. The test applies the filter to a <div> with green
background.

-- With sRGB color-space, the green channel value is 0x80. So the value

in the lookup table is not zero. So the result filter image in this
case is a some green square.

-- With linearRGB color-space , the green channel value is 0x37. So the

value in the lookup table is zero. So the result filter image in this
case is a black square.

Because the color-space will be linearRGB, the expected test case should
have black squares.

  • css3/filters/reference-filter-color-space-expected.html: Added.
  • css3/filters/reference-filter-color-space.html: Added.
  • css3/filters/reference-filter-set-filter-regions.html:
  • fast/gradients/conic-gradient-alpha-unpremultiplied.html:
  • fast/gradients/conic-gradient-extended-stops.html:
  • fast/gradients/conic-gradient.html:
  • fast/gradients/conic-repeating-last-stop.html:
  • fast/hidpi/filters-turbulence.html:

Add color-interpolation-filters="sRGB" to get the old result so they match
the expected pages.

  • platform/win/TestExpectations:

LinearSRGB color space is not supported on Windows.

10:21 AM Changeset in webkit [287981] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r278561): Right clicking a link selects the full line with unrelated text
https://bugs.webkit.org/show_bug.cgi?id=235172
<rdar://84069534>

Reviewed by Dean Jackson.

Source/WebCore:

r278561 slightly change highlightStateForTextBox's behavior which now (correctly) returns HighlightState::None when the
RenderText content is not part of the current selection. Prior to r278561, it returned the RenderText's original selection state
which in this case was HighlightState::End.

<div><span>A<br>B<span style="position: absolute"></span></span>C</div>

In this specific case when we select the outer <span>, we end up with the following selection states for the generated line boxes:

(B) -> "Inside"
(C) -> "None"

while previously (C) came back as "End" (note that the absolute positioned element does not generate line boxes).

Now as Line::selectionState traverses through the line boxes, it comes across an unexpected "Inside -> None" transition at the selection end boundary (B -> C)
which incorrectly leaves the line state in "Inside" and we paint the selection all the way to the end of the block.

Test: fast/editing/selection-with-absolute-positioned-empty-content.html

  • layout/integration/InlineIteratorLine.cpp:

(WebCore::InlineIterator::Line::selectionState const):

LayoutTests:

  • fast/editing/selection-with-absolute-positioned-empty-content-expected.txt: Added.
  • fast/editing/selection-with-absolute-positioned-empty-content.html: Added.
9:16 AM Changeset in webkit [287980] by Peng Liu
  • 3 edits in trunk/Source/WebCore

Clean up MediaPlaybackTargetPicker::Client
https://bugs.webkit.org/show_bug.cgi?id=235128

Reviewed by Eric Carlson.

Small cleanup to remove an unused function and change override to final.

  • Modules/airplay/WebMediaSessionManager.h:
  • platform/graphics/MediaPlaybackTargetPicker.h:
8:22 AM Changeset in webkit [287979] by Patrick Angle
  • 7 edits
    2 adds in trunk

Web Inspector: Implement frameURL option for devtools.inspectedWindow.eval command
https://bugs.webkit.org/show_bug.cgi?id=222568

Reviewed by Devin Rousso.

Source/WebInspectorUI:

New test: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm

Add support for evaluating script from an extension in a specific frame on the page by referring to it by the
frame's URL. Frame URLs are matched in three steps, first looking for an exact URL match, including query
parameters and fragment identifier. If no match is found and the provided options.frameURL does not have any
fragment identifier or query parameters, a check is then made against each known frame again, this time
excluding their fragment identifier. If that check still fails to find a frame for the URL, we perform one more
pass, this time excluding the fragment identifier and query parameters for each known frame.

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
(WI.WebInspectorExtensionController.prototype.reloadForExtension):

  • Drive-by removal of trailing spaces.

(WI.WebInspectorExtensionController.prototype._frameForFrameURL):

Source/WebKit:

New test: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm

Correct the API to indicate that frameURL and contextSecurityOrigin are nullable parameters.

  • UIProcess/API/Cocoa/_WKInspectorExtension.h:

Tools:

Add test coverage for evaluating script on an inspected page from an extension, including evaluating on an inner
frame.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionEvaluateScriptOnPage.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionEvaluateScriptOnPageInnerFrame.html: Added.
7:22 AM Changeset in webkit [287978] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Load contributors from stand-alone class
https://bugs.webkit.org/show_bug.cgi?id=235161
<rdar://problem/87491516>

Reviewed by Aakash Jain.

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

(Contributors): Moved from ValidateCommiterAndReviewer.
(ValidateCommiterAndReviewer.load_contributors_from_disk): Moved to Contributors.
(ValidateCommiterAndReviewer.load_contributors_from_github): Ditto.
(ValidateCommiterAndReviewer.load_contributors): Ditto.

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

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

6:41 AM Changeset in webkit [287977] by Ziran Sun
  • 5 edits in trunk

[css-grid] Fix rounding of distributed free space to flexible tracks
https://bugs.webkit.org/show_bug.cgi?id=234917

LayoutTests/imported/w3c:

Reviewed by Darin Adler.

Source/WebCore:

Reviewed by Darin Adler.

When computing the growth size for flex sized tracks, the flexFraction multiplied by the flex factor can result
in a non-integer size. However, we floor the stretched size to fit in a LayoutUnit. This means that we may lose
the fractional part of the computation which can cause the entire free space not being distributed evenly. This
fix is to sum up the leftover fractional part from every flexible track to avoid this issue.

It is an import of Chromium GridNG CL at https://chromium-review.googlesource.com/c/chromium/src/+/3193674.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::computeFlexSizedTracksGrowth const):

5:04 AM Changeset in webkit [287976] by svillar@igalia.com
  • 7 edits in trunk

[css-flexbox] Incorrect height of flex items with aspect-ratio whenever the cross axis intrinsic size is larger than the viewport
https://bugs.webkit.org/show_bug.cgi?id=234564
<rdar://problem/86958389>

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Automatic preferred sizes were considered always indefinite. However whenever they correspond to
the (physical) width we could consider them as definite. This allows us to use that size instead of
the flex item intrinsic size when computing the transferred size contribution. This way, flex items
with aspect ratio and large intrinsic size are not abnormally stretched due to the min-size:auto
computation.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use availableLogical{Width|Height}
to compute the cross size when then automatic preferred size is the physical width.
(WebCore::RenderFlexibleBox::childCrossAxisIsPhysicalWidth const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Handle the cases of
automatic preferred widths.

  • rendering/RenderFlexibleBox.h:

LayoutTests:

Adjusted the canvas-css-size-after-height-change-with-display-flex.html test case and expectations so it behaves as other engines.

  • TestExpectations: Unskipped a test that is passing now.
  • fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html:
  • fast/canvas/canvas-css-size-after-height-change-with-display-flex.html:
1:42 AM Changeset in webkit [287975] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/web-locks/clientids.tentative.https.html is consistently passing on bots
https://bugs.webkit.org/show_bug.cgi?id=235173

Unreviewed.

  • platform/wk2/TestExpectations:

Unflake imported/w3c/web-platform-tests/web-locks/clientids.tentative.https.html TestExpectation.

12:52 AM Changeset in webkit [287974] by Diego Pino Garcia
  • 2 edits
    1 delete in trunk/LayoutTests

[GTK] fast/events/overflow-viewport-renderer-deleted.html does not load
https://bugs.webkit.org/show_bug.cgi?id=176021

Unreviewed test gardening.

The test has its own baseline and was marked as Missing in
TestExpectations. The test passes if removing the WebKitGTK baseline
and the Missing expected result.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/events/overflow-viewport-renderer-deleted-expected.txt: Removed.

Jan 12, 2022:

11:31 PM Changeset in webkit [287973] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

[:has() pseudo-class] Collect invalidation selectors for child invalidation
https://bugs.webkit.org/show_bug.cgi?id=235103

Reviewed by Dean Jackson.

Collect selectors we can use to test if :has status actually changed before invalidating.

This patch doesn't yet use the the selector.

  • style/ChildChangeInvalidation.cpp:

(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

Use the pseudo class invalidation keys for looking up :has selectors too
instead of having a custom mechanism for doing the same thing.

  • style/PseudoClassChangeInvalidation.cpp:

(WebCore::Style::makePseudoClassInvalidationKeys):

  • style/PseudoClassChangeInvalidation.h:
  • style/RuleFeature.cpp:

(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

Always return a selector for consistency.

(WebCore::Style::makePseudoClassInvalidationKey):
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):

  • style/RuleFeature.h:
  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::collectFeatures const):
(WebCore::Style::ScopeRuleSets::hasPseudoClassInvalidationRuleSets const):
(WebCore::Style::ScopeRuleSets::tagInvalidationRuleSets const): Deleted.

We don't need keep around tag rule sets anymore.

  • style/StyleScopeRuleSets.h:
11:10 PM Changeset in webkit [287972] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening, remove some tests expected to fail but passing

There are several tests which have been passing consistently for the last 1000 revisions.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
9:00 PM Changeset in webkit [287971] by Diego Pino Garcia
  • 2 edits
    30 moves in trunk/LayoutTests

[WPE] Several accessibilty tests don't have expected results
https://bugs.webkit.org/show_bug.cgi?id=201983

Unreviewed test gardening.

These tests had a baseline for WebKitGTK which actually can be reused for WPE.

  • platform/glib/accessibility/aria-checkbox-sends-notification-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-checkbox-sends-notification-expected.txt.
  • platform/glib/accessibility/aria-combobox-hierarchy-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-combobox-hierarchy-expected.txt.
  • platform/glib/accessibility/aria-hidden-false-works-in-subtrees-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-hidden-false-works-in-subtrees-expected.txt.
  • platform/glib/accessibility/aria-inherits-presentational-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-inherits-presentational-expected.txt.
  • platform/glib/accessibility/aria-menubar-menuitems-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-menubar-menuitems-expected.txt.
  • platform/glib/accessibility/aria-role-on-label-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-role-on-label-expected.txt.
  • platform/glib/accessibility/aria-selected-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-selected-expected.txt.
  • platform/glib/accessibility/aria-selected-menu-items-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-selected-menu-items-expected.txt.
  • platform/glib/accessibility/aria-switch-text-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-switch-text-expected.txt.
  • platform/glib/accessibility/aria-table-hierarchy-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-table-hierarchy-expected.txt.
  • platform/glib/accessibility/css-content-attribute-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/css-content-attribute-expected.txt.
  • platform/glib/accessibility/datetime-attribute-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/datetime-attribute-expected.txt.
  • platform/glib/accessibility/form-control-value-settable-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/form-control-value-settable-expected.txt.
  • platform/glib/accessibility/generated-content-with-display-table-crash-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt.
  • platform/glib/accessibility/image-with-alt-and-map-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/image-with-alt-and-map-expected.txt.
  • platform/glib/accessibility/img-fallsback-to-title-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/img-fallsback-to-title-expected.txt.
  • platform/glib/accessibility/math-fenced-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-fenced-expected.txt.
  • platform/glib/accessibility/math-foreign-content-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-foreign-content-expected.txt.
  • platform/glib/accessibility/math-mo-fences-and-separators-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-mo-fences-and-separators-expected.txt.
  • platform/glib/accessibility/math-text-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-text-expected.txt.
  • platform/glib/accessibility/meter-element-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/meter-element-expected.txt.
  • platform/glib/accessibility/platform-name-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/platform-name-expected.txt.
  • platform/glib/accessibility/svg-element-with-aria-role-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/svg-element-with-aria-role-expected.txt.
  • platform/glib/accessibility/table-hierarchy-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-hierarchy-expected.txt.
  • platform/glib/accessibility/w3c-svg-content-language-attribute-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-content-language-attribute-expected.txt.
  • platform/glib/accessibility/w3c-svg-description-calculation-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-description-calculation-expected.txt.
  • platform/glib/accessibility/w3c-svg-elements-not-exposed-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-elements-not-exposed-expected.txt.
  • platform/glib/accessibility/w3c-svg-name-calculation-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-name-calculation-expected.txt.
  • platform/glib/accessibility/w3c-svg-presentational-role-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt.
  • platform/glib/accessibility/w3c-svg-roles-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-roles-expected.txt.
  • platform/wpe/TestExpectations:
7:23 PM Changeset in webkit [287970] by wilander@apple.com
  • 6 edits
    2 adds in trunk

PCM: Same-site triggering events should support ephemeral measurement
https://bugs.webkit.org/show_bug.cgi?id=235160
<rdar://87423294>

Reviewed by Alex Christensen.

Source/WebCore:

We added ephemeral measurement for direct response advertising in https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.

The bug was that WebKit::NetworkSession::handlePrivateClickMeasurementConversion()
only checked for cross-site triggering events when handling ephemeral measurements.

Test: http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::isNeitherSameSiteNorCrossSiteTriggeringEvent):

New convenience function to enhance readability in
WebKit::NetworkSession::handlePrivateClickMeasurementConversion().

  • loader/PrivateClickMeasurement.h:

Source/WebKit:

We added ephemeral measurement for direct response advertising in https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):

This function previously only checked for cross-site triggering events when
handling ephemeral measurements. Now it also checks for same-site triggering
events.

LayoutTests:

  • http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt: Added.
  • http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html: Added.
7:21 PM Changeset in webkit [287969] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

Process deferred ChildrenChanged notifications before creating an isolated subtree.
https://bugs.webkit.org/show_bug.cgi?id=235115
<rdar://problem/87458790>

Reviewed by Chris Fleizach.

Fixes ~20 tests in isolated tree mode.

Before creating an isolated subtree, it is necessary to handle any
pending, deferred children change so that the AXObject tree is updated.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::processDeferredChildrenChangedList):
Added this method in order to be called from AXIsolatedTree::createSubtree.
(WebCore::AXObjectCache::performDeferredCacheUpdate):

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

(WebCore::AXIsolatedTree::createSubtree):
Calls AXObjectCache::processDeferredChildrenChangedList once before
start creating a new subtree.

  • accessibility/isolatedtree/AXIsolatedTree.h:
6:52 PM Changeset in webkit [287968] by fpizlo@apple.com
  • 12 edits
    5 adds in trunk/Source/bmalloc

[libpas] thread_local_cache should not be allocated in the compact heap (cherry pick 11afcedfb5968f6894379ff1a41dd449ba7745f6)
https://bugs.webkit.org/show_bug.cgi?id=235096

Reviewed by Yusuke Suzuki.

Thread local caches can get quite large because of how libpas uses them, we can allocate one per
thread, and we reallocate them with exponential resizing, so there's a lot of wasted space and a
decent amount of fragmentation. This shows up as occasional crashes trying to allocate a thread local
cache out of the compact heap.

This moves thread local caches out of the compact heap. They were only ever there because partial views
sometimes need to point to the local_allocator's bitvector, but that's part of the thread local cache.
So, that means that either the partial views' bits pointer cannot be a compact pointer, or the
thread_local_cache needs to be in the compact heap. So, the thread_local_cache ended up in the compact
heap to keep that pointer small.

This change works around the problem: it's rare that the partial views' bits pointer points at
the local_allocator's bits, and none of the fast path cases where we access that pointer will ever see
it in that state. So, this makes the pointer either point to a utility-heap-allocated box that contains
the full pointer, or it points at the actual array allocated in the compact heap. The utility heap is
in the compact heap, so the compact pointer can point at either one. The implementation of this is
encapsulated as pas_lenient_compact_ptr. It's a bit gross; storing to it only works when you're holding
the heap lock, for example.

This is perf-neutral on Speedometer. This is perf-neutral on JS2 cli with full JSC isoheaps (i.e. the
patch from bug 231938). It's a 0.4% regression on RAMification with full JSC isoheaps, but I'm not
going to worry about that because trunk doesn't have full JSC isoheaps, and JSC isoheaps requires some
change like this to work reliably (currently it'll randomly run out of compact heap).

  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/libpas.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(enumerate_partial_view):

  • libpas/src/libpas/pas_full_alloc_bits_inlines.h:

(pas_full_alloc_bits_create_for_partial_but_not_primordial):
(pas_full_alloc_bits_create_for_partial):

  • libpas/src/libpas/pas_lenient_compact_ptr.h: Added.
  • libpas/src/libpas/pas_lenient_compact_ptr_inlines.h: Added.
  • libpas/src/libpas/pas_lenient_compact_unsigned_ptr.c: Added.
  • libpas/src/libpas/pas_lenient_compact_unsigned_ptr.h: Added.
  • libpas/src/libpas/pas_local_allocator.c:

(pas_local_allocator_move):

  • libpas/src/libpas/pas_local_allocator_inlines.h:

(pas_local_allocator_set_up_free_bits):
(pas_local_allocator_start_allocating_in_primordial_partial_view):
(pas_local_allocator_bless_primordial_partial_view_before_stopping):

  • libpas/src/libpas/pas_segregated_partial_view.c:

(pas_segregated_partial_view_create):
(compute_summary):

  • libpas/src/libpas/pas_segregated_partial_view.h:
  • libpas/src/libpas/pas_segregated_view_allocator_inlines.h:

(pas_segregated_view_will_start_allocating):

  • libpas/src/libpas/pas_thread_local_cache.c:

(deallocate):
(allocate_cache):

  • libpas/src/test/LotsOfHeapsAndThreads.cpp: Added.

(std::testLotsOfHeapsAndThreads):
(addLotsOfHeapsAndThreadsTests):

  • libpas/src/test/TestHarness.cpp:

(main):

6:17 PM Changeset in webkit [287967] by Fujii Hironori
  • 10 edits
    2 adds in trunk/Source

[WinCairo] Tiling scroll support
https://bugs.webkit.org/show_bug.cgi?id=233676

Reviewed by Don Olmstead.

Source/WebCore:

Added a new class TextureMapperSparseBackingStore that supports
partially tiling the layer and removing tiles outside of the
coverage rect.

  • Headers.cmake:
  • platform/TextureMapper.cmake:
  • platform/graphics/texmap/TextureMapperSparseBackingStore.cpp: Added.

(WebCore::TextureMapperSparseBackingStore::TextureMapperSparseBackingStore):
(WebCore::TextureMapperSparseBackingStore::setSize):
(WebCore::TextureMapperSparseBackingStore::removeUncoveredTiles):
(WebCore::TextureMapperSparseBackingStore::adjustedTransformForRect):
(WebCore::TextureMapperSparseBackingStore::paintToTextureMapper):
(WebCore::TextureMapperSparseBackingStore::drawBorder):
(WebCore::TextureMapperSparseBackingStore::drawRepaintCounter):
(WebCore::TextureMapperSparseBackingStore::tileDimension const):
(WebCore::TextureMapperSparseBackingStore::updateContents):

  • platform/graphics/texmap/TextureMapperSparseBackingStore.h: Added.

Source/WebKit:

Added a new class WCTiledBacking that implements TiledBacking.

Copied computeVisibleAndCoverageRect,
transformByApplyingAnchorPoint and layerTransform from
GraphicsLayerAC.

  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::update):

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::DrawingAreaWC):
(WebKit::DrawingAreaWC::updatePreferences):
(WebKit::DrawingAreaWC::shouldUseTiledBackingForFrameView const):
(WebKit::DrawingAreaWC::setNeedsDisplayInRect):
(WebKit::DrawingAreaWC::scroll):
(WebKit::flushLayerImageBuffers):
(WebKit::DrawingAreaWC::sendUpdateAC):
(WebKit::DrawingAreaWC::RootLayerClient::RootLayerClient): Deleted.
(WebKit::DrawingAreaWC::RootLayerClient::paintContents): Deleted.
(WebKit::DrawingAreaWC::RootLayerClient::deviceScaleFactor const): Deleted.

  • WebProcess/WebPage/wc/DrawingAreaWC.h:
  • WebProcess/WebPage/wc/GraphicsLayerWC.cpp:

(WebKit::GraphicsLayerWC::GraphicsLayerWC):
(WebKit::GraphicsLayerWC::setNeedsDisplay):
(WebKit::GraphicsLayerWC::setNeedsDisplayInRect):
(WebKit::GraphicsLayerWC::setBackgroundColor):
(WebKit::GraphicsLayerWC::setDrawsContent):
(WebKit::GraphicsLayerWC::noteLayerPropertyChanged):
(WebKit::GraphicsLayerWC::flushCompositingState):
(WebKit::GraphicsLayerWC::flushCompositingStateForThisLayerOnly):
(WebKit::GraphicsLayerWC::tiledBacking const):
(WebKit::GraphicsLayerWC::createImageBuffer):
(WebKit::accumulatesTransform):
(WebKit::GraphicsLayerWC::transformByApplyingAnchorPoint const):
(WebKit::GraphicsLayerWC::layerTransform const):
(WebKit::GraphicsLayerWC::computeVisibleAndCoverageRect const):
(WebKit::GraphicsLayerWC::recursiveCommitChanges):

  • WebProcess/WebPage/wc/GraphicsLayerWC.h:
  • WebProcess/WebPage/wc/WCUpateInfo.h:

(WebKit::WCLayerUpateInfo::encode const):
(WebKit::WCLayerUpateInfo::decode):

6:04 PM Changeset in webkit [287966] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening, merge common WebRTC test failures

Merge common WebRTC test failures filed under bug webkit.org/b/187064.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
5:29 PM Changeset in webkit [287965] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

::backdrop pseudo element should react to event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:

Add a missing newline.

5:17 PM Changeset in webkit [287964] by Ryan Haddad
  • 4 edits in trunk

Unreviewed, reverting r287944.

Breaks Monterey build.

Reverted changeset:

"Build WebKitSwift when building with make or build-webkit"
https://bugs.webkit.org/show_bug.cgi?id=235093
https://commits.webkit.org/r287944

5:15 PM Changeset in webkit [287963] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
5:13 PM Changeset in webkit [287962] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r287955.
https://bugs.webkit.org/show_bug.cgi?id=235166

Reverting, since this can be fixed without a sandbox change.

Reverted changeset:

"[macOS] Add required system call"
https://bugs.webkit.org/show_bug.cgi?id=235155
https://commits.webkit.org/r287955

4:36 PM Changeset in webkit [287961] by mark.lam@apple.com
  • 5 edits in trunk/Source

[Re-landing] Update hashThreadState() to exclude opaque_flags.
https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584

Reviewed by Keith Miller.

Source/JavaScriptCore:

Removed some unused code.

  • runtime/MachineContext.h:

(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::linkRegister):
(JSC::MachineContext::setStackPointer): Deleted.
(JSC::MachineContext::setFramePointer): Deleted.
(JSC::MachineContext::setLinkRegister): Deleted.

Source/WTF:

The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the
opaque_flags field.

Also remove some unused code.

  • wtf/PlatformRegisters.h:
  • wtf/threads/Signals.cpp:

(WTF::hashThreadState):

4:30 PM Changeset in webkit [287960] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r287912.
https://bugs.webkit.org/show_bug.cgi?id=235164

ARM64/ARM64E Speedometer2 50% regression, probably breaking
something

Reverted changeset:

"[RISCV64] riscv64 backend should lower offlineasm
instructions"
https://bugs.webkit.org/show_bug.cgi?id=234952
https://commits.webkit.org/r287912

4:00 PM Changeset in webkit [287959] by Megan Gardner
  • 15 edits in trunk/Source

Add to Contact menu item does nothing on mac.
https://bugs.webkit.org/show_bug.cgi?id=235154
Source/WebCore:

Reviewed by Tim Horton.

Add to Context menu item for telephone numbers did not actually show the contact card.
This was because the delgate did not tell the menu where to display the card from, so it just failed.
Plumbing that information through fixes the issue.

  • page/ChromeClient.h:

(WebCore::ChromeClient::handleTelephoneNumberClick):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::handleClick):

Source/WebKit:

rdar://80213097

Reviewed by Tim Horton.

Add to Context menu item for telephone numbers did not actually show the contact card.
This was because the delgate did not tell the menu where to display the card from, so it just failed.
Plumbing that information through fixes the issue.

  • Platform/mac/MenuUtilities.h:
  • Platform/mac/MenuUtilities.mm:

(-[WKEmptyPresenterHighlightDelegate initWithRect:]):
(-[WKEmptyPresenterHighlightDelegate revealContext:rectsForItem:]):
(-[WKEmptyPresenterHighlightDelegate revealContext:shouldUseDefaultHighlightForItem:]):
(WebKit::menuForTelephoneNumber):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::showTelephoneNumberMenu):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::handleTelephoneNumberClick):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleTelephoneNumberClick):

3:58 PM Changeset in webkit [287958] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/LayoutTests

[GLIB] Unreviewed test gardening, emit baseline for WPT test css/css-cascade/all-prop-initial-xml.html
https://bugs.webkit.org/show_bug.cgi?id=209330

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: Added.
3:45 PM Changeset in webkit [287957] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Fix freebie call without user gesture not being given
https://bugs.webkit.org/show_bug.cgi?id=235078
rdar://87327557

Reviewed by Brent Fulgham.

Source/WebKit:

This logic was previously always requiring a user gesture. The desired
behavior of giving pages a single "freebie" webauthn call without gesture
was lost in a refactor.

Tested manually on iOS device with webauthn.me.

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::processingUserGesture):

Tools:

Updated API test to reflect user gesture freebie.

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html:
3:36 PM Changeset in webkit [287956] by commit-queue@webkit.org
  • 18 edits in trunk

[Xcode] Configure each project for the legacy build system
https://bugs.webkit.org/show_bug.cgi?id=235091
Source/bmalloc:

Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.

  • bmalloc.xcodeproj/project.pbxproj:

Source/WebGPU:

Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.

  • WebGPU.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.

  • WebInspectorUI.xcodeproj/project.pbxproj:

Source/WTF:

Beta versions of Xcode do not recognize the -UseNewBuildSystem=NO flag, so we need to
manually declare use of PBXBuild in our projects.

Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.

  • WTF.xcodeproj/project.pbxproj:

Tools:

Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.

  • ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj:
  • EditingHistory/EditingHistory.xcodeproj/project.pbxproj:
  • FontWithFeatures/FontWithFeatures.xcodeproj/project.pbxproj:
  • ImageDiff/ImageDiff.xcodeproj/project.pbxproj:
  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowserSwiftUI/MiniBrowserSwiftUI.xcodeproj/project.pbxproj:
  • MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • WebEditingTester/WebEditingTester.xcodeproj/project.pbxproj:
3:17 PM Changeset in webkit [287955] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[macOS] Add required system call
https://bugs.webkit.org/show_bug.cgi?id=235155

Patch by Brandon Stewart <Brandon> on 2022-01-12
Reviewed by Per Arne Vollan.

Add missing system call that is required by Core Graphics.

  • WebProcess/com.apple.WebProcess.sb.in:
3:13 PM Changeset in webkit [287954] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

Live Text is sometimes horizontally clipped when injecting TextRecognitionBlockData
https://bugs.webkit.org/show_bug.cgi?id=235122

Reviewed by Devin Rousso.

Source/WebCore:

The current heuristic for sizing Live Text paragraphs avoids vertical overflow, but does not avoid horizontal
overflow. Line breaking inside the fixed-width container prevents the latter in most cases, but not in the
scenario where the recognized text block is a single word with no opportunity for line break.

Address this by adjusting the sizing heuristic to shrink both the width and height to fit within the target size
(rather than just fitting the height).

Test: fast/images/text-recognition/image-overlay-block-horizontal-overflow.html

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateWithTextRecognitionResult):

LayoutTests:

Add a test to verify that a single, very long word in injected text recognition block data does not trigger
horizontal overflow.

  • fast/images/text-recognition/image-overlay-block-horizontal-overflow-expected.html: Added.
  • fast/images/text-recognition/image-overlay-block-horizontal-overflow.html: Added.
2:59 PM Changeset in webkit [287953] by Wenson Hsieh
  • 18 edits in trunk

[macOS] [WK2] NSFontPanel UI (font color, text decorations, font shadow) doesn't update on selection change
https://bugs.webkit.org/show_bug.cgi?id=190120
rdar://44897405

Reviewed by Darin Adler.

Source/WebCore:

Add a boolean hasMultipleFonts flag to FontAttributes, and pass it as an out-reference when computing the
font at the current selection. See WebKit/ChangeLog for more details.

  • editing/Editor.cpp:

(WebCore::Editor::fontAttributesAtSelectionStart):

  • editing/FontAttributes.h:

Source/WebKit:

Currently, in WebKit2, there is no mechanism for updating the NSFontManager with new font attributes when the
selection changes. While we do update the selected NSFont, we do so by requesting font family and font size via
an IPC request, FontAtSelection, but this does not include attributes like underline, strike-through, color,
and text shadows.

Instead, we can remove this FontAtSelection IPC request mechanism entirely, and request FontAttributes. This
allows us to set the currently selected NSFont on the NSFontManager, and also update the font manager with the
full dictionary of font attributes.

Test: FontAttributes.FontAttributesAfterChangingSelection

  • Shared/WebCoreArgumentCoders.cpp:

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

Encode and decode the new hasMultipleFonts flag in FontAttributes. Additionally, take this opportunity to
modernize some of the decoding-side logic by decoding each member into a std::optional and creating the final
deserialized FontAttributes at the end.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

Rather than grabbing just the font family and font size using fontAtSelection, request FontAttributes instead
and convert it to a NSDictionary to call -[NSFontManager setSelectedAttributes:isMultiple:].

(WebKit::WebViewImpl::typingAttributesWithCompletionHandler):
(WebKit::WebViewImpl::changeFontAttributesFromSender):
(WebKit::WebViewImpl::changeFontFromFontManager):

Remove code to update the font manager after changing font attributes. This is unnecessary because the process
of executing an edit command in order to change typing style will trigger an editor state update anyways, which
then causes us to request new font attributes.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):

Move the check for cached fontattributes to WebPageProxy, from WebViewImpl. This allows us to get rid of a
helper function on WebPageProxy to grab the current cached font attributes.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didUpdateEditorState):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::didUpdateEditorState):

Set cached FontAttributes (if present) *prior* to dispatching a selection change. This allows any subsequent
request for font attributes at the selection to return immediately with the result.

(WebKit::WebPageProxy::fontAtSelection): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Remove the FontAtSelectionCallback IPC message (and all associated code). This codepath was previously only
exercised when updating the font panel on macOS, and is no longer necessary because we just use
requestFontAttributesAtSelectionStart instead, which allows us to grab not only the NSFont, but also all
platform typing attributes at the selection.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::fontAtSelection): Deleted.

Tools:

Augment and adjust some existing API tests. See WebKit/ChangeLog for more information.

  • TestWebKitAPI/Tests/WebKitCocoa/FontAttributes.mm:

Augment an existing API test, FontAttributes.FontAttributesAfterChangingSelection, to additionally check shared
NSFontManager state (foreground/background color, shadow color and radius, etc.) on macOS.

(TestWebKitAPI::webViewForTestingFontAttributes):

On macOS, additionally make the font panel visible so that we can test font panel state.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

Relax some constraints on FontManagerTests.ChangeFontWithPanel, so that it verifies that the platform font in
the NSFontManager has all of the same attributes as the expectation, rather than being equal to the exact same
font object.

Adjust an existing API test, FontManagerTests.ChangeAttributesWithFontEffectsBox, to also vary the length of
font shadows. Updating font attributes on the font manager exposed an issue with this API test where, because
the font panel's attributes are never updated, the value of the shadow length slider remains at the default
value of 0.125, producing a shadow length of 1.25px. However, now that the selection moves to non-shadowed text
before moving to shadowed text again, we need to explicitly set the shadow length slider's value when testing
the second shadowed text selection.

(webViewForFontManagerTesting):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/mac/NSFontPanelTesting.h:
  • TestWebKitAPI/mac/NSFontPanelTesting.mm:

Add some additional testing helpers to query the state of controls in the font panel (e.g. font shadow sliders,
foreground color well, and strike-through/underline popup menu state).

(-[NSFontPanel underlineToolbarButton]):
(-[NSFontPanel strikeThroughToolbarButton]):
(-[NSFontPanel foregroundColorToolbarColorWell]):
(-[NSFontPanel chooseUnderlineMenuItemWithTitle:]):
(-[NSFontPanel chooseStrikeThroughMenuItemWithTitle:]):
(-[NSFontPanel shadowLengthSlider]):
(-[NSFontPanel hasShadow]):
(-[NSFontPanel shadowLength]):
(-[NSFontPanel setShadowLength:]):
(-[NSFontPanel hasUnderline]):
(-[NSFontPanel hasStrikeThrough]):
(-[NSFontPanel foregroundColor]):

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

Verify startNode is prior to the beyondEnd node
https://bugs.webkit.org/show_bug.cgi?id=230712

Patch by Brandon Stewart <Brandon> on 2022-01-12
Reviewed by Wenson Hsieh.

Verify that the startNode is prior to the beyondEnd. If this condition is not met,
this will lead to undesirable situations when traversing through the nodes.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):

2:37 PM Changeset in webkit [287951] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/mac

_paintBehaviorForDestinationContext should consider kCGContextTypeDisplayList type contexts as potentially being snapshots
https://bugs.webkit.org/show_bug.cgi?id=234626
<rdar://83501315>

Patch by Matt Woodrow <Matt Woodrow> on 2022-01-12
Reviewed by Simon Fraser.

_paintBehaviorForDestinationContext currently always returns Normal for contexts that aren't a bitmap context.
AppKit now provides a context that is of type kCGContextTypeDisplayList, and we want to still potentially consider it a
snapshot paint (if the other conditions below are met). This ensure images are sync decoded for consumers that just
want a single paint.

  • WebView/WebFrame.mm:

(-[WebFrame _paintBehaviorForDestinationContext:]):

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

Unreviewed, reverting r287908.
https://bugs.webkit.org/show_bug.cgi?id=235156

Broke M1 Monterey JSC

Reverted changeset:

"Update hashThreadState() to exclude opaque_flags."
https://bugs.webkit.org/show_bug.cgi?id=235081
https://commits.webkit.org/r287908

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

[EWS] Accept GitHub hooks (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=235033
<rdar://problem/87345269>

Reviewed by Aakash Jain

Trigger a subset of queues for incoming GitHub pull-requests.

  • Tools/CISupport/ews-build/config.json: Enable webkitperl, webkitpy, services and style checks.
  • Tools/CISupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest):
(ConfigDotJSONTest.test_multiple_scheduers_for_builder):

  • Tools/CISupport/ews-build/master.cfg: Accept GitHub hooks, specify variables

to extract from incoming request.

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

(GitHub):
(GitHub.repository_urls): Concatenate all valid projects with the base URL.
(GitHub.pr_url): Given a repository and pull-request number, return the URL
for that pull-request.
(ConfigureBuild.add_pr_details):
(GitHubMixin): Deleted.

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

1:17 PM Changeset in webkit [287948] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[MediaFoundation] Invalidate only the videa area using MediaPlayer::repaint(), not the whole FrameView
https://bugs.webkit.org/show_bug.cgi?id=235088

Reviewed by Don Olmstead.

r192176 added MediaPlayerPrivateMediaFoundation::invalidateFrameView()
to render the next frame. It was, as per the method name,
invalidating the whole FrameView.

This approach doesn't render video frames with TiledBacking (Bug
233676). Calling MediaPlayer::repaint() is the correct way to
invalidate the video area.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::invalidateVideoArea): Call MediaPlayer::repaint().
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
(WebCore::MediaPlayerPrivateMediaFoundation::invalidateFrameView): Deleted.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
12:56 PM Changeset in webkit [287947] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
12:45 PM Changeset in webkit [287946] by graouts@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Update Web Inspector to not use legacy webkit-prefixed transition events
https://bugs.webkit.org/show_bug.cgi?id=235119

Reviewed by Joseph Pecoraro.

Came across this while working on bug 235113, we shouldn't be using webkit-prefixed events.

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype.insertTabBarItem.animateTabs):
(WI.TabBar.prototype.insertTabBarItem.removeStyles):
(WI.TabBar.prototype.insertTabBarItem):
(WI.TabBar.prototype.removeTabBarItem.animateTabs):
(WI.TabBar.prototype.removeTabBarItem.removeStyles):
(WI.TabBar.prototype.removeTabBarItem):
(WI.TabBar.prototype._finishExpandingTabsAfterClose.):
(WI.TabBar.prototype._finishExpandingTabsAfterClose):

12:24 PM Changeset in webkit [287945] by graouts@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector should expose newer CSS Animations, CSS Transitions and Web Animations events
https://bugs.webkit.org/show_bug.cgi?id=235117

Reviewed by Joseph Pecoraro.

Came across this while working on bug 235113, the more recent events added to
CSS Animations, CSS Transitions and Web Animations are not used in the Web Inspector.

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.EventType.displayName):

12:17 PM Changeset in webkit [287944] by commit-queue@webkit.org
  • 4 edits in trunk

Build WebKitSwift when building with make or build-webkit
https://bugs.webkit.org/show_bug.cgi?id=235093

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-12
Reviewed by Alexey Proskuryakov.

Source/WebKit:

For various internal reasons, we have to have no depency between the two,
but we command line builders want to build and test it just like everyone else.

  • Makefile:

Tools:

  • Scripts/build-webkit:
12:06 PM Changeset in webkit [287943] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[Live Text] Image overlay text is misaligned on rfi.fr
https://bugs.webkit.org/show_bug.cgi?id=235118

Reviewed by Aditya Keerthi.

Source/WebCore:

Reset any text-indent to 0 when injecting Live Text into image elements, to ensure that any text-indent
value set on the image doesn't propagate into UA shadow DOM content.

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

  • html/shadow/imageOverlay.css:

(div.image-overlay-line, .image-overlay-text, div.image-overlay-block):

LayoutTests:

Add a new test case to exercise the bug.

  • fast/images/text-recognition/image-overlay-with-text-indent-expected.html: Added.
  • fast/images/text-recognition/image-overlay-with-text-indent.html: Added.
11:53 AM Changeset in webkit [287942] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Win EWS ] webanimations/accelerated-animation-after-forward-filling-animation.html is a constant image only failure
https://bugs.webkit.org/show_bug.cgi?id=235126

Unreviewed test gardening.

  • platform/win/TestExpectations: Adding ImageOnlyFailure expectation to speed up WindowsEWS.
11:46 AM Changeset in webkit [287941] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

[JSC] Enable libpas jit-heap when libpas is enabled
https://bugs.webkit.org/show_bug.cgi?id=235042

Reviewed by Filip Pizlo.

Previously, we enabled jit-heap only in ARM64 macOS.
We should enable it when libpas is enabled.

  • wtf/PlatformUse.h:
11:19 AM Changeset in webkit [287940] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Win EWS ] webanimations/frame-rate/animation-frame-rate.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235124

Unreviewed test gardening.

  • platform/win/TestExpectations: Adding Failure expectation for Windows to speed up Windows EWS.
11:18 AM Changeset in webkit [287939] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Correctly dirty z-order lists when showing a modal dialog
https://bugs.webkit.org/show_bug.cgi?id=232762
<rdar://problem/85082354>

Reviewed by Alan Bujtas.

When showing a dialog element which is split into continuations, we need to ensure
to call establishesTopLayerWillChange()/establishesTopLayerDidChange() on the
layers of all the continuation renderers.

  • dom/Element.cpp:

(WebCore::forEachRenderLayer): Call the provided function on the layers for all
the associated render objects. It's a little cumbersome because layers relate to
RenderLayerModelObject, but continuations relate to RenderBoxModelObject.
(WebCore::Element::addToTopLayer):
(WebCore::Element::removeFromTopLayer):
(WebCore::renderLayerForElement): Deleted.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::forRendererAndContinuations):

  • rendering/RenderBoxModelObject.h: Provider a static helper to call a function

on a renderer and all its continuations, if any.

11:05 AM Changeset in webkit [287938] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.8

Tag Safari-613.1.12.1.8.

11:05 AM Changeset in webkit [287937] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.8

10:56 AM Changeset in webkit [287936] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Add some functions to Color to make debugging using color indicators easier
https://bugs.webkit.org/show_bug.cgi?id=234886

Reviewed by Darin Adler.

Add two helpers to Color to aid debugging, allowing easy access to components in simplified form.

  • platform/graphics/Color.cpp:

(WebCore::Color::debugRGBA const):
(WebCore::Color::debugDescription const):

  • platform/graphics/Color.h:
10:55 AM Changeset in webkit [287935] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r286828?): [ Win EWS ] fast/css/contain-invalidate-if-disabled.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=235123

Unreviewed test gardening.

  • platform/win/TestExpectations: Adding Failure expectaton to speed up Windows EWS.
10:49 AM Changeset in webkit [287934] by Razvan Caliman
  • 6 edits in trunk

Web Inspector: Unhandled exception when moving cursor mid-token after receiving CSS property name completions
https://bugs.webkit.org/show_bug.cgi?id=234393
<rdar://problem/86578732>

Reviewed by Patrick Angle.

Source/WebInspectorUI:

A faulty check for mid-token completions in WI.CSSKeywordCompletions.forPartialPropertyName(), which are still
unsupported, prevented an early return and completions were provided unexpectedly. This had knock-on effects in
WI.SpreadsheetTextField which is not set up to handle cases where the caret is placed within the completion query.
Calculating the adjusted caret position could return a negative index and throw an unhandled exception.

Web Inspector does not currently explicitly support mid-token completions. See https://webkit.org/b/227157

The implementation of fuzzy matching for CSS completions in https://webkit.org/b/234092
means that, unhindered, the completion provider for CSS property names _can_ return mid-token completions.
Typing a query like margin, then moving the caret to the beginning and correcting to s|margin will return
completions like [s]croll-[margin]. Accepting the completion results in a malformed SpreadsheetTextField.value
by concatenation within the prefix itself. As the user types mid-token, the prefix becomes ambiguous.

Fixing the condition in WI.CSSKeywordCompletions.forPartialPropertyName() now inhibits unintentional
mid-token completions when fuzzy matching is enabled.

  • UserInterface/Models/CSSKeywordCompletions.js:

(WI.CSSKeywordCompletions.forPartialPropertyName):

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype._showSuggestionsView):

LayoutTests:

  • inspector/unit-tests/css-keyword-completions-expected.txt:
  • inspector/unit-tests/css-keyword-completions.html:
10:44 AM Changeset in webkit [287933] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[AppleWin] Some fast/shadow-dom/fullscreen-in-* tests are crashing after r287698
https://bugs.webkit.org/show_bug.cgi?id=234933

Unreviewed test gardening.

  • platform/win/TestExpectations: Missed adding a crash expectation to 'accessibility/insert-children-assert.html' which is part of this bug.
10:38 AM Changeset in webkit [287932] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[AppleWin] Some fast/shadow-dom/fullscreen-in-* tests are crashing after r287698
https://bugs.webkit.org/show_bug.cgi?id=234933

Unreviewed test gardening.

  • platform/win/TestExpectations: Adding crash expectation to tests because they were slowing down Windows EWS.
10:22 AM Changeset in webkit [287931] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.7

Tag Safari-613.1.12.1.7.

10:17 AM Changeset in webkit [287930] by jer.noble@apple.com
  • 10 edits in trunk/Source/WebKit

[iOS] Page loading hangs for ~10s on WebProcess launch
https://bugs.webkit.org/show_bug.cgi?id=235089

Reviewed by Eric Carlson.

WebPage::setMuted() will result in calling into the current audioCaptureFactory,
which will be by default CoreAudioAudioCaptureFactory unless replaced.
CoreAudioAudioCaptureFactory will in turn call into AVAudioSession, which will block
for multiple seconds due to the WebContent process sandbox.

Change the order in which these calls occur by configuring the audioCaptureFactory
in platformInitialize(), which occurs near the top of the constructor. This requires
access to the WebPageCreationParameters passed into the constructor, modify that method
to take a WebPageCreationParameters, and modify all the platform-specific definitions of
that method.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformInitialize): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformInitializeAccessibility):
(WebKit::WebPage::platformInitialize): Deleted.

  • WebProcess/WebPage/playstation/WebPagePlayStation.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformInitialize):

10:15 AM Changeset in webkit [287929] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.7

9:57 AM Changeset in webkit [287928] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

VP9-SVS no video stream from remote peer on some devices
https://bugs.webkit.org/show_bug.cgi?id=231074
<rdar://problem/84024646>

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:

(-[RTCDefaultVideoDecoderFactory initWithH265:vp9Profile0:vp9Profile2:vp9VTB:]):
Do not use VTIsHardwareDecodeSupported('vp09') to know whether WebProcess can use VTB since sandboxing can control this.

8:56 AM Changeset in webkit [287927] by svillar@igalia.com
  • 41 edits
    1 copy
    9 adds in trunk/LayoutTests

[css-flexbox] Import WPT tests - January edition
https://bugs.webkit.org/show_bug.cgi?id=235102

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

This import brings some new tests. Apart from that several expectations were moved from FAIL to PASS.

  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008-expected.txt:
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html:
  • web-platform-tests/css/css-flexbox/abspos/w3c-import.log:
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-007.html: Added.
  • web-platform-tests/css/css-flexbox/fieldset-as-item-dynamic-expected.html: Added.
  • web-platform-tests/css/css-flexbox/fieldset-as-item-dynamic.html: Added.
  • web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt:
  • web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001.html:
  • web-platform-tests/css/css-flexbox/flex-grow-001-ref.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-014.html:
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-002-expected.txt:
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-002.html:
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-003-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-003.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-002.html.
  • web-platform-tests/css/css-flexbox/order/order-with-column-reverse-ref.html: Added.
  • web-platform-tests/css/css-flexbox/order/order-with-row-reverse-ref.html: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-auto-expected.html:
  • web-platform-tests/css/css-flexbox/scrollbars-expected.html:
  • web-platform-tests/css/css-flexbox/support/large-green-rectangle.svg: Added.
  • web-platform-tests/css/css-flexbox/support/w3c-import.log:
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

8:54 AM Changeset in webkit [287926] by graouts@webkit.org
  • 5 edits in trunk

css/css-transitions/pseudo-elements-002.html WPT is a failure
https://bugs.webkit.org/show_bug.cgi?id=234987

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-transitions/pseudo-elements-002-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:

Source/WebCore:

When checking for style validity, we would only check the element itself and not its host
in the case where the element were a PseudoElement. Ideally, we'd eradicate all use of
PseudoElement throughout this source file, but this is a start, and I'll attempt a
refactor in a followup patch.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::hasValidStyleForProperty):

8:51 AM Changeset in webkit [287925] by graouts@webkit.org
  • 22 edits
    14 deletes in trunk

Remove WebKitTransitionEvent and WebKitAnimationEvent
https://bugs.webkit.org/show_bug.cgi?id=235113

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-animations/historical-expected.txt:
  • web-platform-tests/css/css-transitions/historical-expected.txt:

Source/WebCore:

Remove all files related to these interfaces and fix some missing header includes
revealed by a change in unified sources.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventNames.in:
  • dom/EventTarget.cpp:
  • dom/WebKitAnimationEvent.cpp: Removed.
  • dom/WebKitAnimationEvent.h: Removed.
  • dom/WebKitAnimationEvent.idl: Removed.
  • dom/WebKitTransitionEvent.cpp: Removed.
  • dom/WebKitTransitionEvent.h: Removed.
  • dom/WebKitTransitionEvent.idl: Removed.
  • dom/mac/ImageControlsMac.cpp:
  • dom/mac/ImageControlsMac.h:

LayoutTests:

Remove some tests specific to those two interfaces.

  • animations/animation-events-create-expected.txt: Removed.
  • animations/animation-events-create.html: Removed.
  • fast/events/constructors/webkit-animation-event-constructor-expected.txt: Removed.
  • fast/events/constructors/webkit-animation-event-constructor.html: Removed.
  • fast/events/constructors/webkit-transition-event-constructor-expected.txt: Removed.
  • fast/events/constructors/webkit-transition-event-constructor.html: Removed.
  • js/dom/constructor-length.html:
  • platform/glib/js/dom/constructor-length-expected.txt:
  • platform/ios/js/dom/constructor-length-expected.txt:
  • platform/mac/js/dom/constructor-length-expected.txt:
  • platform/win/TestExpectations:
  • platform/win/js/dom/constructor-length-expected.txt:
  • platform/wincairo/js/dom/constructor-length-expected.txt:
  • transitions/transition-end-event-create-expected.txt: Removed.
  • transitions/transition-end-event-create.html: Removed.
8:47 AM Changeset in webkit [287924] by graouts@webkit.org
  • 53 edits
    1 copy
    1 move
    116 adds
    1 delete in trunk/LayoutTests

Update WPT for css/css-animations, css/css-transitions and web-animations
https://bugs.webkit.org/show_bug.cgi?id=235111

Unreviewed WPT import.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-animations/animation-common-ref.html: Added.
  • web-platform-tests/css/css-animations/animation-important-002-ref.html: Added.
  • web-platform-tests/css/css-animations/animation-opacity-pause-and-set-time-ref.html: Added.
  • web-platform-tests/css/css-animations/animation-pseudo-dynamic-001-ref.html: Added.
  • web-platform-tests/css/css-animations/animation-transform-pause-and-set-time-ref.html: Added.
  • web-platform-tests/css/css-animations/flip-running-animation-via-variable-expected.html: Added.
  • web-platform-tests/css/css-animations/flip-running-animation-via-variable-ref.html: Added.
  • web-platform-tests/css/css-animations/flip-running-animation-via-variable.html: Added.
  • web-platform-tests/css/css-animations/keyframes-unrelated-custom-property-expected.txt: Added.
  • web-platform-tests/css/css-animations/keyframes-unrelated-custom-property.html: Added.
  • web-platform-tests/css/css-animations/nested-scale-animations-ref.html: Added.
  • web-platform-tests/css/css-animations/simultaneous-animations-crash.html: Added.
  • web-platform-tests/css/css-animations/svg-transform-animation-ref.html: Added.
  • web-platform-tests/css/css-animations/transform-animation-under-large-scale-ref.html: Added.
  • web-platform-tests/css/css-animations/translation-animation-subpixel-offset-ref.html: Added.
  • web-platform-tests/css/css-animations/w3c-import.log:
  • web-platform-tests/css/css-transitions/animations/change-duration-during-transition-expected.txt: Added.
  • web-platform-tests/css/css-transitions/animations/change-duration-during-transition.html: Added.
  • web-platform-tests/css/css-transitions/animations/color-transition-premultiplied-expected.txt: Added.
  • web-platform-tests/css/css-transitions/animations/color-transition-premultiplied.html: Added.
  • web-platform-tests/css/css-transitions/animations/move-after-transition-expected.txt: Added.
  • web-platform-tests/css/css-transitions/animations/move-after-transition.html: Added.
  • web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-composition.html:
  • web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-interpolation.html:
  • web-platform-tests/css/css-transitions/animations/transition-end-event-shorthands-expected.txt: Added.
  • web-platform-tests/css/css-transitions/animations/transition-end-event-shorthands.html: Added.
  • web-platform-tests/css/css-transitions/animations/transition-timing-function-expected.txt: Added.
  • web-platform-tests/css/css-transitions/animations/transition-timing-function.html: Added.
  • web-platform-tests/css/css-transitions/animations/w3c-import.log:
  • web-platform-tests/css/css-transitions/changing-while-transition-004-expected.txt: Added.
  • web-platform-tests/css/css-transitions/changing-while-transition-004.html: Added.
  • web-platform-tests/css/css-transitions/crashtests/transition-large-word-spacing-001.html: Added.
  • web-platform-tests/css/css-transitions/crashtests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/w3c-import.log.
  • web-platform-tests/css/css-transitions/event-dispatch.tentative.html:
  • web-platform-tests/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet-ref.html: Added.
  • web-platform-tests/css/css-transitions/retargetted-transition-with-box-sizing-expected.txt: Added.
  • web-platform-tests/css/css-transitions/retargetted-transition-with-box-sizing.html: Added.
  • web-platform-tests/css/css-transitions/root-color-transition-ref.html: Added.
  • web-platform-tests/css/css-transitions/transition-after-animation-001-expected.txt: Added.
  • web-platform-tests/css/css-transitions/transition-after-animation-001.html: Added.
  • web-platform-tests/css/css-transitions/transition-delay-001.html:
  • web-platform-tests/css/css-transitions/transition-duration-001.html:
  • web-platform-tests/css/css-transitions/transition-duration-shorthand-expected.txt: Added.
  • web-platform-tests/css/css-transitions/transition-duration-shorthand.html: Added.
  • web-platform-tests/css/css-transitions/w3c-import.log:
  • web-platform-tests/web-animations/META.yml:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/property-list.js:
  • web-platform-tests/web-animations/animation-model/animation-types/property-types.js:

(const.transformListType.testInterpolation):

  • web-platform-tests/web-animations/idlharness.window-expected.txt:
  • web-platform-tests/web-animations/idlharness.window.js:
  • web-platform-tests/web-animations/interfaces/Animatable/getAnimations-iframe-expected.txt: Added.
  • web-platform-tests/web-animations/interfaces/Animatable/getAnimations-iframe.html: Added.
  • web-platform-tests/web-animations/interfaces/Animatable/w3c-import.log:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-crash.html: Added.
  • web-platform-tests/web-animations/interfaces/Animation/constructor.html:
  • web-platform-tests/web-animations/interfaces/Animation/onfinish.html:
  • web-platform-tests/web-animations/interfaces/Animation/onremove.html:
  • web-platform-tests/web-animations/interfaces/Animation/w3c-import.log:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html:
  • web-platform-tests/web-animations/responsive/assorted-lengths-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/assorted-lengths.html: Added.
  • web-platform-tests/web-animations/responsive/backgroundPosition-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/backgroundPosition.html: Added.
  • web-platform-tests/web-animations/responsive/backgroundSize-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/backgroundSize.html: Added.
  • web-platform-tests/web-animations/responsive/baselineShift-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/baselineShift.html: Added.
  • web-platform-tests/web-animations/responsive/borderImageWidth-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/borderImageWidth.html: Added.
  • web-platform-tests/web-animations/responsive/borderRadius-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/borderRadius.html: Added.
  • web-platform-tests/web-animations/responsive/borderWidth-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/borderWidth.html: Added.
  • web-platform-tests/web-animations/responsive/boxShadow-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/boxShadow.html: Added.
  • web-platform-tests/web-animations/responsive/clip-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/clip.html: Added.
  • web-platform-tests/web-animations/responsive/columnCount-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/columnCount.html: Added.
  • web-platform-tests/web-animations/responsive/columnGap-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/columnGap.html: Added.
  • web-platform-tests/web-animations/responsive/d-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/d.html: Added.
  • web-platform-tests/web-animations/responsive/font-size-adjust-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/font-size-adjust.html: Added.
  • web-platform-tests/web-animations/responsive/fontSize-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/fontSize.html: Added.
  • web-platform-tests/web-animations/responsive/fontWeight-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/fontWeight.html: Added.
  • web-platform-tests/web-animations/responsive/lineHeight-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/lineHeight.html: Added.
  • web-platform-tests/web-animations/responsive/minHeight-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/minHeight.html: Added.
  • web-platform-tests/web-animations/responsive/offset-path-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/offset-path.html: Added.
  • web-platform-tests/web-animations/responsive/offsetDistance-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/offsetDistance.html: Added.
  • web-platform-tests/web-animations/responsive/offsetRotate-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/offsetRotate.html: Added.
  • web-platform-tests/web-animations/responsive/opacity-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/opacity.html: Added.
  • web-platform-tests/web-animations/responsive/perspective-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/perspective.html: Added.
  • web-platform-tests/web-animations/responsive/rotate-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/rotate.html: Added.
  • web-platform-tests/web-animations/responsive/rowGap-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/rowGap.html: Added.
  • web-platform-tests/web-animations/responsive/shapeMargin-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/shapeMargin.html: Added.
  • web-platform-tests/web-animations/responsive/shapeOutside-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/shapeOutside.html: Added.
  • web-platform-tests/web-animations/responsive/strokeDasharray-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/strokeDasharray.html: Added.
  • web-platform-tests/web-animations/responsive/text-size-adjust-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/text-size-adjust.html: Added.
  • web-platform-tests/web-animations/responsive/textIndent-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/textIndent.html: Added.
  • web-platform-tests/web-animations/responsive/to-color-change-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/to-color-change.html: Added.
  • web-platform-tests/web-animations/responsive/to-inherited-change-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/to-inherited-change.html: Added.
  • web-platform-tests/web-animations/responsive/to-style-change-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/to-style-change.html: Added.
  • web-platform-tests/web-animations/responsive/transform-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/transform.html: Added.
  • web-platform-tests/web-animations/responsive/translate-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/translate.html: Added.
  • web-platform-tests/web-animations/responsive/verticalAlign-expected.txt: Added.
  • web-platform-tests/web-animations/responsive/verticalAlign.html: Added.
  • web-platform-tests/web-animations/responsive/w3c-import.log: Added.
  • web-platform-tests/web-animations/testcommon.js:

(window.assert_time_greater_than_equal.window.assert_time_greater_than_equal):

  • web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/infinite-duration-animation-ref.html: Added.
  • web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-expected.html:
  • web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-ref.html: Added.
  • web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/sync-start-times-ref.html: Added.
  • web-platform-tests/web-animations/timing-model/animations/sync-start-times.html:
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast-expected.html:
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow-expected.html.
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast.html:
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow.html: Removed.
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero-expected.html:
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero-ref.html: Added.
  • web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero.html:
  • web-platform-tests/web-animations/timing-model/animations/w3c-import.log:
  • web-platform-tests/web-animations/timing-model/timelines/document-timelines.html:
  • web-platform-tests/web-animations/timing-model/timelines/timelines-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/timelines.html:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html:

LayoutTests:

7:04 AM Changeset in webkit [287923] by Chris Lord
  • 4 edits in trunk

[WPE] Fix building WebXR with ANGLE enabled
https://bugs.webkit.org/show_bug.cgi?id=235108

Reviewed by Alejandro G. Castro.

.:

Remove conflict between WebXR and ANGLE WebGL for WPE.

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Fix building both ANGLE WebGL and WebXR simultaneously when GLES is
being used.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):

6:37 AM Changeset in webkit [287922] by Alan Bujtas
  • 7 edits
    2 adds in trunk

[LFC][IFC] Incorrect negative margin handling (both left/right) with RTL inline base direction
https://bugs.webkit.org/show_bug.cgi?id=235095

Reviewed by Antti Koivisto.

Source/WebCore:

The simplified negative margin handling on inline boxes does not work well with RTL inline base direction.
With LTR direction, we could just treat the negative left margin value (which pulls content to the left)
as part the "logical width" (may resulting in negative width values) and let this shorter width pull
the the adjoining content.
However this setup produces incorrect box positions when the inline base direction is RTL.
In this patch, we switch over to a more correct inline box positioning where the negative margin
affects the logical left while it does not make the run shorter anymore.

Test: fast/inline/rtl-negative-margins.html

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

  • layout/formattingContexts/inline/InlineLineBuilder.h:
  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

LayoutTests:

  • fast/inline/rtl-negative-margins-expected.html: Added.
  • fast/inline/rtl-negative-margins.html: Added.
5:05 AM Changeset in webkit [287921] by Nikolas Zimmermann
  • 11 edits
    2 adds in trunk/Source/WebCore

[LBSE] Begin layer-aware RenderSVGContainer implementation
https://bugs.webkit.org/show_bug.cgi?id=235100

Reviewed by Rob Buis.

Create RenderSVGContainer based on the downstream LBSE implementation.

This patch does not yet enable the creation of RenderSVGContainer
renderers if LBSE is enabled, since the derived classes, such as
RenderSVGHiddenContainer / RenderSVGViewportContainer / ..., are still
missing in LBSE.

Covered by existing tests, no change in behaviour.

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

(WebCore::RenderObject::isSVGContainer const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/RenderSVGContainer.cpp: Added.

(WebCore::RenderSVGContainer::RenderSVGContainer):
(WebCore::RenderSVGContainer::layout):
(WebCore::RenderSVGContainer::calculateViewport):
(WebCore::RenderSVGContainer::layoutChildren):
(WebCore::RenderSVGContainer::styleDidChange):
(WebCore::RenderSVGContainer::selfWillPaint):
(WebCore::RenderSVGContainer::paint):
(WebCore::RenderSVGContainer::nodeAtPoint):

  • rendering/svg/RenderSVGContainer.h: Added.

(WebCore::RenderSVGContainer::isObjectBoundingBoxValid const):
(WebCore::RenderSVGContainer::updateLayerInformation):
(WebCore::RenderSVGContainer::pointIsInsideViewportClip):

  • rendering/svg/SVGBoundingBoxComputation.cpp:

(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox const):
(WebCore::SVGBoundingBoxComputation::handleRootOrContainer const):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGContainer):

  • rendering/svg/SVGRenderTreeAsText.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attachInternal):
(WebCore::RenderTreeBuilder::detach):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):

  • rendering/updating/RenderTreeBuilderSVG.h:
5:02 AM Changeset in webkit [287920] by Chris Lord
  • 7 edits in trunk

[WPE] Enable WebGL ANGLE support
https://bugs.webkit.org/show_bug.cgi?id=235064

Reviewed by Alejandro G. Castro.

.:

Add the USE_ANGLE_WEBGL option for WPE. This is currently incompatible
with WebXR as there isn't an ANGLE GL context code-path there.

  • Source/cmake/OptionsWPE.cmake:

Source/ThirdParty/ANGLE:

Enable building on WPE (mostly copying the GTK build file).

  • PlatformWPE.cmake:

Source/WebCore:

Enable ANGLE WebGL support when building the WPE port.

  • platform/graphics/angle/ANGLEHeaders.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

4:25 AM Changeset in webkit [287919] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[WTF] Exclude any Linux-based platform in DisallowCType.h
https://bugs.webkit.org/show_bug.cgi?id=235104

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-12
Reviewed by Adrian Perez de Castro.

  • wtf/DisallowCType.h: Exclude any Linux target from deploying macros

that prevent use of locale-dependent ctype functions in combination with
the glibc C library and a non-libc++ C++ library. This should thus also
cover the JSCOnly port when built on Linux.

4:02 AM Changeset in webkit [287918] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[GTK][a11y] Defer the emission of AddAccessible signal with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234740

Reviewed by Adrian Perez de Castro.

In case of node added and removed quickly, we just avoid the emission of the signal.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::attachWrapper): Notify the root about its new child earlier to ensure the isolated tree
is created as soon as possible.
(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate): Remove the root case from here.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::parentChanged): Ensure object is cached before emitting the signal.
(WebCore::AccessibilityAtspi::childrenChanged): Ditto.
(WebCore::AccessibilityAtspi::stateChanged): Ditto.
(WebCore::AccessibilityAtspi::textChanged): Ditto.
(WebCore::AccessibilityAtspi::textAttributesChanged): Ditto.
(WebCore::AccessibilityAtspi::textCaretMoved): Ditto.
(WebCore::AccessibilityAtspi::textSelectionChanged): Ditto.
(WebCore::AccessibilityAtspi::valueChanged): Ditto.
(WebCore::AccessibilityAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityAtspi::loadEvent): Ditto.
(WebCore::AccessibilityAtspi::addToCacheIfNeeded): Helper to add an object to the cache and emit AddAccessible signal.
(WebCore::AccessibilityAtspi::cacheUpdateTimerFired): Update the cache with pending adds.
(WebCore::AccessibilityAtspi::scheduleCacheUpdate): Create the update cache timer if needed and schedule an
update if there isn't a pending one already.
(WebCore::AccessibilityAtspi::addAccessible): Add object to the list and schedule a cache update.
(WebCore::AccessibilityAtspi::removeAccessible): Return early if the object is in the update cache list.

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::registerObject): Remove the call to AccessibilityRootAtspi::child() when an
object is registered before being attached to the isolated object.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::child const): Set m_isInChild.
(WebCore::AccessibilityRootAtspi::childAdded): Return early if the given child is not the current one or called
from child().

  • accessibility/atspi/AccessibilityRootAtspi.h:
3:40 AM Changeset in webkit [287917] by Martin Robinson
  • 5 edits in trunk

Interpolation during animation of two empty transform lists should always yield "none"
https://bugs.webkit.org/show_bug.cgi?id=235069

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Update to show passes.

Source/WebCore:

No new tests. This is covered by an existing WPT test.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists): When all keyframes have "transform: none"
they transform function lists should match. This allows TransformOperations::blend to avoid doing
matrix interpolation to generate the interpolated transform.

2:29 AM Changeset in webkit [287916] by Nikolas Zimmermann
  • 21 edits
    2 moves in trunk/Source/WebCore

[LBSE] Rename RenderSVGContainer -> LegacyRenderSVGContainer
https://bugs.webkit.org/show_bug.cgi?id=235099

Reviewed by Rob Buis.

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

Covered by existing tests, no change in behaviour.

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

(WebCore::RenderObject::isLegacySVGContainer const):
(WebCore::RenderObject::isSVGContainer const): Deleted.

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/LegacyRenderSVGContainer.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGContainer.cpp.

(WebCore::LegacyRenderSVGContainer::LegacyRenderSVGContainer):
(WebCore::LegacyRenderSVGContainer::layout):
(WebCore::LegacyRenderSVGContainer::selfWillPaint):
(WebCore::LegacyRenderSVGContainer::paint):
(WebCore::LegacyRenderSVGContainer::addFocusRingRects):
(WebCore::LegacyRenderSVGContainer::updateCachedBoundaries):
(WebCore::LegacyRenderSVGContainer::nodeAtFloatPoint):

  • rendering/svg/LegacyRenderSVGContainer.h: Renamed from Source/WebCore/rendering/svg/RenderSVGContainer.h.

(WebCore::LegacyRenderSVGContainer::didTransformToRootUpdate):
(WebCore::LegacyRenderSVGContainer::isObjectBoundingBoxValid const):
(WebCore::LegacyRenderSVGContainer::calculateLocalTransform):
(WebCore::LegacyRenderSVGContainer::calcViewport):
(WebCore::LegacyRenderSVGContainer::applyViewportClip):
(WebCore::LegacyRenderSVGContainer::pointIsInsideViewportClip):
(WebCore::LegacyRenderSVGContainer::determineIfLayoutSizeChanged):

  • rendering/svg/LegacyRenderSVGShape.h:
  • rendering/svg/RenderSVGHiddenContainer.cpp:

(WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):

  • rendering/svg/RenderSVGHiddenContainer.h:
  • rendering/svg/RenderSVGResourceMarker.cpp:

(WebCore::RenderSVGResourceMarker::layout):
(WebCore::RenderSVGResourceMarker::markerBoundaries const):
(WebCore::RenderSVGResourceMarker::draw):

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

(WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
(WebCore::RenderSVGTransformableContainer::graphicsElement):

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

(WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
(WebCore::RenderSVGViewportContainer::svgSVGElement const):
(WebCore::RenderSVGViewportContainer::paint):

  • rendering/svg/RenderSVGViewportContainer.h:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
(WebCore::updateObjectBoundingBox):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGContainer):

  • rendering/svg/SVGRenderTreeAsText.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attachInternal):
(WebCore::RenderTreeBuilder::detach):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):

  • rendering/updating/RenderTreeBuilderSVG.h:
  • svg/SVGPatternElement.cpp:
1:44 AM Changeset in webkit [287915] by youenn@apple.com
  • 9 edits in trunk

New service worker API 'FetchEvent.handled' needs to be supported
https://bugs.webkit.org/show_bug.cgi?id=208185
<rdar://problem/59808975>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event-handled.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-handled.https.html:
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-handled-worker.js:

(try.event.handled.then):
(catch):
(send_message_to_client): Deleted.

Source/WebCore:

Expose FetchEvent.handled and resolve/reject it as per specification.

Covered by test that we update to not rely on clientIds that we do not support very well.

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::createForTesting):
(WebCore::retrieveHandledPromise):
(WebCore::FetchEvent::FetchEvent):

  • workers/service/FetchEvent.h:
  • workers/service/FetchEvent.idl:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

12:51 AM Changeset in webkit [287914] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Protect DocumentLoader when a reference to its members is used.
https://bugs.webkit.org/show_bug.cgi?id=233464

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-12
Reviewed by Brady Eidson.

Source/WebCore:

No new tests, due to our infra (bug 127676).

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_mainDocumentError is used.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadForFrame): If the navigationID is obsolete, skip update
of the page load state to avoid failure of debug ASSERT.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_request is used.

Jan 11, 2022:

11:55 PM Changeset in webkit [287913] by Fujii Hironori
  • 15 edits in trunk

Remove Direct2D code (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235097

Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsAppleWin.cmake:

Source/WebCore:

  • platform/graphics/Color.h:
  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::createGDIFont):
(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/win/FontPlatformDataWin.cpp:
  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::setTargetContext): Deleted.

  • platform/image-decoders/ScalableImageDecoder.h:

Source/WebCore/PAL:

  • pal/PlatformAppleWin.cmake:

Source/WebKit:

  • UIProcess/BackingStore.h:

(): Deleted.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::sizeDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange):

  • UIProcess/win/PageClientImpl.cpp:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint):

11:52 PM Changeset in webkit [287912] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[RISCV64] riscv64 backend should lower offlineasm instructions
https://bugs.webkit.org/show_bug.cgi?id=234952

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-11
Reviewed by Yusuke Suzuki.

In the riscv64 offlineasm backend, instead of handling higher-level
offlineasm instructions with different operand combinations and manually
juggling temp registers, use the approach of aggressively lowering these
opcodes into sequences of RISC-V instructions.

Addresses and immediate values are lowered into usable forms where
necessary. Different lowering phases handle any offlineasm instruction
so that the resulting opcodes can be, with accompanying operands, used
trivially to construct the RISC-V assembly.

Lowered RISC-V opcodes use the 'rv_' prefix so that they can be easily
diassociated from any offlineasm opcode that might share the same name.
The prefix is removed when the assembly is finally generated.

  • offlineasm/risc.rb: Also handle branch-on-arithmetic opcodes in the

riscvLowerMisplacedAddress lowering phase.

  • offlineasm/riscv64.rb:
11:49 PM Changeset in webkit [287911] by Said Abou-Hallawa
  • 12 edits in trunk

[GPU Process] Make SVG resources create remote ImageBuffers for their drawing
https://bugs.webkit.org/show_bug.cgi?id=235073
rdar://87402419

Reviewed by Darin Adler.

Source/WebCore:

Pass a hostWindow when calling SVGRenderingContext::createImageBuffer().

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
(WebCore::RenderSVGResourceGradient::applyResource):
(WebCore::RenderSVGResourceGradient::postApplyResource):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):

  • rendering/svg/SVGRenderingContext.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::imageBufferForEffect const):

Source/WebKit:

  • GPUProcess/graphics/QualifiedResourceHeap.h:

(WebKit::QualifiedResourceHeap::get const):
Do not assert here if the entry of the HashMap does not hold a variant
of the required type. We already return nullptr without assertion if there
is no entry for the required renderingResourceIdentifier. We should let
the caller decides what to do in the case of error.

LayoutTests:

  • gpu-process/TestExpectations:
11:17 PM Changeset in webkit [287910] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/LayoutTests

[GLIB] Unreviewed test gardening, emit baseline for WPT test websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html
https://bugs.webkit.org/show_bug.cgi?id=235098

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt: Added.
8:08 PM Changeset in webkit [287909] by Simon Fraser
  • 85 edits in trunk

Serialize CSS <number> values with rounding, limited decimal precision, and no exponents per-spec
LayoutTests/imported/w3c:

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

Reviewed by Darin Adler.

  • web-platform-tests/css/css-cascade/revert-val-006-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-007-expected.txt:
  • web-platform-tests/css/css-easing/cubic-bezier-timing-functions-output-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:
  • web-platform-tests/css/css-fonts/variations/at-font-face-descriptors-expected.txt:
  • web-platform-tests/css/css-masking/clip-path/interpolation-expected.txt:
  • web-platform-tests/css/css-shapes/basic-shape-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/2d-rotate-js-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
  • web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize-expected.txt:
  • web-platform-tests/css/css-values/calc-numbers-expected.txt:
  • web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt:
  • web-platform-tests/css/css-values/minmax-angle-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-number-computed-expected.txt:
  • web-platform-tests/css/css-values/minmax-number-serialize-expected.txt:
  • web-platform-tests/css/css-variables/variable-presentation-attribute-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-line-height-expected.txt:
  • web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt:
  • web-platform-tests/html/rendering/dimension-attributes-expected.txt:
  • web-platform-tests/html/rendering/pixel-length-attributes-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

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

Reviewed by Darin Adler.

Serializes CSS numbers with up to a maximum of 6 decimal places, as required by CSSOM-1
https://www.w3.org/TR/cssom-1/#serialize-a-css-component-value

Introduces CSSUnitType::CSS_INTEGER to differentiate types that are explicitly integers, and uses the
new <number> serialization for CSS_NUMBER.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridPosition):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::doubleValueInternal const):
(WebCore::CSSPrimitiveValue::formatNumberValue const):
(WebCore::CSSPrimitiveValue::formatIntegerValue const):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):

  • css/CSSPrimitiveValue.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator short const):
(WebCore::CSSPrimitiveValue::operator unsigned short const):
(WebCore::CSSPrimitiveValue::operator int const):
(WebCore::CSSPrimitiveValue::operator unsigned const):
(WebCore::CSSPrimitiveValue::operator float const):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LineClampValue const):
(WebCore::CSSPrimitiveValue::operator ColumnSpan const):

  • css/CSSUnits.cpp:

(WebCore::unitCategory):
(WebCore::operator<<):

  • css/CSSUnits.h:
  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):

  • css/MediaQueryEvaluator.cpp:

(WebCore::doubleValue):
(WebCore::evaluateResolution):
(WebCore::devicePixelRatioEvaluate):
(WebCore::computeLength):

  • css/MediaQueryExpression.cpp:

(WebCore::featureWithValidPositiveLength):
(WebCore::featureWithPositiveInteger):
(WebCore::featureWithPositiveNumber):
(WebCore::featureWithZeroOrOne):
(WebCore::MediaQueryExpression::MediaQueryExpression):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

  • css/calc/CSSCalcCategoryMapping.cpp:

(WebCore::calcUnitCategory):
(WebCore::calculationCategoryForCombination):
(WebCore::hasDoubleValue):

  • css/calc/CSSCalcPrimitiveValueNode.cpp:

(WebCore::CSSCalcPrimitiveValueNode::isNumericValue const):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeCounter):
(WebCore::consumeCounterStyleRange):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::createGridPosition):

Source/WTF:

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

Reviewed by Darin Adler.

Add new numberToCSSString and FormattedCSSNumber that handle converting a double into the format required by
CSS (unlimited number of digits before the decimal place, up to 6 decimal places, no trailing zeros.

  • wtf/dtoa.cpp:

(WTF::truncateTrailingZeros):
(WTF::numberToFixedPrecisionString):
(WTF::numberToCSSString):

  • wtf/dtoa.h:
  • wtf/dtoa/double-conversion.cc:
  • wtf/dtoa/double-conversion.h:
  • wtf/text/StringConcatenateNumbers.h:

(WTF::FormattedCSSNumber::create):
(WTF::FormattedCSSNumber::length const):
(WTF::FormattedCSSNumber::buffer const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::StringTypeAdapter):
(WTF::StringTypeAdapter<FormattedCSSNumber>::length const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::is8Bit const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::writeTo const):

LayoutTests:

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

Reviewed by Darin Adler.

  • css3/calc/font-size-fractional-expected.txt:
  • css3/calc/simplification-expected.txt:
  • css3/color-filters/color-filter-parsing.html:
  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-computed-style.html:
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-computed-style.html:
  • css3/filters/unprefixed-expected.txt:
  • css3/filters/unprefixed.html:
  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
  • css3/scroll-snap/scroll-snap-property-computed-style.js:
  • fast/css/calc-parsing-expected.txt:
  • fast/css/calc-parsing-limits-expected.txt:
  • fast/css/calc-parsing-limits.html:
  • fast/css/calc-parsing.html:
  • fast/css/calc-with-angle-time-frequency-expected.txt:
  • fast/css/calc-with-angle-time-frequency.html:
  • fast/css/large-value-csstext-expected.txt:
  • fast/css/line-height-get-computed-style-expected.txt:
  • fast/css/line-height-get-computed-style.html:
  • fast/css/parsing-stroke-width-expected.txt:
  • fast/css/round-trip-values-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/pixel-length-attributes-expected.txt:
  • platform/ios/fast/forms/search/search-zoom-computed-style-height-expected.txt:
  • svg/css/parse-height-expected.txt:
  • svg/css/parse-height.html:
  • svg/css/parse-length-expected.txt:
  • svg/css/parse-length.html:
  • transitions/frames-timing-function-expected.txt:
8:03 PM Changeset in webkit [287908] by mark.lam@apple.com
  • 5 edits in trunk/Source

Update hashThreadState() to exclude opaque_flags.
https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584

Reviewed by Keith Miller.

Source/JavaScriptCore:

Removed some unused code.

  • runtime/MachineContext.h:

(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::linkRegister):
(JSC::MachineContext::setStackPointer): Deleted.
(JSC::MachineContext::setFramePointer): Deleted.
(JSC::MachineContext::setLinkRegister): Deleted.

Source/WTF:

The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the
opaque_flags field.

Also remove some unused code.

  • wtf/PlatformRegisters.h:
  • wtf/threads/Signals.cpp:

(WTF::hashThreadState):

8:01 PM Changeset in webkit [287907] by ggaren@apple.com
  • 4 edits in trunk

WebPageProxy destruction should not launch a network process
https://bugs.webkit.org/show_bug.cgi?id=235086

Reviewed by Alex Christensen.

Source/WebKit:

Inspired by a backtrace in rdar://86706412.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::~WebPageProxy): No need to message the network
process requesting our removal if it doesn't exist.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST): Include WebView destruction in the test. Also do a little
run loop spinning, to give the test a better chance of failing when
async behavior does launch the Network process.

6:14 PM Changeset in webkit [287906] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Remove references to moved/deleted files in WebKit.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=235090

Reviewed by Yusuke Suzuki.

  • WebKit.xcodeproj/project.pbxproj:
5:13 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
4:47 PM Changeset in webkit [287905] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.6

Tag Safari-613.1.12.1.6.

4:46 PM Changeset in webkit [287904] by Russell Epstein
  • 1 delete in tags/Safari-613.1.12.1.6

Delete tag.

3:48 PM Changeset in webkit [287903] by commit-queue@webkit.org
  • 13 edits in trunk

[Wasm] Unify memory import handling in module loader and JS cases
https://bugs.webkit.org/show_bug.cgi?id=234116

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

JSTests:

Add an instantiation test case that tests that instantiating the same
binary module twice will not crash.

  • wasm/js-api/web-assembly-instantiate.js:

(assert.asyncTest.async test):
(assert.asyncTest):

LayoutTests/imported/w3c:

Adjust Wasm WPT test expectations now that getter ordering tests
should pass.

  • web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
  • web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming.any-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming.any.worker-expected.txt:

Source/JavaScriptCore:

Moves the memory import handling code to the Wasm module record and
use the strategy used by the module loader to handle memory in all
cases.

  • wasm/WasmModule.cpp:

(JSC::Wasm::Module::copyInitialCalleeGroupToAllMemoryModes):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::tryCreate):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImportsAndExports):

3:45 PM Changeset in webkit [287902] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE

Cherry-pick r287894. rdar://problem/87417913

ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076

Reviewed by Dean Jackson.

<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS

This patch fixes an internal build.

  • scripts/code_generation_hashes/Metal_format_table.json:
  • src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_astc_case_tv_watchos): (gen_image_map_switch_string): (gen_image_mtl_to_angle_switch_string): (gen_image_map_switch_astc_case_watchos): Deleted. (gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): (rx::mtl::Format::init):

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

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

[JSC] Fix kind of error thrown by wasm module creation
https://bugs.webkit.org/show_bug.cgi?id=235082

Reviewed by Michael Saboff.

It should throw WebAssembly.CompileError instead of WebAssembly.LinkError.
This fixes occasional failure in wasm imports-oom.js test.

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):

3:38 PM Changeset in webkit [287900] by Russell Epstein
  • 3 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE

Cherry-pick r287894. rdar://problem/87417913

ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076

Reviewed by Dean Jackson.

<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS

This patch fixes an internal build.

  • scripts/code_generation_hashes/Metal_format_table.json:
  • src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_astc_case_tv_watchos): (gen_image_map_switch_string): (gen_image_mtl_to_angle_switch_string): (gen_image_map_switch_astc_case_watchos): Deleted. (gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): (rx::mtl::Format::init):

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

3:25 PM Changeset in webkit [287899] by Peng Liu
  • 2 edits in trunk/Source/WebCore

DataURLResourceMediaLoader decodes the URL repeatedly during a video playback
https://bugs.webkit.org/show_bug.cgi?id=234940

Reviewed by Darin Adler.

In r264864, we adopted a new SPI to tell AVFoundation that the entire file is available for custom URLs.
As a result, during a video playback, AVFoundation will request small data ranges instead of "caching"
the whole file again.

However, that leads to efficiency issue for DataURLResourceMediaLoader. Because it needs to decode the whole
URL when AVFoundation requests a data range, which is inefficient when the URL is very long.

This patch reverts the change in r264864 for the DataURLResourceMediaLoader case to fix the performance issue.
If DataURLDecoder::decode() supports decoding a data range in the future, we can change it back for better
memory efficiency.

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

(WebCore::WebCoreAVFResourceLoader::responseReceived):

3:17 PM Changeset in webkit [287898] by Megan Gardner
  • 14 edits in trunk/LayoutTests

Rewrite touch and drag tests to be more robust.
https://bugs.webkit.org/show_bug.cgi?id=235057
rdar://86035420

Reviewed by Wenson Hsieh.

Rewrite the touch-and-drag tests to check for selection changes, not specific text selections.
Specific selections and subject to small changes in font and layout, and all that is actually important is that
there have been selection changes based off of dragged touches.
The touch-event-radius test has been updated to use the screen size directly, since the radius is scaled by the screen size
internally. The output has been changed to not need to be updated when the test phone changes.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-then-drag-to-select-text-expected.txt:
  • fast/events/touch/ios/long-press-then-drag-to-select-text.html:
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/touch-event-radius-expected.txt:
  • fast/events/touch/ios/touch-event-radius.html:
2:52 PM Changeset in webkit [287897] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.6

Tag Safari-613.1.12.1.6.

2:44 PM Changeset in webkit [287896] by graouts@webkit.org
  • 7 edits in trunk

css/css-transitions/KeyframeEffect-setKeyframes.tentative.html is a failure (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235077

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progression, this test now passes entirely.

  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:

Source/WebCore:

There were a few issues that prevented the final subtest in this WPT from passing
after the fix made in bug 235062.

First, while we must flush pending style changes for some of the Web Animations APIs
when called on a style-originated animation (CSS Transition or CSS Animation), this
should not apply to setters, only getters. In the context of this test, it was critical
that either setting keyframes or setting the current time not force pending style changes
to be flushed or a reversing CSS Transition may be started too soon and the test would
fail.

Second, when the spec says to use the "the current value of the property in the running
transition", it is equivalent to using the before-change style since we updated the
current value of all animations targeting this element, not getting the value from the
last time this transition was resolved since this would not account for any API calls
or style changes since then, which is precisely what this test is checking.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::setBindingsStartTime): Deleted.
(WebCore::DeclarativeAnimation::setBindingsCurrentTime): Deleted.

  • animation/DeclarativeAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setBindingsKeyframes):

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

1:57 PM Changeset in webkit [287895] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] Inspector Extensions: tabIconURLs with custom scheme URLs are incorrectly loaded
https://bugs.webkit.org/show_bug.cgi?id=235045
<rdar://problem/87357027>

Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:

(-[_WKInspectorExtension createTabWithName:tabIconURL:sourceURL:completionHandler:]):
Construct a WTF::URL from the .baseURL and the .relativePath of the NSURL.

1:49 PM Changeset in webkit [287894] by Kyle Piddington
  • 4 edits in trunk/Source/ThirdParty/ANGLE

ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076

Reviewed by Dean Jackson.

<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS

This patch fixes an internal build.

  • scripts/code_generation_hashes/Metal_format_table.json:
  • src/libANGLE/renderer/metal/gen_mtl_format_table.py:

(gen_image_map_switch_astc_case_tv_watchos):
(gen_image_map_switch_string):
(gen_image_mtl_to_angle_switch_string):
(gen_image_map_switch_astc_case_watchos): Deleted.
(gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.

  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:

(rx::mtl::Format::MetalToAngleFormatID):
(rx::mtl::Format::init):

1:36 PM Changeset in webkit [287893] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Remove ios-wk1 test expectations
https://bugs.webkit.org/show_bug.cgi?id=232582

Reviewed by Darin Adler.

  • platform/ios-wk1: Removed.
12:30 PM Changeset in webkit [287892] by Said Abou-Hallawa
  • 54 edits in trunk/Source/WebCore

[GPU Process] Remove the dependency from FilterEffect to its inputs
https://bugs.webkit.org/show_bug.cgi?id=232841
rdar://85425930

Reviewed by Darin Adler.

This is the last clean-up in the FilterEffect code. It will make the
FilterEffect objects in the GPUProcess resemble exactly their counterpart
ones in the WebProcess from now on.

For CSSFilter, we do not need to set the input effects because every
FilterFunction is the input of its successor. Passing the previous result
FilterImage to the apply() method of the current FilterFunction is enough
to get the filter applied correctly.

For SVGFilter, we need the filter effect inputs only when building the
SVGFilterExpression. So we can build a HashMap in SVGFilterBuilder which
maps a FilterEffect to its input FilterEffectVector. To make the change
clearer, the SVGFExxxElement classes will implement two methods:

  1. filterEffectInputsNames() which returns the names of the input FilterEffects.
  2. filterEffect() which returns the FilterEffect representing this element.

SVGFilterBuilder::buildFilterEffects() converts the names to FilterEffects.

No need to initialize the SourceGraphic of the referenced SVGFilter with
the FilterEffect of its previous FilterFunction. The referenced SVGFilter
will create its own native SourceGraphic. This SourceGraphic will copy
the input FilterImage to the result FilterImage.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::inputEffect const): Deleted.

  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::inputEffects): Deleted.

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::create):
(WebCore::SourceAlpha::SourceAlpha):

  • platform/graphics/filters/SourceAlpha.h:
  • rendering/CSSFilter.cpp:

(WebCore::createSVGFilter):
(WebCore::CSSFilter::buildFilterFunctions):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::filterEffect const):
(WebCore::SVGFEBlendElement::build const): Deleted.

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

(WebCore::SVGFEColorMatrixElement::filterEffect const):
(WebCore::SVGFEColorMatrixElement::build const): Deleted.

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

(WebCore::SVGFEComponentTransferElement::filterEffect const):
(WebCore::SVGFEComponentTransferElement::build const): Deleted.

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

(WebCore::SVGFECompositeElement::filterEffect const):
(WebCore::SVGFECompositeElement::build const): Deleted.

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

(WebCore::SVGFEConvolveMatrixElement::filterEffect const):
(WebCore::SVGFEConvolveMatrixElement::build const): Deleted.

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

(WebCore::SVGFEDiffuseLightingElement::filterEffect const):
(WebCore::SVGFEDiffuseLightingElement::build const): Deleted.

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

(WebCore::SVGFEDisplacementMapElement::filterEffect const):
(WebCore::SVGFEDisplacementMapElement::build const): Deleted.

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

(WebCore::SVGFEDistantLightElement::lightSource const):

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

(WebCore::SVGFEDropShadowElement::filterEffect const):
(WebCore::SVGFEDropShadowElement::build const): Deleted.

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

(WebCore::SVGFEFloodElement::filterEffect const):
(WebCore::SVGFEFloodElement::build const): Deleted.

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

(WebCore::SVGFEGaussianBlurElement::filterEffect const):
(WebCore::SVGFEGaussianBlurElement::build const): Deleted.

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

(WebCore::SVGFEImageElement::filterEffect const):
(WebCore::SVGFEImageElement::build const): Deleted.

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

(WebCore::SVGFEMergeElement::filterEffectInputsNames const):
(WebCore::SVGFEMergeElement::filterEffect const):
(WebCore::SVGFEMergeElement::build const): Deleted.

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

(WebCore::SVGFEMorphologyElement::filterEffect const):
(WebCore::SVGFEMorphologyElement::build const): Deleted.

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

(WebCore::SVGFEOffsetElement::filterEffect const):
(WebCore::SVGFEOffsetElement::build const): Deleted.

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

(WebCore::SVGFEPointLightElement::lightSource const):

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

(WebCore::SVGFESpecularLightingElement::filterEffect const):
(WebCore::SVGFESpecularLightingElement::build const): Deleted.

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

(WebCore::SVGFESpotLightElement::lightSource const):

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

(WebCore::SVGFETileElement::filterEffect const):
(WebCore::SVGFETileElement::build const): Deleted.

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

(WebCore::SVGFETurbulenceElement::filterEffect const):
(WebCore::SVGFETurbulenceElement::build const): Deleted.

  • svg/SVGFETurbulenceElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.h:

(WebCore::SVGFilterPrimitiveStandardAttributes::filterEffectInputsNames const):

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):

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

(WebCore::SVGFilterBuilder::setupBuiltinEffects):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::sourceGraphic const):
(WebCore::SVGFilterBuilder::sourceAlpha const):
(WebCore::SVGFilterBuilder::addNamedEffect):
(WebCore::SVGFilterBuilder::namedEffect const):
(WebCore::SVGFilterBuilder::namedEffects const):
(WebCore::SVGFilterBuilder::setEffectInputs):
(WebCore::SVGFilterBuilder::buildEffectExpression const):
(WebCore::SVGFilterBuilder::add): Deleted.
(WebCore::SVGFilterBuilder::getEffectById const): Deleted.

  • svg/graphics/filters/SVGFilterBuilder.h:
10:53 AM Changeset in webkit [287891] by Nikita Vasilyev
  • 7 edits in trunk

REGRESSION (r283723): Web Inspector: CSS declarations unexpectedly removed when editing property value
https://bugs.webkit.org/show_bug.cgi?id=233195

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Re-attach CSS property if it was detached while editing.

CSSProperty is detached when focusing on property name and deleting it. Consequent edits of the detached
CSSProperty were not saved. This patch re-attaches detached property at the previous position.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.set name):

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.newBlankProperty):
(WI.CSSStyleDeclaration.prototype.insertProperty):
Introduce this method since the logic is used in two different places now.

LayoutTests:

Test removing CSS property name.

  • inspector/css/modify-css-property-expected.txt:
  • inspector/css/modify-css-property.html:
  • inspector/css/resources/modify-css-property.css:

(.rule-e):

10:46 AM Changeset in webkit [287890] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.4

Tag Safari-613.1.12.4.

10:43 AM Changeset in webkit [287889] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Use the new template ColorSpaceCG helpers to cleanup some code
https://bugs.webkit.org/show_bug.cgi?id=235034

Reviewed by Cameron McCormack.

Utilize the new template helpers in ColorSpaceCG.h to remove some #ifdefs.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColorTransform):
Add a singleton for this transform since it is always the same.

(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):
(WebCore::convertToCGCompatibleComponents):
(WebCore::createCGColor):
(WebCore::platformConvertColorComponents):
Replace #ifdefs with constexpr checking of HasCGColorSpaceMapping<>. Also switch
some c-style arrays to std::array for consistency with the rest of the codebase.

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::classifyAlphaType):
Make constexpr (feedback from a previous change).

(WebCore::GradientRendererCG::makeGradient const):
(WebCore::GradientRendererCG::Shading::shadingFunction):
(WebCore::GradientRendererCG::makeShading const):
Replace #ifdefs with constexpr checking of HasCGColorSpaceMapping<>.

10:31 AM Changeset in webkit [287888] by Russell Epstein
  • 6 edits
    1 add in branches/safari-613.1.12-branch/Source

Cherry-pick r287884. rdar://problem/87206692

Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059

Reviewed by Filip Pizlo.

Source/WebCore:

Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.

Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy:

On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/create-symlink-to-altroot.sh: Added.

Source/WebKitLegacy/mac:

Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.

Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.

Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.

  • Configurations/WebKitLegacy.xcconfig:

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

10:30 AM Changeset in webkit [287887] by Russell Epstein
  • 9 edits in branches/safari-613.1.12-branch/Source

Versioning.

WebKit-7613.1.12.4

10:16 AM Changeset in webkit [287886] by Alan Coon
  • 6 edits
    1 add in branches/safari-613-branch/Source

Cherry-pick r287884. rdar://problem/87206692

Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059

Reviewed by Filip Pizlo.

Source/WebCore:

Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.

Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy:

On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/create-symlink-to-altroot.sh: Added.

Source/WebKitLegacy/mac:

Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.

Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.

Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.

  • Configurations/WebKitLegacy.xcconfig:

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

9:58 AM Changeset in webkit [287885] by Russell Epstein
  • 4 edits in branches/safari-613.1.12.1-branch

Cherry-pick r287360. rdar://problem/86743595

[WebAuthn] Set Web Authentication experimental feature flag as default true
https://bugs.webkit.org/show_bug.cgi?id=234533
<rdar://problem/86743595>

Reviewed by Brent Fulgham.

Source/WTF:

The Web Authentication feature has been shipping for a while. Default value
for experimental feature flag should be true.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

The Web Authentication feature has been shipping for a while. Default value for
experimental feature flag should be true.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): (TestWebKitAPI::WebCore::webAuthenticationExperimentalFeature): Deleted.

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

9:55 AM Changeset in webkit [287884] by msaboff@apple.com
  • 6 edits
    1 add in trunk/Source

Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059

Reviewed by Filip Pizlo.

Source/WebCore:

Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.

Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy:

On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/create-symlink-to-altroot.sh: Added.

Source/WebKitLegacy/mac:

Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.

Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.

Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.

  • Configurations/WebKitLegacy.xcconfig:
9:50 AM Changeset in webkit [287883] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.6

9:43 AM Changeset in webkit [287882] by commit-queue@webkit.org
  • 18 edits
    8 copies
    66 adds
    2 deletes in trunk/LayoutTests

[CSS contain] Update css-contain tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=235060

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-11
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Update css/css-contain/ tests to commit 5d1525416b.

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-fieldset-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-fieldset.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flex-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flex.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flexitem-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-flexitem.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-grid-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-grid.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-legend-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-legend.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-multicol-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-multicol.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-regular-container-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-regular-container.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-table-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-table.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-vertical-rl--expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-vertical-rl-.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-056.html:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059-expected.html: Removed.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059.html: Removed.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-082-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-082.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-083-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-083.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-084-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-084.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-hit-test-contents-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-img-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-img.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-in-svg-000-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-input-image-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-input-image.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-svg-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-svg.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-000.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-000.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-001.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-001.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-002.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-002.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-003.tentative-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-003.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-004.tentative-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-004.tentative.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/contentvisibility-nestedslot-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/document-element-computed-style-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/document-element-computed-style.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/hidden-execcommand-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/hidden-pseudo-element-removed-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/meter-selection-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/slot-content-visibility.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/w3c-import.log:
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-1-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-10-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-11-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-12-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-13-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-14-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-15-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-16-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-17-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-18-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-19-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-2-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-20-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-21-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-3-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-4-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-5-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-6-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-7-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-8-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-9-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed.html:
  • web-platform-tests/css/css-contain/parsing/contain-invalid-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-invalid.html:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid.html:
  • web-platform-tests/css/css-contain/w3c-import.log:

LayoutTests:

8:20 AM Changeset in webkit [287881] by graouts@webkit.org
  • 5 edits in trunk

css/css-transitions/KeyframeEffect-setKeyframes.tentative.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=235062

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:

Source/WebCore:

The WPT at css/css-transitions/KeyframeEffect-setKeyframes.tentative.html, which checks
the behavior of programmatically changing keyframes for a CSS Transition, highlighted
three failures:

  1. we did not flush pending style changes as setKeyframes() was called for an animation created fromm CSS (CSS Transition or CSS Animation),
  2. we did not use the style from the last style update to computed the before-change style if available, but rather the computed style generated _after_ the last style update,
  3. we did not apply _all_ animations as we compute the before-change style to consider new transitions to run, but only animations matching the current property.

We've corrected all of those errors and this test now passes save for one failure, which
seems to be a different type of problem and will be looked at in a future patch.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setBindingsKeyframes):

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

7:44 AM Changeset in webkit [287880] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Make [WebAccessibilityObjectWrapperBase axBackingObject] return the appropriate underlying object for the calling thread.
https://bugs.webkit.org/show_bug.cgi?id=235046
<rdar://problem/87358177>

Reviewed by Chris Fleizach.

In isolated tree mode, WebAccessibilityObjectWrapperBase axBackingObject
can be called on and off the main thread. This change ensures that the
AXIsolatedObject is always returned off the main thread, while the
AXObejct is always returned on the main thread, which is the required
behavior.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase axBackingObject]):

7:41 AM Changeset in webkit [287879] by weinig@apple.com
  • 6 edits in trunk/Source

Remove AppleTV specific disabling of conic gradients, its not necessary
https://bugs.webkit.org/show_bug.cgi?id=235041

Reviewed by Darin Adler.

Source/WebCore:

There doesn't seem to be any reason to disable conic gradients on AppleTV. We do still
need to disable it on windows, but rather than hard coding this in WebCore, use a new
HAVE macro to conditionalize the code.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::paint):

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::GradientRendererCG::drawConicGradient):

Source/WTF:

Add HAVE_CORE_GRAPHICS_CONIC_GRADIENTS macro and use it to control ENABLE_CSS_CONIC_GRADIENTS.

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
7:18 AM Changeset in webkit [287878] by ntim@apple.com
  • 5 edits
    1 copy in trunk

::backdrop pseudo element should react to associated element event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html

We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.

We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):

LayoutTests:

iOS failure is due to WPT test_driver actions being unsupported.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.
6:43 AM Changeset in webkit [287877] by Adrian Perez de Castro
  • 19 edits in trunk/Source

Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
  • wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the

JSC::OptimizingCallLinkInfo type.

Source/WebCore:

No new tests needed.

  • Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
  • Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward

declaration for the WebCore::ScriptExecutionContext type.

  • animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
  • animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
  • html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
  • platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
  • rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
  • rendering/svg/RenderSVGForeignObject.cpp: Ditto.
  • rendering/svg/RenderSVGInline.cpp: Ditto.
  • rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
  • rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
  • svg/SVGViewElement.cpp: Add missing RenderElement.h header.
  • workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the

WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.

Source/WebKit:

  • Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now

unneeded ArgumentCoders.h header.

6:07 AM Changeset in webkit [287876] by Carlos Garcia Campos
  • 24 edits in trunk

[GTK][a11y] Web process crashes in some sites having SVG images
https://bugs.webkit.org/show_bug.cgi?id=234737

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Unfortunately the changes in r287388 are not enough, it can still happen that root hasn't been set to the
SVGImage page when the wrappers are created. So, we can't actually create the wrappers with a reference to the
root object as we did in r286767. In most of the cases wrappers use the root just to get AccessibilityAtspi,
which is not a singleton, but it's created and owned by the web process singleton at startup, so it can be
accessed globaly. This patch makes AccessibilityAtspi a singleton to get the global instance without having to
keep a reference in the root object.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement const): Move the code to set the root in SVGImage page
before the remote svg wrapper is created.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::attachWrapper): Just pass the page root object to the wrapper constructor, that now
receives a pointer that might be nullptr.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::AccessibilityAtspi): Just create the WorkQueue.
(WebCore::AccessibilityAtspi::singleton): Return a reference to the global instance.
(WebCore::AccessibilityAtspi::connect): Connect to the given dbus address.
(WebCore::AccessibilityAtspi::applicationReference const): This allows wrappers to get the application reference
without having to check if m_root is nullptr or not.
(WebCore::AccessibilityAtspi::parentChanged): Use AccessibilityObjectAtspi::isTreeRegistered()
(WebCore::AccessibilityAtspi::childrenChanged): Ditto.

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::create): Receive a AccessibilityRootAtspi pointer instead of reference.
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi): Ditto.
(WebCore::AccessibilityObjectAtspi::cacheDestroyed): Only call AccessibilityRootAtspi::childRemoved if parent is
the root object.
(WebCore::AccessibilityObjectAtspi::elementDestroyed): Null check m_root and use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::root): Get the root if already set or try to get it from the page.
(WebCore::AccessibilityObjectAtspi::isTreeRegistered const): Return try if root has been set and its tree has
been registered.
(WebCore::AccessibilityObjectAtspi::registerObject): Use AccessibilityObjectAtspi::root().
(WebCore::AccessibilityObjectAtspi::reference): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::hyperlinkReference): Ditto.
(WebCore::AccessibilityObjectAtspi::setParent): Return early also if root hasn't been set yet.
(WebCore::AccessibilityObjectAtspi::parentReference const): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::serialize const): Ditto.
(WebCore::AccessibilityObjectAtspi::childAdded): Ditto.
(WebCore::AccessibilityObjectAtspi::childRemoved): Ditto.
(WebCore::AccessibilityObjectAtspi::stateChanged): Ditto.
(WebCore::AccessibilityObjectAtspi::loadEvent): Ditto.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::selectionChanged): Ditto.

  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textInserted): Ditto.
(WebCore::AccessibilityObjectAtspi::textDeleted): Ditto.
(WebCore::AccessibilityObjectAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityObjectAtspi::textAttributesChanged): Ditto.

  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::valueChanged): Ditto.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::create): Remove AccessibilityAtspi parameter.
(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi): Ditto.
(WebCore::AccessibilityRootAtspi::registerObject): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityRootAtspi::unregisterObject): Ditto
(WebCore::AccessibilityRootAtspi::embedded): Ditto.
(WebCore::AccessibilityRootAtspi::applicationReference const): Ditto.
(WebCore::AccessibilityRootAtspi::reference const): Ditto.
(WebCore::AccessibilityRootAtspi::childAdded): Ditto.
(WebCore::AccessibilityRootAtspi::childRemoved): Ditto.
(WebCore::AccessibilityRootAtspi::serialize const): Ditto.

  • accessibility/atspi/AccessibilityRootAtspi.h:

Source/WebKit:

Use AccessibilityAtspi::singleton().

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::accessibilityAtspi const): Deleted.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Use AccessibilityAtspi::singleton().

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::AccessibilityController::axRunLoop):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:

(WTR::AccessibilityNotificationHandler::AccessibilityNotificationHandler):
(WTR::AccessibilityNotificationHandler::~AccessibilityNotificationHandler):

5:45 AM Changeset in webkit [287875] by Martin Robinson
  • 4 edits in trunk

Some css-transforms tests assert in debug
https://bugs.webkit.org/show_bug.cgi?id=230079
<rdar://problem/83179970>

Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This is covered by existing WPT tests. This change fixes
five assertions and one test completely. In addition, it leads to progressions,
but not complete fixes, in the four remaining tests.

Table elements, which can be transformed, were not properly forming containing blocks
for fixed and absolutely positioned elements.

  • rendering/RenderElement.h:

(WebCore::RenderElement::canContainFixedPositionObjects const): Return true even when
we have a transformed element that is not a block.
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const): Ditto.
(WebCore::RenderElement::isTransformable const): Added this helper which returns whether
not SVG elements are transformable. Eventually this should be extended to handle SVG
elements as well.

LayoutTests:

5:22 AM Changeset in webkit [287874] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

REGRESSION (Lazy tree creation): css3/calc/transitions-dependent.html is frequently failing
https://bugs.webkit.org/show_bug.cgi?id=126142
<rdar://problem/15725243>

Reviewed by Alexey Proskuryakov.

This test is no longer flaky, it has been consistently failing with fixed values. Update
'innerTransition' expected values to match actual values.

The test code was modernized to make it pass in other browsers since getPropertyCSSValue()
is deprecated and no longer supported by Chrome or Firefox).

  • TestExpectations:
  • css3/calc/transitions-dependent-expected.txt:
  • css3/calc/transitions-dependent.html:
  • platform/gtk/TestExpectations:
4:57 AM Changeset in webkit [287873] by Nikolas Zimmermann
  • 9 edits
    2 adds in trunk/Source/WebCore

[LBSE] Introduce SVGBoundingBoxComputation
https://bugs.webkit.org/show_bug.cgi?id=234632
<rdar://problem/87001334>

Reviewed by Rob Buis.

Upstream SVGBoundingBoxComputation, a utility class
implementing the SVG2 "bounding box computation" algorithm,
as spec'ed in https://svgwg.org/svg2-draft/coords.html#BoundingBoxes.

SVG2 also specifies a new optional argument for getBBox() & friends:
DOMRect getBBox(optional SVGBoundingBoxOptions options = {});

SVGBoundingBoxOptions can be implemented using SVGBoundingBoxComputation:
exposing this to the Web is left for the future, once more of LBSE is ready.

LBSE utilizes SVGBoundingBoxComputation whenever any kind of bounding box
needs to be computed (object / stroke / decorated (e.g. including markers).

Covered by existing tests, no change in behaviour.

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

(WebCore::LegacyRenderSVGModelObject::visualOverflowRectEquivalent const): Deleted.

  • rendering/svg/RenderSVGModelObject.h:

(WebCore::RenderSVGModelObject::visualOverflowRectEquivalent const):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/SVGBoundingBoxComputation.cpp: Added.

(WebCore::SVGBoundingBoxComputation::SVGBoundingBoxComputation):
(WebCore::SVGBoundingBoxComputation::~SVGBoundingBoxComputation):
(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox const):
(WebCore::SVGBoundingBoxComputation::handleShapeOrTextOrInline const):
(WebCore::SVGBoundingBoxComputation::handleRootOrContainer const):
(WebCore::SVGBoundingBoxComputation::handleForeignObjectOrImage const):
(WebCore::SVGBoundingBoxComputation::adjustBoxForClippingAndEffects const):

  • rendering/svg/SVGBoundingBoxComputation.h: Added.

(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox):
(WebCore::SVGBoundingBoxComputation::computeRepaintBoundingBox):
(WebCore::SVGBoundingBoxComputation::computeVisualOverflowRect):

12:53 AM Changeset in webkit [287872] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][a11y] WTR: do not immediately process main thread events while waiting for ax thread task
https://bugs.webkit.org/show_bug.cgi?id=234950

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Run a layout before creating the isolated tree to ensure we get an updated tree after ignored is computed.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::create):

Tools:

We want to process the main thread events while waiting for ax thread to avoid blocking in case the ax thread
needs to get any value from the main thread. This might have side effects causing things to happen earlier than
expected. This patch only process main thread events after 125 milliseconds waiting for the ax thread, because
that probably means the ax thread is waiting for the main thread. This made most of the test to pass in isolated
tree mode with ATSPI.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::AccessibilityController::executeOnAXThreadAndWait):

12:52 AM Changeset in webkit [287871] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK][a11y] Set active state when element is the selected option active or aria-current isn't false with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235029

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::state const):

Tools:

Add a unit test to check acive state and implement AccessibilityUIElement::currentStateValue().

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testAccessibleState):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::currentStateValue const): Deleted.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

Note: See TracTimeline for information about the timeline view.