Timeline



Nov 22, 2021:

6:28 PM Changeset in webkit [286126] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Have ScrollAnimator::scrollToPositionWithAnimation() take a clamping argument
https://bugs.webkit.org/show_bug.cgi?id=233438

Reviewed by Cameron McCormack.

Create symmetry between scrollToPositionWithAnimation() and scrollToPositionWithoutAnimation()
by adding a ScrollClamping argument to the former. Neither need to be virtual.

ScrollAnimator::cancelAnimations() does not need to be virtual.

Rename ScrollableArea::constrainScrollPosition() to ScrollableArea::constrainedScrollPosition()
because it just returns a new position.

  • platform/KeyboardScrollingAnimator.cpp:

(WebCore::KeyboardScrollingAnimator::updateKeyboardScrollPosition):
(WebCore::KeyboardScrollingAnimator::stopKeyboardScrollAnimation):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scrollToPositionWithAnimation):
(WebCore::ScrollAnimator::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollAnimator::adjustScrollPositionIfNecessary const):

  • platform/ScrollAnimator.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToPositionWithAnimation):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::constrainedScrollPosition const):
(WebCore::ScrollableArea::constrainScrollPosition const): Deleted.

6:24 PM Changeset in webkit [286125] by Wenson Hsieh
  • 17 edits
    7 deletes in trunk

Remove old concurrent display list logic that's no longer necessary
https://bugs.webkit.org/show_bug.cgi?id=233433

Reviewed by Sam Weinig.

Source/WebCore:

Now that concurrent display lists (i.e. for 2D canvas and DOM rendering in the GPU process) uses the same shared
IPC streaming mechanism as WebGL, we can remove the old concurrent display list processing logic around display
lists and the remote rendering backend in WebKit2.

No change in behavior, since this code is now all (effectively) unused.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):

Additionally remove a couple of display list items that were only used for concurrent display list processing.
In a followup, we should remove more logic around this area pertaining to display list reader and writer
clients, and the display list replayer delegate.

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::MetaCommandChangeItemBuffer::MetaCommandChangeItemBuffer): Deleted.
(WebCore::DisplayList::MetaCommandChangeItemBuffer::identifier const): Deleted.
(WebCore::DisplayList::MetaCommandChangeItemBuffer::isValid const): Deleted.
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::MetaCommandChangeDestinationImageBuffer): Deleted.
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::identifier const): Deleted.
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::isValid const): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

Source/WebKit:

See WebCore ChangeLog for more details.

  • GPUProcess/graphics/DisplayListReaderHandle.cpp: Removed.
  • GPUProcess/graphics/DisplayListReaderHandle.h: Removed.
  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackendState.h: Removed.
  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp:

Add missing include to fix the build with unified sources.

  • Shared/GPUProcessWakeupMessageArguments.h: Removed.
  • Shared/SharedDisplayListHandle.h: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/DisplayListWriterHandle.cpp: Removed.
  • WebProcess/GPU/graphics/DisplayListWriterHandle.h: Removed.
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.h:

Add another missing include to fix the build with unified sources.

Tools:

See WebCore ChangeLog for more details.

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

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

[WebGPU] Use OptionSet where it makes sense to
https://bugs.webkit.org/show_bug.cgi?id=233434

Reviewed by Wenson Hsieh.

Source/WebCore:

The fact that the IDL has a bunch of hardcoded const variables doesn't mean we have to.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUBufferUsage.h:

(WebCore::convertBufferUsageFlagsToBacking):

  • Modules/WebGPU/GPUColorWrite.h:

(WebCore::convertColorWriteFlagsToBacking):

  • Modules/WebGPU/GPUMapMode.h:

(WebCore::convertMapModeFlagsToBacking):

  • Modules/WebGPU/GPUShaderStage.h:

(WebCore::convertShaderStageFlagsToBacking):

  • Modules/WebGPU/GPUTextureUsage.h:

(WebCore::convertTextureUsageFlagsToBacking):

Source/WebCore/PAL:

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

(PAL::WebGPU::ConvertToBackingContext::convertBufferUsageFlagsToBacking):
(PAL::WebGPU::ConvertToBackingContext::convertColorWriteFlagsToBacking):
(PAL::WebGPU::ConvertToBackingContext::convertMapModeFlagsToBacking):
(PAL::WebGPU::ConvertToBackingContext::convertShaderStageFlagsToBacking):
(PAL::WebGPU::ConvertToBackingContext::convertTextureUsageFlagsToBacking):

  • pal/graphics/WebGPU/WebGPUBufferUsage.h:
  • pal/graphics/WebGPU/WebGPUColorWrite.h:
  • pal/graphics/WebGPU/WebGPUMapMode.h:
  • pal/graphics/WebGPU/WebGPUShaderStage.h:
  • pal/graphics/WebGPU/WebGPUTextureUsage.h:
5:46 PM Changeset in webkit [286123] by mmaxfield@apple.com
  • 4 edits in trunk

rem in media queries should be calculated using font-size:initial, not root element font-size
https://bugs.webkit.org/show_bug.cgi?id=156684
<rdar://problem/25778616>

Reviewed by Antti Koivisto.

Source/WebCore:

The CSS spec says:

Relative units in media queries are based on the initial value, which means that units are never based on results of declarations.

Tests: imported/w3c/web-platform-tests/css/mediaqueries/relative-units-001.html

imported/w3c/web-platform-tests/css/mediaqueries/mq-calc-005.html

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evaluate const):

LayoutTests:

4:51 PM Changeset in webkit [286122] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Fix some license find/replace errors
https://bugs.webkit.org/show_bug.cgi?id=233435

Reviewed by Sam Weinig.

  • platform/graphics/FontCascadeDescription.h:
  • platform/graphics/FontDescription.h:
3:32 PM Changeset in webkit [286121] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use IFC for preferred width computation for inline boxes
https://bugs.webkit.org/show_bug.cgi?id=232616

Reviewed by Alan Bujtas.

  • rendering/RenderBlockFlow.cpp:
3:23 PM Changeset in webkit [286120] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[MSVC] IPC\DaemonConnection.h(80): warning C4661: 'void WebKit::Daemon::ConnectionToMachService<WebKit::PCM::ConnectionTraits>::initializeConnectionIfNeeded(void) const': no suitable definition provided for explicit template instantiation request
https://bugs.webkit.org/show_bug.cgi?id=233413

Reviewed by Ross Kirsling.

WinCairo build reports the following warnings.

Source\WebKit\Platform\IPC\DaemonConnection.h(80): warning C4661: 'void WebKit::Daemon::ConnectionToMachService<WebKit::PCM::ConnectionTraits>::initializeConnectionIfNeeded(void) const': no suitable definition provided for explicit template instantiation request
Source\WebKit\Platform\IPC\DaemonConnection.h(77): note: see declaration of 'WebKit::Daemon::ConnectionToMachService<WebKit::PCM::ConnectionTraits>::initializeConnectionIfNeeded'
Source\WebKit\Platform/IPC/DaemonConnection.cpp(40): warning C4661: 'void WebKit::Daemon::ConnectionToMachService<WebKit::PCM::ConnectionTraits>::initializeConnectionIfNeeded(void) const': no suitable definition provided for explicit template instantiation request
Source\WebKit\Platform\IPC\DaemonConnection.h(77): note: see declaration of 'WebKit::Daemon::ConnectionToMachService<WebKit::PCM::ConnectionTraits>::initializeConnectionIfNeeded'

  • Platform/IPC/DaemonConnection.cpp:

(WebKit::Daemon::ConnectionToMachService<Traits>::initializeConnectionIfNeeded const):
Added.

1:30 PM Changeset in webkit [286119] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Clarify the behavior of ScrollAnimator::scroll()
https://bugs.webkit.org/show_bug.cgi?id=233403

Unreviewed.

Address patch feedback from Chris Lord.

  • dom/Element.cpp:

(WebCore::Element::scrollByUnits):

  • page/FrameView.cpp:

(WebCore::FrameView::adjustVerticalPageScrollStepForFixedContent):
(WebCore::FrameView::adjustScrollStepForFixedContent): Deleted.

  • page/FrameView.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::singleAxisScroll):

  • platform/ScrollTypes.h:

(WebCore::axisFromDirection):
(WebCore::valueForAxis):
(WebCore::setValueForAxis):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::adjustVerticalPageScrollStepForFixedContent):
(WebCore::ScrollableArea::scroll):
(WebCore::ScrollableArea::adjustScrollStepForFixedContent): Deleted.

  • platform/ScrollableArea.h:
12:42 PM Changeset in webkit [286118] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[MSVC] RenderBlock.cpp(2259): warning C4239: nonstandard extension used: 'initializing': conversion from 'WebCore::Length' to 'WebCore::Length &'
https://bugs.webkit.org/show_bug.cgi?id=233412

Reviewed by Don Olmstead.

WinCairo build reported the following warnings.

Source\WebCore\rendering/RenderBlock.cpp(2259): warning C4239: nonstandard extension used: 'initializing': conversion from 'WebCore::Length' to 'WebCore::Length &'
Source\WebCore\rendering/RenderBlock.cpp(2259): note: A non-const reference may only be bound to an lvalue
Source\WebCore\rendering/RenderBox.cpp(3116): warning C4239: nonstandard extension used: 'initializing': conversion from 'WebCore::Length' to 'WebCore::Length &'
Source\WebCore\rendering/RenderBox.cpp(3116): note: A non-const reference may only be bound to an lvalue

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computePreferredLogicalWidths):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight const):
Changed "auto&" to "const auto&".

12:35 PM Changeset in webkit [286117] by Jean-Yves Avenard
  • 3 edits in trunk/Source/WebCore

Remove unused getEOTHeader method in OpenTypeUtilities.cpp
https://bugs.webkit.org/show_bug.cgi?id=233411
rdar://85656827

Reviewed by Youenn Fablet.

No change in behaviour.

  • platform/graphics/opentype/OpenTypeUtilities.cpp:
  • platform/graphics/opentype/OpenTypeUtilities.h:
12:34 PM Changeset in webkit [286116] by Chris Fleizach
  • 15 edits
    3 adds in trunk

AX: WebKit: need a method to get visible text and frame of an element on screen
https://bugs.webkit.org/show_bug.cgi?id=233336

Reviewed by Andres Gonzalez.

Source/WebCore:

Implement visibleCharacterRange for static text elements so that Books can determine the visible
content on a page.

Test: accessibility/visible-character-range.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::visibleCharacterRange const):
(WebCore::AccessibilityObject::unobscuredContentRect const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityVisibleContentRect]):
(accessibleElementsForObjects):
(-[WebAccessibilityObjectWrapper accessibilityFindMatchingObjects:]):
(-[WebAccessibilityObjectWrapper positionForTextMarker:]):
(-[WebAccessibilityObjectWrapper textMarkerForPosition:]):
(-[WebAccessibilityObjectWrapper stringForRange:]):
(-[WebAccessibilityObjectWrapper frameForRange:]):
(-[WebAccessibilityObjectWrapper accessibilityMathRadicand]):
(-[WebAccessibilityObjectWrapper _convertToNSRange:]): Deleted.
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::visibleCharacterRange const):
(WebCore::AXIsolatedObject::unobscuredContentRect const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(makeNSArray):
(-[WebAccessibilityObjectWrapperBase accessibilityVisibleCharacterRange]):
(makeNSRange):
(makeDOMRange):
(-[WebAccessibilityObjectWrapperBase baseUpdateBackingStore]):
(-[WebAccessibilityObjectWrapperBase lineRectsAndText]):
(convertToNSArray): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper childrenVectorArray]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper _convertToNSRange:]): Deleted.

LayoutTests:

  • accessibility/ios-simulator/visible-character-range-expected.txt: Added.
  • accessibility/visible-character-range-expected.txt: Added.
  • accessibility/visible-character-range.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:01 PM Changeset in webkit [286115] by Simon Fraser
  • 23 edits in trunk/Source/WebCore

Clarify the behavior of ScrollAnimator::scroll()
https://bugs.webkit.org/show_bug.cgi?id=233403

Reviewed by Sam Weinig.

ScrollAnimator::scroll() was hard to reason about. It used ScrollbarOrientation but didn't
do anything with scrollbars. It took ScrollGranularity, "step" and "multiplier" and it
wasn't clear whether step had already accounted for ScrollGranularity, and whether
multiplier was anything other than 1 or -1. One of the behaviors was DoDirectionalSnapping
but it wasn't clear if the "directional" or "snapping" part of that was important. It also
called itself.

Bring clarity by using 'unsigned stepCount' in all the callers, using ScrollEventAxis
instead of ScrollbarOrientation, and having a single "delta" argument. It no longer
calls itself, instead just continuing from the snapping branch.

Add some helpers that ease interactions with FloatPoint/FloatSize and ScrollEventAxis.

  • dom/Element.cpp:

(WebCore::Element::scrollByUnits):

  • dom/Element.h:
  • page/FrameView.cpp:

(WebCore::FrameView::adjustScrollStepForFixedContent):

  • page/FrameView.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::deltaFromStep):
(WebCore::ScrollAnimator::handleWheelEvent):

  • platform/ScrollAnimator.h:
  • platform/ScrollSnapAnimatorState.cpp:

(WebCore::ScrollSnapAnimatorState::adjustedScrollDestination const):

  • platform/ScrollTypes.h:

(WebCore::axisFromDirection):
(WebCore::valueForAxis):
(WebCore::setValueForAxis):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::adjustScrollStepForFixedContent):
(WebCore::ScrollableArea::scroll):

  • platform/ScrollableArea.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::scrollLayer):
(WebCore::RenderBox::scroll):
(WebCore::RenderBox::logicalScroll):

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

(WebCore::RenderEmbeddedObject::scroll):
(WebCore::RenderEmbeddedObject::logicalScroll):

  • rendering/RenderEmbeddedObject.h:
  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scroll):

  • rendering/RenderLayerScrollableArea.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::scroll):
(WebCore::RenderListBox::logicalScroll):

  • rendering/RenderListBox.h:
  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::scroll):
(WebCore::RenderTextControlSingleLine::logicalScroll):

  • rendering/RenderTextControlSingleLine.h:
10:14 AM Changeset in webkit [286114] by commit-queue@webkit.org
  • 2 edits in trunk

Add alexg's GitHub username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=233425

Unreviewed.

Patch by Alejandro G. Castro <alex@igalia.com> on 2021-11-22

  • metadata/contributors.json:
10:13 AM Changeset in webkit [286113] by Antti Koivisto
  • 368 edits in trunk

[LFC][Integration] Remove dirOverride
https://bugs.webkit.org/show_bug.cgi?id=233423

Reviewed by Alan Bujtas.

Source/WebCore:

This legacy inline box bit is used to set directionOverride bit when creating a TextRun for the box.
However that bit is never needed in cases these TextRuns are created for (painting and editing).

In practice dirOverride only affects render tree dumps and can be removed.

  • layout/integration/InlineIteratorBox.h:

(WebCore::InlineIterator::Box::dirOverride const): Deleted.

  • layout/integration/InlineIteratorBoxLegacyPath.h:

(WebCore::InlineIterator::BoxLegacyPath::isHorizontal const):
(WebCore::InlineIterator::BoxLegacyPath::dirOverride const): Deleted.

  • layout/integration/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::isHorizontal const):
(WebCore::InlineIterator::BoxModernPath::createTextRun const):
(WebCore::InlineIterator::BoxModernPath::dirOverride const): Deleted.

  • rendering/LegacyInlineBox.h:

(WebCore::LegacyInlineBox::InlineBoxBitfields::InlineBoxBitfields):
(WebCore::LegacyInlineBox::dirOverride const): Deleted.
(WebCore::LegacyInlineBox::setDirOverride): Deleted.

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::createTextRun const):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::constructLine):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::constructTextRun const):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGInlineTextBox):

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/svg/import/text-intro-09-b-manual-expected.txt:
  • platform/glib/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt:
  • platform/glib/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt:
  • platform/glib/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt:
  • platform/glib/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt:
  • platform/glib/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt:
  • platform/glib/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.txt:
  • platform/glib/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt:
  • platform/glib/svg/custom/glyph-selection-bidi-mirror-expected.txt:
  • platform/glib/svg/custom/glyph-selection-non-bmp-expected.txt:
  • platform/glib/svg/text/bidi-embedded-direction-expected.txt:
  • platform/glib/svg/text/bidi-text-query-expected.txt:
  • platform/gtk/fast/block/positioning/absolute-in-inline-rtl-2-expected.txt:
  • platform/gtk/fast/block/positioning/absolute-in-inline-rtl-3-expected.txt:
  • platform/gtk/fast/block/positioning/absolute-in-inline-rtl-expected.txt:
  • platform/gtk/fast/block/positioning/absolute-in-inline-short-rtl-expected.txt:
  • platform/gtk/fast/borders/bidi-002-expected.txt:
  • platform/gtk/fast/borders/bidi-009a-expected.txt:
  • platform/gtk/fast/borders/bidi-012-expected.txt:
  • platform/gtk/fast/borders/rtl-border-02-expected.txt:
  • platform/gtk/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/gtk/fast/css/rtl-ordering-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/gtk/fast/css/textCapitalizeEdgeCases-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt:
  • platform/gtk/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
  • platform/gtk/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/gtk/fast/inline/inline-borders-with-bidi-override-expected.txt:
  • platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/gtk/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/gtk/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/gtk/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/gtk/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/gtk/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/gtk/fast/text/international/bidi-override-expected.txt:
  • platform/gtk/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/gtk/fast/text/shaping/shaping-script-order-expected.txt:
  • platform/gtk/fast/text/shaping/shaping-selection-rect-expected.txt:
  • platform/gtk/fast/text/text-letter-spacing-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/text-intro-02-b-manual-expected.txt:
  • platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
  • platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
  • platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt:
  • platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
  • platform/gtk/svg/text/bidi-text-anchor-direction-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/text-intro-02-b-manual-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/text-intro-09-b-manual-expected.txt:
  • platform/ios-wk1/fast/borders/bidi-002-expected.txt:
  • platform/ios-wk2/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/ios-wk2/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/ios/fast/block/positioning/absolute-in-inline-rtl-2-expected.txt:
  • platform/ios/fast/block/positioning/absolute-in-inline-rtl-3-expected.txt:
  • platform/ios/fast/block/positioning/absolute-in-inline-rtl-expected.txt:
  • platform/ios/fast/block/positioning/absolute-in-inline-short-rtl-expected.txt:
  • platform/ios/fast/borders/bidi-009a-expected.txt:
  • platform/ios/fast/borders/bidi-012-expected.txt:
  • platform/ios/fast/borders/rtl-border-02-expected.txt:
  • platform/ios/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/ios/fast/css/rtl-ordering-expected.txt:
  • platform/ios/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/ios/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/ios/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/ios/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/ios/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/ios/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/ios/fast/css/textCapitalizeEdgeCases-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/ios/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt:
  • platform/ios/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/ios/fast/forms/select-visual-hebrew-expected.txt:
  • platform/ios/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/ios/fast/inline/inline-borders-with-bidi-override-expected.txt:
  • platform/ios/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/ios/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/ios/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/ios/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/ios/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/ios/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/ios/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/ios/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/ios/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/ios/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/ios/fast/text/international/bidi-override-expected.txt:
  • platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/ios/fast/text/shaping/shaping-script-order-expected.txt:
  • platform/ios/fast/text/shaping/shaping-selection-rect-expected.txt:
  • platform/ios/fast/text/text-letter-spacing-expected.txt:
  • platform/ios/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt:
  • platform/ios/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt:
  • platform/ios/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
  • platform/ios/svg/custom/glyph-selection-bidi-mirror-expected.txt:
  • platform/ios/svg/text/bidi-embedded-direction-expected.txt:
  • platform/mac-catalina/fast/css/rtl-ordering-expected.txt:
  • platform/mac-catalina/fast/forms/select-visual-hebrew-expected.txt:
  • platform/mac-catalina/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac-catalina/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/mac-mojave/fast/css/rtl-ordering-expected.txt:
  • platform/mac-mojave/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/mac/fast/block/positioning/absolute-in-inline-rtl-2-expected.txt:
  • platform/mac/fast/block/positioning/absolute-in-inline-rtl-3-expected.txt:
  • platform/mac/fast/block/positioning/absolute-in-inline-rtl-expected.txt:
  • platform/mac/fast/block/positioning/absolute-in-inline-short-rtl-expected.txt:
  • platform/mac/fast/borders/bidi-002-expected.txt:
  • platform/mac/fast/borders/bidi-009a-expected.txt:
  • platform/mac/fast/borders/bidi-012-expected.txt:
  • platform/mac/fast/borders/rtl-border-02-expected.txt:
  • platform/mac/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/mac/fast/css/rtl-ordering-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/mac/fast/css/textCapitalizeEdgeCases-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt:
  • platform/mac/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/mac/fast/forms/select-visual-hebrew-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/inline/inline-borders-with-bidi-override-expected.txt:
  • platform/mac/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/mac/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/mac/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/mac/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/mac/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/mac/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/mac/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/mac/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/mac/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/mac/fast/text/international/bidi-override-expected.txt:
  • platform/mac/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/mac/fast/text/text-letter-spacing-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/text-intro-02-b-manual-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/svg/import/text-intro-09-b-manual-expected.txt:
  • platform/mac/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt:
  • platform/mac/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt:
  • platform/mac/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
  • platform/mac/svg/batik/text/textBiDi-expected.txt:
  • platform/mac/svg/custom/glyph-selection-bidi-mirror-expected.txt:
  • platform/mac/svg/text/bidi-embedded-direction-expected.txt:
  • platform/mac/svg/text/bidi-text-anchor-direction-expected.txt:
  • platform/mac/svg/text/bidi-text-query-expected.txt:
  • platform/win-7sp0/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
  • platform/win-7sp0/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
  • platform/win-7sp0/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt:
  • platform/win-7sp0/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt:
  • platform/win-7sp0/svg/text/bidi-text-query-expected.txt:
  • platform/win/fast/block/positioning/absolute-in-inline-rtl-2-expected.txt:
  • platform/win/fast/block/positioning/absolute-in-inline-rtl-3-expected.txt:
  • platform/win/fast/block/positioning/absolute-in-inline-rtl-expected.txt:
  • platform/win/fast/block/positioning/absolute-in-inline-short-rtl-expected.txt:
  • platform/win/fast/borders/bidi-002-expected.txt:
  • platform/win/fast/borders/bidi-009a-expected.txt:
  • platform/win/fast/borders/bidi-012-expected.txt:
  • platform/win/fast/borders/rtl-border-02-expected.txt:
  • platform/win/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/win/fast/css/rtl-ordering-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/win/fast/css/textCapitalizeEdgeCases-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt:
  • platform/win/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/win/fast/forms/select-visual-hebrew-expected.txt:
  • platform/win/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/win/fast/inline/inline-borders-with-bidi-override-expected.txt:
  • platform/win/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/win/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/win/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/win/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/win/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/win/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/win/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/win/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/win/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/win/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/win/fast/text/international/bidi-override-expected.txt:
  • platform/win/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/win/fast/text/shaping/shaping-script-order-expected.txt:
  • platform/win/fast/text/shaping/shaping-selection-rect-expected.txt:
  • platform/win/fast/text/text-letter-spacing-expected.txt:
  • platform/win/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt:
  • platform/win/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt:
  • platform/win/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt:
  • platform/win/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
  • platform/win/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
  • platform/win/svg/custom/glyph-selection-bidi-mirror-expected.txt:
  • platform/win/svg/custom/glyph-selection-non-bmp-expected.txt:
  • platform/win/svg/text/bidi-embedded-direction-expected.txt:
  • platform/win/svg/text/bidi-text-anchor-direction-expected.txt:
  • platform/win/svg/text/bidi-text-query-expected.txt:
  • platform/wincairo/fast/block/positioning/absolute-in-inline-rtl-2-expected.txt:
  • platform/wincairo/fast/block/positioning/absolute-in-inline-rtl-3-expected.txt:
  • platform/wincairo/fast/block/positioning/absolute-in-inline-rtl-expected.txt:
  • platform/wincairo/fast/block/positioning/absolute-in-inline-short-rtl-expected.txt:
  • platform/wincairo/fast/borders/bidi-002-expected.txt:
  • platform/wincairo/fast/borders/bidi-009a-expected.txt:
  • platform/wincairo/fast/borders/bidi-012-expected.txt:
  • platform/wincairo/fast/borders/rtl-border-02-expected.txt:
  • platform/wincairo/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/wincairo/fast/css/rtl-ordering-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/wincairo/fast/css/textCapitalizeEdgeCases-expected.txt:
  • platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/wincairo/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/wincairo/fast/forms/select-visual-hebrew-expected.txt:
  • platform/wincairo/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/wincairo/fast/inline/inline-borders-with-bidi-override-expected.txt:
  • platform/wincairo/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/wincairo/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/wincairo/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wincairo/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/wincairo/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wincairo/fast/text/international/bidi-override-expected.txt:
  • platform/wincairo/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/wincairo/fast/text/shaping/shaping-script-order-expected.txt:
  • platform/wincairo/fast/text/shaping/shaping-selection-rect-expected.txt:
  • platform/wincairo/fast/text/text-letter-spacing-expected.txt:
  • platform/wincairo/svg/custom/glyph-selection-bidi-mirror-expected.txt:
  • platform/wpe/fast/block/positioning/absolute-in-inline-rtl-2-expected.txt:
  • platform/wpe/fast/block/positioning/absolute-in-inline-rtl-3-expected.txt:
  • platform/wpe/fast/block/positioning/absolute-in-inline-rtl-expected.txt:
  • platform/wpe/fast/block/positioning/absolute-in-inline-short-rtl-expected.txt:
  • platform/wpe/fast/borders/bidi-002-expected.txt:
  • platform/wpe/fast/borders/bidi-009a-expected.txt:
  • platform/wpe/fast/borders/bidi-012-expected.txt:
  • platform/wpe/fast/borders/rtl-border-02-expected.txt:
  • platform/wpe/fast/css/bidi-override-in-anonymous-block-expected.txt:
  • platform/wpe/fast/css/rtl-ordering-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/wpe/fast/css/textCapitalizeEdgeCases-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/wpe/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt:
  • platform/wpe/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/wpe/fast/inline/inline-borders-with-bidi-override-expected.txt:
  • platform/wpe/fast/text/atsui-rtl-override-selection-expected.txt:
  • platform/wpe/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/wpe/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wpe/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wpe/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/wpe/fast/text/text-letter-spacing-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-02-b-manual-expected.txt:
  • platform/wpe/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
  • platform/wpe/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
  • platform/wpe/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt:
  • platform/wpe/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
  • platform/wpe/svg/text/bidi-text-anchor-direction-expected.txt:
9:53 AM Changeset in webkit [286112] by Antti Koivisto
  • 9 edits
    2 adds in trunk/Source/WebCore

Factor child change invalidation into class
https://bugs.webkit.org/show_bug.cgi?id=233311

Reviewed by Alan Bujtas.

Use similar pattern as ClassChangeInvalidation and others where we create a stack object scoped
over a DOM mutation. This will allow more sophisticated ruleset based invalidation in
future.

This patch moves the invalidation code from childrenChanged() to the new ChildChangeInvalidation class.
ChildChangeInvalidation is instantiated in ContainerNode and CharacterData mutation functions
that call childrenChanged(). It uses the same ChildChange argument type as childrenChanged().

There are no changes to invalidation functionality in this patch.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:

(WebCore::makeChildChange):
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
(WebCore::CharacterData::notifyParentAfterChange):

  • dom/CharacterData.h:
  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::makeChildChangeForRemoval):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::makeChildChangeForInsertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::replaceAll):
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::affectsElements):

  • dom/Element.cpp:

(WebCore::invalidateForSiblingCombinators):
(WebCore::Element::childTypeAllowed const):
(WebCore::Element::childrenChanged):
(WebCore::Element::finishParsingChildren):
(WebCore::checkForEmptyStyleChange): Deleted.
(WebCore::invalidateForForwardPositionalRules): Deleted.
(WebCore::invalidateForBackwardPositionalRules): Deleted.
(WebCore::checkForSiblingStyleChanges): Deleted.

  • dom/Element.h:
  • style/ChildChangeInvalidation.cpp: Added.

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):
(WebCore::Style::ChildChangeInvalidation::~ChildChangeInvalidation):
(WebCore::Style::ChildChangeInvalidation::invalidateAfterChange):
(WebCore::Style::ChildChangeInvalidation::checkForEmptyStyleChange):
(WebCore::Style::invalidateForForwardPositionalRules):
(WebCore::Style::invalidateForBackwardPositionalRules):
(WebCore::Style::ChildChangeInvalidation::checkForSiblingStyleChanges):

  • style/ChildChangeInvalidation.h: Added.

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

  • style/StyleAdjuster.h:
4:14 AM Changeset in webkit [286111] by commit-queue@webkit.org
  • 21 edits
    1 add
    1 delete in trunk

[JSC] Make sharing of unlinked baseline code possible on JSVALUE32_64
https://bugs.webkit.org/show_bug.cgi?id=232624

Patch by Geza Lore <Geza Lore> on 2021-11-22
Reviewed by Yusuke Suzuki.

PerformanceTests/SunSpider:

Add extra SunSpider run on 32-bit platforms exerciseing baseline JIT
code sharing.

  • with-baseline-code-sharing.yaml: Added.

Source/JavaScriptCore:

This patch contains a few different changes, which taken together make
it possible to share the unlinked baseline JIT code between different
CodeBlocks on JSVALUE32_64 platforms. Note that by default, code
sharing is disabled on JSVALUE32_64 due to the increased executable
memory usage it may cause. The reson the executable memory usage might
increase is that the UnlinkedCodeBlock has a longer lifetime than the
corresponding linked CodeBlocks (due to the CodeCache I'm told), and
when using code sharing, it holds a reference to the JITed code. This
then prevents recycling of executable memory while the
UnlinkedCodeBlock is live, while without sharing we could have
reclaimed some of the executable memory earlier.

The high level changes in this pach are:

  1. A lot of baseline implementations of the opcodes that needed

changing for the unlinked baseline are now unified between the
JSVALUE64 and JSVALUE32_64 platforms. Note that while this required
adding some abstraction, the code generated by the baseline JIT on
JSVALUE64 should be identical using this abstraction compared to
before.

  1. I added a JSRInfo class which defines standard names for certain

JSValueReg instances. This enables a lot of the unification in the
point above to be expressed in a very simple manner, with very little
transformation of the existing code. Again, this should have no impact
on the generated code on JSVALUE64, apart from some register
substitutions.

  1. The sizes of the resolve_scope and get_from_scope ops increased

significantly with the unlinked baseline. This can cause issues on
some JSVALUE32_64 targets where memory is more precious, so for these
two ops I swapped in the implementations under EXTRA_CTI_THUNKS, which
implement these using shared stubs. These stubs work on all platforms
that support ENABLE(JIT), so they are now the only implementation and
I have removed the basic bloated versions.

  1. Removed some unused code and fields I discovered while working on

this, strictly speaking this is not necessary for the functional
change.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::storeValue):
(JSC::AssemblyHelpers::isNull):
(JSC::AssemblyHelpers::isNotNull):
(JSC::AssemblyHelpers::emitTurnUndefinedIntoNull):
(JSC::AssemblyHelpers::noOverlap):
(JSC::AssemblyHelpers::noOverlapImpl):
(JSC::AssemblyHelpers::noOverlapImplRegMask):

  • jit/GPRInfo.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::link):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_compareAndJumpImpl):
(JSC::JIT::emit_compareUnsignedAndJumpImpl):
(JSC::JIT::emit_compareUnsignedImpl):
(JSC::JIT::emit_op_mod):
(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_compareUnsignedAndJump):
(JSC::JIT::emit_compareUnsigned):
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emitBinaryDoubleOp):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_op_unsigned):
(JSC::JIT::emit_op_inc):
(JSC::JIT::emit_op_dec):

  • jit/JITCall.cpp:

(JSC::JIT::emit_op_ret):
(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileOpCall):
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):

  • jit/JITInlines.h:

(JSC::JIT::getConstantOperand):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResult):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):
(JSC::JIT::emitValueProfilingSiteIfProfiledOpcode):
(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitGetVirtualRegister):
(JSC::JIT::emitPutVirtualRegister):
(JSC::JIT::emitGetVirtualRegisterPayload):
(JSC::JIT::emitGetVirtualRegisterTag):
(JSC::JIT::emitLoadDouble):
(JSC::loadAddrOfCodeBlockConstantBuffer):
(JSC::JIT::loadCodeBlockConstant):
(JSC::JIT::loadCodeBlockConstantPayload):
(JSC::JIT::loadCodeBlockConstantTag):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_mov):
(JSC::JIT::emit_op_end):
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_typeof_is_undefined):
(JSC::JIT::emit_op_is_undefined_or_null):
(JSC::JIT::emit_op_set_function_name):
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_jeq_ptr):
(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::emit_op_throw):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):
(JSC::JIT::emit_op_switch_string):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_instanceof_custom):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_array_with_size):
(JSC::JIT::emit_op_profile_type):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):
(JSC::JIT::emit_op_get_argument):
(JSC::JIT::emit_op_get_prototype_of):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emit_op_is_empty):
(JSC::JIT::emit_op_is_boolean):
(JSC::JIT::emit_op_is_number):
(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_to_property_key):
(JSC::JIT::emit_op_not):
(JSC::JIT::emit_op_jundefined_or_null):
(JSC::JIT::emit_op_jnundefined_or_null):
(JSC::JIT::emit_op_jeq_ptr):
(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::compileOpEqJumpSlow):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emitSlow_op_jstricteq):
(JSC::JIT::emitSlow_op_jnstricteq):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_string):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_enter):
(JSC::JIT::emit_op_check_tdz):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_getter_by_id):
(JSC::JIT::emit_op_put_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_by_val):
(JSC::JIT::emit_op_put_setter_by_val):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::slow_op_resolve_scopeGenerator):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_get_internal_field):
(JSC::JIT::emit_op_put_internal_field):
(JSC::JIT::emit_op_get_property_enumerator):
(JSC::JIT::emit_op_enumerator_next):
(JSC::JIT::emit_op_enumerator_get_by_val):
(JSC::JIT::emitSlow_op_enumerator_get_by_val):
(JSC::JIT::emit_op_enumerator_in_by_val):
(JSC::JIT::emit_op_enumerator_has_own_property):
(JSC::JIT::emitWriteBarrier):

  • jit/JITPropertyAccess32_64.cpp: Removed.
  • jit/JSInterfaceJIT.h:
  • jit/ThunkGenerators.cpp:

(JSC::popThunkStackPreservesAndHandleExceptionGenerator):

  • jit/ThunkGenerators.h:
  • runtime/OptionsList.h:

Tools:

Add extra SunSpider run on 32-bit platforms exerciseing baseline JIT
code sharing.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

12:48 AM Changeset in webkit [286110] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Remove h264_bitstream_parser spurious logging
https://bugs.webkit.org/show_bug.cgi?id=233361

Reviewed by Eric Carlson.

  • Source/webrtc/common_video/h264/h264_bitstream_parser.cc:
12:46 AM Changeset in webkit [286109] by Angelos Oikonomopoulos
  • 9 edits
    3 adds in trunk/Tools

Move detection of flaky JSC tests to run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=232529

Reviewed by Jonathan Bedard.

Currently, flaky detection happens by
ReRunJavaScriptCoreTests. Unfortunately, this means that we end up
rerunning all JSC tests when there's even a single failure. Even
worse, when the tree is broken (as sometimes happens on ARM32 and
MIPS) we end up

  1. running the tests once (they fail)
  2. running all tests again
  3. running all tests again without the patch

This means the queue slows down a lot, since it runs all JSC
stress tests 3 times.

This patch attempts to eliminate step 2, while also being more
reliable about handling flaky tests. Since we no longer need to
rerun the whole test suite, we can spend more CPU time on
identifying tests that might be flaky. The user can pass in
--treat-failing-as-flaky=passPercentage,maxTries,maxFailing. If
less than maxFailing tests failed, we run them again (up to
maxTries) until we can tell whether they pass more than
passPercentage of the time. This should result in less false
positives compared to ReRunJavaScriptCoreTests, as we'll no longer
declare a flaky test a failure if it happens to fail two times in
a row. In order to remove ReRunJavaScriptCoreTests, the patch
unconditionally enables --treat-failing-as-flaky by default in the
JSC EWS queues.

Implementation-wise, the patch generalizes the existing retry loop in
run-jsc-stress-tests (for dealing with flaky remote hosts) to (a) work
with any runner and (b) also retry flaky tests. As flaky handling is
impractical to test manually, it also abstracts-out the retry logic so
that we can test with predetermined results. This means we need to
e.g. pass the runlist around instead of treating it as a global,
capturing the main logic in classes and having a subclass provide
methods to be called back and so on. The patch does not shy away from
refactoring code when it makes sense but also doesn't go out of its
way to refactor (e.g. there's still a lot of duplication between the
default and ruby writers).

Downsides: we can no longer detect flakiness in the binary tests
(testair, testb3, ...). However, I'm not aware of any instance of
flakiness in those tests. The retry loop is now being used for all
runners, which means the results analysis path for e.g. the make
runner is now a bit more complicated. Detecting flaky tests needs
code somewhere, but this moves the detection code before the
result reporting, so is a bit riskier. The self tests should
counterbalance this.

  • CISupport/ews-build/steps.py:

Kill ReRunJavaScriptCoreTests and enable --treat-failing-as-flaky.
Defaults to 60% pass percentage, 10 maxTries and a limit of 200
failing tests.
(RunJavaScriptCoreTests):
(RunJavaScriptCoreTests.init):
(RunJavaScriptCoreTests.start):
(RunJavaScriptCoreTests.evaluateCommand):
(RunJavaScriptCoreTests.commandComplete):
(RunJavaScriptCoreTests.getResultSummary):
(RunJavaScriptCoreTests._addToLog):
(AnalyzeJSCTestsResults.start):
(ReRunJavaScriptCoreTests): Deleted.
(ReRunJavaScriptCoreTests.evaluateCommand): Deleted.

  • CISupport/ews-build/steps_unittest.py:

Update to match the changes in steps.py. Some testcases no longer
apply.

  • Scripts/jsc-stress-test-helpers/shell-runner.sh:

Don't deduce the test list manually, expect it as an argument instead.

  • Scripts/run-javascriptcore-tests:

Propagate info on test flakiness.
(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:

Refactor the execution logic to use the abstracted-out code in
executor.rb. Use the retry loop on every runner.

  • Scripts/webkitruby/jsc-stress-test-writer-default.rb:

Update the test-writer files for the changes to run-jsc-stress-tests.
Move prepareFooRunner and testRunnerCommand to a class so that we can
keep state (for the new argument to the shell runner).

  • Scripts/webkitruby/jsc-stress-test-writer-playstation.rb:
  • Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:
  • Scripts/webkitruby/jsc-stress-test/executor.rb: Added.

Implement a generic retry loop and define an array of virtual
tests (using predefined test results for each iteration).

  • Scripts/webkitruby/jsc-stress-test/test-result-evaluator.rb: Added.

Encapsulate the logic on whether a test has passed or not
(Did we get any results? Were those results enough to declare a
flaky/non-flaky test a pass?) and add a number of tests.

Nov 21, 2021:

7:06 PM Changeset in webkit [286108] by cathiechen
  • 1 edit
    1 add in trunk/PerformanceTests

[Performance test][css-contain] Add case to test contain: layout inside a complex document
https://bugs.webkit.org/show_bug.cgi?id=232883

Reviewed by Rob Buis.

This case test the performance of changing the content of a layout containment which is
inside a complex document.

  • Layout/css-contain-layout-size-inside-complex-document.html: Added.
3:58 PM Changeset in webkit [286107] by Alan Bujtas
  • 15 edits in trunk

[LFC][Integration] Enable bidi content for non-inline-box cases
https://bugs.webkit.org/show_bug.cgi?id=232980
<rdar://problem/85281410>

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

  • platform/ios/fast/dom/52776-expected.txt: progression
  • platform/ios/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt: progression
  • platform/ios/fast/text/international/bidi-neutral-run-expected.txt: rebaseline
  • platform/ios/fast/text/international/bidi-override-expected.txt: see FIXME
  • platform/ios/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt: see FIXME
  • platform/mac/fast/dom/52776-expected.txt:
  • platform/mac/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
3:41 PM Changeset in webkit [286106] by Wenson Hsieh
  • 4 edits
    3 adds in trunk/Tools

Add an API test for batch image analysis (-[WKWebView _startImageAnalysis:])
https://bugs.webkit.org/show_bug.cgi?id=233331

Reviewed by Sam Weinig.

Add a new API teset to exercise the -_startImageAnalysis: SPI introduced in r285949, along with helper
functions to simulate VKImageAnalysis results from VisionKitCore. See below for more details.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(-[TestWKWebView waitForImageAnalysisRequests:]):
(TestWebKitAPI::createWebViewWithTextRecognitionEnhancements):
(TestWebKitAPI::swizzledProcessRequestWithResults):
(TestWebKitAPI::swizzledProcessRequestWithError):
(TestWebKitAPI::TEST):
(TestWebKitAPI::swizzledProcessRequest): Deleted.

Add an API test that uses -_startImageAnalysis: to perform batch image analysis over 5 image elements on the
page, and verify that the text results are injected back into the page.

  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html: Added.
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.h: Added.
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm: Added.

(-[TestVKQuad initWithTopLeft:topRight:bottomLeft:bottomRight:]):
(-[TestVKWKTextInfo initWithString:quad:]):
(-[TestVKWKTextInfo string]):
(-[TestVKWKTextInfo quad]):
(-[TestVKWKLineInfo initWithString:quad:children:]):
(-[TestVKWKLineInfo children]):
(-[TestVKImageAnalysis initWithLines:]):
(-[TestVKImageAnalysis allLines]):
(TestWebKitAPI::createQuad):
(TestWebKitAPI::createTextInfo):
(TestWebKitAPI::createLineInfo):
(TestWebKitAPI::createImageAnalysis):
(TestWebKitAPI::createImageAnalysisWithSimpleFixedResults):

Add helper functions to create and return mock objects that represent VKImageAnalysis, VKWKLineInfo,
VKWKTextInfo and VKQuad.

1:28 PM Changeset in webkit [286105] by Jean-Yves Avenard
  • 3 edits in trunk/Source/WebCore

Remove unused HTMLModelElement::modelData() method.
https://bugs.webkit.org/show_bug.cgi?id=233406
rdar://85640503

Reviewed by Sam Weinig.

No change in observable behaviour.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::notifyFinished):

  • Modules/model-element/HTMLModelElement.h:
12:43 PM Changeset in webkit [286104] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add support for caching bidi InlineTextItem widths
https://bugs.webkit.org/show_bug.cgi?id=233402

Reviewed by Antti Koivisto.

Let's do a "text content measure" pass when the inline item boundaries are finalized (including bidi split).

  • layout/formattingContexts/inline/InlineItem.h:

(WebCore::Layout::InlineItem::setWidth):

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::InlineItemsBuilder::computeInlineTextItemWidths):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):

  • layout/formattingContexts/inline/InlineItemsBuilder.h:
12:10 PM Changeset in webkit [286103] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
10:35 AM Changeset in webkit [286102] by Andres Gonzalez
  • 3 edits in trunk/Tools

Dispatch all AccessibilityUIElement parameterized attribute requests to the AX thread for isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=233377
<rdar://problem/85613334>

Reviewed by Chris Fleizach.

To simulate AT client requests in isolated tree mode, all parameterized
attribute requests should be dispatched to the AX thread.
This patch adds AccessibilityUIElement::attributeValueForParameter that
does the appropriate dispatch to the AX thread.

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

(WTR::attributeValue):
(WTR::AccessibilityUIElement::attributeValue const):
(WTR::AccessibilityUIElement::attributeValueForParameter const):
(WTR::AccessibilityUIElement::lineForIndex):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::rangeForPosition):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled):
(WTR::AccessibilityUIElement::uiElementCountForSearchPredicate):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):
(WTR::AccessibilityUIElement::selectTextWithCriteria):
(WTR::AccessibilityUIElement::searchTextWithCriteria):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::lineTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::lineIndexForTextMarker const):
(WTR::AccessibilityUIElement::misspellingTextMarkerRange):
(WTR::AccessibilityUIElement::textMarkerRangeForElement):
(WTR::AccessibilityUIElement::textMarkerRangeLength):
(WTR::AccessibilityUIElement::previousTextMarker):
(WTR::AccessibilityUIElement::nextTextMarker):
(WTR::AccessibilityUIElement::stringForTextMarkerRange):
(WTR::AccessibilityUIElement::textMarkerRangeForMarkers):
(WTR::AccessibilityUIElement::textMarkerRangeForRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange):
(WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange):
(WTR::AccessibilityUIElement::endTextMarkerForBounds):
(WTR::AccessibilityUIElement::startTextMarkerForBounds):
(WTR::AccessibilityUIElement::textMarkerForPoint):
(WTR::AccessibilityUIElement::accessibilityElementForTextMarker):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute):
(WTR::AccessibilityUIElement::indexForTextMarker):
(WTR::AccessibilityUIElement::isTextMarkerValid):
(WTR::AccessibilityUIElement::textMarkerForIndex):
(WTR::AccessibilityUIElement::leftWordTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::rightWordTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousWordStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::sentenceTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousSentenceStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextSentenceEndTextMarkerForTextMarker):
(WTR::_convertMathMultiscriptPairsToString):

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

[LFC][IFC] Cache measured width even if canUseSimplifiedTextMeasuring is false
https://bugs.webkit.org/show_bug.cgi?id=233404

Reviewed by Antti Koivisto.

Just because some content goes through the non-simplified text measuring codepath, it does not
necessary mean we can't cache the measured value on the inline item (actually, we can cache these values just fine in most cases).

This is in preparation for being able to cache bidi content measured widths.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::canCacheMeasuredWidthOnInlineTextItem):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):

10:22 AM Changeset in webkit [286100] by Ziran Sun
  • 4 edits in trunk

[css-grid] svg image as grid items should use the overriding logical width/height when defined to compute the logical height/width
https://bugs.webkit.org/show_bug.cgi?id=228105

Reviewed by Javier Fernandez.

Source/WebCore:

This is a reland of r280290. It's got reverted because another patch r280078 caused crash and had been
reverted. r280290 is a dependent patch for r280078.

As discussed at https://github.com/w3c/csswg-drafts/issues/6286#issuecomment-866986544, degenerate
aspect ratios derived from SVG width/height attributes fall back to viewbox aspect ratio
(whether due to negative values or zero values).

When computing the logical height/width using an intrinsic aspect ratio, RenderReplaced uses the
overridingLogicalWidth/overridingLogicalHeight whenever defined as long as the flex or
grid item has an intrinsic size. For an SVG graphic though, it's common to have an intrinsic aspect
ratio but not to have an intrinsic width or height. For this special case, we still should use
overridingLogicalWidth/overridingLogicalHeight for logical height/width calculations.

  • rendering/RenderReplaced.cpp:

(WebCore::hasIntrinsicSize):
(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

LayoutTests:

8:51 AM Changeset in webkit [286099] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce canCacheMeasuredWidthOnInlineTextItem
https://bugs.webkit.org/show_bug.cgi?id=233399

Reviewed by Antti Koivisto.

This patch is in preparation for decoupling simplified text measuring and measured width caching.
(Caching should solely be position and (maybe) context dependent.)

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::canCacheMeasuredWidthOnInlineTextItem const):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):

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

(WebCore::Layout::TextUtil::canUseSimplifiedTextMeasuringForFirstLine): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree): whitespace is not part of the first-line style set.

Nov 20, 2021:

4:03 PM Changeset in webkit [286098] by mmaxfield@apple.com
  • 114 edits in trunk/Source/WebKit

[WebGPU] Send WebGPU messages in the web process
https://bugs.webkit.org/show_bug.cgi?id=233396

Reviewed by Dean Jackson.

This hooks up our Remote*Proxy() WebGPU implementation to the serializable structs.
There are 2 pieces: adding converter functions from PAL::WebGPU::X to WebKit::WebGPU::X
structs (which are serializable) and actually calling the send() function itself.
Because streaming IPC doesn't support async replies yet, all the async calls are currently
sync in this patch. I'll be adding support for async streaming messages in a subsequent
patch, which will migrate callers to use sendAsync() instead of sendSync().

No new tests because there is no behavior change yet. This is the last untested foundational
patch in the series. All subsequent WebGPU patches should have tests.

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.messages.in:
  • Shared/WebGPU/WebGPUBindGroupDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBindGroupEntry.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBlendComponent.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBlendState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBufferBinding.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBufferBindingLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUBufferDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUCanvasConfiguration.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUColor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUColorTargetState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUCommandBufferDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUCompilationMessage.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUComputePassDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUConvertToBackingContext.h:
  • Shared/WebGPU/WebGPUDepthStencilState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUDeviceDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUError.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUExtent3D.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUFragmentState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUImageCopyBuffer.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUImageCopyTexture.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTextureTagged.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUImageDataLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUMultisampleState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUObjectDescriptorBase.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUOrigin2D.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUOrigin3D.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUOutOfMemoryError.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUPrimitiveState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUProgrammableStage.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURenderBundleDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURenderPassLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPURequestAdapterOptions.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUSamplerBindingLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUSamplerDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUStencilFaceState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUSupportedFeatures.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUSupportedLimits.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureBindingLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUTextureDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUTextureViewDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUValidationError.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUVertexAttribute.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUVertexBufferLayout.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • Shared/WebGPU/WebGPUVertexState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):

  • WebKit.xcodeproj/xcshareddata/xcschemes/WebKit.xcscheme:
  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:

(WebKit::WebGPU::RemoteAdapterProxy::RemoteAdapterProxy):
(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.cpp:

(WebKit::WebGPU::RemoteBindGroupLayoutProxy::RemoteBindGroupLayoutProxy):
(WebKit::WebGPU::RemoteBindGroupLayoutProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.cpp:

(WebKit::WebGPU::RemoteBindGroupProxy::RemoteBindGroupProxy):
(WebKit::WebGPU::RemoteBindGroupProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp:

(WebKit::WebGPU::RemoteBufferProxy::RemoteBufferProxy):
(WebKit::WebGPU::RemoteBufferProxy::mapAsync):
(WebKit::WebGPU::RemoteBufferProxy::getMappedRange):
(WebKit::WebGPU::RemoteBufferProxy::unmap):
(WebKit::WebGPU::RemoteBufferProxy::destroy):
(WebKit::WebGPU::RemoteBufferProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.cpp:

(WebKit::WebGPU::RemoteCommandBufferProxy::RemoteCommandBufferProxy):
(WebKit::WebGPU::RemoteCommandBufferProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.cpp:

(WebKit::WebGPU::RemoteCommandEncoderProxy::RemoteCommandEncoderProxy):
(WebKit::WebGPU::RemoteCommandEncoderProxy::beginRenderPass):
(WebKit::WebGPU::RemoteCommandEncoderProxy::beginComputePass):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyBufferToBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyBufferToTexture):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyTextureToBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyTextureToTexture):
(WebKit::WebGPU::RemoteCommandEncoderProxy::fillBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteCommandEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteCommandEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteCommandEncoderProxy::writeTimestamp):
(WebKit::WebGPU::RemoteCommandEncoderProxy::resolveQuerySet):
(WebKit::WebGPU::RemoteCommandEncoderProxy::finish):
(WebKit::WebGPU::RemoteCommandEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp:

(WebKit::WebGPU::RemoteComputePassEncoderProxy::RemoteComputePassEncoderProxy):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::dispatch):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::dispatchIndirect):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::beginPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::endPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::endPass):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.cpp:

(WebKit::WebGPU::RemoteComputePipelineProxy::RemoteComputePipelineProxy):
(WebKit::WebGPU::RemoteComputePipelineProxy::getBindGroupLayout):
(WebKit::WebGPU::RemoteComputePipelineProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:

(WebKit::WebGPU::RemoteDeviceProxy::RemoteDeviceProxy):
(WebKit::WebGPU::RemoteDeviceProxy::createBuffer):
(WebKit::WebGPU::RemoteDeviceProxy::createTexture):
(WebKit::WebGPU::RemoteDeviceProxy::createSampler):
(WebKit::WebGPU::RemoteDeviceProxy::importExternalTexture):
(WebKit::WebGPU::RemoteDeviceProxy::createBindGroupLayout):
(WebKit::WebGPU::RemoteDeviceProxy::createPipelineLayout):
(WebKit::WebGPU::RemoteDeviceProxy::createBindGroup):
(WebKit::WebGPU::RemoteDeviceProxy::createShaderModule):
(WebKit::WebGPU::RemoteDeviceProxy::createComputePipeline):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderPipeline):
(WebKit::WebGPU::RemoteDeviceProxy::createComputePipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderPipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::createCommandEncoder):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderBundleEncoder):
(WebKit::WebGPU::RemoteDeviceProxy::createQuerySet):
(WebKit::WebGPU::RemoteDeviceProxy::pushErrorScope):
(WebKit::WebGPU::RemoteDeviceProxy::popErrorScope):
(WebKit::WebGPU::RemoteDeviceProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.cpp:

(WebKit::WebGPU::RemoteExternalTextureProxy::RemoteExternalTextureProxy):
(WebKit::WebGPU::RemoteExternalTextureProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:

(WebKit::WebGPU::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::WebGPU::RemoteGPUProxy::requestAdapter):

  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.cpp:

(WebKit::WebGPU::RemotePipelineLayoutProxy::RemotePipelineLayoutProxy):
(WebKit::WebGPU::RemotePipelineLayoutProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.cpp:

(WebKit::WebGPU::RemoteQuerySetProxy::RemoteQuerySetProxy):
(WebKit::WebGPU::RemoteQuerySetProxy::destroy):
(WebKit::WebGPU::RemoteQuerySetProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp:

(WebKit::WebGPU::RemoteQueueProxy::RemoteQueueProxy):
(WebKit::WebGPU::RemoteQueueProxy::submit):
(WebKit::WebGPU::RemoteQueueProxy::onSubmittedWorkDone):
(WebKit::WebGPU::RemoteQueueProxy::writeBuffer):
(WebKit::WebGPU::RemoteQueueProxy::writeTexture):
(WebKit::WebGPU::RemoteQueueProxy::copyExternalImageToTexture):
(WebKit::WebGPU::RemoteQueueProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.cpp:

(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::RemoteRenderBundleEncoderProxy):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setIndexBuffer):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setVertexBuffer):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::draw):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndexed):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndirect):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndexedIndirect):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::finish):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.cpp:

(WebKit::WebGPU::RemoteRenderBundleProxy::RemoteRenderBundleProxy):
(WebKit::WebGPU::RemoteRenderBundleProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.cpp:

(WebKit::WebGPU::RemoteRenderPassEncoderProxy::RemoteRenderPassEncoderProxy):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setIndexBuffer):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setVertexBuffer):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::draw):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndexed):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndirect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndexedIndirect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setViewport):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setScissorRect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setBlendConstant):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setStencilReference):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::beginOcclusionQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endOcclusionQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::beginPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::executeBundles):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endPass):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.cpp:

(WebKit::WebGPU::RemoteRenderPipelineProxy::RemoteRenderPipelineProxy):
(WebKit::WebGPU::RemoteRenderPipelineProxy::getBindGroupLayout):
(WebKit::WebGPU::RemoteRenderPipelineProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.cpp:

(WebKit::WebGPU::RemoteSamplerProxy::RemoteSamplerProxy):
(WebKit::WebGPU::RemoteSamplerProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.cpp:

(WebKit::WebGPU::RemoteShaderModuleProxy::RemoteShaderModuleProxy):
(WebKit::WebGPU::RemoteShaderModuleProxy::compilationInfo):
(WebKit::WebGPU::RemoteShaderModuleProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp:

(WebKit::WebGPU::RemoteTextureProxy::RemoteTextureProxy):
(WebKit::WebGPU::RemoteTextureProxy::createView):
(WebKit::WebGPU::RemoteTextureProxy::destroy):
(WebKit::WebGPU::RemoteTextureProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.cpp:

(WebKit::WebGPU::RemoteTextureViewProxy::RemoteTextureViewProxy):
(WebKit::WebGPU::RemoteTextureViewProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h:
  • WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.cpp:

(WebKit::WebGPU::DowncastConvertToBackingContext::convertToBacking):

  • WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h:
3:21 PM Changeset in webkit [286097] by Jean-Yves Avenard
  • 8 edits in trunk/Source/WebKit

Remove unnecessary flattening of SharedBuffer when sending them over IPC
https://bugs.webkit.org/show_bug.cgi?id=233363
rdar://85600684

Reviewed by Sam Weinig.

In several places, a SharedMemory was allocated followed by a copy. To perform
this copy, the SharedBuffer was flattened which could involve a memory allocation
followed by a copy of all segments into the final vector.
We instead make use of SharedBuffer::copyBuffer convenience method which will simply
copy the individual segment into the newly allocated SharedMemory.

No change in user observable behaviour.

Fly-by fix: SharedMemory::allocate is fallible; few instances didn't check the
returned value. So test that it succeeded and prevent a crash (null deref)

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setBufferForType):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::performActionOnElement):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

6:43 AM Changeset in webkit [286096] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] Initialize layout box geometries for preferred width computation
https://bugs.webkit.org/show_bug.cgi?id=233386

Reviewed by Antti Koivisto.

Initializing certain geometries (e.g. inline box margin/border/padding) is required for the integration
codepath the same way we do it for the actual line layout.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp: Add a dedicated integration codepath for preferred width

computation using the preset geometry values.
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraintsForIntegration):

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::tryComputePreferredWidthsUsingModernPath):

12:34 AM Changeset in webkit [286095] by ysuzuki@apple.com
  • 3 edits
    3 moves in trunk/Source/JavaScriptCore

[JSC] Move RepatchXXX from jit to bytecode
https://bugs.webkit.org/show_bug.cgi?id=233395

Reviewed by Mark Lam.

They are also used by non JIT code too.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/Repatch.cpp: Renamed from Source/JavaScriptCore/jit/Repatch.cpp.
  • bytecode/Repatch.h: Renamed from Source/JavaScriptCore/jit/Repatch.h.
  • bytecode/RepatchInlines.h: Renamed from Source/JavaScriptCore/jit/RepatchInlines.h.
12:15 AM Changeset in webkit [286094] by commit-queue@webkit.org
  • 26 edits in trunk

Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:

Source/WebCore:

As per the spec, blockedURI should use the requested URL of original request instead of redirected location.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
(WebCore::CachedResourceLoader::canRequestAfterRedirection const):
(WebCore::CachedResourceLoader::updateRequestAfterRedirection):

  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowChildContextFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowImageFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allowFontFromSource const):
(WebCore::ContentSecurityPolicy::allowManifestFromSource const):
(WebCore::ContentSecurityPolicy::allowMediaFromSource const):

  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

  • TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:

Nov 19, 2021:

11:52 PM Changeset in webkit [286093] by Carlos Garcia Campos
  • 6 edits
    1 add in trunk

[GTK][a11y] Add implementation of image interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232782

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::imageDescription const):

Tools:

Add unit tests for the image interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testImageBasic):
(beforeAll):

10:57 PM Changeset in webkit [286092] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Fix WebAssembly memory.fill out of bounds error message
https://bugs.webkit.org/show_bug.cgi?id=233392

Patch by Asumu Takikawa <asumu@igalia.com> on 2021-11-19
Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/references/memory_fill_out_of_bounds.js: Added.

(async test):

Source/JavaScriptCore:

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addMemoryFill):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addMemoryFill):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

10:40 PM Changeset in webkit [286091] by commit-queue@webkit.org
  • 11 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, reverting r286058.
https://bugs.webkit.org/show_bug.cgi?id=233394

Speedometer2 is crashing

Reverted changeset:

"Factor child change invalidation into class"
https://bugs.webkit.org/show_bug.cgi?id=233311
https://commits.webkit.org/r286058

8:50 PM Changeset in webkit [286090] by Alan Bujtas
  • 1 edit
    1 add in trunk/PerformanceTests

Add layout performance test for simple bidi content
(this is not about inline axis direction, just mixed, bidirectional content)

Unreviewed.

  • Layout/line-layout-simple-bidi.html: Added.
7:19 PM Changeset in webkit [286089] by commit-queue@webkit.org
  • 7 edits
    4 adds in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233385

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-19

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings-expected.txt:

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/interaction/focus/chrome-object-tab-focus-bug-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.tentative-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • transitions/clip-path-path-transitions-expected.txt:
7:05 PM Changeset in webkit [286088] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[GLIB][WebDriver] Gardening COOP-related timeouts

Unreviewed test gardening.

6:33 PM Changeset in webkit [286087] by mmaxfield@apple.com
  • 54 edits
    1 copy
    1 add in trunk/Source

[WebGPU] Implement GPU process's message receivers
https://bugs.webkit.org/show_bug.cgi?id=233358

Reviewed by Dean Jackson.

The message receivers have two helper objects:

  1. ObjectHeap, which owns all the message receivers. There is intended to be only one of them per document.
  2. ObjectRegistry, which doesn't own anything, but maintains a mapping from WebGPUIdentifiers to objects. This

registry is necessary because when an object needs to be destroyed, we have to look up which object it
is by ID.

Beyond that, this patch just hooks up those two message receivers, and then forwards all received messages to
the virtual interface that implements WebGPU.

No new tests because there is no behavior change.

  • GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:

(WebKit::RemoteAdapter::RemoteAdapter):
(WebKit::RemoteAdapter::~RemoteAdapter):
(WebKit::RemoteAdapter::requestDevice):

  • GPUProcess/graphics/WebGPU/RemoteAdapter.h:
  • GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp:

(WebKit::RemoteBindGroup::RemoteBindGroup):
(WebKit::RemoteBindGroup::~RemoteBindGroup):
(WebKit::RemoteBindGroup::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp:

(WebKit::RemoteBindGroupLayout::RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::~RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
  • GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:

(WebKit::RemoteBuffer::RemoteBuffer):
(WebKit::RemoteBuffer::~RemoteBuffer):
(WebKit::RemoteBuffer::mapAsync):
(WebKit::RemoteBuffer::unmap):
(WebKit::RemoteBuffer::destroy):
(WebKit::RemoteBuffer::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp:

(WebKit::RemoteCommandBuffer::RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::~RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp:

(WebKit::RemoteCommandEncoder::RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::~RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::beginRenderPass):
(WebKit::RemoteCommandEncoder::beginComputePass):
(WebKit::RemoteCommandEncoder::copyBufferToBuffer):
(WebKit::RemoteCommandEncoder::copyBufferToTexture):
(WebKit::RemoteCommandEncoder::copyTextureToBuffer):
(WebKit::RemoteCommandEncoder::copyTextureToTexture):
(WebKit::RemoteCommandEncoder::fillBuffer):
(WebKit::RemoteCommandEncoder::pushDebugGroup):
(WebKit::RemoteCommandEncoder::popDebugGroup):
(WebKit::RemoteCommandEncoder::insertDebugMarker):
(WebKit::RemoteCommandEncoder::writeTimestamp):
(WebKit::RemoteCommandEncoder::resolveQuerySet):
(WebKit::RemoteCommandEncoder::finish):
(WebKit::RemoteCommandEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp:

(WebKit::RemoteComputePassEncoder::RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::~RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::setPipeline):
(WebKit::RemoteComputePassEncoder::dispatch):
(WebKit::RemoteComputePassEncoder::dispatchIndirect):
(WebKit::RemoteComputePassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::endPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::endPass):
(WebKit::RemoteComputePassEncoder::setBindGroup):
(WebKit::RemoteComputePassEncoder::pushDebugGroup):
(WebKit::RemoteComputePassEncoder::popDebugGroup):
(WebKit::RemoteComputePassEncoder::insertDebugMarker):
(WebKit::RemoteComputePassEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp:

(WebKit::RemoteComputePipeline::RemoteComputePipeline):
(WebKit::RemoteComputePipeline::~RemoteComputePipeline):
(WebKit::RemoteComputePipeline::getBindGroupLayout):
(WebKit::RemoteComputePipeline::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
  • GPUProcess/graphics/WebGPU/RemoteDevice.cpp:

(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::~RemoteDevice):
(WebKit::RemoteDevice::destroy):
(WebKit::RemoteDevice::createBuffer):
(WebKit::RemoteDevice::createTexture):
(WebKit::RemoteDevice::createSampler):
(WebKit::RemoteDevice::importExternalTexture):
(WebKit::RemoteDevice::createBindGroupLayout):
(WebKit::RemoteDevice::createPipelineLayout):
(WebKit::RemoteDevice::createBindGroup):
(WebKit::RemoteDevice::createShaderModule):
(WebKit::RemoteDevice::createComputePipeline):
(WebKit::RemoteDevice::createRenderPipeline):
(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::createCommandEncoder):
(WebKit::RemoteDevice::createRenderBundleEncoder):
(WebKit::RemoteDevice::createQuerySet):
(WebKit::RemoteDevice::pushErrorScope):
(WebKit::RemoteDevice::popErrorScope):
(WebKit::RemoteDevice::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteDevice.h:
  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp:

(WebKit::RemoteExternalTexture::RemoteExternalTexture):
(WebKit::RemoteExternalTexture::~RemoteExternalTexture):
(WebKit::RemoteExternalTexture::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::~RemoteGPU):
(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.messages.in:
  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp:

(WebKit::RemotePipelineLayout::RemotePipelineLayout):
(WebKit::RemotePipelineLayout::~RemotePipelineLayout):
(WebKit::RemotePipelineLayout::setLabel):

  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
  • GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp:

(WebKit::RemoteQuerySet::RemoteQuerySet):
(WebKit::RemoteQuerySet::~RemoteQuerySet):
(WebKit::RemoteQuerySet::destroy):
(WebKit::RemoteQuerySet::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
  • GPUProcess/graphics/WebGPU/RemoteQueue.cpp:

(WebKit::RemoteQueue::RemoteQueue):
(WebKit::RemoteQueue::~RemoteQueue):
(WebKit::RemoteQueue::submit):
(WebKit::RemoteQueue::onSubmittedWorkDone):
(WebKit::RemoteQueue::writeBuffer):
(WebKit::RemoteQueue::writeTexture):
(WebKit::RemoteQueue::copyExternalImageToTexture):
(WebKit::RemoteQueue::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteQueue.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp:

(WebKit::RemoteRenderBundle::RemoteRenderBundle):
(WebKit::RemoteRenderBundle::~RemoteRenderBundle):
(WebKit::RemoteRenderBundle::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp:

(WebKit::RemoteRenderBundleEncoder::RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::~RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::setPipeline):
(WebKit::RemoteRenderBundleEncoder::setIndexBuffer):
(WebKit::RemoteRenderBundleEncoder::setVertexBuffer):
(WebKit::RemoteRenderBundleEncoder::draw):
(WebKit::RemoteRenderBundleEncoder::drawIndexed):
(WebKit::RemoteRenderBundleEncoder::drawIndirect):
(WebKit::RemoteRenderBundleEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderBundleEncoder::setBindGroup):
(WebKit::RemoteRenderBundleEncoder::pushDebugGroup):
(WebKit::RemoteRenderBundleEncoder::popDebugGroup):
(WebKit::RemoteRenderBundleEncoder::insertDebugMarker):
(WebKit::RemoteRenderBundleEncoder::finish):
(WebKit::RemoteRenderBundleEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp:

(WebKit::RemoteRenderPassEncoder::RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::~RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::setPipeline):
(WebKit::RemoteRenderPassEncoder::setIndexBuffer):
(WebKit::RemoteRenderPassEncoder::setVertexBuffer):
(WebKit::RemoteRenderPassEncoder::draw):
(WebKit::RemoteRenderPassEncoder::drawIndexed):
(WebKit::RemoteRenderPassEncoder::drawIndirect):
(WebKit::RemoteRenderPassEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderPassEncoder::setBindGroup):
(WebKit::RemoteRenderPassEncoder::pushDebugGroup):
(WebKit::RemoteRenderPassEncoder::popDebugGroup):
(WebKit::RemoteRenderPassEncoder::insertDebugMarker):
(WebKit::RemoteRenderPassEncoder::setViewport):
(WebKit::RemoteRenderPassEncoder::setScissorRect):
(WebKit::RemoteRenderPassEncoder::setBlendConstant):
(WebKit::RemoteRenderPassEncoder::setStencilReference):
(WebKit::RemoteRenderPassEncoder::beginOcclusionQuery):
(WebKit::RemoteRenderPassEncoder::endOcclusionQuery):
(WebKit::RemoteRenderPassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::endPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::executeBundles):
(WebKit::RemoteRenderPassEncoder::endPass):
(WebKit::RemoteRenderPassEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp:

(WebKit::RemoteRenderPipeline::RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::~RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::getBindGroupLayout):
(WebKit::RemoteRenderPipeline::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
  • GPUProcess/graphics/WebGPU/RemoteSampler.cpp:

(WebKit::RemoteSampler::RemoteSampler):
(WebKit::RemoteSampler::~RemoteSampler):
(WebKit::RemoteSampler::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteSampler.h:
  • GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:

(WebKit::RemoteShaderModule::RemoteShaderModule):
(WebKit::RemoteShaderModule::~RemoteShaderModule):
(WebKit::RemoteShaderModule::compilationInfo):
(WebKit::RemoteShaderModule::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
  • GPUProcess/graphics/WebGPU/RemoteTexture.cpp:

(WebKit::RemoteTexture::RemoteTexture):
(WebKit::RemoteTexture::~RemoteTexture):
(WebKit::RemoteTexture::createView):
(WebKit::RemoteTexture::destroy):
(WebKit::RemoteTexture::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteTexture.h:
  • GPUProcess/graphics/WebGPU/RemoteTextureView.cpp:

(WebKit::RemoteTextureView::RemoteTextureView):
(WebKit::RemoteTextureView::~RemoteTextureView):
(WebKit::RemoteTextureView::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteTextureView.h:
  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:

(WebKit::WebGPU::ObjectHeap::addObject):
(WebKit::WebGPU::ObjectHeap::removeObject):
(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking): Deleted.

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
  • GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.cpp: Added.

(WebKit::WebGPU::ObjectRegistry::ObjectRegistry):
(WebKit::WebGPU::ObjectRegistry::~ObjectRegistry):
(WebKit::WebGPU::ObjectRegistry::addObject):
(WebKit::WebGPU::ObjectRegistry::removeObject):
(WebKit::WebGPU::ObjectRegistry::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertBufferFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertGPUFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertQueueFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertTextureFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertTextureViewFromBacking):

  • GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h: Copied from Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h.
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebKit.xcodeproj/xcshareddata/xcschemes/WebKit.xcscheme:
4:56 PM Changeset in webkit [286086] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk

Implement parsing and animation support for ray() shape accepted by offset-path
https://bugs.webkit.org/show_bug.cgi?id=233153

Patch by Kiet Ho <Kiet Ho> on 2021-11-19
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Rebaselined tests that now should pass.

  • web-platform-tests/css/motion/animation/offset-path-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt:
  • web-platform-tests/css/motion/offset-supports-calc-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed.html:
  • web-platform-tests/css/motion/parsing/offset-path-parsing-valid-expected.txt:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/motion/animation/offset-path-composition.html

imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005.html
imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-valid.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): Added support for blending between ray()s.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueIDForRaySize):
(WebCore::valueForPathOperation): Added support for getting the computed value of ray().

  • css/CSSRayValue.cpp: Added.

(WebCore::CSSRayValue::customCSSText const):
(WebCore::CSSRayValue::equals const):

  • css/CSSRayValue.h: Added.
  • css/CSSValue.cpp:

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

  • css/CSSValue.h:

(WebCore::CSSValue::isRayValue const):

  • css/CSSValueKeywords.in: Added new keywords used by ray().
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRayShape): Added method to consume ray().
(WebCore::consumePathOperation): Added a switch to control whether to accept
ray() or not. Both clip-path and offset-path uses this function, however clip-path
doesn't support the ray shape, while offset-path does, hence the switch.
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/PathOperation.h: Added a new subclass of PathOperation called RayPathOperation

to represent ray().

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hitTestClipPath const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPathOperation): Added support for converting CSSRayValue
to RayPathOperation.

4:49 PM Changeset in webkit [286085] by commit-queue@webkit.org
  • 9 edits in trunk

Integrate motion path transforms in transformation pipeline
https://bugs.webkit.org/show_bug.cgi?id=233144

Patch by Kiet Ho <Kiet Ho> on 2021-11-19
Reviewed by Dean Jackson.

Source/WebCore:

This patch ties everything together and renders CSS Motion Path out onto the screen.
Motion path properties are desugared into two transformations: one translate to move
the element to the specified location on the path, and one rotate to rotate the element
to the correct orientation specified by offset-rotate. The two transformations are applied
after scale() and before the individual transform functions, as specified in the CSS
Transforms spec.

Tests: imported/w3c/web-platform-tests/css/motion/animation/reftests/offset-path-with-transforms-001.html

imported/w3c/web-platform-tests/css/motion/offset-distance-001.html
imported/w3c/web-platform-tests/css/motion/offset-distance-002.html
imported/w3c/web-platform-tests/css/motion/offset-distance-003.html
imported/w3c/web-platform-tests/css/motion/offset-distance-004.html
imported/w3c/web-platform-tests/css/motion/offset-distance-005.html
imported/w3c/web-platform-tests/css/motion/offset-distance-006.html
imported/w3c/web-platform-tests/css/motion/offset-distance-007.html
imported/w3c/web-platform-tests/css/motion/offset-distance-008.html
imported/w3c/web-platform-tests/css/motion/offset-distance-009.html
imported/w3c/web-platform-tests/css/motion/offset-path-string-001.html
imported/w3c/web-platform-tests/css/motion/offset-path-string-002.html
imported/w3c/web-platform-tests/css/motion/offset-rotate-003.html
imported/w3c/web-platform-tests/css/motion/offset-rotate-004.html
imported/w3c/web-platform-tests/css/motion/offset-rotate-005.html

  • platform/graphics/Path.cpp:

(WebCore::Path::isClosed const): Added method to determine if a Path is closed (i.e,
the last draw command is CloseSubpath). This is required because offset-distance is
handled differently depending on if the Path is closed or not.

  • platform/graphics/Path.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate): Account in changes in motion path properties.

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasTransform const): Account in motion path properties.

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::applyTransform const): Add an additional step to apply motion path transforms.
(WebCore::getPathFromPathOperation):
(WebCore::getTraversalStateAtDistance):
(WebCore::RenderStyle::applyMotionPathTransform const): Added method to apply motion path transforms.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasTransform const): Account for motion path properties.

LayoutTests:

Removed ImageOnlyFailure expectations for tests that should now pass.

3:52 PM Changeset in webkit [286084] by achristensen@apple.com
  • 33 edits in trunk

Implement extension-path variant of redirect action in WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=233351

Reviewed by Tim Hatcher.

Source/WebCore:

Because the extension path changes each time you relaunch Safari but the compiled bytecode does not,
we need a way to pass in the extension base URL when adding the looked-up or compiled WKContentRuleList
to the WKUserContentController.

  • contentextensions/ContentExtension.cpp:

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

  • contentextensions/ContentExtension.h:

(WebCore::ContentExtensions::ContentExtension::extensionBaseURL const):

  • contentextensions/ContentExtensionActions.cpp:

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

  • contentextensions/ContentExtensionActions.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::applyResultsToRequest):

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/ContentRuleListResults.h:

Source/WebKit:

  • NetworkProcess/NetworkContentRuleListManager.cpp:

(WebKit::NetworkContentRuleListManager::addContentRuleLists):

  • NetworkProcess/NetworkContentRuleListManager.h:
  • NetworkProcess/NetworkContentRuleListManager.messages.in:
  • Shared/ServiceWorkerInitializationData.cpp:

(WebKit::ServiceWorkerInitializationData::decode):

  • Shared/ServiceWorkerInitializationData.h:
  • Shared/UserContentControllerParameters.cpp:

(WebKit::UserContentControllerParameters::decode):

  • Shared/UserContentControllerParameters.h:
  • Shared/WebCompiledContentRuleListData.cpp:

(WebKit::WebCompiledContentRuleListData::encode const):
(WebKit::WebCompiledContentRuleListData::decode):

  • Shared/WebCompiledContentRuleListData.h:

(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):

  • UIProcess/API/APIContentRuleList.cpp:

(API::ContentRuleList::ContentRuleList):
(API::ContentRuleList::name const):

  • UIProcess/API/APIContentRuleList.h:
  • UIProcess/API/APIContentRuleListStore.cpp:

(API::createExtension):

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController _addContentRuleList:extensionBaseURL:]):

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::contentExtensionRules):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::contentRuleListData const):
(WebKit::WebUserContentControllerProxy::addContentRuleList):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:

(WebKit::WebUserContentControllerProxy::addContentRuleList):
(WebKit::WebUserContentControllerProxy::contentExtensionRules):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::contentRuleListsFromIdentifier):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addContentRuleLists):

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/UserContent/WebUserContentController.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::makeBackend):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(TEST_F):

3:19 PM Changeset in webkit [286083] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r286030.
https://bugs.webkit.org/show_bug.cgi?id=233387

5% JetStream2 regression

Reverted changeset:

"DFGByteCodeParser.cpp should avoid resizing the Operands<> of
every BasicBlock on every inlining"
https://bugs.webkit.org/show_bug.cgi?id=228053
https://commits.webkit.org/r286030

3:14 PM Changeset in webkit [286082] by graouts@webkit.org
  • 4 edits in trunk/Source/WebKit

[Model] Use RefPtr across ARKitInlinePreviewModelPlayer when creating strong pointers
https://bugs.webkit.org/show_bug.cgi?id=233375

Reviewed by Wenson Hsieh.

  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::getCamera):
(WebKit::ARKitInlinePreviewModelPlayer::setCamera):
(WebKit::ARKitInlinePreviewModelPlayer::isPlayingAnimation):
(WebKit::ARKitInlinePreviewModelPlayer::setAnimationIsPlaying):

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::enterFullscreen):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::load):

2:41 PM Changeset in webkit [286081] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

[Model] Reduce use of callOnMainRunLoop in ModelElementControllerCocoa
https://bugs.webkit.org/show_bug.cgi?id=233376

Reviewed by Wenson Hsieh.

We only need to use callOnMainRunLoop inside of blocks.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):
(WebKit::ModelElementController::isPlayingAnimationForModelElement):
(WebKit::ModelElementController::setAnimationIsPlayingForModelElement):

2:38 PM Changeset in webkit [286080] by Chris Dumez
  • 2 edits
    1 add in trunk/Source/WebKit

Revert r282446 to bring back support for WebKitAdditions in Framework headers
https://bugs.webkit.org/show_bug.cgi?id=233374

Reviewed by Wenson Hsieh.

  • WebKit.xcodeproj/project.pbxproj:
  • mac/replace-webkit-additions-includes.py: Added.

(read_content_from_webkit_additions):
(main):

2:20 PM Changeset in webkit [286079] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] TestWebKitAPI.WebSocket.PageWithAttributedBundleIdentifierDestroyed (API-test) is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=233224

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:

(TestWebKitAPI::TEST):

2:19 PM Changeset in webkit [286078] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Add headers for [_WKWebAuthenticationPanel makeCredentialWithClientDataHash] and [_WKWebAuthenticationPanel getAssertionWithClientDataHash]
https://bugs.webkit.org/show_bug.cgi?id=233371
<rdar://problem/85607248>
Source/WebKit:

Reviewed by Brent Fulgham.

These SPIs were added in https://bugs.webkit.org/show_bug.cgi?id=233216, but were not added to the header
file _WKWebAuthenticationPanel.h, this change adds them.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:

Tools:

Reviewed by Brent Fulgham.

Add tests for [_WKWebAuthenticationPanel makeCredentialWithClientDataHash] and
[_WKWebAuthenticationPanel getAssertionWithClientDataHash].

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

2:05 PM Changeset in webkit [286077] by mmaxfield@apple.com
  • 99 edits
    58 copies
    5 adds in trunk/Source

[WebGPU] Add converters from serializable descriptors to interface descriptors
https://bugs.webkit.org/show_bug.cgi?id=233310

Reviewed by Dean Jackson.

Source/WebCore:

The WebGPU abstract interface (in PAL/graphics/WebGPU) has a set of structs for descriptors. These descriptors hold references to
objects, so these interfaces can't be serialized directly. Instead, we have a parallel set of structs (in WebKit/Shared/WebGPU)
which replace the object references with WebGPUIdentifiers. The web process side will convert the abstract interface structs
to the serializable ones, and the GPU process side will convert back. This patch implements the converters back, from the serializable
structs to the abstract interface structs.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUBindGroupDescriptor.h:

(WebCore::GPUBindGroupDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.h:

(WebCore::GPUBindGroupLayoutDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUCompilationInfo.cpp:

(WebCore::GPUCompilationInfo::messages const):

  • Modules/WebGPU/GPUCompilationMessage.h:

(WebCore::GPUCompilationMessage::create):
(WebCore::GPUCompilationMessage::GPUCompilationMessage):

  • Modules/WebGPU/GPUComputePassTimestampWrite.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUDeviceDescriptor.h:

(WebCore::GPUDeviceDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUFragmentState.h:

(WebCore::GPUFragmentState::convertToBacking const):

  • Modules/WebGPU/GPUPipelineLayoutDescriptor.h:

(WebCore::GPUPipelineLayoutDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUProgrammableStage.h:

(WebCore::GPUProgrammableStage::convertToBacking const):

  • Modules/WebGPU/GPUQuerySetDescriptor.h:

(WebCore::GPUQuerySetDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:

(WebCore::GPURenderBundleEncoderDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassDescriptor.h:

(WebCore::GPURenderPassDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassLayout.h:

(WebCore::GPURenderPassLayout::convertToBacking const):

  • Modules/WebGPU/GPURenderPassTimestampWrite.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUVertexBufferLayout.h:

(WebCore::GPUVertexBufferLayout::convertToBacking const):

  • Modules/WebGPU/GPUVertexState.h:

(WebCore::GPUVertexState::convertToBacking const):

Source/WebCore/PAL:

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

(PAL::WebGPU::AdapterImpl::requestDevice):

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

(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):

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

(PAL::WebGPU::QueueImpl::submit):

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

(PAL::WebGPU::RenderPassEncoderImpl::executeBundles):

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

(PAL::WebGPU::TextureImpl::createView):
(PAL::WebGPU::TextureImpl::createView const): Deleted.

  • pal/graphics/WebGPU/WebGPUCompilationMessage.h:
  • pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
  • pal/graphics/WebGPU/WebGPUSupportedLimits.h:
  • pal/graphics/WebGPU/WebGPUValidationError.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:

(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
  • Scripts/generate-unified-sources.sh:
  • Shared/WebGPU/WebGPUBindGroupDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUFragmentState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupEntry.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupEntry.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.h:
  • Shared/WebGPU/WebGPUBlendComponent.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendComponent.h:
  • Shared/WebGPU/WebGPUBlendState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendState.h:
  • Shared/WebGPU/WebGPUBufferBinding.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBinding.h:
  • Shared/WebGPU/WebGPUBufferBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBindingLayout.h:
  • Shared/WebGPU/WebGPUBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCanvasConfiguration.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUFragmentState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCanvasConfiguration.h:
  • Shared/WebGPU/WebGPUColor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColor.h:
  • Shared/WebGPU/WebGPUColorTargetState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColorTargetState.h:
  • Shared/WebGPU/WebGPUCommandBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.h:
  • Shared/WebGPU/WebGPUCompilationMessage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCompilationMessage.h:
  • Shared/WebGPU/WebGPUComputePassDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassDescriptor.h:
  • Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassTimestampWrites.h:
  • Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePipelineDescriptor.h:
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Shared/WebGPU/WebGPUDepthStencilState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDepthStencilState.h:
  • Shared/WebGPU/WebGPUDeviceDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDeviceDescriptor.h:
  • Shared/WebGPU/WebGPUError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUOrigin2D.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUError.h:
  • Shared/WebGPU/WebGPUExtent3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExtent3D.h:
  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureDescriptor.h:
  • Shared/WebGPU/WebGPUFragmentState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUFragmentState.h:
  • Shared/WebGPU/WebGPUImageCopyBuffer.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyBuffer.h:
  • Shared/WebGPU/WebGPUImageCopyExternalImage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.h:
  • Shared/WebGPU/WebGPUImageCopyTexture.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTexture.h:
  • Shared/WebGPU/WebGPUImageCopyTextureTagged.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTextureTagged.h:
  • Shared/WebGPU/WebGPUImageDataLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageDataLayout.h:
  • Shared/WebGPU/WebGPUMultisampleState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUMultisampleState.h:
  • Shared/WebGPU/WebGPUObjectDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUObjectDescriptorBase.h:
  • Shared/WebGPU/WebGPUOrigin2D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin2D.h:
  • Shared/WebGPU/WebGPUOrigin3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin3D.h:
  • Shared/WebGPU/WebGPUOutOfMemoryError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOutOfMemoryError.h:
  • Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineDescriptorBase.h:
  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUPrimitiveState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPrimitiveState.h:
  • Shared/WebGPU/WebGPUProgrammableStage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUProgrammableStage.h:
  • Shared/WebGPU/WebGPUQuerySetDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassColorAttachment.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassLayout.h:
  • Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp: Copied from Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrite.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassTimestampWrites.h:
  • Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPipelineDescriptor.h:
  • Shared/WebGPU/WebGPURequestAdapterOptions.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURequestAdapterOptions.h:
  • Shared/WebGPU/WebGPUSamplerBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerBindingLayout.h:
  • Shared/WebGPU/WebGPUSamplerDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerDescriptor.h:
  • Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h:
  • Shared/WebGPU/WebGPUStencilFaceState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStencilFaceState.h:
  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSupportedFeatures.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUSupportedFeatures.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedFeatures.h:
  • Shared/WebGPU/WebGPUSupportedLimits.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedLimits.h:
  • Shared/WebGPU/WebGPUTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureDescriptor.h:
  • Shared/WebGPU/WebGPUTextureViewDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureViewDescriptor.h:
  • Shared/WebGPU/WebGPUValidationError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUValidationError.h:
  • Shared/WebGPU/WebGPUVertexAttribute.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexAttribute.h:
  • Shared/WebGPU/WebGPUVertexBufferLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexBufferLayout.h:
  • Shared/WebGPU/WebGPUVertexState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexState.h:
  • Sources.txt:
  • UnifiedSources-output.xcfilelist:
  • WebKit.xcodeproj/project.pbxproj:
2:00 PM Changeset in webkit [286076] by Jonathan Bedard
  • 10 edits in trunk/Tools

[webkitcorepy] Indicate to user the default option
https://bugs.webkit.org/show_bug.cgi?id=233342
<rdar://problem/85573383>

Reviewed by Ryan Haddad.

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

(Terminal.choose): Surround the default option with square brackets.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py:

(TerminalTests.test_choose_triple):

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

(Setup.github): We should construct a user owned mirror by default.

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

(TestLand.test_default):
(TestLand.test_canonicalize):
(TestLand.test_svn):
(TestLandGitHub):

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

(TestSetup.test_github):

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

1:43 PM Changeset in webkit [286075] by beidson@apple.com
  • 17 edits
    1 copy
    1 add in trunk

More webpushd architecture work
https://bugs.webkit.org/show_bug.cgi?id=233295

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

This patch:

  • Adds entitlement checks for connections to webpushd
  • Adds a "ClientConnection" object to the daemon to manage per-connection state
  • Adds a debug enabled setting
  • Adds the ability for the connecting app (com.apple.WebKit.Networking) to pass the host app's audit_token
  • Tests some of the above
  • Adds the beginnings of other future infrastructure
  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::NetworkNotificationManager):

  • Resources/ios/XPCService-embedded-simulator.entitlements:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/CodeSigning.h:
  • Shared/Cocoa/CodeSigning.mm:

(WebKit::codeSigningIdentifierAndPlatformBinaryStatus):
(WebKit::codeSigningIdentifier):

  • Shared/WebPushDaemonConstants.h:

(WebKit::WebPushD::messageTypeSendsReply):

  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/PushClientConnection.h: Copied from Source/WebKit/Shared/Cocoa/CodeSigning.h.

(WebPushD::ClientConnection::hasAuditToken const):
(WebPushD::ClientConnection::debugModeIsEnabled const):

  • webpushd/PushClientConnection.mm: Added.

(WebPushD::ClientConnection::ClientConnection):
(WebPushD::ClientConnection::setAuditTokenData):
(WebPushD::ClientConnection::hostCodeSigningIdentifier):
(WebPushD::ClientConnection::hostHasPushEntitlement):
(WebPushD::ClientConnection::setDebugModeIsEnabled):

  • webpushd/WebPushDaemon.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::handleWebPushDMessageWithReply):
(WebPushD::handleWebPushDMessage):
(WebPushD::Daemon::broadcastDebugMessage):
(WebPushD::Daemon::connectionEventHandler):
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::echoTwice):
(WebPushD::Daemon::canRegisterForNotifications):
(WebPushD::Daemon::requestSystemNotificationPermission):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::deletePushAndNotificationRegistration):
(WebPushD::Daemon::setHostAppAuditToken):
(WebPushD::Daemon::setDebugModeIsEnabled):
(WebPushD::Daemon::toClientConnection):

  • webpushd/WebPushDaemonMain.mm:

(main):

Tools:

  • TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(TestWebKitAPI::TEST):

1:35 PM Changeset in webkit [286074] by Jonathan Bedard
  • 7 edits
    1 move in trunk/Tools

[resultsdbpy] Move AuthedBlueprint to webkitflaskpy
https://bugs.webkit.org/show_bug.cgi?id=233339
<rdar://problem/85571604>

Reviewed by Ryan Haddad.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/api_routes.py: Import

AuthedBlueprint from webkitflaskpy.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes.py: Ditto.
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
  • Scripts/libraries/webkitflaskpy/setup.py: Ditto.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Bump Export object.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/authed_blueprint.py: Renamed from

Tools/Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/authed_blueprint.py.

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

1:20 PM Changeset in webkit [286073] by Brent Fulgham
  • 9 edits in trunk

Add support for web app manifest icons in WebKit/UI Process layer
https://bugs.webkit.org/show_bug.cgi?id=233350
<rdar://problem/84311569>

Reviewed by Chris Dumez.

Source/WebCore:

This patch builds on the work in Bug 231339 and threads the new icons
feature through the WebKit layer.

This change modifies the parser to represent the 'sizes' member of the
icon as an array of strings, rather than a single string containing the
sizes as a set of space-separated items. This more closesly matches the
behavior of the WebKit API layer.

Tested by TestWebKitAPI.

  • Modules/applicationmanifest/ApplicationManifest.h:
  • Modules/applicationmanifest/ApplicationManifestParser.cpp:

(WebCore::ApplicationManifestParser::parseIcons):

Source/WebKit:

This patch builds on the work in Bug 231339 and threads the new icons
feature through the WebKit layer.

Note: This change also moves the implementation of _WKApplicationManifestIcon
earlier in the file since the implementation is needed for proper serialization
of the _WKApplicationManifest.

Tested by TestWebKitAPI (ApplicationManifest.Icons) test.

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

(fromPurposes): New helper function.
(makeVectorElement): Ditto.
(-[_WKApplicationManifestIcon initWithCoder:]): Updated to call proper
serialization methods.
(-[_WKApplicationManifestIcon initWithCoreIcon:]): Added.
(-[_WKApplicationManifest initWithCoder:]): Updated to properly handle
serializing the object.
(-[_WKApplicationManifest icons]): Added.

Tools:

Add a new API test to exercise the _WKApplicationManifestIcon API.

  • TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:

(ApplicationManifestParserTest::testIconsSizes):
(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:

(TestWebKitAPI::TEST):

12:12 PM Changeset in webkit [286072] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ]TestWebKitAPI.PrivateClickMeasurement.EphemeralWithAttributedBundleIdentifier (API-test) is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=233345

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

11:47 AM Changeset in webkit [286071] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Enable message filtering for all WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=233334
<rdar://problem/85568306>

Reviewed by Brent Fulgham.

The sandbox parameter enabling message filtering should be set in all WebKit processes.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::initializeSandbox):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox):

11:36 AM Changeset in webkit [286070] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Fix assertion added in r285592
https://bugs.webkit.org/show_bug.cgi?id=233373
JSTests:

Reviewed by Keith Miller.

  • stress/validate-assert-uid-is-not-index-or-it-is-symbol.js: Added.

(main.v11):
(main.v29):
(main):

Source/JavaScriptCore:

rdar://85451012

Reviewed by Keith Miller.

The assertion added in r285592 should not apply to Symbols. This patch
fixes that error. We don't care if a Symbol can be parsed as an index
since the string value in a Symbol is just its description, not the
actual property.

  • dfg/DFGValidate.cpp:
11:17 AM Changeset in webkit [286069] by commit-queue@webkit.org
  • 10 edits in trunk

[JSC] Shadow realms: set correct Function prototype on wrapped functions
https://bugs.webkit.org/show_bug.cgi?id=233143

Patch by Joseph Griego <jgriego@igalia.com> on 2021-11-19
Reviewed by Yusuke Suzuki.

At present, the Function prototype set on each of the returned wrapped
functions will be the Function object from the realm the shadow realm
builtin is from--to comply with the latest draft of the shadow realms
spec [1], wrapped function objects should have the Function prototype
from the realm the wrapper object is destined for, instead.

At present, this requires tracking both the calling (destination) and
target (source) realm and switching between the two as function
arguments are wrapped (when the notion of source and destination realm
also flips)

Adds a simple builtin (moveFunctionToRealm) that can switch the Function
prototype given only the Shadow Realm object corresponding to the
correct global object.

Also marks the corresponding part of test262 as passing.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

[1] https://tc39.es/proposal-shadowrealm/ sections 2.1, 2.2

  • builtins/BuiltinNames.h:
  • builtins/ShadowRealmPrototype.js:

(wrapped):
(globalPrivate.wrap):
(evaluate):
(importValue):
(globalPrivate.wrap.wrapped): Deleted.

  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ShadowRealmPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ShadowRealmPrototype.h:
11:05 AM Changeset in webkit [286068] by graouts@webkit.org
  • 20 edits in trunk/Source

[Model] add support for seeking animations
https://bugs.webkit.org/show_bug.cgi?id=233362
<rdar://problem/85428812>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add three new promise-based methods to the HTMLModelElement IDL to allow seeking the animation
built into the USDZ asset: animationDuration(), animationCurrentTime() and setAnimationCurrentTime().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::animationDuration):
(WebCore::HTMLModelElement::animationCurrentTime):
(WebCore::HTMLModelElement::setAnimationCurrentTime):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::animationDuration):
(WebCore::DummyModelPlayer::animationCurrentTime):
(WebCore::DummyModelPlayer::setAnimationCurrentTime):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::animationDuration):
(WebCore::SceneKitModelPlayer::animationCurrentTime):
(WebCore::SceneKitModelPlayer::setAnimationCurrentTime):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using to query the animation duration, the current and time
as well as allowing to set the latter.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the animation's current
time as well as getting its duration.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::animationDurationForModelElement):
(WebKit::ModelElementController::animationCurrentTimeForModelElement):
(WebKit::ModelElementController::setAnimationCurrentTimeForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementAnimationDuration):
(WebKit::WebPageProxy::modelElementAnimationCurrentTime):
(WebKit::WebPageProxy::modelElementSetAnimationCurrentTime):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::animationDuration):
(WebKit::ARKitInlinePreviewModelPlayer::animationCurrentTime):
(WebKit::ARKitInlinePreviewModelPlayer::setAnimationCurrentTime):

10:52 AM Changeset in webkit [286067] by Ryan Haddad
  • 99 edits
    63 deletes in trunk/Source

Unreviewed, reverting r286047.

Breaks internal builds

Reverted changeset:

"[WebGPU] Add converters from serializable descriptors to
interface descriptors"
https://bugs.webkit.org/show_bug.cgi?id=233310
https://commits.webkit.org/r286047

10:21 AM Changeset in webkit [286066] by graouts@webkit.org
  • 20 edits in trunk/Source

[Model] add support for controlling looping animations
https://bugs.webkit.org/show_bug.cgi?id=233356
<rdar://problem/85428884>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add two new promise-based methods to the HTMLModelElement IDL to control the looping state
of the animation built into the USDZ asset: isLoopingAnimation() and setIsLoopingAnimation().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::isLoopingAnimation):
(WebCore::HTMLModelElement::setIsLoopingAnimation):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::isLoopingAnimation):
(WebCore::DummyModelPlayer::setIsLoopingAnimation):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::isLoopingAnimation):
(WebCore::SceneKitModelPlayer::setIsLoopingAnimation):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using to control animation looping.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the animation's looping
state.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::isLoopingAnimationForModelElement):
(WebKit::ModelElementController::setIsLoopingAnimationForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementIsLoopingAnimation):
(WebKit::WebPageProxy::modelElementSetIsLoopingAnimation):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::isLoopingAnimation):
(WebKit::ARKitInlinePreviewModelPlayer::setIsLoopingAnimation):

9:42 AM Changeset in webkit [286065] by graouts@webkit.org
  • 22 edits in trunk/Source

[Model] add audio support
https://bugs.webkit.org/show_bug.cgi?id=233365
<rdar://problem/85428982>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add three new promise-based methods to the HTMLModelElement IDL to control the audio state
of the animation built into the USDZ asset: hasAudio(), isMuted() and setIsMuted().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::hasAudio):
(WebCore::HTMLModelElement::isMuted):
(WebCore::HTMLModelElement::setIsMuted):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::hasAudio):
(WebCore::DummyModelPlayer::isMuted):
(WebCore::DummyModelPlayer::setIsMuted):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::hasAudio):
(WebCore::SceneKitModelPlayer::isMuted):
(WebCore::SceneKitModelPlayer::setIsMuted):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using for audio control.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the muted state and get
whehter the model contains audio.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::previewHasAudioSupport):
(WebKit::ModelElementController::hasAudioForModelElement):
(WebKit::ModelElementController::isMutedForModelElement):
(WebKit::ModelElementController::setIsMutedForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementHasAudio):
(WebKit::WebPageProxy::modelElementIsMuted):
(WebKit::WebPageProxy::modelElementSetIsMuted):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::hasAudio):
(WebKit::ARKitInlinePreviewModelPlayer::isMuted):
(WebKit::ARKitInlinePreviewModelPlayer::setIsMuted):

Source/WTF:

Add a new compile-time flag for the new autio-related ARQL SPIs we are using.

  • wtf/PlatformEnableCocoa.h:
9:09 AM Changeset in webkit [286064] by Antti Koivisto
  • 3 edits
    2 adds in trunk

[CSS Cascade Layers] [Debug] ASSERTION FAILED: m_childRules.isEmpty() when using @import with layer name
https://bugs.webkit.org/show_bug.cgi?id=233283
<rdar://problem/85520733>

Reviewed by Antoine Quint.

Source/WebCore:

CSS parser is allowing rules in illegal order (@import rule following @layer block)

Test: fast/css/layer-illegal-import.html

  • css/parser/CSSParserImpl.cpp:

(WebCore::computeNewAllowedRules):

Only stay in AllowLayerStatementRules state if the new layer is a statement, not a block.

LayoutTests:

  • fast/css/layer-illegal-import-expected.html: Added.
  • fast/css/layer-illegal-import.html: Added.
8:53 AM Changeset in webkit [286063] by Antti Koivisto
  • 4 edits
    2 adds in trunk

:hover with descendant selector not invalidated correctly in shadow tree
https://bugs.webkit.org/show_bug.cgi?id=233354

Reviewed by Antoine Quint.

Source/WebCore:

We optimize :hover and :active by only invalidating for descendant selectors with a single tree walk.
This doesn't work correctly for shadow trees as their scoped style may differ and the invalidation
is limited to a single scope anyway.

Fix by doing descendant invalidation for each affected scope.

Test: fast/selectors/hover-descendant-shadow-tree.html

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

We need to perform scoped descendant invalidation for elements that are parented to ShadowRoot.

LayoutTests:

  • fast/selectors/hover-descendant-shadow-tree-expected.html: Added.
  • fast/selectors/hover-descendant-shadow-tree.html: Added.
  • platform/ios/TestExpectations:
7:57 AM Changeset in webkit [286062] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Remove allocation in JSON::Value::parseJSON
https://bugs.webkit.org/show_bug.cgi?id=233346

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-19
Reviewed by Yusuke Suzuki.

Parse the characters as Latin1 characters if we have an 8 bit string rather than converting them to UTF-16 just to be parsed.

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::parseJSON):

7:37 AM Changeset in webkit [286061] by commit-queue@webkit.org
  • 13 edits
    8 adds in trunk

LayoutTests/imported/w3c:
Import css/css-values/urls web-platform-tests
Don't modify fragment-only or empty image URLs
https://bugs.webkit.org/show_bug.cgi?id=229917

Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-11-19
Reviewed by Darin Adler.

Change handling of empty and fragment url()s for images to not convert to a fully resolved
path, and instead preserve them as-is, to match css-values4 requirements.

Import new tests in css/css-values/urls from 5e3187856a311f583124735cad5a03baa61951b3 and
add expectations for the new tests.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-values/urls/empty-expected.txt:
  • web-platform-tests/css/css-values/urls/empty.html:
  • web-platform-tests/css/css-values/urls/fragment-only-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/fragment-only.html: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-base-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-base.html: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-stylesheet-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-stylesheet.html: Added.
  • web-platform-tests/css/css-values/urls/support/fragment-only-urls.css: Added.

(:root):
(#external-unquoted):
(#external-quoted):
(#external-variable):

  • web-platform-tests/css/css-values/urls/support/relative-urls.css: Added.

(:root):
(#stylesheet-relative-image):
(#stylesheet-relative-variable-image):
(#stylesheet-relative-document-variable-image):

  • web-platform-tests/css/css-values/urls/support/w3c-import.log:
  • web-platform-tests/css/css-values/urls/w3c-import.log:

Source/WebCore:
Don't modify fragment-only or empty image URLs
https://bugs.webkit.org/show_bug.cgi?id=229917

Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-11-19
Reviewed by Darin Adler.

Don't modify fragment-only or empty image URLs, as-per css-values-4

Existing web-platform-tests are marked as passing.

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::reresolvedURL const):

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::completeURL const):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeImage):

  • dom/Document.cpp:

(WebCore::Document::completeURL const):

7:01 AM Changeset in webkit [286060] by Angelos Oikonomopoulos
  • 11 edits in trunk

[JSC] Workaround for failing mips tests
https://bugs.webkit.org/show_bug.cgi?id=233359

Reviewed by Adrian Perez de Castro.

.:

Add a compiler flag on GCC+mips to work around a code generation bug
resulting in SIGBUS. This only manifests when running 32-bit mips code
on mips64 hardware (which the buildbots do).

  • Source/cmake/WebKitCompilerFlags.cmake:

JSTests:

Re-enable tests skipped on mips after adding workaround.

  • stress/call-varargs-double-new-array-buffer.js:
  • stress/callee-save-fpr.js:
  • stress/forward-varargs-double-new-array-buffer.js:
  • stress/new-array-with-spread-cow-double.js:
  • stress/new-array-with-spread-double-new-array-buffer.js:
  • stress/spread-escapes-but-new-array-buffer-does-not-double.js:

PerformanceTests:

Re-enable tests skipped on mips after adding workaround.

  • ARES-6/Basic/basic-tests.yaml:
6:51 AM Changeset in webkit [286059] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

[GTK][a11y] Add implementation of document interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232755

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::locale const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::documentAttribute const):
(WebCore::AccessibilityObjectAtspi::documentAttributes const):
(WebCore::AccessibilityObjectAtspi::documentLocale const):

Tools:

Add unit test for the document interface and WTR implementation.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testDocumentBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):

6:48 AM Changeset in webkit [286058] by Antti Koivisto
  • 11 edits
    2 adds in trunk/Source/WebCore

Factor child change invalidation into class
https://bugs.webkit.org/show_bug.cgi?id=233311

Reviewed by Alan Bujtas.

Use similar pattern as ClassChangeInvalidation and others where we create a stack object scoped
over a DOM mutation. This will allow more sophisticated ruleset based invalidation in
future.

This patch moves the invalidation code from childrenChanged() to the new ChildChangeInvalidation class.
ChildChangeInvalidation is instantiated in ContainerNode and CharacterData mutation functions
that call childrenChanged(). It uses the same ChildChange argument type as childrenChanged().

There are no changes to invalidation functionality in this patch.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:

(WebCore::makeChildChange):
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
(WebCore::CharacterData::notifyParentAfterChange):

  • dom/CharacterData.h:
  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::makeChildChangeForRemoval):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::makeChildChangeForInsertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::replaceAll):
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::affectsElements):

  • dom/ContainerNode.h:

(WebCore::ContainerNode::ChildChange::isInsertion const):

Add a new FinishedParsingChildren change type, only used when invalidating from Element::finishParsingChildren.

  • dom/Element.cpp:

(WebCore::invalidateForSiblingCombinators):
(WebCore::Element::childTypeAllowed const):
(WebCore::Element::childrenChanged):
(WebCore::Element::finishParsingChildren):
(WebCore::checkForEmptyStyleChange): Deleted.
(WebCore::invalidateForForwardPositionalRules): Deleted.
(WebCore::invalidateForBackwardPositionalRules): Deleted.
(WebCore::checkForSiblingStyleChanges): Deleted.

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

(WebCore::ShadowRoot::childrenChanged):

  • style/ChildChangeInvalidation.cpp: Added.

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):
(WebCore::Style::ChildChangeInvalidation::~ChildChangeInvalidation):
(WebCore::Style::ChildChangeInvalidation::invalidateAfterChange):
(WebCore::Style::ChildChangeInvalidation::checkForEmptyStyleChange):
(WebCore::Style::invalidateForForwardPositionalRules):
(WebCore::Style::invalidateForBackwardPositionalRules):
(WebCore::Style::ChildChangeInvalidation::checkForSiblingStyleChanges):

  • style/ChildChangeInvalidation.h: Added.

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

  • style/StyleAdjuster.h:
6:39 AM Changeset in webkit [286057] by Adrian Perez de Castro
  • 2 edits
    2 adds in trunk/Tools/buildstream

[Flatpak SDK] Add build recipe for libjxl
https://bugs.webkit.org/show_bug.cgi?id=233326

Reviewed by Philippe Normand.

Add the build recipe for libjxl, which in turns needs highway (libhwy), which gets imported
as well. Highway is always built as a static library, and therefore only needed at build
time. As for libjxl, the recipe tries to disable as much as possible of bundled sources from
its third_party/ subdirectory, but LodePNG gets always needed, and the same goes for either
SkCMS or LCMS2; and in both cases they get built and linked statically into the resulting
libjxl library. Ideally we would prefer that libjxl could use a system-installed copy of
LCMS2 because that is already available in the SDK, but that not being an option SkCMS is
preferred as it is smaller.

  • elements/sdk-platform.bst: List libjxl for installation in the SDK.
  • elements/sdk/highway.bst: Added.
  • elements/sdk/libjxl.bst: Added.
6:30 AM Changeset in webkit [286056] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

[GTK][a11y] Add implementation of action interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232749

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::actionName const):
(WebCore::AccessibilityObjectAtspi::localizedActionName const):
(WebCore::AccessibilityObjectAtspi::actionKeyBinding const):
(WebCore::AccessibilityObjectAtspi::doAction const):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:

Tools:

Add a unit test for the action interface and WTR implementation.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testActionBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isPressActionSupported):
(WTR::AccessibilityUIElement::press):

5:35 AM Changeset in webkit [286055] by Carlos Garcia Campos
  • 9 edits
    1 add in trunk

[GTK][a11y] Add implementation of hypertext interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232708

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::registerHyperlink):

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

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::hyperlinkReference):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::hyperlinkCount const):
(WebCore::AccessibilityObjectAtspi::hyperlink const):
(WebCore::AccessibilityObjectAtspi::hyperlinkIndex const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::characterIndex const):

Tools:

Add unit tests to check hypertext interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testHypertextBasic):
(beforeAll):

1:52 AM Changeset in webkit [286054] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. [GLIB] Add new test case to /jsc/class

Add a test case to check using JSC_TYPE_VALUE for a JSCClass property.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(setFooValue):
(getFooValue):
(testJSCClass):

1:38 AM Changeset in webkit [286053] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

AirFixObviousSpills should be optimized
https://bugs.webkit.org/show_bug.cgi?id=228052

Reviewed by Yusuke Suzuki.

There were two problems with AirFixObviousSpills:

  • merge() had a quadratic blow-up, as for each element in a vector, it was searching it in a different vector.
  • it would visit blocks even when their state at head had not changed.

I fixed the first problem by making sure that the vectors are sorted before calling merge, and making use of that invariant in the search of the vectors
(see filterVectorAgainst)
This reduced the total time spent in that phase from 390ms to 230ms, and the worst case time spent in that phase for one function from 100ms to 30ms (all of the results in this Changelog are for JetStream2 on a M1 MBP).

I fixed the second problem even more easily by adding a m_shouldVisit BitVector. I also moved the m_wasVisited boolean that was in State to a m_notBottom BitVector for simplicity and symmetry.
That change further reduced the total/max time from 230ms/30ms to 140ms/16ms.

  • b3/air/AirFixObviousSpills.cpp:
1:01 AM Changeset in webkit [286052] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION(r285859) [GTK][WPE] a number of accessibility/* tests crash on GTK and WPE
https://bugs.webkit.org/show_bug.cgi?id=233221

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-19
Reviewed by Carlos Garcia Campos.

Tools:

Add null checks in the ATK code to ensure AccessibilityUIElement::create()
is not passed a NULL pointer.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:

(WTR::AccessibilityController::focusedElement):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/glib/accessibility/add-children-pseudo-element-expected.txt:
  • platform/glib/accessibility/aria-modal-text-descendants-expected.txt: Added.
  • platform/glib/accessibility/table-cell-display-block-expected.txt: Added.
12:54 AM Changeset in webkit [286051] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc

[libpas] Unreviewed, build fix for relatively old clang on oss-fuzz
https://bugs.webkit.org/show_bug.cgi?id=233097

  • libpas/src/libpas/pas_utils.h:
  • libpas/src/libpas/pas_utils_prefix.h:

(pas_depend_impl):
(
pas_depend):
(pas_depend_cpu_only):

12:51 AM Changeset in webkit [286050] by Carlos Garcia Campos
  • 9 edits
    1 add in trunk

[GTK][a11y] Add implementation of hyperlink interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232707

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add hyperlink implementation and make links be handled as replaced objects too, to ensure all hyperlinks are
handled the same way. That's consistent with chromium.

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::url const):
(WebCore::AccessibilityObjectAtspi::offsetInParent const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::characterOffset const):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):
(WebCore::TextIterator::handleReplacedElement):

Tools:

Add unit tests to check hyperlink interface and implement AccessibilityUIElement::url() in WTR.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTextReplacedObjects):
(testHyperlinkBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::url):

Nov 18, 2021:

11:30 PM Changeset in webkit [286049] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in SimplifiedBackwardsTextIterator::range() via previousSentencePosition
https://bugs.webkit.org/show_bug.cgi?id=229282

Patch by Frédéric Wang <fwang@igalia.com> on 2021-11-18
Reviewed by Darin Adler.

Source/WebCore:

Constructors of TextIterator and SimplifiedBackwardsTextIterator update layout, which may
make HTMLObjectElement switch to fallback content and invalidate their renderer. As a
consequence their advance() method may incorrectly treat them as replaced elements. This
patch updates the layout at the beginning of FrameSelection::modify and disable post
resolution callbacks in order to prevent this kind of unaverted tree changes while browsing
the tree for selection update.

Test: editing/text-iterator/backward-textiterator-object-crash.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::modify): Update layout and disable post resolution callback, so that
all iterators used during the execution of the function handle <object>s consistently.

LayoutTests:

Add regression test.

  • editing/text-iterator/backward-textiterator-object-crash-expected.txt: Added.
  • editing/text-iterator/backward-textiterator-object-crash.html: Added.
11:27 PM Changeset in webkit [286048] by graouts@webkit.org
  • 22 edits in trunk/Source

[Model] add support for pausing and resuming animations
https://bugs.webkit.org/show_bug.cgi?id=233319
<rdar://problem/85428464>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add three new promise-based methods to the HTMLModelElement IDL to control the playback state
of the animation built into the USDZ asset: isPlayingAnimation(), playAnimation() and pauseAnimation().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::isPlayingAnimation):
(WebCore::HTMLModelElement::setAnimationIsPlaying):
(WebCore::HTMLModelElement::playAnimation):
(WebCore::HTMLModelElement::pauseAnimation):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::isPlayingAnimation):
(WebCore::DummyModelPlayer::setAnimationIsPlaying):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::isPlayingAnimation):
(WebCore::SceneKitModelPlayer::setAnimationIsPlaying):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the animation's playback
state.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::previewHasAnimationSupport):
(WebKit::ModelElementController::isPlayingAnimationForModelElement):
(WebKit::ModelElementController::setAnimationIsPlayingForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementIsPlayingAnimation):
(WebKit::WebPageProxy::modelElementSetAnimationIsPlaying):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::isPlayingAnimation):
(WebKit::ARKitInlinePreviewModelPlayer::setAnimationIsPlaying):

Source/WTF:

Add a new compile-time flag for the new ARQL SPIs we are using.

  • wtf/PlatformEnableCocoa.h:
10:30 PM Changeset in webkit [286047] by mmaxfield@apple.com
  • 97 edits
    58 copies
    5 adds in trunk/Source

[WebGPU] Add converters from serializable descriptors to interface descriptors
https://bugs.webkit.org/show_bug.cgi?id=233310

Reviewed by Dean Jackson.

The WebGPU abstract interface (in PAL/graphics/WebGPU) has a set of structs for descriptors. These descriptors hold references to
objects, so these interfaces can't be serialized directly. Instead, we have a parallel set of structs (in WebKit/Shared/WebGPU)
which replace the object references with WebGPUIdentifiers. The web process side will convert the abstract interface structs
to the serializable ones, and the GPU process side will convert back. This patch implements the converters back, from the serializable
structs to the abstract interface structs.

No new tests because there is no behavior change.

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:

(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUFragmentState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupEntry.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupEntry.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.h:
  • Shared/WebGPU/WebGPUBlendComponent.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUOutOfMemoryError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendComponent.h:
  • Shared/WebGPU/WebGPUBlendState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendState.h:
  • Shared/WebGPU/WebGPUBufferBinding.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBinding.h:
  • Shared/WebGPU/WebGPUBufferBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBindingLayout.h:
  • Shared/WebGPU/WebGPUBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCanvasConfiguration.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCanvasConfiguration.h:
  • Shared/WebGPU/WebGPUColor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColor.h:
  • Shared/WebGPU/WebGPUColorTargetState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColorTargetState.h:
  • Shared/WebGPU/WebGPUCommandBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.h:
  • Shared/WebGPU/WebGPUCompilationMessage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCompilationMessage.h:
  • Shared/WebGPU/WebGPUComputePassDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassDescriptor.h:
  • Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassTimestampWrites.h:
  • Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePipelineDescriptor.h:
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Shared/WebGPU/WebGPUDepthStencilState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDepthStencilState.h:
  • Shared/WebGPU/WebGPUDeviceDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDeviceDescriptor.h:
  • Shared/WebGPU/WebGPUError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUCommandBufferDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUError.h:
  • Shared/WebGPU/WebGPUExtent3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExtent3D.h:
  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureDescriptor.h:
  • Shared/WebGPU/WebGPUFragmentState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUFragmentState.h:
  • Shared/WebGPU/WebGPUImageCopyBuffer.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyBuffer.h:
  • Shared/WebGPU/WebGPUImageCopyExternalImage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.h:
  • Shared/WebGPU/WebGPUImageCopyTexture.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTexture.h:
  • Shared/WebGPU/WebGPUImageCopyTextureTagged.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTextureTagged.h:
  • Shared/WebGPU/WebGPUImageDataLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageDataLayout.h:
  • Shared/WebGPU/WebGPUMultisampleState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUMultisampleState.h:
  • Shared/WebGPU/WebGPUObjectDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUOutOfMemoryError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUObjectDescriptorBase.h:
  • Shared/WebGPU/WebGPUOrigin2D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin2D.h:
  • Shared/WebGPU/WebGPUOrigin3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePipelineDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin3D.h:
  • Shared/WebGPU/WebGPUOutOfMemoryError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOutOfMemoryError.h:
  • Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineDescriptorBase.h:
  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUPrimitiveState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPrimitiveState.h:
  • Shared/WebGPU/WebGPUProgrammableStage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUProgrammableStage.h:
  • Shared/WebGPU/WebGPUQuerySetDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassColorAttachment.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassLayout.h:
  • Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUProgrammableStage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassTimestampWrites.h:
  • Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPipelineDescriptor.h:
  • Shared/WebGPU/WebGPURequestAdapterOptions.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURequestAdapterOptions.h:
  • Shared/WebGPU/WebGPUSamplerBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerBindingLayout.h:
  • Shared/WebGPU/WebGPUSamplerDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerDescriptor.h:
  • Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h:
  • Shared/WebGPU/WebGPUStencilFaceState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStencilFaceState.h:
  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUSupportedFeatures.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedFeatures.h:
  • Shared/WebGPU/WebGPUSupportedLimits.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedLimits.h:
  • Shared/WebGPU/WebGPUTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureDescriptor.h:
  • Shared/WebGPU/WebGPUTextureViewDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureViewDescriptor.h:
  • Shared/WebGPU/WebGPUValidationError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUValidationError.h:
  • Shared/WebGPU/WebGPUVertexAttribute.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexAttribute.h:
  • Shared/WebGPU/WebGPUVertexBufferLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexBufferLayout.h:
  • Shared/WebGPU/WebGPUVertexState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePipelineDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexState.h:
10:26 PM Changeset in webkit [286046] by Fujii Hironori
  • 11 edits
    1 add in trunk/Source

[TextureMapper][GraphicsLayerTextureMapper][GraphicsLayerWC] setBackgroundColor support
https://bugs.webkit.org/show_bug.cgi?id=233244

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapper, GraphicsLayerTextureMapper and GraphicsLayerWC
didn't support setBackgroundColor. setBackgroundColor is used for
"painting flush" feature of Web Inspector Elements tab.

Added a new class TextureMapperSolidColorLayer to draw a solid
layer for the primary layer and contents layer.

  • platform/TextureMapper.cmake:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setBackgroundColor): Added.
(WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::setBackgroundColor):
(WebCore::blendWithOpacity): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperSolidColorLayer.h: Added.

(WebCore::TextureMapperSolidColorLayer::setColor):

Source/WebKit:

  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::update):

  • WebProcess/WebPage/wc/GraphicsLayerWC.cpp:

(WebKit::GraphicsLayerWC::setBackgroundColor):
(WebKit::GraphicsLayerWC::flushCompositingStateForThisLayerOnly):

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

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

10:06 PM Changeset in webkit [286045] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC/Air] Optimize enableMovesOnValueAndAdjacents in IRC
https://bugs.webkit.org/show_bug.cgi?id=228615

Reviewed by Saam Barati.

The Iterated Register Coalescing (IRC) register allocator spends a very significant fraction of its time in JS2 in enableMovesOnValueAndAdjacents (816ms out of 2.07s spent in register allocation for Wasm code in one run I looked at with Instruments).
The reason is that if this function is called on N nodes that are neighbors of each other, then enableMovesOnValue (which is kinda expensive as it iterates a SmallSet which is not always small) will be called N times on each of the N nodes. This can trivially be fixed by keeping track of which nodes need enableMovesOnValue called on them and only calling it on them once.

It is a bit tricky to measure the performance impact of this, as it heavily depends on whether some very large functions reach Air or not, so there is a lot of noise.
Here are the numbers out of 4 runs of JS2 (cli version) on an M1 MBP with --airForceIRCAllocator=1:
Baseline : total time in allocateRegistersByGraphColoring ranges from 2090ms to 3018ms, most time for a single function ranges from 631ms to 849ms
With this patch: total time in allocateRegistersByGraphColoring ranges from 1580ms to 2333ms, most time for a single function ranges from 337ms to 560ms
So despite the noise it seems quite clearly a win.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
8:18 PM Changeset in webkit [286044] by Ben Nham
  • 26 edits
    4 adds in trunk

Add support for onpushsubscriptionchange event handler
https://bugs.webkit.org/show_bug.cgi?id=233088

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline test results since we now support onpushsubscriptionchange.

  • web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

This adds the ability to send a pushsubscriptionchange event to the appropriate handler on
ServiceWorkerGlobalScope. I didn't implement a completion handler for the event (as we do
for the push event) since it's not required by the standard and I don't think we'd use it.
We only plan on firing this event the first time you visit an origin after we deregister a
PushSubscription for receiving too many silent pushes.

Tests: http/wpt/service-workers/service-worker-spinning-push.https.html

http/wpt/service-workers/service-worker-spinning-pushsubscriptionchange.https.html

  • Modules/push-api/PushSubscription.cpp:

(WebCore::PushSubscription::PushSubscription):
(WebCore::PushSubscription::data const):
(WebCore::PushSubscription::endpoint const):
(WebCore::PushSubscription::expirationTime const):
(WebCore::PushSubscription::options const):
(WebCore::PushSubscription::clientECDHPublicKey const):
(WebCore::PushSubscription::sharedAuthenticationSecret const):
(WebCore::PushSubscription::getKey const):
(WebCore::PushSubscription::toJSON const):

  • Modules/push-api/PushSubscription.h:
  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • testing/Internals.cpp:

(WebCore::Internals::createPushSubscription):

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::schedulePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerInternals::createPushSubscription):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::subscribeToPushService):
(WebCore::ServiceWorkerContainer::getPushSubscription):
(WebCore::createPushSubscriptionFromData): Deleted.

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::firePushSubscriptionChangeEvent):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFirePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThread::heartBeatTimerFired):
(WebCore::ServiceWorkerThread::willPostTaskToFirePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThread::finishedFiringPushSubscriptionChangeEvent):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::firePushSubscriptionChangeEvent):

  • workers/service/context/ServiceWorkerThreadProxy.h:

LayoutTests:

  • Modified the pushsubscriptionchange test to send a real event to the service worker.
  • Modified the service worker spinning tests to test for guarding against infinite loops in the push and pushsubscriptionchange event handlers.

Note that the existing spinning tests are marked as flaky on ios-wk2. We do the same here
since the test passes locally but is flaky in EWS.

  • http/wpt/push-api/pushSubscriptionChangeEvent.any.js:

(promise_test):
(assertSubscriptionsAreEqual):
(test): Deleted.
(promise_test.async newSubscription): Deleted.
(promise_test.async return): Deleted.

  • http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker-expected.txt:
  • http/wpt/service-workers/resources/routines.js:

(async sendSyncMessage):

  • http/wpt/service-workers/service-worker-spinning-push.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-spinning-push.https.html: Added.
  • http/wpt/service-workers/service-worker-spinning-pushsubscriptionchange.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-spinning-pushsubscriptionchange.https.html: Added.
  • http/wpt/service-workers/service-worker-spinning-worker.js:

(respondToPendingEvent):
(pushTest):

  • platform/ios-simulator-wk2/TestExpectations:
7:12 PM Changeset in webkit [286043] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.3.6.1.5

Tag Safari-612.3.6.1.5.

7:03 PM Changeset in webkit [286042] by mark.lam@apple.com
  • 109 edits in trunk/Source

SubSpace constructors should take a const HeapCellType& instead of a HeapCellType*.
https://bugs.webkit.org/show_bug.cgi?id=233341
rdar://85573277

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

This helps document that HeapCellTypes are immutable once they are instantiated,
and that SubSpaces won't be modifying them.

Also remove the const on CellAttributes return values since it is not needed nor
meaningful.

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::attributes const):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::CompleteSubspace):

  • heap/CompleteSubspace.h:
  • heap/HeapCellType.cpp:

(JSC::HeapCellType::finishSweep const):
(JSC::HeapCellType::destroy const):
(JSC::HeapCellType::finishSweep): Deleted.
(JSC::HeapCellType::destroy): Deleted.

  • heap/HeapCellType.h:

(JSC::HeapCellType::attributes const):

  • heap/IsoHeapCellType.cpp:

(JSC::IsoHeapCellType::finishSweep const):
(JSC::IsoHeapCellType::destroy const):
(JSC::IsoHeapCellType::finishSweep): Deleted.
(JSC::IsoHeapCellType::destroy): Deleted.

  • heap/IsoHeapCellType.h:
  • heap/IsoInlinedHeapCellType.h:
  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):

  • heap/IsoSubspace.h:
  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::forVM):

  • heap/IsoSubspacePerVM.h:
  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::attributes const):
(JSC::MarkedBlock::attributes const):

  • heap/PreciseAllocation.h:

(JSC::PreciseAllocation::attributes const):

  • heap/Subspace.cpp:

(JSC::Subspace::initialize):

  • heap/Subspace.h:

(JSC::Subspace::heapCellType const):

  • heap/SubspaceInlines.h:

(JSC::Subspace::attributes const):

  • runtime/JSDestructibleObjectHeapCellType.cpp:

(JSC::JSDestructibleObjectHeapCellType::finishSweep const):
(JSC::JSDestructibleObjectHeapCellType::destroy const):
(JSC::JSDestructibleObjectHeapCellType::finishSweep): Deleted.
(JSC::JSDestructibleObjectHeapCellType::destroy): Deleted.

  • runtime/JSDestructibleObjectHeapCellType.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

Source/WebCore:

  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateIterableDefinition):

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

(WebCore::JSDOMWindow::subspaceForImpl):

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

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSExposedStar::subspaceForImpl):

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

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

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

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

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

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

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

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

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

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

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

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

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

(WebCore::JSTestDomainSecurity::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

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

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

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

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

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

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

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

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestMapLike::subspaceForImpl):

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

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

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

(WebCore::JSTestNamespaceObject::subspaceForImpl):

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

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestOperationConditional::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSetLike::subspaceForImpl):

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

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

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

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::subspaceForImpl):

5:35 PM Changeset in webkit [286041] by achristensen@apple.com
  • 18 edits in trunk

Allow all redirect schemes when compiling a content rule list
https://bugs.webkit.org/show_bug.cgi?id=233338

Reviewed by Tim Hatcher.

Source/WebCore:

What was I thinking? I made an SPI that gives you a set of allowed redirect schemes
from the same source as the JSON which contains those redirect schemes. This allows
all redirect schemes. If you want to prevent redirecting to a certain scheme, then
don't compile JSON that redirects to that scheme. We may want a helper function that
uses the same parser to get the set of schemes being redirected to, but right now that
is not necessary because the JSON is being assembled by a program that has the ability
to check the schemes.

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):

  • contentextensions/ContentExtensionActions.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):

  • contentextensions/ContentExtensionParser.h:

Source/WebKit:

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::compileContentRuleList):

  • UIProcess/API/APIContentRuleListStore.h:
  • UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:

(WKUserContentExtensionStoreCompile):

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(-[WKContentRuleListStore compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:allowedRedirectSchemes:completionHandler:]): Deleted.

  • UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h:
  • UIProcess/API/glib/WebKitUserContentFilterStore.cpp:

(webkitUserContentFilterStoreSaveBytes):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::checkCompilerError):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(compileContentRuleList):

4:51 PM Changeset in webkit [286040] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] TestWebKitAPI.WebpagePreferences.WebsitePoliciesDuringRedirect is a constant timeout
<rdar://80476146>

Uneviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

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

Unreviewed build fix.

  • Modules/webxr/XRHandJoint.h:
4:12 PM Changeset in webkit [286038] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] 2 TestWebKitAPI.WebKit.DisplayName (api-tests) are constantly failing
<rdar://80353834>

Uneviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

3:54 PM Changeset in webkit [286037] by pvollan@apple.com
  • 11 edits
    2 adds in trunk/Source/WebKit

[macOS][GPUP] Remove access in sandbox to com.apple.audio.AudioComponentRegistrar
https://bugs.webkit.org/show_bug.cgi?id=231694
<rdar://75225923>

Reviewed by Brent Fulgham.

After https://trac.webkit.org/changeset/274435/webkit, there is no need to allow access to this service. This patch also implements sending
the Audio component registrations to the GPU process, which is a requirement before blocking the service in the GPU process.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/cocoa/GPUProcessCocoa.mm:

(WebKit::GPUProcess::consumeAudioComponentRegistrations):

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Shared/Cocoa/AudioComponentRegistration.cpp: Added.

(WebKit::consumeAudioComponentRegistrations):

  • Shared/Cocoa/AudioComponentRegistration.h: Added.

(WebKit::sendAudioComponentRegistrations):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations): Deleted.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::revokeAudioCaptureExtension):

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

3:51 PM Changeset in webkit [286036] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] 2 TestWebKitAPI.WebKit.DisplayName (api-tests) are constantly failing
<rdar://80353834>

Uneviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

3:20 PM Changeset in webkit [286035] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Teach WheelEventTestMonitor about scroll animations
https://bugs.webkit.org/show_bug.cgi?id=233296

Reviewed by Tim Horton.

There was no way for a test to wait for a scroll animation to finish, so enhance
WheelEventTestMonitor to know about scroll animations.

ScrollAnimationInProgress should probably subsume the RubberbandInProgress and
ScrollSnapInProgress reasons, but those are left alone for now.

  • page/WheelEventTestMonitor.cpp:

(WebCore::operator<<):

  • page/WheelEventTestMonitor.h:
  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::startScrollSnapAnimation):
(WebCore::ScrollingEffectsController::stopScrollSnapAnimation):
(WebCore::ScrollingEffectsController::scrollAnimationWillStart):
(WebCore::ScrollingEffectsController::scrollAnimationDidEnd):
(WebCore::ScrollingEffectsController::startDeferringWheelEventTestCompletion):
(WebCore::ScrollingEffectsController::stopDeferringWheelEventTestCompletion):

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::scheduleStatelessScrollSnap):
(WebCore::ScrollingEffectsController::startDeferringWheelEventTestCompletionDueToScrollSnapping): Deleted.
(WebCore::ScrollingEffectsController::stopDeferringWheelEventTestCompletionDueToScrollSnapping): Deleted.

3:19 PM Changeset in webkit [286034] by mark.lam@apple.com
  • 7 edits
    1 move in trunk/Source/JavaScriptCore

Rename PropertyMapHashTable.h to PropertyTable.h to match the class.
https://bugs.webkit.org/show_bug.cgi?id=233333
rdar://85565760

Reviewed by Yusuke Suzuki.

Also renamed some supporting data structures to match. This is just a refactoring
patch. There are no behavior changes.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/PropertyMapHashTable.h: Removed.
  • runtime/PropertyTable.cpp:
  • runtime/PropertyTable.h: Copied from Source/JavaScriptCore/runtime/PropertyMapHashTable.h.

(JSC::PropertyTable::find):
(JSC::PropertyTable::get):
(JSC::PropertyTable::add):
(JSC::PropertyTable::remove):
(JSC::PropertyTable::reinsert):
(JSC::PropertyTable::rehash):

  • runtime/Structure.cpp:

(JSC::PropertyTableStatisticsExitLogger::PropertyTableStatisticsExitLogger):
(JSC::PropertyTableStatisticsExitLogger::~PropertyTableStatisticsExitLogger):
(JSC::PropertyMapStatisticsExitLogger::PropertyMapStatisticsExitLogger): Deleted.
(JSC::PropertyMapStatisticsExitLogger::~PropertyMapStatisticsExitLogger): Deleted.

  • runtime/StructureInlines.h:
  • runtime/VM.cpp:
3:09 PM Changeset in webkit [286033] by mark.lam@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

CellAttributes should be returned by value.
https://bugs.webkit.org/show_bug.cgi?id=233335
rdar://85568435

Reviewed by Yusuke Suzuki.

CellAttributes fits in 16 bits, and client code never modifies returned CellAttributes
values. Hence, there is no reason to return them by reference.

Also fixed a bit-rotted comment in SubSpace.h.

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::attributes const):

  • heap/HeapCellType.h:

(JSC::HeapCellType::attributes const):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::attributes const):
(JSC::MarkedBlock::attributes const):

  • heap/PreciseAllocation.h:

(JSC::PreciseAllocation::attributes const):

  • heap/Subspace.h:
  • heap/SubspaceInlines.h:

(JSC::Subspace::attributes const):

3:01 PM Changeset in webkit [286032] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Add syscall telemetry in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=233203
<rdar://problem/85504351>

Reviewed by Brent Fulgham.

Add syscall telemetry in the Networking process on macOS and iOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Scripts/process-entitlements.sh:
3:01 PM Changeset in webkit [286031] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][GPUP] Remove access to mach services in sandbox
https://bugs.webkit.org/show_bug.cgi?id=232208
<rdar://problem/84584565>

Unreviewed, revert minor part of initial patch.

Add back Mach service which is potentially still needed, although telemetry shows no usage.
We will reevaluate the need for this service when more telemetry is available.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
2:56 PM Changeset in webkit [286030] by rmorisset@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

DFGByteCodeParser.cpp should avoid resizing the Operands<> of every BasicBlock on every inlining
https://bugs.webkit.org/show_bug.cgi?id=228053

Reviewed by Saam Barati.

The dfg bytecode parser only makes use of block->variablesAtTail.
But currently it updates the size of variablesAtHead, valuesAtHead, valuesAtTail and intersectionOfPastValuesAtHead every single time it changes the number of Tmps and/or Locals.
This happens notably whenever it inlines a function.

It is not nearly as cheap as it looks, as each resizing may reallocate a Vector, requires filling the new slots with zeros, and requires moving the existing values (which are all 0) to the new Vector.
This was obvious when looking at profiling of JS2: bzero + memmove are the two hottest C++ functions, and the manipulation of Operands is partly responsible.

This patch fixes this by only resizing block->variablesAtTail during the execution of the bytecode parser, and initializing all of the other operands at the very end of it.
It also merges the adjustment of numLocals and of numTmps for variablesAtTail during inlining, to avoid accidentally moving data twice.

On JetStream2 on an M1 MBP, it changes the total time spent in the DFGByteCodeParser from 1240-1260ms to 1155-1170ms.

  • bytecode/Operands.h:

(JSC::Operands::ensureLocalsAndTmps):

  • dfg/DFGBasicBlock.cpp:
  • dfg/DFGBasicBlock.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::ensureLocalsForVariablesAtTail):
(JSC::DFG::ByteCodeParser::ensureLocalsAndTmpsForVariablesAtTail):
(JSC::DFG::ByteCodeParser::allocateBlock):
(JSC::DFG::ByteCodeParser::allocateTargetableBlock):
(JSC::DFG::ByteCodeParser::allocateUntargetableBlock):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleVarargsInlining):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parse):

2:21 PM Changeset in webkit [286029] by basuke.suzuki@sony.com
  • 3 edits in trunk/Source/bmalloc

[bmalloc] freeableMemory and footprint of Heap are completely broken
https://bugs.webkit.org/show_bug.cgi?id=230245
<rdar://problem/83339024>

Reviewed by Geoffrey Garen.

This introduced in r279922. The physical size of the newly allocated range was changed from zero
to the size of the range on that commit and that causes the numbers wrong. That change itself is
correct fix because the range has physical pages attached. That simply activated the bug which was
there for a long time.

I've added the correction to adjust both numbers with newly allocated region. Also added an optional
assertion to check the overflow of those values and the option to log those value change to the console.

Fortunately those numbers are used for debugging purpose. Scavenger will dump out those to stderr
with its verbose mode. There's no practical cases affected by this bug.

Here is the example of footprint logging before fixing the bug:

footprint: 18446744073709535232 (-16384) scavenge

footprint: 18446744073709518848 (-16384) scavenge
footprint: 18446744073709502464 (-16384) scavenge
footprint: 18446744073709486080 (-16384) scavenge
footprint: 18446744073709469696 (-16384) scavenge
footprint: 18446744073709453312 (-16384) scavenge
...

It just began with negative number which overflows on unsigned. And following is the one with fix:

footprint: 1048576 (1048576) allocateLarge
footprint: 2097152 (1048576) allocateLarge
footprint: 3145728 (1048576) allocateLarge
footprint: 4194304 (1048576) allocateLarge
footprint: 5242880 (1048576) allocateLarge
footprint: 6291456 (1048576) allocateLarge

footprint: 6275072 (-16384) scavenge

footprint: 6258688 (-16384) scavenge
footprint: 6242304 (-16384) scavenge
footprint: 6225920 (-16384) scavenge
footprint: 6209536 (-16384) scavenge
footprint: 6193152 (-16384) scavenge
...

  • bmalloc/Heap.cpp:

(bmalloc::Heap::adjustStat):
(bmalloc::Heap::logStat):
(bmalloc::Heap::adjustFreeableMemory):
(bmalloc::Heap::adjustFootprint):
(bmalloc::Heap::decommitLargeRange):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::deallocateLarge):
(bmalloc::Heap::externalCommit):
(bmalloc::Heap::externalDecommit):

  • bmalloc/Heap.h:
2:10 PM Changeset in webkit [286028] by Jonathan Bedard
  • 9 edits in trunk/Tools

Link Python packages to GitHub
https://bugs.webkit.org/show_bug.cgi?id=233318
<rdar://problem/85551201>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitcorepy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitflaskpy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.

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

1:57 PM Changeset in webkit [286027] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix Linux build after r286025.

  • page/linux/ResourceUsageThreadLinux.cpp:

(WebCore::ResourceUsageThread::platformCollectCPUData):

1:47 PM Changeset in webkit [286026] by Alan Coon
  • 1 copy in tags/Safari-613.1.9

Tag Safari-613.1.9.

1:28 PM Changeset in webkit [286025] by Chris Dumez
  • 23 edits in trunk/Source/WebCore

Port call sites to ScriptExecutionContext::identifier() and drop ScriptExecutionContext::contextIdentifier()
https://bugs.webkit.org/show_bug.cgi?id=233323

Reviewed by Geoffrey Garen.

Port call sites to ScriptExecutionContext::identifier() and drop ScriptExecutionContext::contextIdentifier() alias.

  • Modules/mediacapabilities/MediaCapabilities.cpp:

(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::m_contextIdentifier):

  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::RTCRtpSFrameTransform::initializeTransformer):
(WebCore::RTCRtpSFrameTransform::createStreams):

  • crypto/CryptoAlgorithm.cpp:

(WebCore::dispatchAlgorithmOperation):

  • crypto/algorithms/CryptoAlgorithmECDH.cpp:

(WebCore::CryptoAlgorithmECDH::deriveBits):

  • crypto/algorithms/CryptoAlgorithmSHA1.cpp:

(WebCore::CryptoAlgorithmSHA1::digest):

  • crypto/algorithms/CryptoAlgorithmSHA224.cpp:

(WebCore::CryptoAlgorithmSHA224::digest):

  • crypto/algorithms/CryptoAlgorithmSHA256.cpp:

(WebCore::CryptoAlgorithmSHA256::digest):

  • crypto/algorithms/CryptoAlgorithmSHA384.cpp:

(WebCore::CryptoAlgorithmSHA384::digest):

  • crypto/algorithms/CryptoAlgorithmSHA512.cpp:

(WebCore::CryptoAlgorithmSHA512::digest):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::generatePair):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::MainThreadBridge::registerChannel):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::identifier const):
(WebCore::ScriptExecutionContext::contextIdentifier const): Deleted.

  • workers/WorkerGlobalScope.cpp:

(WebCore::m_credentials):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):

1:14 PM Changeset in webkit [286024] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Switching line layout path should invalidate preferred width
https://bugs.webkit.org/show_bug.cgi?id=233324

Reviewed by Antti Koivisto.

Since we don't propagate intrinsic width values between the line layout codepaths, switching
should invalidate these dirty bits.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::invalidateLineLayoutPath):

12:58 PM Changeset in webkit [286023] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

[Model] add support for getting and setting the camera
https://bugs.webkit.org/show_bug.cgi?id=233265
<rdar://problem/85426290>

Unreviewed build fix.

Fix the Montery build, making sure we guard calls to the new ARQL SPIs.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):

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

[iOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233129
<rdar://problem/85411927>

Unreviewed, fix sandbox syntax errors.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
12:48 PM Changeset in webkit [286021] by Wenson Hsieh
  • 7 edits
    2 adds in trunk

[macOS] [Live Text] Avoid analyzing images in editable content
https://bugs.webkit.org/show_bug.cgi?id=233317

Reviewed by Megan Gardner.

Source/WebCore:

Make macOS Live Text behavior consistent with iOS, and avoid automatically triggering text recognition (Live
Text) when hovering over images in editable content. In addition to platform consistency, this also allows us to
avoid handling both image service controls and image overlay content inside editable image elements in Mail
compose.

Test: fast/images/text-recognition/mac/text-recognition-candidates.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::textRecognitionCandidateElement const):

Add the editability check here and return null.

  • page/EventHandler.h:

Drive-by code cleanup -- move textRecognitionCandidateElement behind the ENABLE(IMAGE_ANALYSIS) compile-time
flag, since it's only used from image analysis code.

  • testing/Internals.cpp:

(WebCore::Internals::textRecognitionCandidate const):

Add an internal testing hook to query the current text recognition candidate element (i.e. a suitable image that
is being hovered, or otherwise null).

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Add a layout test to exercise the change.

  • fast/images/text-recognition/mac/text-recognition-candidates-expected.txt: Added.
  • fast/images/text-recognition/mac/text-recognition-candidates.html: Added.
12:04 PM Changeset in webkit [286020] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Add branchTest16 operation
https://bugs.webkit.org/show_bug.cgi?id=233275

Reviewed by Mark Lam.

This patch adds branchTest16 to all macro assemblers. And it also fixes the existing bug of
edge case of branchTest8: when we cannot represent the imm as ARM logical value, then we are
failing to emit the right instructions. Probably this bug does not appear since we are not using
such a value as an imm for branchTest8. We added tests to testmasm so that these code is stressed
now.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::branchTest16):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::branchTest32):
(JSC::MacroAssemblerARM64::branchTest8):
(JSC::MacroAssemblerARM64::branchTest16):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchTest16):
(JSC::MacroAssemblerARMv7::test32):
(JSC::MacroAssemblerARMv7::test8):

  • assembler/MacroAssemblerHelpers.h:

(JSC::MacroAssemblerHelpers::mask16OnCondition):
(JSC::MacroAssemblerHelpers::load16OnCondition):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::load16SignedExtendTo32):
(JSC::MacroAssemblerMIPS::mask16OnTest):
(JSC::MacroAssemblerMIPS::branchTest16):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchTest16):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::branchTest16):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::cmpw_im):
(JSC::X86Assembler::testw_im):

  • assembler/testmasm.cpp:

(JSC::testBranchTest8):
(JSC::testBranchTest16):

11:38 AM Changeset in webkit [286019] by graouts@webkit.org
  • 41 edits
    3 copies in trunk/Source

[Model] add support for getting and setting the camera
https://bugs.webkit.org/show_bug.cgi?id=233265
<rdar://problem/85426290>

Reviewed by Darin Adler.

Source/WebCore:

We add two new promise-based methods to the HTMLModelElement IDL to access and set the camera:
getCamera() and setCamera(). The camera is represented by a new HTMLModelElementCamera dictionary
which has yaw, pitch and scale members.

  • CMakeLists.txt:
  • Headers.cmake:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::getCamera):
(WebCore::HTMLModelElement::setCamera):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/HTMLModelElementCamera.h: Copied from Source/WebCore/Modules/model-element/HTMLModelElement.idl.

(WebCore::HTMLModelElementCamera::encode const):
(WebCore::HTMLModelElementCamera::decode):

  • Modules/model-element/HTMLModelElementCamera.idl: Copied from Source/WebCore/Modules/model-element/HTMLModelElement.idl.
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::getCamera):
(WebCore::DummyModelPlayer::setCamera):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::getCamera):
(WebCore::SceneKitModelPlayer::setCamera):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::takeModelElementFullscreen const): Deleted.

  • loader/EmptyClients.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::takeModelElementFullscreen const): Deleted.

Source/WebCore/PAL:

Add the new ARQL SPIs we are using.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

The ARQL APIs we'd adopted so far were specific to either macOS or iOS. The new camera
methods are different since they exist on both platforms.

In order to expose a single message for both platforms, we introduce a new ModelIdentifier
struct which wraps the UUID string for macOS and the layer identifier for iOS. Then on
ModelElementController, we have the previewForModelIdentifier() method to get the matching
ASVInlinePreview for the provided ModelIdentifier.

This allows getCameraForModelElement() and setCameraForModelElement to be specified for both
iOS and macOS with a single implementation.

We also modify takeModelElementFullscreen() to take advantage of ModelIdentifier which showed
that we had some lingering code in ChromeClient related to this method that was no longer
necessary following r285922.

  • Shared/ModelIdentifier.h: Copied from Source/WebCore/Modules/model-element/scenekit/SceneKitModelPlayer.h.

(WebKit::ModelIdentifier::encode const):
(WebKit::ModelIdentifier::decode):

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::modelViewForModelIdentifier):
(WebKit::ModelElementController::previewForModelIdentifier):
(WebKit::ModelElementController::takeModelElementFullscreen):
(WebKit::previewHasCameraSupport):
(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementGetCamera):
(WebKit::WebPageProxy::modelElementSetCamera):
(WebKit::WebPageProxy::takeModelElementFullscreen):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::getCamera):
(WebKit::ARKitInlinePreviewModelPlayer::setCamera):

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::modelIdentifier):
(WebKit::ARKitInlinePreviewModelPlayerIOS::enterFullscreen):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::modelIdentifier):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::takeModelElementFullscreen const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::takeModelElementFullscreen): Deleted.

  • WebProcess/WebPage/WebPage.h:

Source/WTF:

Add a new compile-time flag for the new ARQL SPIs we are using.

  • wtf/PlatformEnableCocoa.h:
11:30 AM Changeset in webkit [286018] by ddkilzer@apple.com
  • 8 edits in trunk/Source

Add missing dependencies for <wtf/Platform.h> when generating derived sources
<https://webkit.org/b/233304>
<rdar://problem/85533245>

Reviewed by Darin Adler.

Source/JavaScriptCore:

(Derived Sources : Generate Derived Sources):

  • Add an input dependency on the script run from the build phase script.
  • DerivedSources-input.xcfilelist:
  • Update after changes to DerivedSoures.make. WebKit headers included by <wtf/Platform.h> are now listed.
  • DerivedSources.make:

(platform_h_compiler_command): Add.
(FEATURE_AND_PLATFORM_DEFINES):

  • Extract compiler command into a call routine for reuse.

(PLATFORM_HEADER_DIR): Add.
(PLATFORM_HEADER_DEPENDENCIES): Add.
(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES):

  • Generate a makefile dependency list for <wtf/Platform.h>, then filter it to list only WebKit project headers.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

(Derived Sources : Generate Derived Sources):

  • Add an input dependency on the script run from the build phase script.
  • DerivedSources-input.xcfilelist:
  • Update after changes to DerivedSoures.make. WebKit headers included by <wtf/Platform.h> are now listed.
  • DerivedSources.make:

(platform_h_compiler_command): Add.
(FEATURE_AND_PLATFORM_DEFINES):

  • Extract compiler command into a call routine for reuse.

(PLATFORM_HEADER_DIR): Add.
(PLATFORM_HEADER_DEPENDENCIES): Add.
(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES):

  • Generate a makefile dependency list for <wtf/Platform.h>, then filter it to list only WebKit project headers.
11:19 AM Changeset in webkit [286017] by Alan Coon
  • 4 edits in branches/safari-612.3.6.1-branch/Source

Cherry-pick r285130. rdar://problem/85166839

[macOS] Opening local html files is failing
https://bugs.webkit.org/show_bug.cgi?id=232572
<rdar://81330442>

Reviewed by Brent Fulgham.

Source/WebKit:

On some macOS versions, opening local html files is failing. In order for the WebContent process
to successfully issue the file extension to the Networking process, the flags for the extension
in the WebContent process must include the user intent flag when the extension is issued with an
audit token.

  • Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType):

Source/WTF:

Declare sandbox flag.

  • wtf/spi/darwin/SandboxSPI.h:

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

11:17 AM Changeset in webkit [286016] by Alan Coon
  • 8 edits in branches/safari-612.3.6.1-branch/Source

Versioning.

WebKit-7612.3.6.1.5

10:55 AM Changeset in webkit [286015] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Win] Build fix after r285991
https://bugs.webkit.org/show_bug.cgi?id=233321

Unreviewed build fix.

Patch by Christopher Reid <c29reid@uwaterloo.ca> on 2021-11-18

  • accessibility/win/AXObjectCacheWin.cpp:
10:42 AM Changeset in webkit [286014] by Russell Epstein
  • 1 copy in tags/Safari-613.1.8.3

Tag Safari-613.1.8.3.

10:37 AM Changeset in webkit [286013] by Russell Epstein
  • 2 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285977. rdar://problem/85529760

[macOS][GPUP] Add access to logging service for root
https://bugs.webkit.org/show_bug.cgi?id=233300
<rdar://85529760>

Reviewed by Brent Fulgham.

Access to logging service is required for root in the GPU process on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

10:27 AM Changeset in webkit [286012] by Chris Dumez
  • 101 edits
    3 deletes in trunk/Source

Drop ServiceWorkerClientIdentifier / DocumentIdentifier and use ScriptExecutionContextIdentifier instead
https://bugs.webkit.org/show_bug.cgi?id=233288

Reviewed by Darin Adler.

Drop ServiceWorkerClientIdentifier / DocumentIdentifier and use ScriptExecutionContextIdentifier instead.

We need to generic identifier type to identify script execution contexts globally. This patch augments
ScriptExecutionContextIdentifier with a process identifier to make it app-global, and then gets rid of
ServiceWorkerClientIdentifier & DocumentIdentifier (which become obsolete).

This is useful for Web Lock API support as we need a clientId that is consistent between the Web Lock
API and the service worker API (tested by imported/w3c/web-platform-tests/web-locksclientids.tentative.https.html).
The clientId in service workers was using the ServiceWorkerClientIdentifier type, which made little
sense to use for the Web Lock API given its name.

Source/WebCore:

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::addToDocumentsMap):
(WebCore::Document::removeFromDocumentsMap):
(WebCore::Document::setServiceWorkerConnection):

  • dom/Document.h:

(WebCore::Document::identifier const): Deleted.

  • dom/ElementContext.h:

(WebCore::ElementContext::decode):

  • dom/ScriptElement.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::contextIdentifier const): Deleted.

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::contextIdentifier const):
(WebCore::ScriptExecutionContext::identifier const):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::fromTemporaryDocumentIdentifier):
(WebCore::DocumentLoader::loadMainResource):

  • loader/DocumentLoader.h:
  • loader/FetchOptions.h:

(WebCore::FetchOptions::encode const):
(WebCore::FetchOptions::decode):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::prepareFetch):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setClientIdentifierIfNeeded):

  • loader/cache/CachedResourceRequest.h:
  • page/mac/PageMac.mm:

(WebCore::Page::platformInitialize):

  • platform/DocumentIdentifier.h: Removed.

(): Deleted.

  • platform/ProcessQualified.h:

(WebCore::ProcessQualified::generateThreadSafe):
(WebCore::ProcessQualified::generate):
(WebCore::ProcessQualified::toString const):
(WebCore::ProcessQualified<T>::encode const):
(WebCore::ProcessQualified<T>::decode):

  • platform/ScriptExecutionContextIdentifier.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • testing/Internals.cpp:

(WebCore::Internals::documentIdentifier const):
(WebCore::Internals::isDocumentAlive const):
(WebCore::Internals::serviceWorkerClientIdentifier const):

  • workers/service/SWClientConnection.cpp:

(WebCore::dispatchToContextThreadIfNecessary):
(WebCore::SWClientConnection::scheduleJob):
(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
(WebCore::SWClientConnection::notifyClientsOfControllerChange):
(WebCore::SWClientConnection::registerServiceWorkerClients):

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClientData.cpp:

(WebCore::ServiceWorkerClientData::from):

  • workers/service/ServiceWorkerClientData.h:

(WebCore::ServiceWorkerClientData::decode):

  • workers/service/ServiceWorkerClientIdentifier.cpp: Removed.

(WebCore::ServiceWorkerClientIdentifier::fromString): Deleted.

  • workers/service/ServiceWorkerClientIdentifier.h: Removed.

(WebCore::ServiceWorkerClientIdentifier::toString const): Deleted.
(WebCore::operator==): Deleted.
(WebCore::ServiceWorkerClientIdentifier::encode const): Deleted.
(WebCore::ServiceWorkerClientIdentifier::decode): Deleted.
(WebCore::ServiceWorkerClientIdentifier::hash const): Deleted.
(WebCore::ServiceWorkerClientIdentifierHash::hash): Deleted.
(WebCore::ServiceWorkerClientIdentifierHash::equal): Deleted.
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::isDeletedValue): Deleted.

  • workers/service/ServiceWorkerClients.cpp:

(WebCore::scriptExecutionContextIdentifierFromString):
(WebCore::ServiceWorkerClients::get):

  • workers/service/ServiceWorkerClients.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::contextIdentifier):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::serviceWorkerPage):
(WebCore::ServiceWorkerGlobalScope::serviceWorkerClient):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerJob.h:

(WebCore::ServiceWorkerJob::contextIdentifier):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::serviceWorkerOrClientIdentifier):
(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):
(WebCore::ServiceWorkerJobData::serviceWorkerPageIdentifier const):

  • workers/service/ServiceWorkerJobData.h:
  • workers/service/ServiceWorkerTypes.h:
  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::unregisterServiceWorkerClient):
(WebCore::WorkerSWClientConnection::scheduleJob):
(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/context/SWContextManager.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/context/ServiceWorkerFetch.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFireFetchEvent):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::startFetch):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::serviceWorkerClientWithOriginByID const):
(WebCore::SWServer::scheduleUnregisterJob):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::createContextConnection):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::SWServerRegistration):
(WebCore::SWServerRegistration::addClientUsingRegistration):
(WebCore::SWServerRegistration::removeClientUsingRegistration):
(WebCore::SWServerRegistration::controlClient):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::findClientByIdentifier):

  • workers/service/server/SWServerToContextConnection.h:

(WebCore::SWServerToContextConnection::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::findClientByIdentifier const):
(WebCore::SWServerWorker::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::swServerForSession):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::notifyClientsOfControllerChange):
(WebKit::WebSWServerConnection::controlClient):
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::clientURLFromIdentifier):
(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::unregisterMDNSNames):
(WebKit::NetworkMDNSRegister::registerMDNSName):

  • NetworkProcess/webrtc/NetworkMDNSRegister.h:
  • NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/WebCoreArgumentCoders.cpp:

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

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):

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

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

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

(WebKit::WebProcessProxy::establishServiceWorkerContext):

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

(WebKit::InjectedBundle::liveDocumentURLs):

  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:

(WebKit::LibWebRTCNetworkManager::getOrCreate):
(WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager):

  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:

(WebKit::WebMDNSRegister::unregisterMDNSNames):
(WebKit::WebMDNSRegister::registerMDNSName):

  • WebProcess/Network/webrtc/WebMDNSRegister.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):
(WebKit::WebSWClientConnection::unregisterServiceWorkerClient):
(WebKit::WebSWClientConnection::setDocumentIsControlled):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWContextManagerConnection::findClientByIdentifier):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
10:05 AM Changeset in webkit [286011] by yoshiaki.jitsukawa@sony.com
  • 10 edits
    9 adds in trunk

Implement JPEG XL image decoder using libjxl
https://bugs.webkit.org/show_bug.cgi?id=233113

Reviewed by Michael Catanzaro.

This patch introduces the initial version of JPEG XL image decoder.
JPEG XL is a royalty-free raster-graphics file format that supports
both lossy and lossless compression and is experimentally supported by
Chrome, FireFox, and Edge.
The image decoder implemented by this patch uses libjxl, a reference
implementation of JPEG XL decoder (and encoder). JPEG XL animations
will be supported later.

.:

  • Source/cmake/FindJPEGXL.cmake: Added.
  • Source/cmake/OptionsWinCairo.cmake: Enable JPEG XL support if

libjxl is available.

Source/WebCore:

Tests: LayoutTests\fast\images\jpegxl-as-image.html

LayoutTests\fast\images\jpegxl-image-decoding.html

  • platform/ImageDecoders.cmake: Add JPEGXLImageDecoder.cpp if

USE(JPEGXL) is turned on.

  • platform/MIMETypeRegistry.cpp: JPEG XL mime type added.
  • platform/image-decoders/ScalableImageDecoder.cpp: JPEG XL signature

added.

  • platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp: Added.
  • platform/image-decoders/jpegxl/JPEGXLImageDecoder.h: Added.
  • platform/win/MIMETypeRegistryWin.cpp: The .jxl file extension added.

LayoutTests:

  • TestExpectations: Skip JPEG XL tests by default.
  • fast/images/jpegxl-as-image-expected.html: Added.
  • fast/images/jpegxl-as-image.html: Added.
  • fast/images/jpegxl-image-decoding-expected.txt: Added.
  • fast/images/jpegxl-image-decoding.html: Added.
  • fast/images/resources/green-313x313.jxl: Added.
  • platform/wincairo/TestExpectations: Skip JPEG XL tests until

WebKitReqirements release with libjxl.

9:58 AM Changeset in webkit [286010] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233086
<rdar://problem/85376544>

Reviewed by Brent Fulgham.

Follow-up patch, allow access to logging service for root.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
9:45 AM Changeset in webkit [286009] by Russell Epstein
  • 3 edits in branches/safari-613.1.8-branch/Source/WebKit

Cherry-pick r285886. rdar://problem/85473581

[iOS] Limit graphics related IOKit method filtering
https://bugs.webkit.org/show_bug.cgi?id=233209
<rdar://problem/85473581>

Reviewed by Brent Fulgham.

Limit graphics related IOKit method filtering based on OS version. This patch also adds an entitlement which
will enable a replacement for the disabled filtering.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Scripts/process-entitlements.sh:

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

9:33 AM Changeset in webkit [286008] by Russell Epstein
  • 2 edits in branches/safari-613.1.8-branch/Source/WebKit

Cherry-pick r285889. rdar://problem/85430575

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

  • WebProcess/com.apple.WebProcess.sb.in:

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

9:33 AM Changeset in webkit [286007] by Russell Epstein
  • 3 edits in branches/safari-613.1.8-branch/Source/WebKit

Cherry-pick r285878. rdar://problem/85430575

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

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

9:27 AM Changeset in webkit [286006] by Russell Epstein
  • 8 edits in branches/safari-613.1.8-branch/Source

Versioning.

WebKit-7613.1.8.3

9:21 AM Changeset in webkit [286005] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

MediaPlayerAVFoundation should support rvfc
https://bugs.webkit.org/show_bug.cgi?id=231945
<rdar://problem/84657372>

Reviewed by Chris Dumez.

Unreviewed, rebasing generator tests.

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:
  • Scripts/webkit/tests/TestWithCVPixelBufferMessages.h:
7:56 AM Changeset in webkit [286004] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233129
<rdar://problem/85411927>

Reviewed by Brent Fulgham.

Based on telemetry, block access to unused resources in the Networking process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
7:52 AM Changeset in webkit [286003] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233086
<rdar://problem/85376544>

Reviewed by Brent Fulgham.

Based on telemetry, block access to unused resources in the Networking process' sandbox on macOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
7:13 AM Changeset in webkit [286002] by Martin Robinson
  • 36 edits
    1 copy
    11 moves
    18 adds
    7 deletes in trunk/LayoutTests

Update css-transforms WPT tests
https://bugs.webkit.org/show_bug.cgi?id=233188

Reviewed by Sergio Villar Senin.

Update WPT transform tests and expectations.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-transforms/2d-rotate-001.html:
  • web-platform-tests/css/css-transforms/2d-rotate-notref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-notref-expected.html.
  • web-platform-tests/css/css-transforms/2d-rotate-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-ref-expected.html.
  • web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-composition.html:
  • web-platform-tests/css/css-transforms/animation/support/transform-interpolation-reftests.js:

(async createTests):
(async createRefs):

  • web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-matrix-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-matrix-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-perspective-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-perspective.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate-slerp-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate-slerp-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-scale-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-scale-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-skew-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-skew-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-em-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-em-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests.html: Added.
  • web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-interpolation.html:
  • web-platform-tests/css/css-transforms/animation/w3c-import.log:
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-translate-expected.xht: Added.
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-translate.html: Added.
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-will-change-transform-expected.xht: Added.
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-will-change-transform.html: Added.
  • web-platform-tests/css/css-transforms/css-skew-002.html:
  • web-platform-tests/css/css-transforms/inheritance-expected.txt:
  • web-platform-tests/css/css-transforms/inheritance.html:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/transform-computed-expected.txt: Added.
  • web-platform-tests/css/css-transforms/parsing/transform-computed.html: Added.
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/w3c-import.log:
  • web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html:
  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties.html:
  • web-platform-tests/css/css-transforms/preserve3d-overflow-percent-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/preserve3d-overflow-percent-expected.html.
  • web-platform-tests/css/css-transforms/transform-abspos-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-abspos-005-expected.html.
  • web-platform-tests/css/css-transforms/transform-and-individual-transform-properties-computed-style.html:
  • web-platform-tests/css/css-transforms/transform-background-007.html:
  • web-platform-tests/css/css-transforms/transform-background-008.html:
  • web-platform-tests/css/css-transforms/transform-input-015.html:
  • web-platform-tests/css/css-transforms/transform-input-016.html:
  • web-platform-tests/css/css-transforms/transform-input-017.html:
  • web-platform-tests/css/css-transforms/transform-origin-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-origin-001-expected.html.
  • web-platform-tests/css/css-transforms/transform-origin-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-origin-002-expected.html.
  • web-platform-tests/css/css-transforms/transform-scale-hittest-expected.txt:
  • web-platform-tests/css/css-transforms/transform-scale-hittest.html:
  • web-platform-tests/css/css-transforms/transform3d-perspective-origin-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-perspective-origin-ref-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-001-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-002-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-rotatex-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-rotatex-ref-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-sorting-006.html:
  • web-platform-tests/css/css-transforms/transforms-rotate-degree-45.html:
  • web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle-mismatch-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle-mismatch-expected.html.
  • web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle.html:
  • web-platform-tests/css/css-transforms/w3c-import.log:

LayoutTests:

6:54 AM Changeset in webkit [286001] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Should not always keep the entire continuous content when the line is empty
https://bugs.webkit.org/show_bug.cgi?id=233303

Reviewed by Antti Koivisto.

The rule of "let's keep the first glyph on the line" should take into account when
the continuous content has a series of runs e.g [X][X][X] where each 'X' represents an individual inline text item.
In such cases we should just return the first text run as the trailing inline item with 'break' action.
(This patch is in preparation for enabling IFC's preferred width computation.)

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):

  • rendering/RenderBlockFlow.cpp:
6:43 AM Changeset in webkit [286000] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Inline boxes with unbreakable decoration can produce a breaking position with no trailing run
https://bugs.webkit.org/show_bug.cgi?id=233302

Reviewed by Antti Koivisto.

Source/WebCore:

This is a rare case when the overflowing run is the first inline box start with unbreakable decoration while its content is breakable.
e.g.
<div style="width: 0xp"><span style="border: solid; word-break: break-word;">breakable</span></div>

While the overflowing run (inline box start) is unbreakable (border), we find the first breaking position right between
the <span> (inline box start) and its content (inline text item).
However we also don't want to separate the content from its parent inline box (i.e. should not be breaking between these 2 inline items)
so we start searching for a trailing run candidate by looking at the previous set of runs.
Now if this <span> is the first run in this set we won't find a trailing run and we should just return the breaking position with no trailing content.

Test: fast/inline/inline-box-with-unbreakable-decoration-and-word-break.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingNextOverflowingRuns const):

LayoutTests:

  • fast/inline/inline-box-with-unbreakable-decoration-and-word-break-expected.html: Added.
  • fast/inline/inline-box-with-unbreakable-decoration-and-word-break.html: Added.
6:20 AM Changeset in webkit [285999] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Glyphs that conditionally hang are taken into account for max-content only
https://bugs.webkit.org/show_bug.cgi?id=233287

Reviewed by Antti Koivisto.

Remove hanging glyphs for min-content only. It simply means that content followed by (pre-wrap) whitespace may make shrink wrapped lines wider.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):

  • rendering/RenderBlockFlow.cpp:
5:12 AM Changeset in webkit [285998] by Ziran Sun
  • 12 edits in trunk

Images as grid items should use the overridingLogicalWidth when defined to compute the logical Height
https://bugs.webkit.org/show_bug.cgi?id=228022

LayoutTests/imported/w3c:

Reviewed by Javier Fernandez.

  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:

Source/WebCore:

This is a re-land of r280078 and r282008. r280078 has caused a crash. Details on the crash test case is
at https://bugs.webkit.org/show_bug.cgi?id=232922. The reason for the crash is that, when recomputing the
intrinsic width we need to recompute the intrinsic width of the caller, which is the grid item, rather than
the grid in this case.

This patch addresses the original issue and the cause for the crash.

When computing the logical height using an intrinsic aspect ratio, RenderReplaced should use the
overridingLogicalWidth whenever defined just as how it does for flex items. This change is to
replace the use of intrinsic (non-stretched) logical width in current code with the overridingLogicalWidth.

The current code doesn't set overringLogicalWidth while the width changes while stretches along Row Axis.
This change adds the logic in.

Reviewed by Javier Fernandez.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

LayoutTests:

Reviewed by Javier Fernandez.

4:34 AM Changeset in webkit [285997] by Carlos Garcia Campos
  • 11 edits
    1 add in trunk

[GTK][a11y] Add implementation of value interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232300

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::valueChanged):

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

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::currentValue const):
(WebCore::AccessibilityObjectAtspi::setCurrentValue):
(WebCore::AccessibilityObjectAtspi::minimumValue const):
(WebCore::AccessibilityObjectAtspi::maximumValue const):
(WebCore::AccessibilityObjectAtspi::minimumIncrement const):
(WebCore::AccessibilityObjectAtspi::valueChanged):

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

Tools:

Add new unit test for the value interface and implement WTR value support.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testValueBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):

3:46 AM Changeset in webkit [285996] by Carlos Garcia Campos
  • 14 edits in trunk

[GTK][a11y] Add initial WTR accessibility support when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=230259

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Export symbols required by WTR.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::runLoop const):

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

(WebCore::AccessibilityRootAtspi::focusedObject const):

  • accessibility/atspi/AccessibilityRootAtspi.h:

Source/WebKit:

In case of ATSPI we need the web page accessibility object to get the root and focused object wrappers.

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

(WKAccessibilityRootObject):
(WKAccessibilityFocusedObject):

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::accessibleElementById):
(WTR::AccessibilityController::platformName):
(WTR::AccessibilityController::axRunLoop):
(WTR::AccessibilityController::executeOnAXThreadAndWait):
(WTR::AccessibilityController::executeOnAXThread):
(WTR::AccessibilityController::executeOnMainThread):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::isEqual):
(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::elementForRelationAtIndex):
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsElementAtIndex):
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::parentElement):
(WTR::attributesOfElement):
(WTR::attributesOfElements):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::checkElementState):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::roleValueToString):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isSelectedOptionActive const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::isChecked const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::lineForIndex):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange):
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isVisible const):
(WTR::AccessibilityUIElement::isOffScreen const):
(WTR::AccessibilityUIElement::isCollapsed const):
(WTR::AccessibilityUIElement::isSingleLine const):
(WTR::AccessibilityUIElement::isMultiLine const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::stringAtOffset):
(WTR::AccessibilityUIElement::characterAtOffset):
(WTR::AccessibilityUIElement::wordAtOffset):
(WTR::AccessibilityUIElement::lineAtOffset):
(WTR::AccessibilityUIElement::sentenceAtOffset):

  • WebKitTestRunner/gtk/main.cpp:

(main):

3:19 AM Changeset in webkit [285995] by commit-queue@webkit.org
  • 20 edits in trunk/LayoutTests/imported/w3c

Update test expectations after r285346
https://bugs.webkit.org/show_bug.cgi?id=233290

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-18

  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.blur.exceptions-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.blur.exceptions.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.colorMatrix-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.colorMatrix.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.convolveMatrix.exceptions-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.convolveMatrix.exceptions.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker-expected.txt:
2:43 AM Changeset in webkit [285994] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix GTK build with ATSPI enaled after r285904

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textAttributes const):

2:34 AM Changeset in webkit [285993] by youenn@apple.com
  • 37 edits in trunk

MediaPlayerAVFoundation should support rvfc
https://bugs.webkit.org/show_bug.cgi?id=231945
LayoutTests/imported/w3c:

<rdar://problem/84657372>

Reviewed by Eric Carlson.

Transforming tests from async to promise based so that there is only one video playing at a time, to make it work smoothly in iOS.

  • web-platform-tests/video-rvfc/request-video-frame-callback-dom-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback-dom.html:
  • web-platform-tests/video-rvfc/request-video-frame-callback-parallel-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback-parallel.html:
  • web-platform-tests/video-rvfc/request-video-frame-callback-repeating-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback-repeating.html:
  • web-platform-tests/video-rvfc/request-video-frame-callback-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback.html:

Source/WebCore:

<rdar://problem/84657372>

Reviewed by Eric Carlson.

Add API to start/stop gathering metadata.
This goes from video element down to media player private.
Conversely, add a callback to get the metadata, including the pixel buffer.

Implement support in MediaPlayerPrivateAVFoundationObjC by adding a specific timeline observer.
We reuse the same video output and the same pixel buffer as when painting the video element in the canvas.
To make sure painting in a canvas does not have side effects with gathering video metadata, we do not update the pixel buffer
when painting on a canvas in case video metadata is gathered.
Instead, we consider that pixel buffer is as up to date as possible in that case.
To make it work in WK1, we implement the synchronous video frame callback getter.

Round the millisecond now time given to the callback, like done for RAF.

Covered by enabled tests.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.h:
  • html/HTMLVideoElement.cpp:
  • html/HTMLVideoElement.h:
  • platform/VideoFrameMetadata.h:
  • platform/cocoa/CVPixelBufferRef.h: Added.
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/cv/PixelBufferConformerCV.h:

Source/WebKit:

<rdar://problem/84657372>

Reviewed by Eric Carlson.

Add IPC messaging to start/stop metadata gathering from WebProcess to GPUProcess.
Add IPC messaging to push metadata to WebProcess, including sending the corresponding CVPixelBuffer for the current metadata.
MediaPlayerPrivateRemote will then serve that buffer when being requested the current image.
This ensures that painting on a canvas does not mark the current buffer as acquired, which would then skip the video frame metadata gathering.
This also ensures the same buffer is used if a video element is painted several times during the same rvfc callback.
This has the side benefit of removing the synchronous IPC to paint the video element in a canvas.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

Tools:

Reviewed by Eric Carlson.

Enable rvfc by default in test runner.

  • DumpRenderTree/mac/DumpRenderTree.mm:
  • WebKitTestRunner/TestController.cpp:

LayoutTests:

Reviewed by Eric Carlson.

Unskipped some tests.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:06 AM Changeset in webkit [285992] by Chris Lord
  • 8 edits in trunk/Source

[GLIB] twitch.tv forces synchronous scrolling
https://bugs.webkit.org/show_bug.cgi?id=232376
<rdar://problem/85247010>

Reviewed by Simon Fraser.

Source/WebCore:

Make sure to keep the userScrollInProgress flag in sync for scrolling
nodes in the nicosia backend and add a utility function to determine
if user scroll is in progress for a given wheel event. This lets
EventDispatcher dispatch events asynchronously in that case.

No new tests, exercised by existing tests.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::isUserScrollInProgressAtEventLocation):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::isUserScrollInProgress const):
(WebCore::ScrollingTreeScrollingNode::isUserScrollProgress const): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::handleWheelEvent):

Source/WebKit:

Don't force synchronous wheel event delivery for scroll events when
a user scroll is in progress.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

1:51 AM Changeset in webkit [285991] by Carlos Garcia Campos
  • 15 edits in trunk/Source

AX: Use ObjectIdentifier for AXID
https://bugs.webkit.org/show_bug.cgi?id=233248
<rdar://problem/85497145>

Reviewed by Andres Gonzalez.

Source/WebCore:

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::setIsolatedTreeFocusedObject):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::cacheAndInitializeWrapper):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::platformGenerateAXID const):
(WebCore::AXObjectCache::objectsForIDs const):
(WebCore::AXObjectCache::updateIsolatedTree):

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

(WebCore::AXCoreObject::detach):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::associatedAXObject const):
(WebCore::AXIsolatedObject::detachFromParent):
(WebCore::AXIsolatedObject::isDetachedFromParent):
(WebCore::AXIsolatedObject::cellForColumnAndRow):
(WebCore::AXIsolatedObject::accessibilityHitTest const):
(WebCore::AXIsolatedObject::objectAttributeValue const):

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

(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::idsForObjects const):
(WebCore::AXIsolatedTree::updateChildrenIDs):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::focusedNode):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::WTF_GUARDED_BY_LOCK): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase attachAXObject:]):
(-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):
(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase detachIsolatedObject:]):

  • accessibility/win/AXObjectCacheWin.cpp:

(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::platformGenerateAXID const):

Source/WebKitLegacy/win:

  • AccessibleBase.cpp:

(AccessibleBase::get_uniqueID):
(AccessibleBase::getAccessibilityObjectForChild const):

1:49 AM Changeset in webkit [285990] by commit-queue@webkit.org
  • 13 edits
    1 add
    2 deletes in trunk/Source

RemoteGraphicsContextGLProxyBase should not have platform-specific implementations
https://bugs.webkit.org/show_bug.cgi?id=233175

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-18
Reviewed by Antti Koivisto.

Move platform-specific code from RemoteGraphicsContextGLProxyBase to
WebKit::RemoteGraphicsContextGLProxyCocoa and WebKit::RemoteGraphicsContextGLProxyWC.
The platform-specific code is trivial and anyway used by the WebKit side concrete classes.

Source/WebCore:

No new tests, refactor.

  • PlatformWinCairo.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:

(WebCore::RemoteGraphicsContextGLProxyBase::RemoteGraphicsContextGLProxyBase):
(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample): Deleted.

  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/cocoa/RemoteGraphicsContextGLProxyBaseCocoa.mm: Removed.

(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::asCV): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample): Deleted.

  • platform/graphics/wc/RemoteGraphicsContextGLProxyBaseWC.cpp: Removed.

(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::setPlatformLayer): Deleted.

Source/WebKit:

  • PlatformWin.cmake:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::create): Deleted.
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay): Deleted.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:

(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay): Deleted.

  • WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp: Added.

(WebKit::RemoteGraphicsContextGLProxy::create):

1:41 AM Changeset in webkit [285989] by svillar@igalia.com
  • 12 edits
    20 adds in trunk/LayoutTests

[css-flexbox] Import WPT tests. November 2021 edition.
https://bugs.webkit.org/show_bug.cgi?id=233197

Reviewed by Martin Robinson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/baseline-synthesis-001-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/baseline-synthesis-001.html: Added.
  • web-platform-tests/css/css-flexbox/baseline-synthesis-002-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/baseline-synthesis-002.html: Added.
  • web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash.html: Added.
  • web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt:
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html:
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-023.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml:
  • web-platform-tests/css/css-flexbox/percentage-heights-016-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-016.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-017-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-017.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-018-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-018.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-019-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-019.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-large-intrinsic-size-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-large-intrinsic-size.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

1:26 AM Changeset in webkit [285988] by Carlos Garcia Campos
  • 6 edits in trunk

[GLIB] jsc_value_object_define_property_accessor() throws an exception when called on a value without a wrapper instance
https://bugs.webkit.org/show_bug.cgi?id=233253

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

We assumed that getter and setter were always methods, so we always try to set the initial parameter as the
instance. When called with a value not having an instance we get an exception because the expected instance is
nullptr. This patch changes the behavior of jsc_value_object_define_property_accessor() to call the getter and
setter as functions, but keeping the behavior of jsc_class_add_property() in which case they are still called as
methods.

  • API/glib/JSCClass.cpp:

(jsc_class_add_property): Use jscValueAddPropertyAccessor().

  • API/glib/JSCValue.cpp:

(jsObjectCall): Remove useless break after return.
(jscValueObjectDefinePropertyAccessor): Helper to define the property accessor using the given function type for
the getter and setter.
(jsc_value_object_define_property_accessor): Call jscValueObjectDefinePropertyAccessor() with function as
function type.
(jscValueAddPropertyAccessor): Call jscValueObjectDefinePropertyAccessor() with method as function type.

  • API/glib/JSCValuePrivate.h:

Tools:

Add unit tests to check jsc_value_object_define_property_accessor().

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(getIntProperty):
(setIntProperty):
(testJSCObject):

1:12 AM Changeset in webkit [285987] by Ziran Sun
  • 6 edits in trunk

[css-grid] Transfer size for grid item with an aspect-ratio and stretch alignment against the definite row
https://bugs.webkit.org/show_bug.cgi?id=232987

Reviewed by Javier Fernandez.

Source/WebCore:

For a grid item with an aspect-ratio, if it has stretch alignment against the definite row, it should
try and resolve it if possible and transfer this size into the inline direction for the min/max content
size. For the case that the grid width is content sized, we need to update the width before laying out
the grid items. Since the min-content contribution of the grid item has changed based on the row sizes
calculated in step 2 of sizing algorithm, we also need to repeat the sizing algorithm steps to update
the width of the track sizes.

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::isAspectRatioBlockSizeDependentChild):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::updateGridAreaForAspectRatioItems):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::needsPreferredWidthsRecalculation const):

LayoutTests:

Note: See TracTimeline for information about the timeline view.