Timeline



Nov 9, 2021:

10:52 PM Changeset in webkit [285565] by Chris Dumez
  • 9 edits in trunk

[macOS] Enable NSURLSession partitioning based on first-party domain at CFNetwork level
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://problem/83159358>

Reviewed by Alex Christensen.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(overrideAttributionContext): Deleted.
Stop disabling CFNetwork NSURLSession partitioning based on first-party domain on
macOS.

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::hasIsolatedSession const):
(WebKit::NetworkSessionCocoa::clearIsolatedSessions):
(WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet):
Disable ITP session partitioning of certain prevalent domains on platforms where
CFNetwork already does full partitioning of all domains (now that it is enabled
on macOS 12+ and iOS15+).

Source/WTF:

Add HAVE(CFNETWORK_SESSION_PARTITIONING_BASED_ON_FIRST_PARTY_DOMAIN) build time flag that is true
on newer Apple OSes where CFNetwork does NSURLSession partitioning based on first-party domain for
us.

  • wtf/PlatformHave.h:

LayoutTests:

Skip a few ITP session partitioning tests on newer OSes now that session partitioning
happens for all first-party domains at CFNetwork level on these OSes.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
9:23 PM Changeset in webkit [285564] by Ben Nham
  • 29 edits
    5 copies
    6 adds in trunk

Add support for PushSubscriptionChangeEvent
https://bugs.webkit.org/show_bug.cgi?id=232455

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

This adds support for the PushSubscriptionChangeEvent object. I plan to add support for the
onpushsubscriptionchange event handler in a later patch.

While working on this, it seemed reasonable to be able to create PushSubscriptions that
point to a null ServiceWorkerRegistration. This is for subscriptions that are returned via
the oldSubscription property and are therefore already unsubscribed.

I added a new constructor for creating a PushSubscription pointing to a null
ServiceWorkerRegistration, rather than changing the existing constructor to just take a
RefPtr<ServiceWorkerRegistration>. This is because I wanted to remove the WEBCORE_EXPORT
from ServiceWorkerRegistration, and the inline code generated by creating a null
RefPtr<ServiceWorkerRegistration> in the internals dylib caused it to require
ServiceWorkerRegistration::ref/deref to be exported.

Tests: http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/push-api/PushManager.cpp:

(WebCore::PushManager::subscribe):
(WebCore::PushManager::getSubscription):
(WebCore::PushManager::permissionState):

  • Modules/push-api/PushManager.h:
  • Modules/push-api/PushManager.idl:
  • Modules/push-api/PushSubscription.cpp:

(WebCore::PushSubscription::PushSubscription):
(WebCore::PushSubscription::unsubscribe):

  • Modules/push-api/PushSubscription.h:
  • Modules/push-api/PushSubscription.idl:
  • Modules/push-api/PushSubscriptionChangeEvent.cpp: Copied from Source/WebCore/Modules/push-api/PushManager.h.

(WebCore::PushSubscriptionChangeEvent::create):
(WebCore::PushSubscriptionChangeEvent::PushSubscriptionChangeEvent):

  • Modules/push-api/PushSubscriptionChangeEvent.h: Copied from Source/WebCore/Modules/push-api/PushManager.h.
  • Modules/push-api/PushSubscriptionChangeEvent.idl: Copied from Source/WebCore/Modules/push-api/PushSubscription.idl.
  • Modules/push-api/PushSubscriptionChangeEventInit.h: Copied from Source/WebCore/Modules/push-api/PushSubscription.idl.
  • Modules/push-api/PushSubscriptionChangeEventInit.idl: Copied from Source/WebCore/Modules/push-api/PushSubscription.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.in:
  • testing/Internals.cpp:

(WebCore::Internals::createPushSubscription):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::createPushSubscription):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/ServiceWorkerRegistration.idl:

LayoutTests:

Added PushSubscriptionChangeEvent tests and made PushSubscription tests also run in the
service worker context.

  • http/wpt/push-api/constants.js: Added.

(bytesFrom):

  • http/wpt/push-api/pushManager.any.js:
  • http/wpt/push-api/pushSubscription.https.any-expected.txt:
  • http/wpt/push-api/pushSubscription.https.any.js:

(GLOBAL.isWorker):
(async promise_test):
(bytesFrom): Deleted.
(promise_test.async test): Deleted.
(promise_test): Deleted.

  • http/wpt/push-api/pushSubscription.https.any.serviceworker-expected.txt: Added.
  • http/wpt/push-api/pushSubscription.https.any.serviceworker.html: Added.
  • http/wpt/push-api/pushSubscriptionChangeEvent.any.js: Added.

(test):
(promise_test.async newSubscription):
(promise_test.async return):
(promise_test):

  • http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker-expected.txt: Added.
  • http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker.html: Added.
9:14 PM Changeset in webkit [285563] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][GPUP] Remove shared memory access
https://bugs.webkit.org/show_bug.cgi?id=232823
<rdar://problem/85163103>

Reviewed by Brent Fulgham.

Based on telemetry, remove shared memory access in the GPU process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
8:59 PM Changeset in webkit [285562] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][GPUP] Remove read access to preferences
https://bugs.webkit.org/show_bug.cgi?id=232439
<rdar://problem/84762138>

Reviewed by Darin Adler.

Based on telemetry, remove access to reading some preference domains in the GPU process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
8:28 PM Changeset in webkit [285561] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add telemetry for system calls in WP
https://bugs.webkit.org/show_bug.cgi?id=231836
<rdar://problem/84317842>

Reviewed by Brent Fulgham.

Add telemetry for system calls in WP to understand in which context they are being used.

  • WebProcess/com.apple.WebProcess.sb.in:
7:59 PM Changeset in webkit [285560] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][GPUP] Remove shared memory access
https://bugs.webkit.org/show_bug.cgi?id=232281
<rdar://problem/84635475>

Reviewed by Darin Adler.

Based on telemetry, remove shared memory access in the GPU process' sandbox on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
7:29 PM Changeset in webkit [285559] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source

Apply patch. rdar://problem/85165713

7:29 PM Changeset in webkit [285558] by Alan Coon
  • 5 edits in branches/safari-612-branch

Cherry-pick r285389. rdar://problem/84380291

Integrator's note: excluded changes to Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.

AX: WebKit1 PluginViewBase objects with an associated widget()->platformWidget() should be considered attachments
https://bugs.webkit.org/show_bug.cgi?id=232759

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-06
Reviewed by Chris Fleizach.

Source/WebCore:

In https://bugs.webkit.org/show_bug.cgi?id=229556 (AX: Make PDFs
loaded via <embed> accessible), we changed AccessibilityRenderObject::isAttachment
to return false if the underlying object represented a PluginViewBase
under the assumption that if a PluginViewBase existed, the object must
be a WebKit2 plugin. That assumption is wrong, because in certain
scenarios an object can be a WebKit1 PluginViewBase (e.g. attachments
inserted by WebKit1 webviews).

This patch changes isAttachment to only return false if the
PluginViewBase doesn't also have an associated platformWidget, which
should be present in WebKit1 only.

This patch also fixes a bug in the Mac -[WebAccessibilityObjectWrapper
subrole]. For objects with a role of group and no children, we
returned a subrole of AXEmptyGroup. However, we didn't check for the
presence of renderWidgetChildren that a group may have.

  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isAttachment const): Consider PluginViewBase objects with an associated platformWidget to be attachments.
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper subrole]): Don't return AXEmptyGroup subrole for objects with renderWidgetChildren.

LayoutTests:

This patch changes the Mac WebAccessibilityObjectWrapper to not return
an AXEmptyGroup subrole for objects with renderWidgetChildren.

  • accessibility/mac/basic-embed-pdf-accessibility-expected.txt:
  • accessibility/mac/basic-embed-pdf-accessibility.html: Add expectation that the embed container doesn't have an AXEmptyGroup subrole.

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

7:29 PM Changeset in webkit [285557] by Alan Coon
  • 11 edits
    1 add in branches/safari-612-branch/Source/WebCore

Cherry-pick r285318. rdar://problem/85168068

[Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
https://bugs.webkit.org/show_bug.cgi?id=232690

Reviewed by Simon Fraser and Cameron McCormack.

Source/WebCore:

CTFontCopyVariationAxesInternal() is faster than CTFontCopyVariationAxes(), but the strings
it provides are not localized. Luckily, we don't actually use the strings in the common case,
so we can migrate to CTFontCopyVariationAxesInternal() safely.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::variationAxes): (WebCore::defaultVariationValues): (WebCore::preparePlatformFont):
  • platform/graphics/cocoa/FontCacheCoreText.h:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm: (WebCore::FontPlatformData::variationAxes const):

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

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

7:28 PM Changeset in webkit [285556] by Alan Coon
  • 21 edits
    1 add in branches/safari-612-branch

Cherry-pick r285169. rdar://problem/83950623

AX: WebKit needs to include NSAccessibilityChildrenInNavigationOrderAttribute in accessibilityAttributeNames
https://bugs.webkit.org/show_bug.cgi?id=232595

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-02
Reviewed by Andres Gonzalez.

This patch adds NSAccessibilityChildrenInNavigationOrderAttribute
(a.k.a. AXChildrenInNavigationOrder) to
WebAccessibilityObjectWrapperMac::accessibilityAttributeNames. The Mac
wrapper supported this attribute prior to this patch, but we didn't
advertise that we supported it because we didn't include it in our
exported attribute names.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Add NSAccessibilityChildrenInNavigationOrderAttribute to list of base supported attributes.

LayoutTests:

  • accessibility/image-link-expected.txt:
  • accessibility/image-map2-expected.txt:
  • accessibility/internal-link-anchors2-expected.txt:
  • accessibility/mac/aria-columnrowheaders-expected.txt:
  • accessibility/mac/bounds-for-range-expected.txt:
  • accessibility/mac/document-attributes-expected.txt:
  • accessibility/mac/document-links-expected.txt:
  • accessibility/mac/internal-link-anchors-expected.txt:
  • accessibility/math-multiscript-attributes-expected.txt:
  • accessibility/table-attributes-expected.txt:
  • accessibility/table-cell-spans-expected.txt:
  • accessibility/table-cells-expected.txt:
  • accessibility/table-detection-expected.txt:
  • accessibility/table-one-cell-expected.txt:
  • accessibility/table-sections-expected.txt:
  • accessibility/table-with-rules-expected.txt:
  • accessibility/transformed-element-expected.txt:
  • platform/mac/accessibility/lists-expected.txt:
  • platform/mac/accessibility/parent-delete-expected.txt: Add expected AXChildrenInNavigationOrder attribute output.

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

7:28 PM Changeset in webkit [285555] by Alan Coon
  • 60 edits in branches/safari-612-branch/Source

Cherry-pick r284453. rdar://problem/85034820

cachedCGColor() and nsColor() should return smart pointers
https://bugs.webkit.org/show_bug.cgi?id=231909

Reviewed by Tim Horton.

r276283 attempted to make cachedCGColor() and nsColor() thread-safe but the fix was incomplete
since those functions return unretained objects that can be released from the cache on any
other thread. This patch updates cachedCGColor() and nsColor() to return a RetainPtr to address
the issue.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (AXAttributeStringSetStyle):
  • editing/cocoa/FontAttributesCocoa.mm: (WebCore::FontAttributes::createDictionary const):
  • editing/cocoa/FontShadowCocoa.mm: (WebCore::FontShadow::createShadow const):
  • editing/cocoa/HTMLConverter.mm: (HTMLConverter::convert): (HTMLConverter::_colorForElement): (HTMLConverter::computedAttributesForElement): (HTMLConverter::_fillInBlock): (HTMLConverter::_processElement): (WebCore::editingAttributedString):
  • platform/graphics/Color.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm: (WebCore::LocalSampleBufferDisplayLayer::initialize):
  • platform/graphics/ca/PlatformCALayer.cpp: (WebCore::PlatformCALayer::drawTextAtPoint const):
  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: (WebCore::PlatformCAFilters::setFiltersOnLayer):
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::setBackgroundColor): (WebCore::PlatformCALayerCocoa::setBorderColor):
  • platform/graphics/cg/ColorCG.cpp: (WebCore::cachedCGColor):
  • platform/graphics/cg/GradientCG.cpp: (WebCore::Gradient::createCGGradient):
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::setCGFillColor): (WebCore::setCGShadow): (WebCore::GraphicsContextCG::didUpdateState):
  • platform/graphics/cocoa/ColorCocoa.h:
  • platform/graphics/cocoa/ColorCocoa.mm: (WebCore::platformColor):
  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::addAttributesForCustomFontPalettes):
  • platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime): (WebCore::colorForMarkerLineStyle): (WebCore::GraphicsContextCG::drawDotsForDocumentMarker):
  • platform/graphics/mac/ColorMac.h:
  • platform/graphics/mac/ColorMac.mm: (WTF::RetainPtr<NSColor>>::createValueForKey): (WebCore::nsColor):
  • platform/mac/LocalDefaultSystemAppearance.mm: (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
  • platform/mac/PlatformPasteboardMac.mm: (WebCore::PlatformPasteboard::setColor):
  • platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground):
  • platform/mac/ThemeMac.mm: (WebCore::drawCellFocusRingWithFrameAtTime):
  • rendering/RenderThemeMac.mm: (WebCore::AttachmentLayout::layOutTitle): (WebCore::AttachmentLayout::layOutSubtitle):
  • testing/cocoa/WebViewVisualIdentificationOverlay.mm: (-[WebViewVisualIdentificationOverlay initWithWebView:kind:deprecated:]): (drawPattern):

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: (WebKit::cgColorFromColor): (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView themeColor]): (-[WKWebView underPageBackgroundColor]): (-[WKWebView _pageExtendedBackgroundColor]): (-[WKWebView _sampledPageTopColor]):
  • UIProcess/API/Cocoa/_WKApplicationManifest.mm: (-[_WKApplicationManifest themeColor]):
  • UIProcess/API/mac/WKView.mm: (-[WKView underlayColor]): (-[WKView _pageExtendedBackgroundColor]):
  • UIProcess/API/mac/WKWebViewMac.mm: (-[WKWebView _underlayColor]):
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateTextTouchBar): (WebKit::WebViewImpl::underlayColor const): (WebKit::WebViewImpl::pageExtendedBackgroundColor const):
  • UIProcess/PDF/WKPDFHUDView.mm: (-[WKPDFHUDView _setupLayer:]):
  • UIProcess/mac/WebColorPickerMac.mm: (WebKit::WebColorPickerMac::setSelectedColor): (WebKit::WebColorPickerMac::showColorPicker): (-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::setAccentColor):
  • WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):

Source/WebKitLegacy/mac:

  • DOM/DOMRGBColor.mm: (-[DOMRGBColor color]):
  • WebView/WebFrame.mm: (-[WebFrame _bodyBackgroundColor]):
  • WebView/WebView.mm: (-[WebView updateTextTouchBar]):

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

6:48 PM Changeset in webkit [285554] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, skip failing test.
https://bugs.webkit.org/show_bug.cgi?id=231084
rdar://problem/83770133

Bug 230210 caused a progression on how we would detect stall during playback.
This exposed an issue with the existing test where it could fail differently
if a temporary stall occurred.
This test can't pass as we do not support change of resolution mid-stream
in plain mp4 playback (see bug 232916)

Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2021-11-09

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
6:44 PM Changeset in webkit [285553] by Alan Coon
  • 14 edits in branches/safari-613.1.8-branch

Cherry-pick r285538. rdar://problem/85234466

Unreviewed, reverting r285246.
https://bugs.webkit.org/show_bug.cgi?id=232907

Broke FixedVector

Reverted changeset:

"[JSC] Clean up StructureStubInfo initialization"
https://bugs.webkit.org/show_bug.cgi?id=232652
https://commits.webkit.org/r285246

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

5:57 PM Changeset in webkit [285552] by mmaxfield@apple.com
  • 11 edits
    1 add in trunk/Source/WebCore

[Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
https://bugs.webkit.org/show_bug.cgi?id=232690

Reviewed by Simon Fraser and Cameron McCormack.

Source/WebCore:

CTFontCopyVariationAxesInternal() is faster than CTFontCopyVariationAxes(), but the strings
it provides are not localized. Luckily, we don't actually use the strings in the common case,
so we can migrate to CTFontCopyVariationAxesInternal() safely.

No new tests because there is no behavior change.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::buildObjectForFont):

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::variationAxes const):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/ShouldLocalizeAxisNames.h: Added.
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::variationAxes):
(WebCore::defaultVariationValues):
(WebCore::preparePlatformFont):
(WebCore::variationCapabilitiesForFontDescriptor):

  • platform/graphics/cocoa/FontCacheCoreText.h:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::variationAxes const):

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:
5:39 PM Changeset in webkit [285551] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][GPUP] Block access to mapping of executables
https://bugs.webkit.org/show_bug.cgi?id=232257
<rdar://problem/84623297>

Reviewed by Brent Fulgham.

Block access to mapping of certain executables in the GPU process on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
5:25 PM Changeset in webkit [285550] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (Safari 15): AudioContext.currentTime speeds up (and audio won't play) when Bluetooth speaker connected
https://bugs.webkit.org/show_bug.cgi?id=232728
<rdar://problem/85075538>

Reviewed by Jer Noble.

This was a regression from us moving WebAudio to the GPUProcess in Safari 15. The issue occurred because the
WebProcess (writer) would get further and further ahead of the GPUProcess (reader) after a hardware sample
rate change.

When rendering on https://mdn.github.io/webaudio-examples/audiocontext-states/ with a hardware sample rate of
96Khz, RemoteAudioDestination::render() would get called with a numberOfFrame=128. Each time
RemoteAudioDestination::render() was called, it would signal the IPC semaphore, causing the WebProcess to
produce one WebAudio rendering quantum (128 frames). This would match perfectly and there would be no issues.
However, if during playback, the hardware sample rate changes (which can happen when connecting to bluetooth
speakers), CoreAudio would start calling RemoteAudioDestination::render() with a different numberOfFrame.
For example, when switching the hardware sample rate to 44.1Khz, numberOfFrames would be 278. Every time it
is called, render() would signal the semaphore 3 times, causing the WebProcess to produce 3 WebAudio rendering
quantums (3 * 128 = 384 frames). So each time render() is called, the WebProcess would generate 384 - 278 = 105
frames too many, causing it to get further and further ahead of the GPUProcess. One symptom would be that
AudioContext.currentTime would progress too fast. Also, eventually, our RingBuffer between the 2 process would
fill up and lead to rendering issues.

To address the issue, I updated RemoteAudioDestination::render() to keep track of how many extra samples it
requested from the WebProcess previously. This avoids signalling the IPC semaphore too many times and the
WebProcess can no longer get too far ahead of the GPUProcess. The logic matches what was already done in
RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render().

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:
5:17 PM Changeset in webkit [285549] by Megan Gardner
  • 9 edits in trunk

Turn on selection flipping by default.
https://bugs.webkit.org/show_bug.cgi?id=232853

Reviewed by Wenson Hsieh.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html:
5:09 PM Changeset in webkit [285548] by commit-queue@webkit.org
  • 25 edits in trunk

Unreviewed, reverting r285536.
https://bugs.webkit.org/show_bug.cgi?id=232915

causes API test crashes

Reverted changeset:

"[CF] Reduce duplication and unneeded buffer allocations and
copying in URL code, also remove unused methods and functions"
https://bugs.webkit.org/show_bug.cgi?id=232220
https://commits.webkit.org/r285536

5:05 PM Changeset in webkit [285547] by achristensen@apple.com
  • 120 edits
    5 adds in trunk/Tools

Unify build of TestWebKitAPI/Tests/WebKitCocoa
https://bugs.webkit.org/show_bug.cgi?id=232768

Reviewed by Tim Horton.

I found that the Fullscreen.LayoutConstraints was not being built because FullscreenLayoutConstraints.mm was not being built.
Now that it is being built it times out, so I disabled it.

  • TestWebKitAPI/DeprecatedGlobalValues.cpp: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.

(resetGlobalState):

  • TestWebKitAPI/DeprecatedGlobalValues.h: Copied from Tools/TestWebKitAPI/Tests/WebKit/AboutBlankLoad.cpp.
  • TestWebKitAPI/DeprecatedGlobalValues.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.
  • TestWebKitAPI/Scripts/generate-unified-sources.sh:
  • TestWebKitAPI/Sources.txt:
  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AVFoundationPreference.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/AdditionalReadAccessAllowedURLs.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ApplePay.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm:

(-[TestAsyncNavigationDelegate webView:didFinishNavigation:]):
(-[TestAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleParameters.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(-[ChallengeDelegate webView:didFinishNavigation:]):
(-[ClientCertificateDelegate webView:didFinishNavigation:]):
(-[ProposedCredentialDelegate webView:didFinishNavigation:]):
(-[ServerTrustDelegate webView:didFailProvisionalNavigation:withError:]):
(-[ServerTrustDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:

(WebKit2_CommandBackForwardTestWKView::SetUp):
(WebKit2_CommandBackForwardTestWKView::loadFiles):
(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(-[TestContextMenuUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuAPIBeforeSPIUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuAPIBeforeSPIUIDelegate _webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuImageUIDelegate _webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/CookieAcceptPolicy.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

(createWebViewWithCustomPasteboardDataEnabled): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:

(createWebViewWithCustomPasteboardDataEnabled): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/CustomUserAgent.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:

(-[DecidePolicyForNavigationActionController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DuplicateCompletionHandlerCalls.mm:

(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenLayoutConstraints.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBDeleteRecovery.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IDBObjectStoreInfoUpgradeToV2.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(-[IPCTestingAPIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/IconLoadingDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[AppBoundDomainDelegate webView:didFailProvisionalNavigation:withError:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBDatabaseProcessKill.mm:

(-[DatabaseProcessKillMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBInPageCache.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBMultiProcess.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm:

(-[JSNavigationDelegate webView:didFinishNavigation:]):

  • TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:

(-[LoadAlternateHTMLStringFromProvisionalLoadErrorController webView:didStartProvisionalNavigation:]):

  • TestWebKitAPI/Tests/WebKitCocoa/LoadFileThenReload.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageClear.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageDatabaseTracker.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageNullEntries.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:

(-[LocalStorageNavigationDelegate webView:didFinishNavigation:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageQuirkTest.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(-[BroadcastChannelMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcessCrashNonPersistentDataStore.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PDFLinkReferrer.mm:

(emptyReleaseInfoCallback):

  • TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:

(createWebViewWithCustomPasteboardDataEnabled): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm:

(createWebViewWithCustomPasteboardDataEnabled): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteboardUtilities.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.
  • TestWebKitAPI/Tests/WebKitCocoa/PasteboardUtilities.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.

(createWebViewWithCustomPasteboardDataEnabled):

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[PSONNavigationDelegate webView:didStartProvisionalNavigation:]):
(-[PSONNavigationDelegate webView:didCommitNavigation:]):
(-[PSONUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ProvisionalURLNotChange.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(-[ProxyDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(-[QuickLookDelegate navigationError]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RequiresUserActionForPlayback.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimer.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimerDoesntFireEarly.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/RunOpenPanel.mm:

(-[RunOpenPanelUIDelegate webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(-[SafeBrowsingNavigationDelegate webView:didCommitNavigation:]):
(-[WKWebViewGoBackNavigationDelegate webView:didFinishNavigation:]):

  • TestWebKitAPI/Tests/WebKitCocoa/SchemeRegistry.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[TestSWAsyncNavigationDelegate webView:didFinishNavigation:]):
(-[TestSWAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestSWAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ShouldOpenExternalURLsInNewWindowActions.mm:

(-[ShouldOpenExternalURLsInNewWindowActionsController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(-[SpeechRecognitionNavigationDelegate webView:didFinishNavigation:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/TopContentInset.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[UITestDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:

(-[UploadDelegate webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UserInitiatedActionInNavigationAction.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(resetInspectorGlobalState):
(-[UIDelegateForTesting _webView:configurationForLocalInspector:]):
(TEST):
(resetGlobalState): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:

(resetGlobalState): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:

(resetGlobalState): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionHost.mm:

(resetGlobalState): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm:

(-[NavigationResponseTestDelegate webView:didFinishNavigation:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

(-[RedirectSchemeHandler webView:didReceiveServerRedirectForProvisionalNavigation:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDiagnosticLogging.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFindString.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(-[BasicNavigationDelegateWithoutCrashHandler webView:didStartProvisionalNavigation:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessKillIDBCleanup.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebSQLBasics.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[PopUpPoliciesDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/DateTimeInputsAccessoryViewTests.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/PreemptVideoFullscreen.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLPrepareDisplayOnWebThread.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/mac/AccessingPastedImage.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/mac/ClosingWebView.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/mac/DownloadThread.mm:
  • TestWebKitAPI/Tests/WebKitObjC/CustomProtocolsTest.mm:
  • TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:

(-[AsyncPolicyDelegateForInsetTest webView:didFinishNavigation:]):

  • TestWebKitAPI/Tests/mac/ContentFiltering.mm:
5:03 PM Changeset in webkit [285546] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][GPUP] Add syscalls to sandbox
https://bugs.webkit.org/show_bug.cgi?id=232211
<rdar://problem/84584880>

Reviewed by Darin Adler.

Based on telemetry, add syscalls to the GPU process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
4:52 PM Changeset in webkit [285545] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][GPUP] Remove sandbox access to mach services
https://bugs.webkit.org/show_bug.cgi?id=232209
<rdar://problem/84584739>

Reviewed by Darin Adler.

Remove access to mach services in the GPU process' sandbox that are unused according to telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
4:45 PM Changeset in webkit [285544] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebXR] three.js demos don't work
https://bugs.webkit.org/show_bug.cgi?id=232798
rdar://83559881

Reviewed by Myles C. Maxfield.

Any content using three.js for WebXR was failing for
a couple of reasons. Firstly, we were not correctly
restoring the framebuffer, read, draw and texture
bindings in the native code, and three.js was correctly
assuming it didn't need to rebind.

Secondly, we were not resolving the multisample
framebuffer if the context was created with no alpha.
The issue is that our framebuffer from XR always has
an alpha channel, and you can't blit from RGB to RGBA.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::startFrame): Make sure to restore the
bound texture target when exiting the function. Also ensure that we
tell the resolved FBO where its texture data comes from.
(WebCore::WebXROpaqueFramebuffer::endFrame): Restore the framebuffer binding.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Use the correct format.

4:40 PM Changeset in webkit [285543] by Said Abou-Hallawa
  • 51 edits
    2 adds in trunk/Source/WebCore

[GPU Process] Introduce FilterFunction and make it the base class of Filter and FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=232413
rdar://84966765

Reviewed by Myles C. Maxfield.

This allows CSSFilter to hold a list of FilterFunctions. The Filter in
this case will act like a composite pattern of FilterEffects.

This patch also

  1. Removes the virtual function filterName() from all the FilterEffect classes. It replaces it with a static function in FilterFunction.
  2. Removes the virtual function filterEffectType() and the function FilterEffect::filterEffectClassType() since they can both be replaced by FilterFunction::filterType().
  3. Adds trait macros for all FilterEffects and the SVGFilters class.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:

(WebCore::FilterEffectRendererCoreImage::supportsCoreImageRendering):
(WebCore::FilterEffectRendererCoreImage::connectCIFilters):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::FEBlend):

  • platform/graphics/filters/FEBlend.h:

(): Deleted.

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::FEColorMatrix):

  • platform/graphics/filters/FEColorMatrix.h:

(isType): Deleted.

  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::FEComponentTransfer):

  • platform/graphics/filters/FEComponentTransfer.h:

(isType): Deleted.

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::FEComposite):

  • platform/graphics/filters/FEComposite.h:
  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::FEConvolveMatrix):

  • platform/graphics/filters/FEConvolveMatrix.h:
  • platform/graphics/filters/FEDiffuseLighting.cpp:

(WebCore::FEDiffuseLighting::FEDiffuseLighting):

  • platform/graphics/filters/FEDiffuseLighting.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::FEDisplacementMap):

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::FEDropShadow):

  • platform/graphics/filters/FEDropShadow.h:

(): Deleted.

  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::FEFlood):

  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::FEGaussianBlur):

  • platform/graphics/filters/FEGaussianBlur.h:

(): Deleted.

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::FEMerge):

  • platform/graphics/filters/FEMerge.h:

(): Deleted.

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::FEMorphology):

  • platform/graphics/filters/FEMorphology.h:
  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::FEOffset):

  • platform/graphics/filters/FEOffset.h:

(): Deleted.

  • platform/graphics/filters/FESpecularLighting.cpp:

(WebCore::FESpecularLighting::FESpecularLighting):

  • platform/graphics/filters/FESpecularLighting.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::FETile):
(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FETile.h:
  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::FETurbulence):

  • platform/graphics/filters/FETurbulence.h:
  • platform/graphics/filters/Filter.h:

(WebCore::Filter::Filter):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::FilterEffect):
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::createImageBufferResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):

  • platform/graphics/filters/FilterEffect.h:

(isType):
(WebCore::FilterEffect::filterEffectType const): Deleted.
(WebCore::FilterEffect::filterEffectClassType const): Deleted.

  • platform/graphics/filters/FilterFunction.cpp: Added.

(WebCore::FilterFunction::FilterFunction):
(WebCore::FilterFunction::filterName):

  • platform/graphics/filters/FilterFunction.h: Added.

(WebCore::FilterFunction::filterType const):
(WebCore::FilterFunction::isCSSFilter const):
(WebCore::FilterFunction::isSVGFilter const):
(WebCore::FilterFunction::isFilter const):
(WebCore::FilterFunction::isFilterEffect const):
(WebCore::FilterFunction::sourceAlphaName):
(WebCore::FilterFunction::sourceGraphicName):
(WebCore::FilterFunction::filterName const):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::SourceAlpha):
(WebCore::SourceAlpha::effectName): Deleted.

  • platform/graphics/filters/SourceAlpha.h:

(WebCore::SourceAlpha::effectName):
(): Deleted.

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::effectName): Deleted.

  • platform/graphics/filters/SourceGraphic.h:

(WebCore::SourceGraphic::effectName):
(WebCore::SourceGraphic::SourceGraphic):
(): Deleted.
(isType): Deleted.

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::CSSFilter):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::FEImage):

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

(WebCore::SVGFilter::SVGFilter):

  • svg/graphics/filters/SVGFilter.h:

(isType):

  • svg/graphics/filters/SVGFilterBuilder.cpp:
4:38 PM Changeset in webkit [285542] by ysuzuki@apple.com
  • 6 edits
    1 add in branches/safari-612-branch

[JSC] Don't branch around register allocation in DFG enumerator get by val
https://bugs.webkit.org/show_bug.cgi?id=232260
rdar://84544469

Reviewed by Robin Morisset.

JSTests:

  • stress/dont-branch-around-regalloc-enumerator-get-by-val-float.js: Added.

(foo):

Source/JavaScriptCore:

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

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

4:29 PM Changeset in webkit [285541] by ysuzuki@apple.com
  • 6 edits
    1 add in branches/safari-612-branch

EnumeratorGetByVal for IndexedMode+OwnStructureMode doesn't always recover the property name
https://bugs.webkit.org/show_bug.cgi?id=231321
<rdar://problem/84211697>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/enumerator-get-by-val-needs-to-recover-property-name.js: Added.

Source/JavaScriptCore:

When running an EnumeratorGetByVal in IndexedMode+OwnStructureMode, we may
go to the slow path. However, we were incorrectly going to the slow path
before recovering the actual property name. Instead, we were passing in
the integer index value to the get by val.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

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

4:03 PM Changeset in webkit [285540] by Alan Coon
  • 7 edits in branches/safari-613.1.7-branch/Source

Cherry-pick r285164. rdar://problem/85227922

WebDriver: [Cocoa] support acceptInsecureCerts capability
https://bugs.webkit.org/show_bug.cgi?id=231789

Reviewed by BJ Burg.

Add necessary plumbing to support the acceptInsecureCerts WebDriver capability.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm: (Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):

Source/WebKit:

  • UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h:
  • UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm: (-[_WKAutomationSessionConfiguration init]): (-[_WKAutomationSessionConfiguration copyWithZone:]):
  • UIProcess/Cocoa/AutomationClient.mm: (WebKit::AutomationClient::requestAutomationSession):

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

3:53 PM Changeset in webkit [285539] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Unreviewed internal build fix after r285444

  • Platform/spi/Cocoa/AppleMediaServicesSPI.h:
3:06 PM Changeset in webkit [285538] by commit-queue@webkit.org
  • 14 edits in trunk

Unreviewed, reverting r285246.
https://bugs.webkit.org/show_bug.cgi?id=232907

Broke FixedVector

Reverted changeset:

"[JSC] Clean up StructureStubInfo initialization"
https://bugs.webkit.org/show_bug.cgi?id=232652
https://commits.webkit.org/r285246

3:02 PM Changeset in webkit [285537] by J Pascoe
  • 2 edits in trunk/Source/WebKit

[WebAuthn] User handle is not saved on create via ASC
https://bugs.webkit.org/show_bug.cgi?id=232900
rdar://85216105

Reviewed by Brent Fulgham.

This value is required to be stored along the credential on create calls
such that it can be returned via get calls. Currently, it is always read
as empty because user.id is empty after ipc, while the id is decoded to
idVector.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::configureRegistrationRequestContext):

2:58 PM Changeset in webkit [285536] by Darin Adler
  • 25 edits in trunk

[CF] Reduce duplication and unneeded buffer allocations and copying in URL code, also remove unused methods and functions
https://bugs.webkit.org/show_bug.cgi?id=232220

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/API/c/cf/WKURLCF.mm:

(WKURLCreateWithCFURL): Use bytesAsString, saving creation and destruction
of a CString each time this is called.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingURLWrapper encodeWithCoder:]): Use bytesAsVector.

  • Shared/Cocoa/WKNSURLExtras.h: Removed unused methods

+[NSURL _web_URLWithWTFString:relativeToURL:] and
-[NSURL _web_originalDataAsWTFString].

  • Shared/Cocoa/WKNSURLExtras.mm:

(+[NSURL _web_URLWithWTFString:relativeToURL:]): Deleted.
(-[NSURL _web_originalDataAsWTFString]): Deleted.

  • Shared/Cocoa/WKNSURLRequest.mm:

(-[WKNSURLRequest URL]): Removed unneeded call to +[NSURL _web_URLWithWTFString:]
because this code is converting a WTF::URL to an NSURL, which can use the conversion
operator in the WTF::URL class.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::ArgumentCoder<CFURLRef>::encode): Use bytesAsVector.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
Use bytesAsString and bridge_cast.
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]): Ditto.
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]): Ditto.
(setUpPagePolicyClient): Removed unneeded call to +[NSURL _web_URLWithWTFString:]
because this code is converting a WTF::URL to an NSURL, which can use the conversion
operator in the WTF::URL class.

  • UIProcess/Cocoa/LegacyDownloadClient.mm:

(WebKit::LegacyDownloadClient::willSendRequest): Removed unneeded call to
+[NSURL _web_URLWithWTFString:] because this code is converting a WTF::URL to an NSURL,
which can use the conversion operator in the WTF::URL class.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame URL]): Ditto.

Source/WebKitLegacy/mac:

  • Misc/WebNSURLExtras.h: Tweaked comments a bit. No need to say methods are "new", since

that won't be true in the future. Removed unused methods
+[NSURL _web_URLWithUserTypedString:relativeToURL:],
+[NSURL _webkit_URLWithUserTypedString:relativeToURL:],
+[NSURL _web_URLWithData:], +[NSURL _web_URLWithData:relatveToURL:].
Wanted to remove even more nearly unused methods: many were used only
inside the WebKit project, in legacy plug-in code, and some seemed unused,
but it wasn't easy for me to quickly verify that.

  • Misc/WebNSURLExtras.mm: Removed "using namespace WebCore" and

"using namespace WTF".
(+[NSURL _web_URLWithUserTypedString:relativeToURL:]): Deleted.
(+[NSURL _web_URLWithUserTypedString:]): Use WTF prefix explicitly.
(+[NSURL _webkit_URLWithUserTypedString:relativeToURL:]): Deleted.
(+[NSURL _webkit_URLWithUserTypedString:]): Use WTF prefix explicitly.
(+[NSURL _web_URLWithDataAsString:]): Removed special case for nil since the code
will do the right thing with nil without an explicit check.
(+[NSURL _web_URLWithDataAsString:relativeToURL]): Ditto. Also formatted the code
as a one-liner.
(+[NSURL _web_URLWithData:]): Deleted.
(+[NSURL _web_URLWithData:relativeToURL:]): Deleted.
(-[NSURL _web_originalData]): Use WTF prefix explicitly.
(-[NSURL _web_originalDataAsString]): Ditto.
(-[NSURL _web_isEmpty]): Use bridge_cast and make code style checker happy by using
"!" instead of "== 0".
(-[NSURL _web_URLCString]): Use WTF prefix explicitly.
(-[NSURL _webkit_canonicalize]): Use WebCore prefix explicitly.
(-[NSURL _webkit_URLByRemovingFragment]): Use WTF prefix explicitly.
(-[NSURL _web_schemeSeparatorWithoutColon]): Deleted.
(-[NSURL _web_dataForURLComponentType:]): Deleted.
(-[NSURL _web_hostData]): Use WTF prefix explicitly. Rearranged for clarity and
slightly improved efficiency as well.
(-[NSString _web_isUserVisibleURL]): Use WTF prefix explicitly.
(-[NSString _webkit_stringByReplacingValidPercentEscapes]): Use WebCore prefix
explicitly.
(-[NSString _web_decodeHostName]): Use WTF prefix explicitly.
(-[NSString _web_encodeHostName]): Ditto.
(-[NSString _webkit_decodeHostName]): Ditto.
(-[NSString _webkit_encodeHostName]): Ditto.

Source/WTF:

  • wtf/URL.h: Removed unneeded includes. Use default instead of { }

for empty destructor. Added emptyCFURL function.

  • wtf/cf/CFURLExtras.cpp:

(WTF::bytesAsCFData): Added. Replaces originalURLData from NSURLExtras.mm,
but with a simpler implementation and more error checking. Here it's also
alongside the other nearly identical functions.
(WTF::bytesAsString): Added. Replaces getURLBytes for callers that are
going to turn the bytes into a WTF::String. Before this patch, the callers
were converting from CFURLRef to WTF::CString and then to WTF::String, so
this eliminates the malloc/free pair for CString.
(WTF::bytesAsVector): Added. Replaces getURLBytes using a return value
instead of an out argument. Adds the optimization of filling the buffer if
the inline capacity is sufficient, which was in originalURLData, but not
here in getURLBytes before.
(WTF::isSameOrigin): Renamed from isCFURLSameOrigin and rewrote this to
have fewer type casts and more parallel structure so it's easier to read,
while adapting it to use bytesAsVector.

  • wtf/cf/CFURLExtras.h: Replaced URLCharBuffer, getURLBytes, and

isCFURLSameOrigin with URLBytesVectorInlineCapacity, bytesAsCFData,
bytesAsString, bytesAsVector, and isSameOrigin. Got rid of unneeded
includes.

  • wtf/cf/URLCF.cpp:

(WTF::URL::URL): Use bytesAsString to streamline implementation and
remove allocation/deallcation of a CString.
(WTF::URL::emptyCFURL): Added. Used to refactor createCFURL so we can
share it across Foundation and non-Foundation versions.
(WTF::URL::createCFURL const): Added the logic that was in the version
in URLCocoa.mm so we can share this single version, and removed the #if
surrounding this.
(WTF::URL::fileSystemPath const): Use auto.

  • wtf/cocoa/NSURLExtras.h: Changed URLWithUserTypedString to ignore

the baseURL argument. It's not used, but the function is exported and
currently used in Safari source code, which, like all callers passes
a nil for baseURL. so, for now left the argument. Removed the baseURL
argument from URLWithUserTypedStringDeprecated. Removed unused functions
rangeOfURLScheme and looksLikeAbsoluteURL.

  • wtf/cocoa/NSURLExtras.mm: Removed "using namespace URLHelpers".

(WTF::readIDNAllowedScriptListFile): Use URLHelpers explicitly.
(WTF::decodeHostName): Ditto.
(WTF::encodeHostName): Ditto.
(WTF::URLByTruncatingOneCharacterBeforeComponent): Simplified by using
the bytesAsVector function.
(WTF::URLByRemovingResourceSpecifier): Deleted.
(WTF::URLWithData): Call URLByTruncatingOneCharacterBeforeComponent
directly.
(WTF::URLWithUserTypedString): Removed the unneeded support for a
base URL. Use URLHelpers explicitly.
(WTF::URLWithUserTypedStringDeprecated): Ditto.
(WTF::hasQuestionMarkOnlyQueryString): Use bridge_cast.
(WTF::dataForURLComponentType): Rearranged to simplify a bit, remove support
for special value for CFURLComponentType that means the complete URL, since
no callers were using that, and use bytesAsVector.
(WTF::URLByRemovingComponentAndSubsequentCharacter): Use bridge_cast and
bytesAsVector.
(WTF::originalURLData): Use bridge_cast and bytesAsCFData.
(WTF::userVisibleString): Use URLHelpers explicitly.
(WTF::isUserVisibleURL): Rewrote for simplicity and coding style; since
the local characters are a null-terminated C string, we don't need
length checks as long as we validate characters first, since a '\0'
character can be read and will not be valid.
(WTF::rangeOfURLScheme): Deleted.
(WTF::looksLikeAbsoluteURL): Deleted.

  • wtf/cocoa/URLCocoa.mm:

(WTF::URL::URL): Changed to just call the CFURLRef constructor so we
don't need to repeat things twice.
(WTF::URL::emptyCFURL): Added. This is the one part of the createCFURL
function that depends on Objective-C.
(WTF::URL::createCFURL const): Merged into the function in URLCF.cpp.
(WTF::makeNSArrayElement): Use bridge_cast instead of the trickier
idiom with explicit calls to leakRef and bridge_transfer.

  • wtf/mac/FileSystemMac.mm:

(WTF::FileSystem::setMetadataURL): Updated since URLWithUserTypedString
no longer requires a baseURL of nil to be passed. Also removed explicit
WTF namespace since this code itself is in the WTF namespace.

  • wtf/text/cocoa/StringCocoa.mm:

(WTF::String::String): Use bridge_cast.
(WTF::makeNSArrayElement): Use bridge_cast.

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST): Removed extra argument to URLWithUserTypedString/Deprecated.

2:25 PM Changeset in webkit [285535] by J Pascoe
  • 2 edits in trunk

Add j_pascoe to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=232904
<rdar://problem/85222703>

Unreviewed.

  • metadata/contributors.json:
2:19 PM Changeset in webkit [285534] by Chris Dumez
  • 7 edits in trunk

BroadcastChannel is still disabled in service workers
https://bugs.webkit.org/show_bug.cgi?id=232855

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/webmessaging/broadcastchannel/service-worker.https-expected.txt:

Source/WebKit:

No new tests, rebaselined existing test.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):
Make sure BroadcastChannel is functional is Service Workers by setting up proper
BroadcastChannelRegistry on the PageConfiguration we use to construct the service
worker's dummy page.

Source/WTF:

Turn on BroadcastChannel experimental feature in WebCore since this is the value that Service Workers
end up using. We only need to disable it in WebKitLegacy.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:56 PM Changeset in webkit [285533] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Using WASM function size as the cap for choosing a register allocator causes performance regressions.
https://bugs.webkit.org/show_bug.cgi?id=217290
<rdar://problem/69934870>

Reviewed by Yusuke Suzuki.

This patch just increases --maximumTmpsForGraphColoring from 25k to 60k.

It was originally lowered to prevent jetsams in some wasm webpages such as mruby-wasm.aotoki.dev.
These jetsams were caused by excessive memory consumption by the interference graphs used by AirAllocateRegistersByGraphColoring and AirAllocateStackByGraphColoring.
I massively optimized these interference graphs in the following two patches (effect on mruby-wasm.aotoki.dev):

So it should now be safe to increase --maximumTmpsForGraphColoring.

It is valuable to increase it, because some webpages such as https://dos.zone/en/play/https%3A%2F%2Fdoszone-uploads.s3.dualstack.eu-central-1.amazonaws.com%2Foriginal%2F2X%2Fb%2Fb4b5275904d86a4ab8a20917b2b7e34f0df47bf7.jsdos see massive performance wins/losses depending on whether we register allocate all of their wasm functions or not.
For example that page has two functions with ~54k temporaries, and its integrated benchmark has a score increase from about 27 to about 70 on an M1 MBP 2020 when they are register allocated.
External reports suggest that this the performance difference is even larger on older machines (5.5 to 48).

  • runtime/OptionsList.h:
1:53 PM Changeset in webkit [285532] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source

[RISCV64] Add assembly, disassembly infrastructure
https://bugs.webkit.org/show_bug.cgi?id=232870

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-11-09
Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Provide the necessary facilities for assembling and disassembling
RISC-V instructions. This is just a preliminary patch that introduces
the necessary assembly and disassembly infrastructure while actual
enhancements to RISCV64Assembler and MacroAssemblerRISCV64 classes are
left for later.

In RISCV64Assembler.h header, necessary helper functions, enumerations
and structs are introduced that enable crafting instruction values in
accordance with the base RISC-V specification. All the necessary
immediate and instruction types are supported, and the relevant
instruction definitions are introduced and become usable in future work.

For debugging purposes, a custom RISC-V disassembler is also introduced
and is enabled when appropriate. The implementation utilizes
functionality introduced in RISCV64Assembler.h, and different formatters
are introduced to handle special cases even among the established
instruction types.

  • Sources.txt:
  • assembler/RISCV64Assembler.h:

(JSC::RISCV64Instructions::registerValue):
(JSC::RISCV64Instructions::InstructionValue::InstructionValue):
(JSC::RISCV64Instructions::InstructionValue::field):
(JSC::RISCV64Instructions::InstructionValue::opcode):
(JSC::RISCV64Instructions::ImmediateBase::isValid):
(JSC::RISCV64Instructions::ImmediateBase::v):
(JSC::RISCV64Instructions::ImmediateBase::ImmediateBase):
(JSC::RISCV64Instructions::ImmediateBase::field):
(JSC::RISCV64Instructions::IImmediate::IImmediate):
(JSC::RISCV64Instructions::IImmediate::value):
(JSC::RISCV64Instructions::SImmediate::SImmediate):
(JSC::RISCV64Instructions::SImmediate::value):
(JSC::RISCV64Instructions::BImmediate::BImmediate):
(JSC::RISCV64Instructions::BImmediate::value):
(JSC::RISCV64Instructions::UImmediate::UImmediate):
(JSC::RISCV64Instructions::UImmediate::value):
(JSC::RISCV64Instructions::JImmediate::JImmediate):
(JSC::RISCV64Instructions::JImmediate::value):
(JSC::RISCV64Instructions::RegistersBase::Size):
(JSC::RISCV64Instructions::RTypeBase::construct):
(JSC::RISCV64Instructions::RTypeBase::matches):
(JSC::RISCV64Instructions::RTypeBase::rd):
(JSC::RISCV64Instructions::RTypeBase::rs1):
(JSC::RISCV64Instructions::RTypeBase::rs2):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::construct):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::matches):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rd):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rs1):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rs2):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rm):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::construct):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::matches):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::rd):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::rs1):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::rs2):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::aqrl):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::construct):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::matches):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rd):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rs1):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rs2):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rs3):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rm):
(JSC::RISCV64Instructions::ITypeBase::construct):
(JSC::RISCV64Instructions::ITypeBase::matches):
(JSC::RISCV64Instructions::ITypeBase::rd):
(JSC::RISCV64Instructions::ITypeBase::rs1):
(JSC::RISCV64Instructions::STypeBase::construct):
(JSC::RISCV64Instructions::STypeBase::matches):
(JSC::RISCV64Instructions::STypeBase::rs1):
(JSC::RISCV64Instructions::STypeBase::rs2):
(JSC::RISCV64Instructions::BTypeBase::construct):
(JSC::RISCV64Instructions::BTypeBase::matches):
(JSC::RISCV64Instructions::BTypeBase::rs1):
(JSC::RISCV64Instructions::BTypeBase::rs2):
(JSC::RISCV64Instructions::UTypeBase::construct):
(JSC::RISCV64Instructions::UTypeBase::matches):
(JSC::RISCV64Instructions::UTypeBase::rd):
(JSC::RISCV64Instructions::JTypeBase::construct):
(JSC::RISCV64Instructions::JTypeBase::matches):
(JSC::RISCV64Instructions::JTypeBase::rd):
(JSC::RISCV64Instructions::SLLI::construct):
(JSC::RISCV64Instructions::SRLI::construct):
(JSC::RISCV64Instructions::SRAI::construct):
(JSC::RISCV64Instructions::SLLIW::construct):
(JSC::RISCV64Instructions::SRLIW::construct):
(JSC::RISCV64Instructions::SRAIW::construct):
(JSC::RISCV64Instructions::FCVTImpl::construct):
(JSC::RISCV64Instructions::FMVImpl::construct):

  • disassembler/RISCV64Disassembler.cpp: Added.

(JSC::RISCV64Disassembler::StringBufferBase::data):
(JSC::RISCV64Disassembler::StringBufferBase::size):
(JSC::RISCV64Disassembler::StringBufferBase::createString):
(JSC::RISCV64Disassembler::registerName<RISCV64Instructions::RegistersBase::GType>):
(JSC::RISCV64Disassembler::registerName<RISCV64Instructions::RegistersBase::FType>):
(JSC::RISCV64Disassembler::roundingMode):
(JSC::RISCV64Disassembler::memoryOperationFlags):
(JSC::RISCV64Disassembler::aqrlFlags):
(JSC::RISCV64Disassembler::InstructionList::contains):
(JSC::RISCV64Disassembler::RTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeR2Formatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithRoundingModeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithRoundingModeFSQRTFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithRoundingModeFCVTFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithAqRlDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithAqRlLRFormatting::disassemble):
(JSC::RISCV64Disassembler::R4TypeWithRoundingModeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::ITypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::ITypeImmediateAsOffsetFormatting::disassemble):
(JSC::RISCV64Disassembler::STypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::BTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::UTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::JTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::FenceInstructionFormatting::disassemble):
(JSC::RISCV64Disassembler::FenceIInstructionFormatting::disassemble):
(JSC::RISCV64Disassembler::EnvironmentInstructionFormatting::disassemble):
(JSC::RISCV64Disassembler::DisassemblyFormatting::disassemble):
(JSC::RISCV64Disassembler::Disassembler::disassemble):
(JSC::RISCV64Disassembler::Disassembler<InsnType>::disassemble):
(JSC::RISCV64Disassembler::disassembleOpcode):
(JSC::tryToDisassemble):

Source/WTF:

  • wtf/PlatformEnable.h: Enable RISCV64_DISASSEMBLER when necessary.
1:36 PM Changeset in webkit [285531] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Fix macCatalyst build after r285509
https://bugs.webkit.org/show_bug.cgi?id=232863

Unreviewed.

  • Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
1:33 PM Changeset in webkit [285530] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Refactoring and PutByVal cleanup
https://bugs.webkit.org/show_bug.cgi?id=232265

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-11-09
Reviewed by Saam Barati.

Follow-up from https://bugs.webkit.org/show_bug.cgi?id=232242,
this patch includes several small code changes but the patch doesn't
add/remove any feature:

  1. Removed several calls to operationPutByVal*Cell* that were

only used by the 32 bit code paths due to the lack of registers.
These calls were replaced by the calls used by the 64 bit paths,
that expect EncodedJSValues

  1. Because of #1, this patch removes those methods, since no one

uses them anymore.

  1. Created compilePutByVal to handle all cases (similar to compileGetByVal).
  2. Removed the Edge& childX from the PutByVal handling (and all methods

that expected them) in favor of getting them from node when needed.

  1. Unified compileContiguousPutByVal so it could be used by both 32

and 64 bit archs.

  1. Removed a lot of whitespace.
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrivateName): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameById): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValWithThis): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutPrivateName): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutPrivateNameById): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckTypeInfoFlags): Deleted.
(JSC::DFG::SpeculativeJIT::compileParseInt): Deleted.
(JSC::DFG::SpeculativeJIT::compileOverridesHasInstance): Deleted.
(JSC::DFG::SpeculativeJIT::compileInstanceOfForCells): Deleted.
(JSC::DFG::SpeculativeJIT::compileInstanceOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueBitNot): Deleted.
(JSC::DFG::SpeculativeJIT::compileBitwiseNot): Deleted.
(JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueBitwiseOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileBitwiseOp): Deleted.
(JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueLShiftOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueBitRShift): Deleted.
(JSC::DFG::SpeculativeJIT::compileShiftOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueSub): Deleted.
(JSC::DFG::SpeculativeJIT::compileMathIC): Deleted.
(JSC::DFG::SpeculativeJIT::compileInstanceOfCustom): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsCellWithType): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsTypedArrayView): Deleted.
(JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithAbs): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithClz32): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithDoubleUnaryOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithSub): Deleted.
(JSC::DFG::SpeculativeJIT::compileIncOrDec): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueNegate): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithNegate): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueMul): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithMul): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueDiv): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithDiv): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithFRound): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueMod): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithMod): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithRounding): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithUnary): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithSqrt): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithMinMax): Deleted.
(JSC::DFG::compileArithPowIntegerFastPath): Deleted.
(JSC::DFG::SpeculativeJIT::compileValuePow): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithPow): Deleted.
(JSC::DFG::SpeculativeJIT::compare): Deleted.
(JSC::DFG::SpeculativeJIT::compileCompareUnsigned): Deleted.
(JSC::DFG::SpeculativeJIT::compileStrictEq): Deleted.
(JSC::DFG::SpeculativeJIT::compileBooleanCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileInt32Compare): Deleted.
(JSC::DFG::SpeculativeJIT::compileDoubleCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileSymbolEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compilePeepHoleSymbolEquality): Deleted.
(JSC::DFG::SpeculativeJIT::emitBitwiseJSValueEquality): Deleted.
(JSC::DFG::SpeculativeJIT::emitBranchOnBitwiseJSValueEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compilePeepHoleNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringIdentEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringIdentCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileSameValue): Deleted.
(JSC::DFG::SpeculativeJIT::compileToBooleanString): Deleted.
(JSC::DFG::SpeculativeJIT::compileToBooleanStringOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::emitStringBranch): Deleted.
(JSC::DFG::SpeculativeJIT::emitStringOrOtherBranch): Deleted.
(JSC::DFG::SpeculativeJIT::compileConstantStoragePointer): Deleted.
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetScope): Deleted.
(JSC::DFG::SpeculativeJIT::compileSkipScope): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGlobalObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGlobalThis): Deleted.
(JSC::DFG::SpeculativeJIT::canBeRope): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetArrayLength): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIdent): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewFunction): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetFunctionName): Deleted.
(JSC::DFG::SpeculativeJIT::compileVarargsLength): Deleted.
(JSC::DFG::SpeculativeJIT::compileLoadVarargs): Deleted.
(JSC::DFG::SpeculativeJIT::compileForwardVarargs): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateActivation): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetFromArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutToArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetArgument): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateScopedArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateClonedArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateArgumentsButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateRest): Deleted.
(JSC::DFG::SpeculativeJIT::compileSpread): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetRestLength): Deleted.
(JSC::DFG::SpeculativeJIT::emitPopulateSliceIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileArraySlice): Deleted.
(JSC::DFG::SpeculativeJIT::compileArrayIndexOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileArrayPush): Deleted.
(JSC::DFG::SpeculativeJIT::compileNotifyWrite): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileTypeOfIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsCallable): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileTypeOf): Deleted.
(JSC::DFG::SpeculativeJIT::emitStructureCheck): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIsConstant): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckNotEmpty): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckStructure): Deleted.
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileNukeStructureAndSetButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetButterfly): Deleted.
(JSC::DFG::allocateTemporaryRegistersForSnippet): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallDOM): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckJSCast): Deleted.
(JSC::DFG::SpeculativeJIT::temporaryRegisterForPutByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOrStringValueOf): Deleted.
(JSC::DFG::getExecutable): Deleted.
(JSC::DFG::SpeculativeJIT::compileFunctionToString): Deleted.
(JSC::DFG::SpeculativeJIT::compileNumberToStringWithValidRadixConstant): Deleted.
(JSC::DFG::SpeculativeJIT::compileNumberToStringWithRadix): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewStringObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize): Deleted.
(JSC::DFG::SpeculativeJIT::emitNewTypedArrayWithSizeInRegister): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewRegexp): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCellTypeWithoutTypeFiltering): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCellType): Deleted.
(JSC::DFG::SpeculativeJIT::speculateInt32): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNumber): Deleted.
(JSC::DFG::SpeculativeJIT::speculateRealNumber): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal): Deleted.
(JSC::DFG::SpeculativeJIT::speculateBoolean): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCell): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCellOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateFunction): Deleted.
(JSC::DFG::SpeculativeJIT::speculateFinalObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateRegExpObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateArray): Deleted.
(JSC::DFG::SpeculativeJIT::speculateProxyObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDerivedArray): Deleted.
(JSC::DFG::SpeculativeJIT::speculatePromiseObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDateObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMapObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateSetObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateWeakMapObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateWeakSetObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDataViewObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateString): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringIdentAndLoadStorage): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringIdent): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringOrStringObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotStringVar): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::speculateSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::speculateHeapBigInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotCellNorBigInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotDouble): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString): Deleted.
(JSC::DFG::SpeculativeJIT::speculateOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMisc): Deleted.
(JSC::DFG::SpeculativeJIT::speculate): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchImm): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchChar): Deleted.
(JSC::DFG::SpeculativeJIT::emitBinarySwitchStringRecurse): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchString): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitch): Deleted.
(JSC::DFG::SpeculativeJIT::addBranch): Deleted.
(JSC::DFG::SpeculativeJIT::linkBranches): Deleted.
(JSC::DFG::SpeculativeJIT::compileStoreBarrier): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutAccessorById): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutGetterSetterById): Deleted.
(JSC::DFG::SpeculativeJIT::compileResolveScope): Deleted.
(JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGlobalVariable): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutGlobalVariable): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetClosureVar): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutClosureVar): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetInternalField): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutInternalField): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetRegExpObjectLastIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetRegExpObjectLastIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpExec): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpTest): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringReplace): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpExecNonGlobalOrSticky): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpMatchFastGlobal): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpMatchFast): Deleted.
(JSC::DFG::SpeculativeJIT::compileLazyJSConstant): Deleted.
(JSC::DFG::SpeculativeJIT::compileMaterializeNewObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileRecordRegExpCachedResult): Deleted.
(JSC::DFG::SpeculativeJIT::compileDefineDataProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compileDefineAccessorProperty): Deleted.
(JSC::DFG::SpeculativeJIT::emitAllocateButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetMapBucketHead): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetMapBucketNext): Deleted.
(JSC::DFG::SpeculativeJIT::compileLoadKeyFromMapBucket): Deleted.
(JSC::DFG::SpeculativeJIT::compileLoadValueFromMapBucket): Deleted.
(JSC::DFG::SpeculativeJIT::compileExtractValueFromWeakMapGet): Deleted.
(JSC::DFG::SpeculativeJIT::compileThrow): Deleted.
(JSC::DFG::SpeculativeJIT::compileThrowStaticError): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdateIndexAndMode): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextExtractIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextExtractMode): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdatePropertyName): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorInByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorHasOwnProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutById): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByOffset): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByOffset): Deleted.
(JSC::DFG::SpeculativeJIT::compileMatchStructure): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetExecutable): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGetter): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetSetter): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetCallee): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetCallee): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetArgumentCountIncludingThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetArgumentCountIncludingThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileStrCat): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArrayBuffer): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSize): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewTypedArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileToThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectKeysOrObjectGetOwnPropertyNames): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectAssign): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectCreate): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreatePromise): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateInternalFieldObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateAsyncGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObjectImpl): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewAsyncGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileToPrimitive): Deleted.
(JSC::DFG::SpeculativeJIT::compileToPropertyKey): Deleted.
(JSC::DFG::SpeculativeJIT::compileToNumeric): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallNumberConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenPrologue): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenTail): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileMapSet): Deleted.
(JSC::DFG::SpeculativeJIT::compileWeakMapGet): Deleted.
(JSC::DFG::SpeculativeJIT::compileWeakSetAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileWeakMapSet): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrototypeOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileIdentity): Deleted.
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq): Deleted.
(JSC::DFG::SpeculativeJIT::emitInitializeButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): Deleted.
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compileExtractCatchLocal): Deleted.
(JSC::DFG::SpeculativeJIT::compileClearCatchLocals): Deleted.
(JSC::DFG::SpeculativeJIT::compileProfileType): Deleted.
(JSC::DFG::SpeculativeJIT::cachedPutById): Deleted.
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeCompare): Deleted.
(JSC::DFG::SpeculativeJIT::genericJSValuePeepholeBranch): Deleted.
(JSC::DFG::SpeculativeJIT::compileHeapBigIntEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): Deleted.

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

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchIfNotEmpty):

1:25 PM Changeset in webkit [285529] by graouts@webkit.org
  • 14 edits
    2 adds in trunk

REGRESSION(r272201): Safari showed red distortion on webview after using Web Inspector, returning from another app
https://bugs.webkit.org/show_bug.cgi?id=231358
<rdar://problem/81505208>

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/page/setShowPaintRects.html

When we added support for animating individual transform properties, we moved to a model where all animations
for a given CSS property were wrapped in a dedicated CAAnimationGroup when running accelerated. Those groups
have an infinite duration and thus would never call the -animationDidStop:finished: CAAnimationDelegate method.

An option would have been to set the delegate on all animations contained in a CAAnimationGroup in
PlatformCALayerCocoa::addAnimationForKey(), but as it turns out, the CAAnimationDelegate methods for children
of an animation group aren't fired.

Since the only current use for the -animationDidStop:finished: delegate method is to eventually message back
into WebInspectorClient::animationEndedForLayer() for opacity animations, which don't need to run contained in
groups, our approach to address the issue is to only group animations for transform-related properties and
leave other animations as simple leaf animations.

To do this, inside of GraphicsLayerCA::updateAnimations(), we replace the addAnimation() lambda with a new
addLeafAnimation() lambda which we use for opacity, background-color and filter animations.

In order to be able to test the successful removal of repaint rects as a result of the CAAnimationDelegate
method firing, Patrick Angle contributed the required changes under inspector/ to expose the number of paint
rects to layout tests.

  • inspector/InspectorClient.h:

(WebCore::InspectorClient::paintRectCount const):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::paintRectCount const):

  • inspector/InspectorController.h:
  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::paintRectCount const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

  • testing/Internals.cpp:

(WebCore::Internals::inspectorHighlightRects):
(WebCore::Internals::inspectorPaintRectCount):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • WebProcess/Inspector/WebInspectorClient.h:

LayoutTests:

Add a new test, written by Patrick Angle, that tracks whether paint rects have appeared
and then disappeared as content repaints in an inspected page.

  • inspector/page/setShowPaintRects-expected.txt: Added.
  • inspector/page/setShowPaintRects.html: Added.
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:17 PM Changeset in webkit [285528] by Megan Gardner
  • 8 edits
    2 adds in trunk/Source

Scroll To Text Fragment directive parsing
https://bugs.webkit.org/show_bug.cgi?id=231410

Reviewed by Chris Dumez.

Text directive parsing for
https://wicg.github.io/scroll-to-text-fragment/
Source/WebCore:

Make a new class to handle the parsing of the text directive.
The parsing is defined in the linked spec.
The directive should be stored on Document and in a future
patch the matching algorithm will find the text and scroll
and highlight it.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.h:

(WebCore::Document::setFragmentDirective):
(WebCore::Document::fragmentDirective const):

  • dom/FragmentDirectiveParser.cpp: Added.

(WebCore::FragmentDirectiveParser::FragmentDirectiveParser):
(WebCore::FragmentDirectiveParser::parseFragmentDirective):

  • dom/FragmentDirectiveParser.h: Added.

(WebCore::FragmentDirectiveParser::parsedTextDirectives const):
(WebCore::FragmentDirectiveParser::fragmentDirective const):
(WebCore::FragmentDirectiveParser::remainingURLFragment const):
(WebCore::FragmentDirectiveParser::isValid const):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragment):

  • platform/Logging.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:08 PM Changeset in webkit [285527] by mmaxfield@apple.com
  • 7 edits
    31 copies
    3 moves
    14 adds in trunk

[WebGPU] Stub out methods in WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=232872

Reviewed by Dean Jackson.

Source/WebGPU:

This creates empty implementations for all the methods in WebGPU.framework.
This means that there are now implementations for every API call, so PAL
can successfully call into WebGPU.framework and link with it.

  • Configurations/Version.xcconfig: Added.
  • Configurations/WebGPU.xcconfig:
  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU/Adapter.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/Adapter.mm: Added.

(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::hasFeature):
(WebGPU::Adapter::requestDevice):
(wgpuAdapterRelease):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterHasFeature):
(wgpuAdapterRequestDevice):

  • WebGPU/BindGroup.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/BindGroup.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(wgpuBindGroupRelease):

  • WebGPU/BindGroupLayout.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/BindGroupLayout.mm: Renamed from Source/WebGPU/WebGPU/WebGPU.cpp.

(wgpuBindGroupLayoutRelease):

  • WebGPU/Buffer.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/Buffer.mm: Added.

(WebGPU::Buffer::destroy):
(WebGPU::Buffer::getConstMappedRange):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::unmap):
(wgpuBufferRelease):
(wgpuBufferDestroy):
(wgpuBufferGetConstMappedRange):
(wgpuBufferGetMappedRange):
(wgpuBufferMapAsync):
(wgpuBufferUnmap):

  • WebGPU/CommandBuffer.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/CommandBuffer.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(wgpuCommandBufferRelease):

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

(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::CommandEncoder::pushDebugGroup):
(WebGPU::CommandEncoder::resolveQuerySet):
(WebGPU::CommandEncoder::writeTimestamp):
(wgpuCommandEncoderRelease):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToBuffer):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderFinish):
(wgpuCommandEncoderInsertDebugMarker):
(wgpuCommandEncoderPopDebugGroup):
(wgpuCommandEncoderPushDebugGroup):
(wgpuCommandEncoderResolveQuerySet):
(wgpuCommandEncoderWriteTimestamp):

  • WebGPU/ComputePassEncoder.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/ComputePassEncoder.mm: Added.

(WebGPU::ComputePassEncoder::beginPipelineStatisticsQuery):
(WebGPU::ComputePassEncoder::dispatch):
(WebGPU::ComputePassEncoder::dispatchIndirect):
(WebGPU::ComputePassEncoder::endPass):
(WebGPU::ComputePassEncoder::endPipelineStatisticsQuery):
(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::popDebugGroup):
(WebGPU::ComputePassEncoder::pushDebugGroup):
(WebGPU::ComputePassEncoder::setBindGroup):
(WebGPU::ComputePassEncoder::setPipeline):
(WebGPU::ComputePassEncoder::writeTimestamp):
(wgpuComputePassEncoderRelease):
(wgpuComputePassEncoderBeginPipelineStatisticsQuery):
(wgpuComputePassEncoderDispatch):
(wgpuComputePassEncoderDispatchIndirect):
(wgpuComputePassEncoderEndPass):
(wgpuComputePassEncoderEndPipelineStatisticsQuery):
(wgpuComputePassEncoderInsertDebugMarker):
(wgpuComputePassEncoderPopDebugGroup):
(wgpuComputePassEncoderPushDebugGroup):
(wgpuComputePassEncoderSetBindGroup):
(wgpuComputePassEncoderSetPipeline):
(wgpuComputePassEncoderWriteTimestamp):

  • WebGPU/ComputePipeline.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/ComputePipeline.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::ComputePipeline::getBindGroupLayout):
(WebGPU::ComputePipeline::setLabel):
(wgpuComputePipelineRelease):
(wgpuComputePipelineGetBindGroupLayout):
(wgpuComputePipelineSetLabel):

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

(WebGPU::Device::createBindGroup):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::Device::createBuffer):
(WebGPU::Device::createCommandEncoder):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::Device::createPipelineLayout):
(WebGPU::Device::createQuerySet):
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::Device::createSampler):
(WebGPU::Device::createShaderModule):
(WebGPU::Device::createSwapChain):
(WebGPU::Device::createTexture):
(WebGPU::Device::destroy):
(WebGPU::Device::getLimits):
(WebGPU::Device::getQueue):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(wgpuDeviceRelease):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceDestroy):
(wgpuDeviceGetLimits):
(wgpuDeviceGetQueue):
(wgpuDevicePopErrorScope):
(wgpuDevicePushErrorScope):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetUncapturedErrorCallback):

  • WebGPU/ExportMacros.h:
  • WebGPU/Instance.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/Instance.mm: Added.

(WebGPU::Instance::createSurface):
(WebGPU::Instance::processEvents):
(WebGPU::Instance::requestAdapter):
(wgpuInstanceRelease):
(wgpuCreateInstance):
(wgpuGetProcAddress):
(wgpuInstanceCreateSurface):
(wgpuInstanceProcessEvents):
(wgpuInstanceRequestAdapter):

  • WebGPU/PipelineLayout.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/PipelineLayout.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(wgpuPipelineLayoutRelease):

  • WebGPU/QuerySet.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/QuerySet.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::QuerySet::destroy):
(wgpuQuerySetRelease):
(wgpuQuerySetDestroy):

  • WebGPU/Queue.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/Queue.mm: Added.

(WebGPU::Queue::onSubmittedWorkDone):
(WebGPU::Queue::submit):
(WebGPU::Queue::writeBuffer):
(WebGPU::Queue::writeTexture):
(wgpuQueueRelease):
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueSubmit):
(wgpuQueueWriteBuffer):
(wgpuQueueWriteTexture):

  • WebGPU/RenderBundle.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/RenderBundle.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(wgpuRenderBundleRelease):

  • WebGPU/RenderBundleEncoder.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/RenderBundleEncoder.mm: Added.

(WebGPU::RenderBundleEncoder::draw):
(WebGPU::RenderBundleEncoder::drawIndexed):
(WebGPU::RenderBundleEncoder::drawIndexedIndirect):
(WebGPU::RenderBundleEncoder::drawIndirect):
(WebGPU::RenderBundleEncoder::finish):
(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::popDebugGroup):
(WebGPU::RenderBundleEncoder::pushDebugGroup):
(WebGPU::RenderBundleEncoder::setBindGroup):
(WebGPU::RenderBundleEncoder::setIndexBuffer):
(WebGPU::RenderBundleEncoder::setPipeline):
(WebGPU::RenderBundleEncoder::setVertexBuffer):
(wgpuRenderBundleEncoderRelease):
(wgpuRenderBundleEncoderDraw):
(wgpuRenderBundleEncoderDrawIndexed):
(wgpuRenderBundleEncoderDrawIndexedIndirect):
(wgpuRenderBundleEncoderDrawIndirect):
(wgpuRenderBundleEncoderFinish):
(wgpuRenderBundleEncoderInsertDebugMarker):
(wgpuRenderBundleEncoderPopDebugGroup):
(wgpuRenderBundleEncoderPushDebugGroup):
(wgpuRenderBundleEncoderSetBindGroup):
(wgpuRenderBundleEncoderSetIndexBuffer):
(wgpuRenderBundleEncoderSetPipeline):
(wgpuRenderBundleEncoderSetVertexBuffer):

  • WebGPU/RenderPassEncoder.h: Added.
  • WebGPU/RenderPassEncoder.mm: Added.

(WebGPU::RenderPassEncoder::beginOcclusionQuery):
(WebGPU::RenderPassEncoder::beginPipelineStatisticsQuery):
(WebGPU::RenderPassEncoder::draw):
(WebGPU::RenderPassEncoder::drawIndexed):
(WebGPU::RenderPassEncoder::drawIndexedIndirect):
(WebGPU::RenderPassEncoder::drawIndirect):
(WebGPU::RenderPassEncoder::endOcclusionQuery):
(WebGPU::RenderPassEncoder::endPass):
(WebGPU::RenderPassEncoder::endPipelineStatisticsQuery):
(WebGPU::RenderPassEncoder::executeBundles):
(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::popDebugGroup):
(WebGPU::RenderPassEncoder::pushDebugGroup):
(WebGPU::RenderPassEncoder::setBindGroup):
(WebGPU::RenderPassEncoder::setBlendConstant):
(WebGPU::RenderPassEncoder::setIndexBuffer):
(WebGPU::RenderPassEncoder::setPipeline):
(WebGPU::RenderPassEncoder::setScissorRect):
(WebGPU::RenderPassEncoder::setStencilReference):
(WebGPU::RenderPassEncoder::setVertexBuffer):
(WebGPU::RenderPassEncoder::setViewport):
(WebGPU::RenderPassEncoder::writeTimestamp):
(wgpuRenderPassEncoderRelease):
(wgpuRenderPassEncoderBeginOcclusionQuery):
(wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
(wgpuRenderPassEncoderDraw):
(wgpuRenderPassEncoderDrawIndexed):
(wgpuRenderPassEncoderDrawIndexedIndirect):
(wgpuRenderPassEncoderDrawIndirect):
(wgpuRenderPassEncoderEndOcclusionQuery):
(wgpuRenderPassEncoderEndPass):
(wgpuRenderPassEncoderEndPipelineStatisticsQuery):
(wgpuRenderPassEncoderExecuteBundles):
(wgpuRenderPassEncoderInsertDebugMarker):
(wgpuRenderPassEncoderPopDebugGroup):
(wgpuRenderPassEncoderPushDebugGroup):
(wgpuRenderPassEncoderSetBindGroup):
(wgpuRenderPassEncoderSetBlendConstant):
(wgpuRenderPassEncoderSetIndexBuffer):
(wgpuRenderPassEncoderSetPipeline):
(wgpuRenderPassEncoderSetScissorRect):
(wgpuRenderPassEncoderSetStencilReference):
(wgpuRenderPassEncoderSetVertexBuffer):
(wgpuRenderPassEncoderSetViewport):
(wgpuRenderPassEncoderWriteTimestamp):

  • WebGPU/RenderPipeline.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/RenderPipeline.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::RenderPipeline::getBindGroupLayout):
(WebGPU::RenderPipeline::setLabel):
(wgpuRenderPipelineRelease):
(wgpuRenderPipelineGetBindGroupLayout):
(wgpuRenderPipelineSetLabel):

  • WebGPU/Sampler.h: Renamed from Source/WebGPU/WebGPU/WebGPUObjC.h.
  • WebGPU/Sampler.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(wgpuSamplerRelease):

  • WebGPU/ShaderModule.h:
  • WebGPU/ShaderModule.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::ShaderModule::setLabel):
(wgpuShaderModuleRelease):
(wgpuShaderModuleSetLabel):

  • WebGPU/Surface.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/Surface.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::Surface::getPreferredFormat):
(wgpuSurfaceRelease):
(wgpuSurfaceGetPreferredFormat):

  • WebGPU/SwapChain.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/SwapChain.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::SwapChain::getCurrentTextureView):
(WebGPU::SwapChain::present):
(wgpuSwapChainRelease):
(wgpuSwapChainGetCurrentTextureView):
(wgpuSwapChainPresent):

  • WebGPU/Texture.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/Texture.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(WebGPU::Texture::createView):
(WebGPU::Texture::destroy):
(wgpuTextureRelease):
(wgpuTextureCreateView):
(wgpuTextureDestroy):

  • WebGPU/TextureView.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
  • WebGPU/TextureView.mm: Renamed from Source/WebGPU/WebGPU/WebGPUObjC.mm.

(wgpuTextureViewRelease):

  • WebGPU/WebGPU.modulemap: Added.
  • WebGPU/WebGPUExt.h: Added.

Tools:

  • Scripts/webkitpy/style/checker.py:
1:06 PM Changeset in webkit [285526] by timothy_horton@apple.com
  • 16 edits in trunk/Source

Add runtime flag for momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=232898
<rdar://problem/85211338>

Reviewed by Simon Fraser.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add the preference.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::applicableProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setMomentumScrollingAnimatorEnabled):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::momentumScrollingAnimatorEnabled const):
(WebCore::ScrollingTree::setMomentumScrollingAnimatorEnabled):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::momentumScrollingAnimatorEnabled const):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::momentumScrollingAnimatorEnabled const):

  • platform/ScrollingEffectsController.h:

(WebCore::ScrollingEffectsControllerClient::momentumScrollingAnimatorEnabled const):

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

12:49 PM Changeset in webkit [285525] by sbarati@apple.com
  • 13 edits
    1 add in trunk

When inlining NewSymbol in the DFG don't universally call ToString on the input
https://bugs.webkit.org/show_bug.cgi?id=232754

Reviewed by Robin Morisset.

JSTests:

  • stress/inline-new-symbol-dfg-undefined-first-arg.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

When inlining Symbol(x) in the DFG, we were always calling ToString on x.
However, this is wrong spec wise. If x is undefined, the symbol should
produce a description value of undefined, but calling ToString on x was causing
us to produce a description with the string "undefined".

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

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

(JSC::DFG::SpeculativeJIT::compileNewSymbol):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):

12:44 PM Changeset in webkit [285524] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Fix !ENABLE(ACCESSIBILITY) after r285427
https://bugs.webkit.org/show_bug.cgi?id=232893
<rdar://problem/85210424>

Reviewed by Andres Gonzalez.

In r285399 a number of AXObjectCache methods were affected by a removal of an
ENABLE(ACCESSIBILITY) guard. The definitions were pushed down to the large
!ENABLE(ACCESSIBILITY) block at the bottom of the file but inline static isn't valid
code so the compile issue was fixed in r285427. However the commits had also introduced a
linker error around AXObjectCache::accessibilityEnabled and
AXObjectCache::accessibilityEnhancedUserInterfaceEnabled.

To fix the static member variables referenced in those methods are static constexpr when
!ENABLE(ACCESSIBILITY).

  • accessibility/AXObjectCache.h:
12:44 PM Changeset in webkit [285523] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Horizontal constraint change should not purge the inline item cache.
https://bugs.webkit.org/show_bug.cgi?id=232892

Reviewed by Antti Koivisto.

Available horizontal space change does not affect the inline content itself (it only affects the geometry of said content).

  • layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:

(WebCore::Layout::InlineInvalidation::horizontalConstraintChanged):

12:25 PM Changeset in webkit [285522] by stephan.szabo@sony.com
  • 2 edits in trunk/Tools

[Windows] Non-find based status file finding in run-jsc-stress-tests needs to release status files
https://bugs.webkit.org/show_bug.cgi?id=232851

Reviewed by Don Olmstead.

Change the reading of status files in the non-find search
to properly scope the file access to release the status
files.

  • Scripts/run-jsc-stress-tests:
12:04 PM Changeset in webkit [285521] by Devin Rousso
  • 22 edits in trunk

REGRESSION(r271735): PaymentShippingOption.selected ignored
https://bugs.webkit.org/show_bug.cgi?id=221960
<rdar://problem/73464404>

Reviewed by Tim Horton.

Source/WebCore:

Leverage new PKShippingMethods SPI to provide both the general list of PKShippingMethod
and the default selected PKShippingMethods when creating/updating a payment request.

  • Modules/applepay/ApplePayShippingMethod.idl:
  • Modules/applepay/ApplePayShippingMethod.h:

(WebCore::ApplePayShippingMethod::encode const):
(WebCore::ApplePayShippingMethod::decode):
Add new selected boolean property.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::computeShippingMethods const):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::checkAndCanonicalizeDetails):

Source/WebCore/PAL:

Leverage new PKShippingMethods SPI to provide both the general list of PKShippingMethod
and the default selected PKShippingMethods when creating/updating a payment request.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

Leverage new PKShippingMethods SPI to provide both the general list of PKShippingMethod
and the default selected PKShippingMethods when creating/updating a payment request.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKShippingMethods): Added.
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
Add new helper to generate the PKShippingMethods from WebCore objects.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
(WebKit::toPKShippingMethods): Deleted.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeCouponCodeChange:]):
(-[WKPaymentAuthorizationDelegate _initWithRequest:presenter:]):
(toShippingMethod):
(-[WKPaymentAuthorizationDelegate _didSelectShippingMethod:completion:]):
(-[WKPaymentAuthorizationDelegate summaryItems]): Deleted.
(-[WKPaymentAuthorizationDelegate shippingMethods]): Deleted.
Drive-by: Delete unused methods.

Source/WTF:

Leverage new PKShippingMethods SPI to provide both the general list of PKShippingMethod
and the default selected PKShippingMethods when creating/updating a payment request.

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:

LayoutTests:

  • http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
  • http/tests/paymentrequest/payment-request-change-shipping-option.https-expected.txt:
  • http/tests/paymentrequest/updateWith-shippingOptions.https.html:
  • http/tests/paymentrequest/updateWith-shippingOptions.https-expected.txt:
11:50 AM Changeset in webkit [285520] by sihui_liu@apple.com
  • 6 edits in trunk/Source

Keep track of captured data time in SpeechRecognizer
https://bugs.webkit.org/show_bug.cgi?id=232867

Reviewed by Youenn Fablet.

Source/WebCore:

The time parameter passed to SpeechRecognizer::dataCaptured is not started from zero.

Manually tested.

  • Modules/speech/SpeechRecognizer.cpp:

(WebCore::SpeechRecognizer::SpeechRecognizer):

  • Modules/speech/SpeechRecognizer.h:
  • Modules/speech/cocoa/SpeechRecognizerCocoa.mm:

(WebCore::SpeechRecognizer::dataCaptured):

Source/WebKit:

Removed a redundant call.

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::RemoteAudio::setStorage):

11:42 AM Changeset in webkit [285519] by Alan Coon
  • 9 edits
    2 adds in branches/safari-612-branch

Apply patch. rdar://problem/83971417

11:42 AM Changeset in webkit [285518] by Alan Coon
  • 4 edits
    2 adds in branches/safari-612-branch

Apply patch. rdar://problem/83863266

11:42 AM Changeset in webkit [285517] by Alan Coon
  • 6 edits in branches/safari-612-branch/Source/WebCore

Apply patch. rdar://problem/83419159

11:41 AM Changeset in webkit [285516] by Alan Coon
  • 3 edits
    6 adds in branches/safari-612-branch

Apply patch. rdar://problem/84116159

11:21 AM Changeset in webkit [285515] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, keep enabling mac libpas on OSS build
https://bugs.webkit.org/show_bug.cgi?id=232026

  • bmalloc/BPlatform.h:
11:10 AM Changeset in webkit [285514] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Unreviewed internal build fix after r285424
<rdar://problem/85207411>

`
WKScrollView.mm:227:35: error: incompatible pointer to integer conversion assigning to 'BOOL' (aka 'signed char') from 'UIColor * _Nullable'
`

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView setBackgroundColor:]):

11:05 AM Changeset in webkit [285513] by commit-queue@webkit.org
  • 11 edits
    1 delete in trunk/Source/WebCore

Unreviewed, reverting r285318.
https://bugs.webkit.org/show_bug.cgi?id=232894

broke Apple internal build

Reverted changeset:

"[Cocoa] Migrate from CTFontCopyVariationAxes() to
CTFontCopyVariationAxesInternal() if possible"
https://bugs.webkit.org/show_bug.cgi?id=232690
https://commits.webkit.org/r285318

11:02 AM Changeset in webkit [285512] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, disabling libpas on ARM64 (not ARM64E!) for now due to performance issue only happening on newer SDK
https://bugs.webkit.org/show_bug.cgi?id=232026

  • bmalloc/BPlatform.h:
10:55 AM Changeset in webkit [285511] by Alan Coon
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.3.6

10:53 AM Changeset in webkit [285510] by Alan Coon
  • 1 copy in tags/Safari-612.3.5

Tag Safari-612.3.5.

10:53 AM Changeset in webkit [285509] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Fix wrong frame count of CARingBuffer in SpeechRecognitionRemoteRealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=232863
<rdar://83381842>

Reviewed by Youenn Fablet.

SpeechRecognitionRealtimeMediaSourceManager::Source uses shared ring buffer to pass audio data to
SpeechRecognitionRemoteRealtimeMediaSource. We used to ask CARingBuffer in
SpeechRecognitionRealtimeMediaSourceManager::Source to allocate with m_numberOfFrames and send m_numberOfFrames
to SpeechRecognitionRemoteRealtimeMediaSource (so SpeechRecognitionRemoteRealtimeMediaSource can create a
corresponding CARingBuffer). This is wrong because CARingBuffer::allocate() rounds up frameCount to power of
two, which means m_numberOfFrames may be not the number used. We should get the actual frameCount in the
setStorage callback of SharedRingBufferStorage, and pass that value to SpeechRecognitionRemoteRealtimeMediaSource.

Manually tested.

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:

(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):

  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:

(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::Source):
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):

10:51 AM Changeset in webkit [285508] by Alan Coon
  • 5 edits in branches/safari-612-branch/Source

Revert r285236. rdar://problem/83950623

This reverts r285470.

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

[LFC][IFC] Line spanning inline box items should be treated as opaque bidi content
https://bugs.webkit.org/show_bug.cgi?id=232887

Reviewed by Antti Koivisto.

These "made-up" line spanning inline items (e.g. <span>first line<br>second line</span> <- inline box start on the second line) are
opaque to bidi and should be treated accordingly (this is similar to what we do in setBidiLevelForOpaqueInlineItems at InlineItemsBuilder::breakAndComputeBidiLevels).

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::initialize):

10:11 AM Changeset in webkit [285506] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, suppress scope check failures on Debug JSC tests
https://bugs.webkit.org/show_bug.cgi?id=215438

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

9:55 AM Changeset in webkit [285505] by commit-queue@webkit.org
  • 6 edits
    6 adds in trunk/LayoutTests

Import css/css-sizing/aspect-ratio tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=232783

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-09
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import based on SHA d91cc9b3a0.

  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-031-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-031.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-032-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-032.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-033-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-033.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:

LayoutTests:

9:51 AM Changeset in webkit [285504] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Reduce telemetry for well-understood sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=232885
<rdar://problem/84950269>

Reviewed by Per Arne Vollan.

Now that we have telemetry showing the use case for this syscall, remove the telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
9:49 AM Changeset in webkit [285503] by Chris Dumez
  • 11 edits
    11 adds in trunk

Ignore BroadcastChannel::postMessage from detached iframe / closing worker contexts
https://bugs.webkit.org/show_bug.cgi?id=232693

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Resync BroadcastChannel WPT tests from upstream to gain test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/basics.any.serviceworker.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/cross-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/cross-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/detached-iframe-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/detached-iframe.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/ordering-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/ordering.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/resources/cross-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/resources/ordering.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/resources/service-worker.js: Added.
  • web-platform-tests/webmessaging/broadcastchannel/resources/w3c-import.log:
  • web-platform-tests/webmessaging/broadcastchannel/resources/worker.js:

(handler):

  • web-platform-tests/webmessaging/broadcastchannel/service-worker.https-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/service-worker.https.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:
  • web-platform-tests/webmessaging/broadcastchannel/workers-expected.txt:
  • web-platform-tests/webmessaging/broadcastchannel/workers.html:

Source/WebCore:

Ignore BroadcastChannel::postMessage from detached iframe / closing worker contexts:

Tests: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/basics.any.serviceworker.html

imported/w3c/web-platform-tests/webmessaging/broadcastchannel/cross-origin.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/detached-iframe.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/ordering.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/service-worker.https.html

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::postMessage):
(WebCore::BroadcastChannel::dispatchMessage):
(WebCore::BroadcastChannel::isEligibleForMessaging const):

  • dom/BroadcastChannel.h:
8:58 AM Changeset in webkit [285502] by Razvan Caliman
  • 2 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Add script to update CSSDocumentation.js
https://bugs.webkit.org/show_bug.cgi?id=232433
<rdar://problem/84753008>

Reviewed by Devin Rousso.

  • Scripts/update-inspector-css-documentation: Added.

Add a script to update the contextual CSS documentation data source at
Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js
with the latest information from the upstream data source.

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.prototype.canonicalNameForPropertyName):

Add a comment to keep the list of accepted prefixes in sync with the one from the script.

8:40 AM Changeset in webkit [285501] by Chris Dumez
  • 10 edits in trunk

New spec: Block external protocol handler in sandboxed frames
https://bugs.webkit.org/show_bug.cgi?id=231727
<rdar://problem/84498192>

Reviewed by Brent Fulgham.

Source/WebKit:

Per the HTML specification [1][2], we should prevent sandboxed iframes from opening
external applications by navigating to a URL with a custom procotol (e.g. rdar://).

Indeed, it would be surprising if malvertisers would be able to redirect you to
an external app.

To support valid use cases, we still allow such navigations in sandboxed iframes
if any of the following is true:

  • sandboxFlags contains "allow-top-navigation-by-user-activation" and hasTransientActivation is true
  • sandboxFlags contains "allow-top-navigation"
  • sandboxFlags contains "allow-popups"

[1] https://github.com/whatwg/html/issues/2191
[2] https://html.spec.whatwg.org/#hand-off-to-external-software

  • UIProcess/WebPageProxy.cpp:

(WebKit::frameSandboxAllowsOpeningExternalCustomProtocols):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

8:11 AM Changeset in webkit [285500] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

[iOS] Add a position information bit to indicate whether the hit-tested element is a paused video
https://bugs.webkit.org/show_bug.cgi?id=232861

Reviewed by Megan Gardner.

Add InteractionInformationAtPosition::isPausedVideo, a flag that is true when the position information request
is over a paused video element (or inside the media control shadow root underneath that paused video element, in
the case where native controls are shown).

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

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

Also rename imageElementContext to hostImageOrVideoElementContext to clarify that it (1) may now include
element contexts for video elements, and (2) unlike the regular elementContext, this includes the image or
video element that is the host for hit-tested content in the UA shadow root of the element corresponding to
elementContext.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView imageAnalysisGestureDidBegin:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::videoPositionInformation):

Additionally populate the image of the position information, in the case where includeImageData is set on
the incoming request.

(WebKit::hostVideoElementIgnoringImageOverlay):
(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):
(WebKit::WebPage::positionInformation):

8:08 AM Changeset in webkit [285499] by ntim@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, reverting r285488.
https://bugs.webkit.org/show_bug.cgi?id=232884

Linked with r285486 which was also reverted.

Reverted changeset:

"Rebaseline will-change-invalid.html after r285487 & r285486"
https://commits.webkit.org/r285488

Patch by Commit Queue <commit-queue@webkit.org> on 2021-11-09

7:25 AM Changeset in webkit [285498] by Simon Fraser
  • 8 edits in trunk/LayoutTests

Convert more wheel event tests to UIHelper.mouseWheelSequence()
https://bugs.webkit.org/show_bug.cgi?id=232847

Reviewed by Wenson Hsieh.

Add an options parameter to mouseWheelSequence() so we can have a version that doens't
wait.

Some tests need to have minor position changes to default the wheel event coalescing code
in WebWheelEventCoalescer.

Change some JS style things.

  • fast/scrolling/mac/momentum-axis-locking.html:
  • fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow.html:
  • fast/scrolling/mac/overflow-hidden-on-one-axis.html:
  • fast/scrolling/mac/programmatic-scroll-overrides-rubberband.html:
  • fast/scrolling/mac/wheel-event-deltas-are-not-filtered.html:
  • resources/ui-helper.js:

(window.UIHelper.async mouseWheelSequence):

6:48 AM Changeset in webkit [285497] by Ziran Sun
  • 8 edits
    2 adds in trunk

[css-grid] update the content-sized grid width before laying out a grid item with block constraints and aspect-ratio
https://bugs.webkit.org/show_bug.cgi?id=231802

Reviewed by Javier Fernandez.
Source/WebCore:

For a grid item with an aspect-ratio, if it has block-constraints such as the relative logical height
case we consider in this CL, 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/GridLayoutFunctions.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::updateGridAreaForAspectRatioItems):

  • rendering/RenderGrid.h:

LayoutTests:

Unskip the tests that are now passing and add a new test to check track size updates.

  • imported/w3c/web-platform-tests/css/css-grid/grid-items/aspect-ratio-005-expected.html: Added.
  • imported/w3c/web-platform-tests/css/css-grid/grid-items/aspect-ratio-005.html: Added.
  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
6:40 AM Changeset in webkit [285496] by clopez@igalia.com
  • 5 edits in trunk/Tools

[EWS] Allow the optimization of running only the subset of failed tests on run-layout-tests-without-patch also for patches modifying the TestExpectations files
https://bugs.webkit.org/show_bug.cgi?id=231265

Reviewed by Alexey Proskuryakov.

On r274475 an optimization was applied to run-layout-tests-without-patch to only
run the subset of tests that failed with patch instead of the whole layout tests.
But this optimization had a corner case where it couldn't be applied.
It seems that we can still apply this optimization in this corner case if we pass
'--skipped=always' to run-webkit-tests so that Skipped tests are not run even if
those are specified as arguments on the command-line.

  • CISupport/ews-build/steps.py:

(RunWebKitTests.setLayoutTestCommand):
(RunWebKitTestsWithoutPatch.setLayoutTestCommand):

  • CISupport/ews-build/steps_unittest.py:
  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_ews_corner_case_failing_test):
(RunTest):
(RunTest.test_ews_corner_case_failing_directory):
(RunTest.test_ews_corner_case_skipped_test):
(RunTest.test_ews_corner_case_skipped_directory):

  • Scripts/webkitpy/port/test.py:
6:35 AM Changeset in webkit [285495] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Rendering bug with height: min-content, position: absolute, and box-sizing: border-box
https://bugs.webkit.org/show_bug.cgi?id=232816
<rdar://problem/85154265>

Reviewed by Antti Koivisto.

Source/WebCore:

After r199895, computeIntrinsicLogicalContentHeightUsing started returning the inflated height (content height + border + padding)
as content height for border-box box sizing. While some of the callers expect this inflated height, computePositionedLogicalHeightUsing
needs the actual content height. This is also similar to what we do with the width values.

Test: fast/block/out-of-flow-intrinsic-height.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePositionedLogicalHeightUsing const):

LayoutTests:

  • fast/block/out-of-flow-intrinsic-height-expected.html: Added.
  • fast/block/out-of-flow-intrinsic-height.html: Added.
6:31 AM Changeset in webkit [285494] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r285436.
https://bugs.webkit.org/show_bug.cgi?id=232878

Broke WPE build

Reverted changeset:

"[WebXR] three.js demos don't work"
https://bugs.webkit.org/show_bug.cgi?id=232798
https://commits.webkit.org/r285436

5:53 AM Changeset in webkit [285493] by commit-queue@webkit.org
  • 20 edits in trunk

Unreviewed, reverting r285486.
https://bugs.webkit.org/show_bug.cgi?id=232876

Made fast/ruby/generated-before-counter-doesnt-crash.html
flaky, possibly indicating perf problem

Reverted changeset:

"[CSS Cascade Layers] Support 'revert-layer' value"
https://bugs.webkit.org/show_bug.cgi?id=232236
https://commits.webkit.org/r285486

5:08 AM Changeset in webkit [285492] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Refactor consumeWillChange() to make better use of consumeCustomIdent()
https://bugs.webkit.org/show_bug.cgi?id=232874

Reviewed by Antti Koivisto.

consumeCustomIdent() already rejects for non-ident types and reserved keywords.
Make use of that to make the function more readable.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWillChange):

4:15 AM Changeset in webkit [285491] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg on ARM
https://bugs.webkit.org/show_bug.cgi?id=232811

Unreviewed gardening.

Gate the number of iterations adjustment on $memoryLimited instead of
the arch.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
4:12 AM Changeset in webkit [285490] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Unskip deltablue-for-of.js on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227291

Unreviewed gardening.

The test is not crashing but timeouts because of the number of
iterations. So to enable testing in more archs, we reduced the
number of iterations and constraints.

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-11-09

  • typeProfiler/deltablue-for-of.js:

(deltaBlue):

3:48 AM Changeset in webkit [285489] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip microbenchmarks/memcpy-typed-loop.js on arm/mips
https://bugs.webkit.org/show_bug.cgi?id=232813

Unreviewed gardening.

Can't reproduce this any more.

  • microbenchmarks/memcpy-typed-loop.js:
2:49 AM Changeset in webkit [285488] by ntim@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline will-change-invalid.html after r285487 & r285486

Unreviewed test gardening

  • web-platform-tests/css/css-will-change/parsing/will-change-invalid-expected.txt:
1:31 AM Changeset in webkit [285487] by ntim@apple.com
  • 5 edits in trunk

Use isValidCustomIdentifier in consumeWillChange
https://bugs.webkit.org/show_bug.cgi?id=232868

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Edit existing WPT to be more exaustive: https://github.com/web-platform-tests/wpt/pull/31556

  • web-platform-tests/css/css-will-change/parsing/will-change-invalid.html:
  • web-platform-tests/css/css-will-change/parsing/will-change-invalid-expected.txt:

Source/WebCore:

This bit specifically implements <custom-ident>, see:
https://drafts.csswg.org/css-will-change/#will-change

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWillChange):

1:29 AM Changeset in webkit [285486] by Antti Koivisto
  • 20 edits in trunk

[CSS Cascade Layers] Support 'revert-layer' value
https://bugs.webkit.org/show_bug.cgi?id=232236
<rdar://problem/84879369>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/revert-layer-008-expected.txt:

Source/WebCore:

'revert-layer' keyword rolls back the value computed by the cascade to the one coming from the layer below.

https://www.w3.org/TR/css-cascade-5/#revert-layer

  • css/CSSPrimitiveValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::isRevertLayerValue const):

  • css/CSSValue.h:
  • css/CSSValueKeywords.in:

Add a 'revert-layer' keyword.

  • css/parser/CSSParserIdioms.h:

(WebCore::isCSSWideKeyword):

Make the keyword CSS-wide.

(WebCore::isValidCustomIdentifier):

  • style/CascadeLevel.h:

(WebCore::Style::operator--):

Add decrement operator.

(WebCore::Style::allCascadeLevels): Deleted.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addElementStyleProperties):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):

Pass the casdade layer priority so it is available when resolving the cascade.

(WebCore::Style::ElementRuleCollector::addElementInlineStyleProperties):

Add a bit indicating if the properties came from a style attribute. This is needed for correct resolution of !important with cascade layers.

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

(WebCore::Style::PropertyCascade::PropertyCascade):

Specify cascade levels in terms of the maximum level instead of an OptionSet of levels. This makes things simpler.
Make it a member.
Provide maximum cascade layer priority when constructing rollback cascade.

(WebCore::Style::PropertyCascade::buildCascade):
(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::addMatch):

Ignore properties with cascade level higher than the maximum.

(WebCore::Style::PropertyCascade::addImportantMatches):

Take cascade layers into accouny when sorting important matches.

(WebCore::Style::PropertyCascade::propertyCascadeForRollback const): Deleted.

Move rollback cascades to Builder.

  • style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::maximumCascadeLevel const):
(WebCore::Style::PropertyCascade::maximumCascadeLayerPriority const):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::Builder):

Specify cascade levels in terms of the maximum level instead of an OptionSet of levels.

(WebCore::Style::Builder::applyCascadeProperty):
(WebCore::Style::Builder::applyProperty):

Construct rollback cascade for 'revert-layer' case too. This is similar to 'revert'.

(WebCore::Style::Builder::ensureRollbackCascadeForRevert):
(WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer):

Make the rollback cascades and store them into a HashMap.

(WebCore::Style::Builder::makeRollbackCascadeKey):

  • style/StyleBuilder.h:
  • style/StyleBuilderState.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::styleForPage):
(WebCore::Style::Resolver::applyMatchedProperties):

Adopt to the new interface.

LayoutTests:

12:37 AM Changeset in webkit [285485] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/LayoutTests

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

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

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/offscreen/text/2d.text.setFont.mathFont-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.setFont.mathFont.worker-expected.txt: Added.

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
12:27 AM Changeset in webkit [285484] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

Stop expecting imported/w3c/web-platform-tests/css/css-pseudo/marker-animate-002.html to fail
https://bugs.webkit.org/show_bug.cgi?id=232834

Reviewed by Antti Koivisto.

12:15 AM Changeset in webkit [285483] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Re-use isCSSWideKeyword in CSSVariableParser.cpp & CSSPropertyParser.cpp
https://bugs.webkit.org/show_bug.cgi?id=232830

Reviewed by Antti Koivisto.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue):

  • css/parser/CSSVariableParser.cpp:

(WebCore::classifyVariableRange):

12:05 AM Changeset in webkit [285482] by Martin Robinson
  • 5 edits
    2 adds in trunk

A mask or isolation should set transform-style to flat
https://bugs.webkit.org/show_bug.cgi?id=232491

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update test results showing newly passing test.

  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-expected.txt:

Source/WebCore:

Tests: transforms/preserve-3d-flat-webkit-grouping-properties-expected.txt: Added.

transforms/preserve-3d-flat-webkit-grouping-properties.html: Added.

This is covered by an existing WPT test:

imported/w3c/web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties.html

Ensure that values of mask-image other than none, mask-border-source other than none,
and isolation: isolate all force used style of preserve-3d: flat.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

LayoutTests:

  • transforms/3d/preserve-3d-flat-webkit-grouping-properties-expected.txt: Added.
  • transforms/3d/preserve-3d-flat-webkit-grouping-properties.html: Added.

Nov 8, 2021:

11:39 PM Changeset in webkit [285481] by Said Abou-Hallawa
  • 9 edits
    4 adds in trunk

[GPU Process] Remove non-platform code form the FEImage class
https://bugs.webkit.org/show_bug.cgi?id=232369
rdar://84966765

Reviewed by Simon Fraser.

Source/WebCore:

SVGFEImageElement should create the FEImage with either an Image or an
ImageBuffer based on whether the 'href' attribute points to a resource
image or an SVG element. For the SVG element, an ImageBuffer will be
created and the renderer of this element will be drawn to it.

Instead of holding a TreeScope and Image, FEImage can hold a variant of
Image and ImageBuffer.

Tests: svg/filters/feImage-element-primitive-subregion-expected.svg

svg/filters/feImage-element-primitive-subregion.svg
svg/filters/feImage-image-primitive-subregion-expected.svg
svg/filters/feImage-image-primitive-subregion.svg

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::imageBufferForEffect const):
(WebCore::SVGFEImageElement::build const):

  • svg/SVGFEImageElement.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::create):
(WebCore::FEImage::FEImage):
(WebCore::FEImage::determineAbsolutePaintRect):
(WebCore::FEImage::platformApplySoftware):
(WebCore::FEImage::externalRepresentation const):
(WebCore::FEImage::createWithImage): Deleted.
(WebCore::FEImage::createWithIRIReference): Deleted.
(WebCore::FEImage::referencedRenderer const): Deleted.

  • svg/graphics/filters/SVGFEImage.h:

LayoutTests:

  • fast/shadow-dom/svg-feimage-href-in-shadow-tree.html:

The default primitive subregion of <feImage> is { -10%, -10%, 120%, 120% }
of the bounding box. So the filter result will be shifted (-10, -10) of
this test case if we do not specify the 'x' and then 'y' attributes.
Unlike the Image based feImage, the default behavior is to display the
ImageBuffer of the element with its logical size otherwise the drawing
will be pixelated if we try to fill the whole primitive subregion. To
make this test page matches its expected page, we need to specify the 'x'
and the 'y' attributes of the <feImage> to be zeros.

With and without specifying the 'x' and the 'y' attributes, the drawing
with this patch matches the drawing of this test page in other browsers.

  • svg/filters/feImage-change-target-id-expected.txt:
  • svg/filters/feImage-element-primitive-subregion-expected.svg: Added.
  • svg/filters/feImage-element-primitive-subregion.svg: Added.
  • svg/filters/feImage-image-primitive-subregion-expected.svg: Added.
  • svg/filters/feImage-image-primitive-subregion.svg: Added.
  • svg/filters/feImage-remove-target-expected.txt:
8:35 PM Changeset in webkit [285480] by mmaxfield@apple.com
  • 7 edits
    29 adds in trunk

Make WebGPU.xcodeproj and WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=231661

Reviewed by Dean Jackson and Robin Morisset.

.:

  • Source/Makefile:

Source/WTF:

  • wtf/DisallowCType.h:

Tools:

  • Scripts/webkitpy/style/checker.py:
  • Scripts/webkitpy/style/checkers/sdkvariant.py:
8:23 PM Changeset in webkit [285479] by commit-queue@webkit.org
  • 11 edits
    2 deletes in trunk/Source/WebKit

Unreviewed, reverting r285432.
https://bugs.webkit.org/show_bug.cgi?id=232864

Introduced audio capture regression

Reverted changeset:

"[macOS][GPUP] Remove access in sandbox to
com.apple.audio.AudioComponentRegistrar"
https://bugs.webkit.org/show_bug.cgi?id=231694
https://commits.webkit.org/r285432

6:26 PM Changeset in webkit [285478] by Patrick Griffis
  • 33 edits in trunk

Implement nonce-hiding
https://bugs.webkit.org/show_bug.cgi?id=179728

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update all nonce-hiding expectations as passing.
Update reflection-misc as script.nonce not being reflected, this matches Chromiums results.

  • web-platform-tests/content-security-policy/nonce-hiding/nonces-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/script-nonces-hidden-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/script-nonces-hidden-meta.sub-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.sub-expected.txt:
  • web-platform-tests/html/dom/idlharness.https-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:

Source/WebCore:

This is a hardening technique implemented by both Firefox and Chromium.

The behavior is documented here: https://html.spec.whatwg.org/multipage/urls-and-fetching.html#nonce-attributes

  • dom/Element.cpp:

(WebCore::Element::nonce const):
(WebCore::Element::setNonce):
(WebCore::Element::hideNonce):
(WebCore::Element::attributeChanged):
(WebCore::Element::cloneAttributesFromElement):

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

(WebCore::ElementRareData::nonce const):
(WebCore::ElementRareData::setNonce):
(WebCore::ElementRareData::useTypes const):

  • dom/InlineClassicScript.cpp:

(WebCore::InlineClassicScript::create):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):

  • dom/NodeRareData.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):
(WebCore::ScriptElement::executeClassicScript):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertedIntoAncestor):

  • html/HTMLElement.h:
  • html/HTMLOrForeignElement.idl:
  • html/HTMLScriptElement.idl:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::didReceiveHeader):

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::isHeaderDelivered const):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::insertedIntoAncestor):

LayoutTests:

Update expectations for nonce IDL as PASSing.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
6:11 PM Changeset in webkit [285477] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Make it possible to toggle several experimental media features when GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=232818

Reviewed by Tim Horton.

Refactor a bit of logic around GPUProcessProxy::updatePreferences, such that the experimental features that
are set underneath this method can be toggled by checking or unchecking the preference in the experimental
features menu in Safari, and then restarting Safari (or simply killing and relaunching the GPU process).

As detailed in the existing FIXME, we currently consult the global WebPageGroups' WebPreferences, which do not
account for changes to the experimental feature defaults since they initialize their own WebPreferences that
are (1) prefixed with a unique identifier, and (2) have keyPrefix and globalDebugKeyPrefix that are
different from normal WebPreferences on WebPageProxy.

Instead, we can add some plumbing to provide a WebProcessProxy to updatePreferences(), and use this to
determine whether we need to enable any experimental features by iterating over each WebPageProxy's preferences
and enabling each feature if it's enabled by at least one web page (roughly matching the current behavior).
While it's still not ideal, these features are all process-global and there is only one GPU process, so in lieu
of more extensive refactoring around these media feature flags, it makes sense to just turn them on if it's
enabled in any individual instance of WebPreferences.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getOrCreate):

Hoist the call to updatePreferences() out of this method and into WebProcessPool::ensureGPUProcess instead,
so that we can pass in WebProcessProxy.

(WebKit::GPUProcessProxy::updatePreferences):

See above for more details.

(WebKit::GPUProcessProxy::updateScreenPropertiesIfNeeded):

Split out logic to update screen properties into a separate method, so that we don't end up unnecessarily
computing and sending redundant screen properties WebProcessPool::ensureGPUProcess().

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureGPUProcess):
(WebKit::WebProcessPool::createWebPage):

5:39 PM Changeset in webkit [285476] by Alan Coon
  • 8 edits in branches/safari-613.1.8-branch

Cherry-pick r285417. rdar://problem/85181578

Unreviewed, reverting r284883.

Caused high energy use on wsj.com <rdar://85156874>

Reverted changeset:

"<link> elements should be able to fire more than one load /
error event"
https://bugs.webkit.org/show_bug.cgi?id=232309
https://commits.webkit.org/r284883

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

5:37 PM Changeset in webkit [285475] by J Pascoe
  • 7 edits in trunk

[WebAuthn] challenge does not get passed to -[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=232836
rdar://85163927

Reviewed by Brent Fulgham.

-[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:] receives
Source/WebCore:

an empty challenge, causing _WKWebAuthenticationPanel to immediately close when using the new UNIFIED_ASC_AUTH_UI.

This change encodes/decodes challenge in PublicKeyCredentialRequestOptions. Before this
field was not used after xpc, but with the new UNIFIED_ASC_AUTH_UI it is.

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:

(WebCore::PublicKeyCredentialCreationOptions::encode const):
(WebCore::PublicKeyCredentialCreationOptions::decode):

  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:

(WebCore::PublicKeyCredentialRequestOptions::encode const):
(WebCore::PublicKeyCredentialRequestOptions::decode):
Add new challengeVector field to both options structs and include it
in decoding / encoding.

Source/WebKit:

an empty challenge, causing _WKWebAuthenticationPanel to immediately close when using the new UNIFIED_ASC_AUTH_UI.

This change encodes/decodes challenge in PublicKeyCredentialRequestOptions.
Before this field was not used after xpc, but with the new UNIFIED_ASC_AUTH_UI it is.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):
Use challengeVector instead of challenge as it's available after being passed via xpc.

Tools:

an empty challenge, causing _WKWebAuthenticationPanel to immediately close when using the new UNIFIED_ASC_AUTH_UI.

This change encodes/decodes challenge in PublicKeyCredentialRequestOptions. Before this
field was not used after xpc, but with the new UNIFIED_ASC_AUTH_UI it is.
This change also adds an empty value for tests.

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

5:29 PM Changeset in webkit [285474] by Alan Coon
  • 1 copy in branches/safari-613.1.8-branch

New branch.

5:13 PM Changeset in webkit [285473] by Alan Coon
  • 1 copy in tags/Safari-613.1.7.1

Tag Safari-613.1.7.1.

5:10 PM Changeset in webkit [285472] by Alan Coon
  • 8 edits in branches/safari-613.1.7-branch

Cherry-pick r285417. rdar://problem/85180053

Unreviewed, reverting r284883.

Caused high energy use on wsj.com <rdar://85156874>

Reverted changeset:

"<link> elements should be able to fire more than one load /
error event"
https://bugs.webkit.org/show_bug.cgi?id=232309
https://commits.webkit.org/r284883

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

5:09 PM Changeset in webkit [285471] by Kocsen Chung
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r285333. rdar://problem/83576009

Avoid sending video data to Web process for canvas.drawImage(video)
https://bugs.webkit.org/show_bug.cgi?id=230766
<rdar://problem/83576009>

Reviewed by Simon Fraser.

Using nativeImageForCurrentTime() to get the image to paint on to the
canvas results in a ShareableBitmap being created to send to the
Web process, the identifier for which we then send back to the GPU
process for the drawImage() call. But if we use
paintCurrentFrameInContext(), this uses the PaintFrameForMedia
message, which just sends the MediaPlayer ID and avoids the bitmap
creation.

  • html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::drawImage):
  • platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::isRemote const):

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

5:09 PM Changeset in webkit [285470] by Kocsen Chung
  • 5 edits in branches/safari-612-branch/Source

Cherry-pick r285236. rdar://problem/83950623

AX: WKAccessibilityWebPageObjectMac.mm should expose accessibilityChildrenInNavigationOrder and NSAccessibilityChildrenInNavigationOrderAttribute
https://bugs.webkit.org/show_bug.cgi?id=232654

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-03
Reviewed by Chris Fleizach.

Some clients expect accessibilityChildrenInNavigationOrder and
NSAccessibilityChildrenInNavigationOrderAttribute to be available,
and WKAccessibilityWebPageObjectMac didn't expose them.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Move #define NSAccessibilityChildrenInNavigationOrderAttribute to header so it can be used in the WebKit layer.

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: (-[WKAccessibilityWebPageObject accessibilityChildrenInNavigationOrder]): Added. (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]): Handle NSAccessibilityChildrenInNavigationOrderAttribute. (-[WKAccessibilityWebPageObject accessibilityAttributeNames:]): Add NSAccessibilityChildrenInNavigationOrderAttribute.

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

5:09 PM Changeset in webkit [285469] by Kocsen Chung
  • 3 edits in branches/safari-612-branch/Source/ThirdParty/ANGLE

Cherry-pick r285220. rdar://problem/84224687

REGRESSION (iOS 15): Tab crashes when trying to render Projector stories
https://bugs.webkit.org/show_bug.cgi?id=231607

Rework vertex buffer caching to allow us to reuse parts
of converted buffers. This dramatically drops the memory usage
of this tab from 4.5 gb to roughly 1.3gb

Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/BufferMtl.mm: (rx::BufferMtl::getVertexConversionBuffer):
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::convertVertexBuffer): (rx::VertexArrayMtl::convertVertexBufferCPU): (rx::VertexArrayMtl::convertVertexBufferGPU):

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

5:09 PM Changeset in webkit [285468] by Kocsen Chung
  • 7 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r285219. rdar://problem/84686676

[Catalina] HLS streams will not select HDR variants when GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=232671
<rdar://84686676>

Reviewed by Eric Carlson.

Tested manually.

In Catalina, fall back to a MediaToolbox API for setting a global HDR override in the GPU
process which instructs all AVPlayer instances whether HDR playback is supported for the
current set of displays. Pass the required data across from the UIProcess to the GPU process
at process start up and when the displays are reconfigured.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/mac/GPUProcessMac.mm: (WebKit::GPUProcess::setScreenProperties):
  • UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::setScreenProperties): (WebKit::GPUProcessProxy::updatePreferences):
  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::screenPropertiesStateChanged): (WebKit::displayReconfigurationCallBack):

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

5:09 PM Changeset in webkit [285467] by Kocsen Chung
  • 7 edits
    1 add in branches/safari-612-branch

Cherry-pick r285208. rdar://problem/84824703

[iOS] Need API for marking file requests as non-app-initiated
https://bugs.webkit.org/show_bug.cgi?id=232506
<rdar://problem/84824703>

Reviewed by Brent Fulgham.

Source/WebKit:

Pass app initiated value through to the WebPage so file loads
can be attributed correctly.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView loadFileRequest:allowingReadAccessToURL:]):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadFile):
  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/file-with-iframe.html: Added.

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

5:09 PM Changeset in webkit [285466] by Kocsen Chung
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r285179. rdar://problem/84919898

Crash under WebPage::sendCOEPCORPViolation()
https://bugs.webkit.org/show_bug.cgi?id=232631
<rdar://84919898>

Reviewed by Alex Christensen.

Add missing null checks for the frame after calling WebProcess::singleton().webFrame(frameID).

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::sendCOEPPolicyInheritenceViolation): (WebKit::WebPage::sendCOEPCORPViolation): (WebKit::WebPage::sendViolationReportWhenNavigatingToCOOPResponse): (WebKit::WebPage::sendViolationReportWhenNavigatingAwayFromCOOPResponse):

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

5:09 PM Changeset in webkit [285465] by Kocsen Chung
  • 2 edits in branches/safari-612-branch/Source/WTF

Cherry-pick r285036. rdar://problem/85173478

Disable ENABLE_JIT on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=232468

Reviewed by Yusuke Suzuki.

We were disabling JIT via a runtime configuration before since we haven't
yet implemented the JIT on arm64_32. However, not compiling ENABLE(JIT)
code on arm64_32 saves 11MB in the binary size of JavaScriptCore.

In my local compiles, I'm going from 24M to 13M.

  • wtf/PlatformEnable.h:

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

5:09 PM Changeset in webkit [285464] by Kocsen Chung
  • 6 edits
    1 add in branches/safari-612-branch

Cherry-pick r283938. rdar://problem/85166798

Don't branch around register allocation in DFG enumerator get by val and pass in the right LValue type to strictInt52ToJSValue
https://bugs.webkit.org/show_bug.cgi?id=231465
<rdar://83876470>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dont-branch-around-regalloc-enumerator-get-by-val.js: Added. (foo):

Source/JavaScriptCore:

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult): (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

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

5:09 PM Changeset in webkit [285463] by Kocsen Chung
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r283862. rdar://problem/85167292

Run backwards propagation before we prune the graph after ForceOSRExit nodes in BytecodeParser
https://bugs.webkit.org/show_bug.cgi?id=230823
<rdar://problem/83565088>

Reviewed by Yusuke Suzuki.

When I ported the phase to run right after bytecode parsing, I wanted
to maintain the same behavior as the prior pass that ran after CPS
rethreading. I noticed a slight bug in some of my logic that changed
some of heuristics and how they'd effect double voting.

The old patch was mimicking the "is loaded from" bit by using the NodeFlags.
Howver, this has some issues with how this interacts with our other uses
of NodeFlags. So, to make things simple, I just add a new "VariableIsUsed"
bit.

  • dfg/DFGBackwardsPropagationPhase.cpp: (JSC::DFG::BackwardsPropagationPhase::propagate):

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

5:09 PM Changeset in webkit [285462] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r283818. rdar://problem/85173568

RegExpExec can't statically prove which of the two structures it will get in AI by just looking at the RegExp*
https://bugs.webkit.org/show_bug.cgi?id=231382
<rdar://83722151>

Reviewed by Mark Lam.

JSTests:

  • stress/reg-exp-exec-cant-prove-which-structure-it-produces-in-ai.js: Added. (foo):

Source/JavaScriptCore:

Because of the RegExp.prototype.compile API, we don't know if the RegExp
produced by RegExpExec will have indices or not, because that bit of
information can be reset by the RegExp.prototype.compile API. So, we
conservatively say that it can produce either structure.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

5:09 PM Changeset in webkit [285461] by Kocsen Chung
  • 8 edits
    1 add in branches/safari-612-branch

Cherry-pick r283623. rdar://problem/85167292

Run backwards propagation before we prune the graph after ForceOSRExit nodes in BytecodeParser
https://bugs.webkit.org/show_bug.cgi?id=230823
<rdar://problem/83565088>

Reviewed by Robin Morisset.

JSTests:

  • run-backwards-propagation-before-osr-exit-pruning.js: Added. (assert): (main.async v24): (main):

Source/JavaScriptCore:

We've found yet another bug where pruning code after OSR exits
before running backwards propagation leads to us breaking the spec
in weird IR situations. In the particular test case here, we end
up not thinking we care about negative zero for an ArithNegate,
and we exit the program while recovering the value 0 instead of -0.

Fundamentally, backwards propagation wants to see all bytecode uses.
Therefore, it seems like a more sound strategy to run backwards propagation
before we end up mucking with the graph. This patch makes it so we run
backwards propagation inside bytecode parser before we prune the IR.
That way, the phase sees the graph as if it's an IR over the whole bytecode
graph.

  • bytecode/Operands.h: (JSC::Operands::operator!= const):
  • dfg/DFGBackwardsPropagationPhase.cpp: (JSC::DFG::BackwardsPropagationPhase::BackwardsPropagationPhase): (JSC::DFG::BackwardsPropagationPhase::run): (JSC::DFG::BackwardsPropagationPhase::mergeFlags): (JSC::DFG::BackwardsPropagationPhase::propagate): (JSC::DFG::performBackwardsPropagation):
  • dfg/DFGBackwardsPropagationPhase.h:
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parse):
  • dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl):
  • dfg/DFGUnificationPhase.cpp: (JSC::DFG::UnificationPhase::run):

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

5:09 PM Changeset in webkit [285460] by Kocsen Chung
  • 6 edits
    1 add in branches/safari-612-branch

Cherry-pick r283567. rdar://problem/85173529

CodeBlock should not add/remove LoopHintExecutionCounters.
https://bugs.webkit.org/show_bug.cgi?id=231209
rdar://83571235

Reviewed by Saam Barati.

JSTests:

  • stress/codeBlock-should-not-add-remove-loop-hint-execution-counters-due-to-cached-unlinked-baseline-code.js: Added.

Source/JavaScriptCore:

This is because cached unlinked baseline JIT code would retain a pointer to those
counters. Hence, the UnlinkedCodeBlock should do the add /remove of the counters
instead.

  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::finishCreation): (JSC::CodeBlock::~CodeBlock):
  • bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::initializeLoopHintExecutionCounter): (JSC::UnlinkedCodeBlock::~UnlinkedCodeBlock):
  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/UnlinkedCodeBlockGenerator.cpp: (JSC::UnlinkedCodeBlockGenerator::finalize):

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

5:08 PM Changeset in webkit [285459] by Kocsen Chung
  • 7 edits in branches/safari-612-branch/Source

Cherry-pick r283470. rdar://problem/85166382

WebCore::Length incorrectly uses memcpy() for copy constructors/operator and IPC encoding/decoding
https://bugs.webkit.org/show_bug.cgi?id=230744

Reviewed by David Kilzer.
Source/WebCore:

Copy-constructing Length by memcpy is sketchy; replace with code that initializes the appropriate
fields based on type, taking care to deref() and ref() the calc handle.

Expose isFloat() for encoding.

  • css/parser/CSSPropertyParserHelpers.cpp: (WebCore::CSSPropertyParserHelpers::CalcParser::consumeValueIfCategory): Add a bit of calc logging.
  • platform/Length.cpp: (WebCore::Length::Length):
  • platform/Length.h: (WebCore::Length::Length): (WebCore::Length::operator=): (WebCore::Length::isFloat const):

Source/WebKit:

Safe encoding/decoding of Length requires that we encode the enum and fields separately,
and don't allow calc types (there isn't enough context in the receiving process to resolve
calc).

  • Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<Length>::encode): (IPC::ArgumentCoder<Length>::decode):
  • Shared/WebCoreArgumentCoders.h:

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

5:08 PM Changeset in webkit [285458] by Kocsen Chung
  • 5 edits
    3 adds in branches/safari-612-branch

Cherry-pick r283332. rdar://problem/85173157

The DFG/FTL need to be aware that Proxy's can produce "function" for typeof and might be callable
https://bugs.webkit.org/show_bug.cgi?id=230804
<rdar://problem/83543951>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/ai-typeof-needs-to-be-aware-of-proxy-2.js: Added. (assert): (builtin.vm.createBuiltin): (builtin2.vm.createBuiltin): (let.p.new.Proxy):
  • stress/ai-typeof-needs-to-be-aware-of-proxy.js: Added. (assert): (builtin.vm.createBuiltin): (let.p.new.Proxy):
  • stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js: Added. (main):

Source/JavaScriptCore:

This patch fixes a couple bugs:

  • We were constant folding typeof on ProxyObject to "object" even when ProxyObject might produce a callable Proxy, and hence, should produce "function". This was a bug in AI.
  • This also fixes a similar bug in IsCallable's implementation in the FTL where we assumed that ProxyObject's type can't be callable.
  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

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

5:08 PM Changeset in webkit [285457] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r283232. rdar://problem/85166097

Code inside strength reduction can incorrectly prove that we know what lastIndex is
https://bugs.webkit.org/show_bug.cgi?id=230802
<rdar://problem/83543699>

Reviewed by Mark Lam.

JSTests:

  • stress/dont-fold-regexp-exec-when-we-dont-know-last-index-and-regexp-is-constant.js: Added. (assert): (let.reg.RegExp.foo.g.doExec): (noInline.doExec):

Source/JavaScriptCore:

The phase was searching backwards in the graph to see if it found the RegExp
node. However, the RegExp node might be a JSConstant. Hence, the program
didn't allocate it. So we can't assume that we know what the lastIndex is.
We were incorrectly assuming it was "0" in a program like this:
a: JSConstant(RegExp)
b: RegExpExec(@a)

And we assumed we're invoking RegExpExec with lastIndex is 0, because we found
our RegExp in a backwards search. This is likely because we're also matching
NewRegExp nodes, in which case, it is valid to say lastIndex is 0.

This caused us to return a constant value that would've been the exec
result had we invoked it with a NewRegExpNode.

  • dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::run): (JSC::DFG::StrengthReductionPhase::handleNode):

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

5:08 PM Changeset in webkit [285456] by Kocsen Chung
  • 2 edits in branches/safari-612-branch/JSTests

Cherry-pick r283231. rdar://problem/85173933

DoesGCCheck does not use enough bits for nodeIndex
https://bugs.webkit.org/show_bug.cgi?id=230915
<rdar://83297515>

Unreviewed. Forgot to add a try/catch in the test.

  • stress/verify-can-gc-node-index.js:

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

5:08 PM Changeset in webkit [285455] by Kocsen Chung
  • 9 edits
    1 add in branches/safari-612-branch

Cherry-pick r283207. rdar://problem/85173933

DoesGCCheck does not use enough bits for nodeIndex
https://bugs.webkit.org/show_bug.cgi?id=230915
<rdar://83297515>

Reviewed by Mark Lam.

JSTests:

  • stress/verify-can-gc-node-index.js: Added. (gen): (f):

Source/JavaScriptCore:

  • dfg/DFGDoesGCCheck.h: (JSC::DFG::DoesGCCheck::DoesGCCheck): (JSC::DFG::DoesGCCheck::encode): (JSC::DFG::DoesGCCheck::set): (JSC::DFG::DoesGCCheck::expectDoesGC const): (JSC::DFG::DoesGCCheck::isSpecial const): (JSC::DFG::DoesGCCheck::special): (JSC::DFG::DoesGCCheck::nodeOp): (JSC::DFG::DoesGCCheck::nodeIndex):
  • dfg/DFGOSRExit.cpp: (JSC::DFG::OSRExit::compileExit):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileLoopHint):
  • dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • ftl/FTLOSRExitCompiler.cpp: (JSC::FTL::compileStub):

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

5:08 PM Changeset in webkit [285454] by Kocsen Chung
  • 5 edits
    1 add in branches/safari-612-branch

Cherry-pick r283180. rdar://problem/85168105

Validate DeviceIdHashSaltStorage persistent data
https://bugs.webkit.org/show_bug.cgi?id=230852
<rdar://problem/83615408>

Reviewed by Eric Carlson.

Source/WebKit:

Add nullptr check to decoded data.
Covered by API test.

  • UIProcess/DeviceIdHashSaltStorage.cpp: (WebKit::DeviceIdHashSaltStorage::loadStorageFromDisk):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
  • TestWebKitAPI/Tests/WebKit/invalidDeviceIDHashSalts: Added.

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

5:08 PM Changeset in webkit [285453] by Kocsen Chung
  • 5 edits
    1 add in branches/safari-612-branch

Cherry-pick r282821. rdar://problem/85167490

Differential testing: live statement don't execute
https://bugs.webkit.org/show_bug.cgi?id=229939

Reviewed by Saam Barati.

JSTests:

  • stress/in-by-val-should-throw.js: Added. (doesThrow): (noInline.doesThrow.noFTL.doesThrow.blackbox): (noInline.blackbox.doesNotThrow): (noInline.doesNotThrow.noFTL.doesNotThrow.main):

Source/JavaScriptCore:

In statements are supposed to throw if they are applied to a non-object. We incorrectly converted
InByVals into HasIndexedProperty any time they were a cell, so we silently converted non-objects. Before converting
an InByVal, we first speculate that the base is an object now.

We do not always require an object edge for HasIndexedProperty because enumerator next() does not
throw if it encounters a cell that requires conversion during the call to toObject (for example, a
string literal). That is, we should silently convert the string during enumeration, but not for an
In statement, and so HasIndexedProperty is prepared to handle both cases.

  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::convertToHasIndexedProperty):

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

5:08 PM Changeset in webkit [285452] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r282212. rdar://problem/85165960

Differential testing: incorrect constant propagation around Uint8ClampedArray
https://bugs.webkit.org/show_bug.cgi?id=229869

JSTests:

Reviewed by Saam Barati.

  • stress/Uint8ClampedArrayClampsInt52Positive.js: Added. (let.x.123.test): (noInline.test.int32pos1): (255.int32pos2): (1.int32neg1): (0.int32neg2): (0.int52pos1): (255.int52pos2): (255.int52neg1): (0.int52neg2): (0.int52neg3): (0.int52pos3): (255.int8):

Source/JavaScriptCore:

We casted int52 values to int32 before clamping, which caused any value with the 32nd bit
set to be interpreted as negative. The fix is to check the full-size value when deciding to clamp.

Reviewed by Saam Barati.

  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

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

5:08 PM Changeset in webkit [285451] by Kocsen Chung
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r281970. rdar://problem/85173043

REGRESSION (r280767): Caret color is black after pasting rich text in Mail compose in dark mode
https://bugs.webkit.org/show_bug.cgi?id=229808
rdar://82600990

Reviewed by Tim Horton.

Source/WebKit:

Partially revert one of the changes in r280767 that makes caret-color follow the immediate container node of the
selection caret, rather than the focused element (which it previously used). This was effectively a drive-by fix
for a FIXME about allowing caret-color to match child containers inside the root editable container element.
While this matches behavior on macOS, this change also causes the caret color to become black when pasting rich
text copied in dark mode, since we write caret-color: rgb(0, 0, 0); to the pasteboard when copying the editing
style for rich text.

In the short term, we should restore old (pre-r280767) caret-color on iOS; in the slightly longer term, I've
filed bug #229809 to track unifying macOS and iOS caret-color behavior, with respect to nested editable
container nodes.

To retain the fix for rdar://81674787 without exhibiting the above bug, we use the selection's root editable
container (rather than m_focusedElement, which was used prior to r280767).

Test: editing/caret/ios/caret-color-in-nested-editable-containers.html

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPlatformEditorState const):

Also adjust this logic so that we only attempt the tree-walk to find the root editable element if the selection
has editable style.

LayoutTests:

Add a test to exercise the behavior of different caret-color values in nested editable elements.

  • editing/caret/ios/caret-color-in-nested-editable-containers-expected.txt: Added.
  • editing/caret/ios/caret-color-in-nested-editable-containers.html: Added.

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

5:08 PM Changeset in webkit [285450] by Kocsen Chung
  • 5 edits
    2 adds in branches/safari-612-branch

Cherry-pick r281795. rdar://problem/85166335

Nullptr crash in TypingCommand::willAddTypingToOpenCommand via TypingCommand::deleteKeyPressed
https://bugs.webkit.org/show_bug.cgi?id=229277

Patch by Rob Buis <rbuis@igalia.com> on 2021-08-31
Reviewed by Ryosuke Niwa.

Source/WebCore:

Rewtite CompositeEditCommand::shouldBreakOutOfEmptyListItem() to return just VisibleSelection
and check that it is not none in TypingCommand::willAddTypingToOpenCommand.

Test: editing/deleting/delete-key-crash.html

  • editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs):
  • editing/CompositeEditCommand.h:
  • editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed):

LayoutTests:

  • editing/deleting/delete-key-crash-expected.txt: Added.
  • editing/deleting/delete-key-crash.html: Added.

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

5:04 PM Changeset in webkit [285449] by Chris Dumez
  • 4 edits in trunk

REGRESSION (r283935): [ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231918
<rdar://problem/84393055>

Reviewed by Wenson Hsieh.

Source/WebCore:

Our "flush autofocus candidates" algorithm wasn't quite matching the specification [1].
In particular, we were incorrectly removing a candidate from the list when not ready
to autofocus due to loading CSS stylesheets.

The spec says to remove the candidate from the list at step 5.6. We should check the stylesheet
counter at step 5.5, and return early, *before* removing the candidate from the list.

[1] https://html.spec.whatwg.org/multipage/interaction.html#flush-autofocus-candidates

No new tests, unskipped existing test.

  • dom/Document.cpp:

(WebCore::Document::flushAutofocusCandidates):

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/mac-wk1/TestExpectations:
4:59 PM Changeset in webkit [285448] by Alan Coon
  • 8 edits in branches/safari-613.1.7-branch/Source

Versioning.

WebKit-7613.1.7.1

4:52 PM Changeset in webkit [285447] by Peng Liu
  • 2 edits in trunk

Update Peng Liu's contributor status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=232859

Unreviewed.

  • metadata/contributors.json:
4:44 PM Changeset in webkit [285446] by Alan Coon
  • 15 edits
    2 adds in branches/safari-612-branch

Apply patch. rdar://problem/83438282

4:44 PM Changeset in webkit [285445] by Alan Coon
  • 16 edits
    2 deletes in branches/safari-612-branch

Revert r285439. rdar://problem/83438282

This reverts r285439.

4:34 PM Changeset in webkit [285444] by Devin Rousso
  • 30 edits
    4 copies
    7 adds in trunk

[Payment Request] Add a new payment method for showing AMS UI
https://bugs.webkit.org/show_bug.cgi?id=232634
<rdar://problem/79024227>

Reviewed by Tim Horton.

Source/WebCore:

Leverage the W3C Payment Request API as a way for Apple domains to show alternate native
payment UIs without having to add new proprietary APIs (e.g. Apple Pay JS). This new payment
method is quite bare-bones in that it just takes some JSON and passes it to AMS, which then
decides what UI to show based on that. No data is exposed back to the page other than either
an error or a yes/no as to whether the payment was successful.

Test: http/tests/ssl/applepay-ams-ui/PaymentRequest.https.html

  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current):
Bump the current Apple Pay version.

  • Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.h: Added.
  • Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp: Added.

(WebCore::convertAndValidateApplePayAMSUIRequest):
(WebCore::ApplePayAMSUIPaymentHandler::validateData):
(WebCore::ApplePayAMSUIPaymentHandler::handlesIdentifier):
(WebCore::ApplePayAMSUIPaymentHandler::hasActiveSession):
(WebCore::ApplePayAMSUIPaymentHandler::finishSession):
(WebCore::ApplePayAMSUIPaymentHandler::ApplePayAMSUIPaymentHandler):
(WebCore::ApplePayAMSUIPaymentHandler::document const):
(WebCore::ApplePayAMSUIPaymentHandler::page const):
(WebCore::ApplePayAMSUIPaymentHandler::convertData):
(WebCore::ApplePayAMSUIPaymentHandler::show):
(WebCore::ApplePayAMSUIPaymentHandler::hide):
(WebCore::ApplePayAMSUIPaymentHandler::canMakePayment):
(WebCore::ApplePayAMSUIPaymentHandler::detailsUpdated):
(WebCore::ApplePayAMSUIPaymentHandler::merchantValidationCompleted):
(WebCore::ApplePayAMSUIPaymentHandler::complete):
(WebCore::ApplePayAMSUIPaymentHandler::retry):
Add a new payment method that uses AMS to present UI.

  • Modules/applepay-ams-ui/ApplePayAMSUIRequest.idl: Added.
  • Modules/applepay-ams-ui/ApplePayAMSUIRequest.h: Added.

(WebCore::ApplePayAMSUIRequest::encode const):
(WebCore::ApplePayAMSUIRequest::decode):
IDL dictionary that takes the place of the object data in PaymentMethodData when the
Apple Pay AMS UI payment method is used.

  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentHandler.cpp:

(WebCore::PaymentHandler::create):
(WebCore::PaymentHandler::validateData):
(WebCore::PaymentHandler::hasActiveSession):
Minor refactoring to allow for there to be more than one payment method implemeted at once.

  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::abort):
(WebCore::PaymentRequest::accept):
(WebCore::PaymentRequest::reject):
The W3C Payment Request API doesn't require that payment methods be abortable. As such, add
some logic that checks with the active PaymentHandler to see if it can be aborted before
actually doing so. Also create some public helper methods that allow the payment request to
be accepted without providing shipping information and be directly rejected with an error.

  • page/Page.h:

(WebCore::Page::hasActiveApplePayAMSUISession const): Added.

  • page/Page.cpp:

(WebCore::Page::startApplePayAMSUISession): Added.
(WebCore::Page::abortApplePayAMSUISession): Added.

  • page/ChromeClient.h:

(WebCore::ChromeClient::startApplePayAMSUISession): Added.
(WebCore::ChromeClient::abortApplePayAMSUISession): Added.
Add plumbing between WebCore/WebProcess and UIProcess. Also maintain state about if there's
already an active Apple Pay AMS UI payment session (needed by the W3C Payment Request API).

  • platform/cocoa/PlatformViewController.h: Added.

Create a helper PlatformViewController that will do the right thing on both macOS and iOS.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::convertAndValidateApplePayRequest): Added.
(WebCore::ApplePayPaymentHandler::validateData):
(WebCore::ApplePayPaymentHandler::convertData):
Drive-by: Rename the convertAndValidate that takes JSC::JSValue to convertAndValidateApplePayRequest
so that there isn't a naming conflict in other files that may want to do a similar thing.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Leverage the W3C Payment Request API as a way for Apple domains to show alternate native
payment UIs without having to add new proprietary APIs (e.g. Apple Pay JS). This new payment
method is quite bare-bones in that it just takes some JSON and passes it to AMS, which then
decides what UI to show based on that. No data is exposed back to the page other than either
an error or a yes/no as to whether the payment was successful.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::startApplePayAMSUISession): Added.
(WebKit::WebChromeClient::abortApplePayAMSUISession): Added.
Add plumbing between WebCore/WebProcess and UIProcess.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::startApplePayAMSUISession): Added.
(WebKit::WebPageProxy::abortApplePayAMSUISession): Added.
Use AMS to present UI for the given engagement request data and originating URL.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::presentingViewController):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::presentingViewController):
Add support for -[WKUIDelegatePrivate _presentingViewControllerForWebView:] on macOS too.

  • Platform/spi/Cocoa/AppleMediaServicesSPI.h: Added.
  • Platform/spi/Cocoa/AppleMediaServicesUISPI.h: Added.
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

  • http/tests/ssl/applepay-ams-ui/PaymentRequest.https.html: Added.
  • http/tests/ssl/applepay-ams-ui/PaymentRequest.https-expected.txt: Added.
4:17 PM Changeset in webkit [285443] by achristensen@apple.com
  • 19 edits
    1 add in trunk

Parse redirect and modify-headers actions for WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=232838

Reviewed by Tim Hatcher.

Source/JavaScriptCore:

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::getObject):

Source/WebCore:

Parser covered by unit tests, functionality yet unimplemented.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionActions.cpp: Added.

(WebCore::ContentExtensions::ModifyHeadersAction::parse):
(WebCore::ContentExtensions::ModifyHeadersAction::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::operator== const):
(WebCore::ContentExtensions::ModifyHeadersAction::serialize const):
(WebCore::ContentExtensions::ModifyHeadersAction::deserialize):
(WebCore::ContentExtensions::ModifyHeadersAction::serializedLength):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::parse):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::operator== const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::serialize const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::deserialize):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::serializedLength):
(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::operator== const):
(WebCore::ContentExtensions::RedirectAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::serializedLength):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::operator== const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::serializedLength):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::operator== const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::serializedLength):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::operator== const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::serializedLength):

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::AppendOperation::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::AppendOperation::operator== const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::SetOperation::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::SetOperation::operator== const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::RemoveOperation::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::RemoveOperation::operator== const):
(WebCore::ContentExtensions::RedirectAction::ExtensionPathAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::ExtensionPathAction::operator== const):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::operator== const):
(WebCore::ContentExtensions::RedirectAction::URLAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::URLAction::operator== const):

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::serializeActions):

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getStringList):
(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):

Source/WebKit:

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::compileContentRuleList):

Source/WTF:

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::asObject const):
(WTF::JSONImpl::ObjectBase::asObject const):

  • wtf/JSONValues.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

4:17 PM Changeset in webkit [285442] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] Enable libpas on iOS family
https://bugs.webkit.org/show_bug.cgi?id=232026

Reviewed by Filip Pizlo.

Enabling libpas on iOS family platforms. This helps libpas transition.
And it offers large performance improvement.

  1. Speedometer2 is 0.7% improved on low-end iOS device (iPhone 6s Plus), 1.3% improved on high-end iOS device (iPhone 12).
  2. JetStream2 is neutral on both.
  • bmalloc/BPlatform.h:
4:15 PM Changeset in webkit [285441] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Remove unused file
https://bugs.webkit.org/show_bug.cgi?id=220094

  • http/tests/contentextensions/whitelist.html.json: Removed.
3:45 PM Changeset in webkit [285440] by Cameron McCormack
  • 2 edits in trunk

Update my status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=232854

Unreviewed.

  • metadata/contributors.json:
3:41 PM Changeset in webkit [285439] by Kocsen Chung
  • 16 edits
    2 adds in branches/safari-612-branch

Apply patch. rdar://problem/83438282

Revert r284669. rdar://problem/83971417

This reverts r284954.

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612-branch@285438 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:30 PM Changeset in webkit [285438] by Alan Coon
  • 9 edits
    2 deletes in branches/safari-612-branch

Revert r284669. rdar://problem/83971417

This reverts r284954.

3:30 PM Changeset in webkit [285437] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/WebCore/platform/RuntimeApplicationChecks.h

Revert r284981. rdar://problem/83971417

This reverts r284981.

3:17 PM Changeset in webkit [285436] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebXR] three.js demos don't work
https://bugs.webkit.org/show_bug.cgi?id=232798
rdar://83559881

Reviewed by Myles C. Maxfield.

Any content using three.js for WebXR was failing for
a couple of reasons. Firstly, we were not correctly
restoring the framebuffer, read, draw and texture
bindings in the native code, and three.js was correctly
assuming it didn't need to rebind.

Secondly, we were not resolving the multisample
framebuffer if the context was created with no alpha.
The issue is that our framebuffer from XR always has
an alpha channel, and you can't blit from RGB to RGBA.

  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::startFrame): Make sure to restore the
bound texture target when exiting the function. Also ensure that we
tell the resolved FBO where its texture data comes from.
(WebCore::WebXROpaqueFramebuffer::endFrame): Restore the framebuffer binding.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Use the correct format.

3:09 PM Changeset in webkit [285435] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GLIB][SOUP] Unify memoryPressureMonitorDisabled implementation
https://bugs.webkit.org/show_bug.cgi?id=232706

Reviewed by Michael Catanzaro.

No new tests needed.

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess): Add missing OS(LINUX) guard
around MemoryPressureMonitor.

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

[macOS][GPUP] Remove sandbox read access to files
https://bugs.webkit.org/show_bug.cgi?id=232245
<rdar://problem/84617482>

Reviewed by Brent Fulgham.

Based on telemetry, remove sandbox read access to files in the GPU process on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
2:48 PM Changeset in webkit [285433] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Add additional mach message filter
https://bugs.webkit.org/show_bug.cgi?id=232819
<rdar://84827214>

Reviewed by Per Arne Vollan.

Add support for an additional mach message trap endpoint when available. I also
adjusted some whitespace to make the rules easier for me to follow.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
2:28 PM Changeset in webkit [285432] 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):

2:16 PM Changeset in webkit [285431] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

WKSyntheticTapGestureRecognizer's action targets should be weak pointers
https://bugs.webkit.org/show_bug.cgi?id=232812

Reviewed by Tim Horton.

Make WKSyntheticTapGestureRecognizer robust against the case where it outlives its WKContentView, by making its
"reset", "gesture identified", and "gesture failed" targets weak pointers instead of raw pointers.

  • UIProcess/ios/WKSyntheticTapGestureRecognizer.mm:

(-[WKSyntheticTapGestureRecognizer lastTouchedScrollView]):

Drive-by fix: we can also make _lastTouchedScrollView use the weak ivar attribute instead of WeakObjCPtr,
now that
weak is enabled in WebKit2.

1:52 PM Changeset in webkit [285430] by Simon Fraser
  • 32 edits
    1 move
    1 add
    1 delete in trunk/LayoutTests

Convert some tests that use eventSender.eventSender.mouseScrollByWithWheelAndMomentumPhases() to sendEventStream()
https://bugs.webkit.org/show_bug.cgi?id=232820

Reviewed by Wenson Hsieh.

These tests were using repeated calls to
eventSender.mouseScrollByWithWheelAndMomentumPhases() to dispatch wheel events, including
events in the momentum phase. Convert them to UIScriptController.sendEventStream() via a
UIHelper function.

Move fast/scrolling/momentum-scroll-with-borders.html to the mac directory.

  • fast/scrolling/mac/momentum-event-sequence.html:
  • fast/scrolling/mac/momentum-scroll-with-borders-expected.txt: Renamed from LayoutTests/fast/scrolling/momentum-scroll-with-borders-expected.txt.
  • fast/scrolling/mac/momentum-scroll-with-borders.html: Added.
  • fast/scrolling/momentum-scroll-with-borders.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
  • scrollingcoordinator/mac/multiple-fixed.html:
  • scrollingcoordinator/mac/nested-sticky-expected.html:
  • scrollingcoordinator/mac/nested-sticky.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html:
  • tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
  • tiled-drawing/scrolling/iframe_in_iframe.html:
  • tiled-drawing/scrolling/latched-div-with-scroll-snap.html:
  • tiled-drawing/scrolling/latched-to-deleted-node.html:
  • tiled-drawing/scrolling/overflow-scroll-reduced-content.html:
  • tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
  • tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
  • tiled-drawing/scrolling/scroll-iframe-latched-selects.html:
  • tiled-drawing/scrolling/scrolling-no-iframe-latching.html:
  • tiled-drawing/scrolling/wheel-events-with-no-delta.html:
1:44 PM Changeset in webkit [285429] by mmaxfield@apple.com
  • 193 edits
    6 moves in trunk/Source/WebCore

[WebGPU] Connect JS bindings code to internal WebGPU interface
https://bugs.webkit.org/show_bug.cgi?id=232804

Reviewed by Dean Jackson.

Source/WebCore:

We have the Javascript bindings code for WebGPU, and we have our internal interface
for WebGPU too (https://bugs.webkit.org/show_bug.cgi?id=232792). The internal interface
is a bunch of virtual classes. This code hookes up the two of them, so calling a
Javascript bindings function will end up calling through to our internal interface.

The strategy to connect them is to give each of the bindings objects a Ref of its backing
interface, which is passed in to its create() function. When JS calls a method of one of
these objects, the bindings object will just forward the call on through its backing
Ref.

In order for this to work, there have to be a bunch of converter functions for all the
descriptor dictionaries which are used as arguments to methods. The converter functions
convert the bindings dictionary to the relevant internal struct. These methods are all
called convertToBacking(), and for struct types, they're member functions of the struct,
and for enum types and typedef types, they are standalone functions.

So, for a bindings method foo(descriptorDictionary), this gets turned into:
m_backing->foo(descriptorDictionary.convertToBacking()).

No new tests because there is no behavior change yet.

  • Modules/WebGPU/GPU.cpp:

(WebCore::convertToBacking):
(WebCore::GPU::requestAdapter):

  • Modules/WebGPU/GPU.h:

(WebCore::GPU::create):
(WebCore::GPU::backing):
(WebCore::GPU::backing const):
(WebCore::GPU::GPU):

  • Modules/WebGPU/GPUAdapter.cpp:

(WebCore::GPUAdapter::name const):
(WebCore::GPUAdapter::features const):
(WebCore::GPUAdapter::limits const):
(WebCore::GPUAdapter::isFallbackAdapter const):
(WebCore::convertToBacking):
(WebCore::GPUAdapter::requestDevice):

  • Modules/WebGPU/GPUAdapter.h:

(WebCore::GPUAdapter::create):
(WebCore::GPUAdapter::backing):
(WebCore::GPUAdapter::backing const):
(WebCore::GPUAdapter::GPUAdapter):

  • Modules/WebGPU/GPUAddressMode.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUBindGroup.cpp:

(WebCore::GPUBindGroup::label const):
(WebCore::GPUBindGroup::setLabel):

  • Modules/WebGPU/GPUBindGroup.h:

(WebCore::GPUBindGroup::create):
(WebCore::GPUBindGroup::backing):
(WebCore::GPUBindGroup::backing const):
(WebCore::GPUBindGroup::GPUBindGroup):

  • Modules/WebGPU/GPUBindGroupDescriptor.h:

(WebCore::GPUBindGroupDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUBindGroupEntry.h:

(WebCore::convertToBacking):
(WebCore::GPUBindGroupEntry::convertToBacking const):

  • Modules/WebGPU/GPUBindGroupLayout.cpp:

(WebCore::GPUBindGroupLayout::label const):
(WebCore::GPUBindGroupLayout::setLabel):

  • Modules/WebGPU/GPUBindGroupLayout.h:

(WebCore::GPUBindGroupLayout::create):
(WebCore::GPUBindGroupLayout::backing):
(WebCore::GPUBindGroupLayout::backing const):
(WebCore::GPUBindGroupLayout::GPUBindGroupLayout):

  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.h:

(WebCore::GPUBindGroupLayoutDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUBindGroupLayoutEntry.h:

(WebCore::GPUBindGroupLayoutEntry::convertToBacking const):

  • Modules/WebGPU/GPUBlendComponent.h:

(WebCore::GPUBlendComponent::convertToBacking const):

  • Modules/WebGPU/GPUBlendFactor.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUBlendOperation.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUBlendState.h:

(WebCore::GPUBlendState::convertToBacking const):

  • Modules/WebGPU/GPUBuffer.cpp:

(WebCore::GPUBuffer::label const):
(WebCore::GPUBuffer::setLabel):
(WebCore::GPUBuffer::mapAsync):
(WebCore::GPUBuffer::getMappedRange):
(WebCore::GPUBuffer::unmap):
(WebCore::GPUBuffer::destroy):

  • Modules/WebGPU/GPUBuffer.h:

(WebCore::GPUBuffer::create):
(WebCore::GPUBuffer::backing):
(WebCore::GPUBuffer::backing const):
(WebCore::GPUBuffer::GPUBuffer):

  • Modules/WebGPU/GPUBufferBinding.h:

(WebCore::GPUBufferBinding::convertToBacking const):

  • Modules/WebGPU/GPUBufferBindingLayout.h:

(WebCore::GPUBufferBindingLayout::convertToBacking const):

  • Modules/WebGPU/GPUBufferBindingType.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUBufferDescriptor.h:

(WebCore::GPUBufferDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUBufferUsage.h:

(WebCore::convertBufferUsageFlagsToBacking):

  • Modules/WebGPU/GPUCanvasCompositingAlphaMode.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUCanvasConfiguration.h:

(WebCore::GPUCanvasConfiguration::convertToBacking const):

  • Modules/WebGPU/GPUColorDict.h:

(WebCore::GPUColorDict::convertToBacking const):
(WebCore::convertToBacking):

  • Modules/WebGPU/GPUColorTargetState.h:

(WebCore::GPUColorTargetState::convertToBacking const):

  • Modules/WebGPU/GPUColorWrite.h:

(WebCore::convertColorWriteFlagsToBacking):

  • Modules/WebGPU/GPUCommandBuffer.cpp:

(WebCore::GPUCommandBuffer::label const):
(WebCore::GPUCommandBuffer::setLabel):

  • Modules/WebGPU/GPUCommandBuffer.h:

(WebCore::GPUCommandBuffer::create):
(WebCore::GPUCommandBuffer::backing):
(WebCore::GPUCommandBuffer::backing const):
(WebCore::GPUCommandBuffer::GPUCommandBuffer):

  • Modules/WebGPU/GPUCommandBufferDescriptor.h:

(WebCore::GPUCommandBufferDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUCommandEncoder.cpp:

(WebCore::GPUCommandEncoder::label const):
(WebCore::GPUCommandEncoder::setLabel):
(WebCore::GPUCommandEncoder::beginRenderPass):
(WebCore::GPUCommandEncoder::beginComputePass):
(WebCore::GPUCommandEncoder::copyBufferToBuffer):
(WebCore::GPUCommandEncoder::copyBufferToTexture):
(WebCore::GPUCommandEncoder::copyTextureToBuffer):
(WebCore::GPUCommandEncoder::copyTextureToTexture):
(WebCore::GPUCommandEncoder::fillBuffer):
(WebCore::GPUCommandEncoder::pushDebugGroup):
(WebCore::GPUCommandEncoder::popDebugGroup):
(WebCore::GPUCommandEncoder::insertDebugMarker):
(WebCore::GPUCommandEncoder::writeTimestamp):
(WebCore::GPUCommandEncoder::resolveQuerySet):
(WebCore::convertToBacking):
(WebCore::GPUCommandEncoder::finish):

  • Modules/WebGPU/GPUCommandEncoder.h:

(WebCore::GPUCommandEncoder::create):
(WebCore::GPUCommandEncoder::backing):
(WebCore::GPUCommandEncoder::backing const):
(WebCore::GPUCommandEncoder::GPUCommandEncoder):

  • Modules/WebGPU/GPUCommandEncoderDescriptor.h:

(WebCore::GPUCommandEncoderDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUCompareFunction.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUCompilationInfo.cpp:

(WebCore::GPUCompilationInfo::messages const):

  • Modules/WebGPU/GPUCompilationInfo.h:

(WebCore::GPUCompilationInfo::create):
(WebCore::GPUCompilationInfo::backing):
(WebCore::GPUCompilationInfo::backing const):
(WebCore::GPUCompilationInfo::GPUCompilationInfo):

  • Modules/WebGPU/GPUCompilationMessage.cpp:

(WebCore::GPUCompilationMessage::message const):
(WebCore::GPUCompilationMessage::type const):
(WebCore::GPUCompilationMessage::lineNum const):
(WebCore::GPUCompilationMessage::linePos const):
(WebCore::GPUCompilationMessage::offset const):
(WebCore::GPUCompilationMessage::length const):

  • Modules/WebGPU/GPUCompilationMessage.h:

(WebCore::GPUCompilationMessage::create):
(WebCore::GPUCompilationMessage::backing):
(WebCore::GPUCompilationMessage::backing const):
(WebCore::GPUCompilationMessage::GPUCompilationMessage):

  • Modules/WebGPU/GPUCompilationMessageType.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUComputePassDescriptor.h:

(WebCore::GPUComputePassDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUComputePassEncoder.cpp:

(WebCore::GPUComputePassEncoder::label const):
(WebCore::GPUComputePassEncoder::setLabel):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::dispatchIndirect):
(WebCore::GPUComputePassEncoder::beginPipelineStatisticsQuery):
(WebCore::GPUComputePassEncoder::endPipelineStatisticsQuery):
(WebCore::GPUComputePassEncoder::endPass):
(WebCore::GPUComputePassEncoder::setBindGroup):
(WebCore::GPUComputePassEncoder::pushDebugGroup):
(WebCore::GPUComputePassEncoder::popDebugGroup):
(WebCore::GPUComputePassEncoder::insertDebugMarker):

  • Modules/WebGPU/GPUComputePassEncoder.h:

(WebCore::GPUComputePassEncoder::create):
(WebCore::GPUComputePassEncoder::backing):
(WebCore::GPUComputePassEncoder::backing const):
(WebCore::GPUComputePassEncoder::GPUComputePassEncoder):

  • Modules/WebGPU/GPUComputePassTimestampLocation.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUComputePassTimestampWrite.h:

(WebCore::GPUComputePassTimestampWrite::convertToBacking const):
(WebCore::convertToBacking):

  • Modules/WebGPU/GPUComputePipeline.cpp:

(WebCore::GPUComputePipeline::label const):
(WebCore::GPUComputePipeline::setLabel):
(WebCore::GPUComputePipeline::getBindGroupLayout):

  • Modules/WebGPU/GPUComputePipeline.h:

(WebCore::GPUComputePipeline::create):
(WebCore::GPUComputePipeline::backing):
(WebCore::GPUComputePipeline::backing const):
(WebCore::GPUComputePipeline::GPUComputePipeline):

  • Modules/WebGPU/GPUComputePipelineDescriptor.h:

(WebCore::GPUComputePipelineDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUCullMode.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUDepthStencilState.h:

(WebCore::GPUDepthStencilState::convertToBacking const):

  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::label const):
(WebCore::GPUDevice::setLabel):
(WebCore::GPUDevice::features const):
(WebCore::GPUDevice::limits const):
(WebCore::GPUDevice::destroy):
(WebCore::GPUDevice::createBuffer):
(WebCore::GPUDevice::createTexture):
(WebCore::convertToBacking):
(WebCore::GPUDevice::createSampler):
(WebCore::GPUDevice::importExternalTexture):
(WebCore::GPUDevice::createBindGroupLayout):
(WebCore::GPUDevice::createPipelineLayout):
(WebCore::GPUDevice::createBindGroup):
(WebCore::GPUDevice::createShaderModule):
(WebCore::GPUDevice::createComputePipeline):
(WebCore::GPUDevice::createRenderPipeline):
(WebCore::GPUDevice::createComputePipelineAsync):
(WebCore::GPUDevice::createRenderPipelineAsync):
(WebCore::GPUDevice::createCommandEncoder):
(WebCore::GPUDevice::createRenderBundleEncoder):
(WebCore::GPUDevice::createQuerySet):
(WebCore::GPUDevice::pushErrorScope):
(WebCore::GPUDevice::popErrorScope):

  • Modules/WebGPU/GPUDevice.h:

(WebCore::GPUDevice::create):
(WebCore::GPUDevice::backing):
(WebCore::GPUDevice::backing const):
(WebCore::GPUDevice::GPUDevice):
(WebCore::GPUDevice::m_backing):

  • Modules/WebGPU/GPUDeviceDescriptor.h:

(WebCore::GPUDeviceDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUDeviceLostInfo.cpp:

(WebCore::GPUDeviceLostInfo::reason const):
(WebCore::GPUDeviceLostInfo::message const):
(WebCore::GPUDeviceLostInfo::GPUDeviceLostInfo): Deleted.

  • Modules/WebGPU/GPUDeviceLostInfo.h:

(WebCore::GPUDeviceLostInfo::create):
(WebCore::GPUDeviceLostInfo::backing):
(WebCore::GPUDeviceLostInfo::backing const):
(WebCore::GPUDeviceLostInfo::GPUDeviceLostInfo):

  • Modules/WebGPU/GPUDeviceLostReason.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUErrorFilter.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUExtent3DDict.h:

(WebCore::GPUExtent3DDict::convertToBacking const):
(WebCore::convertToBacking):

  • Modules/WebGPU/GPUExternalTexture.cpp:

(WebCore::GPUExternalTexture::label const):
(WebCore::GPUExternalTexture::setLabel):

  • Modules/WebGPU/GPUExternalTexture.h:

(WebCore::GPUExternalTexture::create):
(WebCore::GPUExternalTexture::backing):
(WebCore::GPUExternalTexture::backing const):
(WebCore::GPUExternalTexture::GPUExternalTexture):

  • Modules/WebGPU/GPUExternalTextureBindingLayout.h:

(WebCore::GPUExternalTextureBindingLayout::convertToBacking const):

  • Modules/WebGPU/GPUExternalTextureDescriptor.h:

(WebCore::GPUExternalTextureDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUFeatureName.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUFilterMode.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUFragmentState.h:

(WebCore::GPUFragmentState::convertToBacking const):

  • Modules/WebGPU/GPUFrontFace.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUImageCopyBuffer.h:

(WebCore::GPUImageCopyBuffer::convertToBacking const):

  • Modules/WebGPU/GPUImageCopyExternalImage.h:

(WebCore::GPUImageCopyExternalImage::convertToBacking const):

  • Modules/WebGPU/GPUImageCopyTexture.h:

(WebCore::GPUImageCopyTexture::convertToBacking const):

  • Modules/WebGPU/GPUImageCopyTextureTagged.h:

(WebCore::GPUImageCopyTextureTagged::convertToBacking const):

  • Modules/WebGPU/GPUImageDataLayout.h:

(WebCore::GPUImageDataLayout::convertToBacking const):

  • Modules/WebGPU/GPUIndexFormat.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPULoadOp.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUMapMode.h:

(WebCore::convertMapModeFlagsToBacking):

  • Modules/WebGPU/GPUMultisampleState.h:

(WebCore::GPUMultisampleState::convertToBacking const):

  • Modules/WebGPU/GPUObjectDescriptorBase.h:

(WebCore::GPUObjectDescriptorBase::convertToBacking const):

  • Modules/WebGPU/GPUOrigin2DDict.h:

(WebCore::GPUOrigin2DDict::convertToBacking const):
(WebCore::convertToBacking):

  • Modules/WebGPU/GPUOrigin3DDict.h:

(WebCore::GPUOrigin3DDict::convertToBacking const):
(WebCore::convertToBacking):

  • Modules/WebGPU/GPUOutOfMemoryError.h:

(WebCore::GPUOutOfMemoryError::create):
(WebCore::GPUOutOfMemoryError::backing):
(WebCore::GPUOutOfMemoryError::backing const):
(WebCore::GPUOutOfMemoryError::GPUOutOfMemoryError):

  • Modules/WebGPU/GPUPipelineDescriptorBase.h:

(WebCore::GPUPipelineDescriptorBase::convertToBacking const):

  • Modules/WebGPU/GPUPipelineLayout.cpp:

(WebCore::GPUPipelineLayout::label const):
(WebCore::GPUPipelineLayout::setLabel):

  • Modules/WebGPU/GPUPipelineLayout.h:

(WebCore::GPUPipelineLayout::create):
(WebCore::GPUPipelineLayout::backing):
(WebCore::GPUPipelineLayout::backing const):
(WebCore::GPUPipelineLayout::GPUPipelineLayout):

  • Modules/WebGPU/GPUPipelineLayoutDescriptor.h:

(WebCore::GPUPipelineLayoutDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUPipelineStatisticName.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUPowerPreference.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUPredefinedColorSpace.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUPrimitiveState.h:

(WebCore::GPUPrimitiveState::convertToBacking const):

  • Modules/WebGPU/GPUPrimitiveTopology.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUProgrammableStage.h:

(WebCore::GPUProgrammableStage::convertToBacking const):

  • Modules/WebGPU/GPUQuerySet.cpp:

(WebCore::GPUQuerySet::label const):
(WebCore::GPUQuerySet::setLabel):
(WebCore::GPUQuerySet::destroy):

  • Modules/WebGPU/GPUQuerySet.h:

(WebCore::GPUQuerySet::create):
(WebCore::GPUQuerySet::backing):
(WebCore::GPUQuerySet::backing const):
(WebCore::GPUQuerySet::GPUQuerySet):

  • Modules/WebGPU/GPUQuerySetDescriptor.h:

(WebCore::GPUQuerySetDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUQueryType.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUQueue.cpp:

(WebCore::GPUQueue::label const):
(WebCore::GPUQueue::setLabel):
(WebCore::GPUQueue::submit):
(WebCore::GPUQueue::onSubmittedWorkDone):
(WebCore::GPUQueue::writeBuffer):
(WebCore::GPUQueue::writeTexture):
(WebCore::GPUQueue::copyExternalImageToTexture):

  • Modules/WebGPU/GPUQueue.h:

(WebCore::GPUQueue::create):
(WebCore::GPUQueue::backing):
(WebCore::GPUQueue::backing const):
(WebCore::GPUQueue::GPUQueue):

  • Modules/WebGPU/GPURenderBundle.cpp:

(WebCore::GPURenderBundle::label const):
(WebCore::GPURenderBundle::setLabel):

  • Modules/WebGPU/GPURenderBundle.h:

(WebCore::GPURenderBundle::create):
(WebCore::GPURenderBundle::backing):
(WebCore::GPURenderBundle::backing const):
(WebCore::GPURenderBundle::GPURenderBundle):

  • Modules/WebGPU/GPURenderBundleDescriptor.h:

(WebCore::GPURenderBundleDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderBundleEncoder.cpp:

(WebCore::GPURenderBundleEncoder::label const):
(WebCore::GPURenderBundleEncoder::setLabel):
(WebCore::GPURenderBundleEncoder::setPipeline):
(WebCore::GPURenderBundleEncoder::setIndexBuffer):
(WebCore::GPURenderBundleEncoder::setVertexBuffer):
(WebCore::GPURenderBundleEncoder::draw):
(WebCore::GPURenderBundleEncoder::drawIndexed):
(WebCore::GPURenderBundleEncoder::drawIndirect):
(WebCore::GPURenderBundleEncoder::drawIndexedIndirect):
(WebCore::GPURenderBundleEncoder::setBindGroup):
(WebCore::GPURenderBundleEncoder::pushDebugGroup):
(WebCore::GPURenderBundleEncoder::popDebugGroup):
(WebCore::GPURenderBundleEncoder::insertDebugMarker):
(WebCore::convertToBacking):
(WebCore::GPURenderBundleEncoder::finish):

  • Modules/WebGPU/GPURenderBundleEncoder.h:

(WebCore::GPURenderBundleEncoder::create):
(WebCore::GPURenderBundleEncoder::backing):
(WebCore::GPURenderBundleEncoder::backing const):
(WebCore::GPURenderBundleEncoder::GPURenderBundleEncoder):

  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:

(WebCore::GPURenderBundleEncoderDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassColorAttachment.h:

(WebCore::GPURenderPassColorAttachment::convertToBacking const):

  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.h:

(WebCore::GPURenderPassDepthStencilAttachment::convertToBacking const):

  • Modules/WebGPU/GPURenderPassDescriptor.h:

(WebCore::GPURenderPassDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassEncoder.cpp:

(WebCore::GPURenderPassEncoder::label const):
(WebCore::GPURenderPassEncoder::setLabel):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setIndexBuffer):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::drawIndexed):
(WebCore::GPURenderPassEncoder::drawIndirect):
(WebCore::GPURenderPassEncoder::drawIndexedIndirect):
(WebCore::GPURenderPassEncoder::setBindGroup):
(WebCore::GPURenderPassEncoder::pushDebugGroup):
(WebCore::GPURenderPassEncoder::popDebugGroup):
(WebCore::GPURenderPassEncoder::insertDebugMarker):
(WebCore::GPURenderPassEncoder::setViewport):
(WebCore::GPURenderPassEncoder::setScissorRect):
(WebCore::GPURenderPassEncoder::setBlendConstant):
(WebCore::GPURenderPassEncoder::setStencilReference):
(WebCore::GPURenderPassEncoder::beginOcclusionQuery):
(WebCore::GPURenderPassEncoder::endOcclusionQuery):
(WebCore::GPURenderPassEncoder::beginPipelineStatisticsQuery):
(WebCore::GPURenderPassEncoder::endPipelineStatisticsQuery):
(WebCore::GPURenderPassEncoder::executeBundles):
(WebCore::GPURenderPassEncoder::endPass):

  • Modules/WebGPU/GPURenderPassEncoder.h:

(WebCore::GPURenderPassEncoder::create):
(WebCore::GPURenderPassEncoder::backing):
(WebCore::GPURenderPassEncoder::backing const):
(WebCore::GPURenderPassEncoder::GPURenderPassEncoder):

  • Modules/WebGPU/GPURenderPassLayout.h:

(WebCore::GPURenderPassLayout::convertToBacking const):

  • Modules/WebGPU/GPURenderPassTimestampLocation.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPURenderPassTimestampWrite.h:

(WebCore::GPURenderPassTimestampWrite::convertToBacking const):
(WebCore::convertToBacking):

  • Modules/WebGPU/GPURenderPipeline.cpp:

(WebCore::GPURenderPipeline::label const):
(WebCore::GPURenderPipeline::setLabel):
(WebCore::GPURenderPipeline::getBindGroupLayout):

  • Modules/WebGPU/GPURenderPipeline.h:

(WebCore::GPURenderPipeline::create):
(WebCore::GPURenderPipeline::backing):
(WebCore::GPURenderPipeline::backing const):
(WebCore::GPURenderPipeline::GPURenderPipeline):

  • Modules/WebGPU/GPURenderPipelineDescriptor.h:

(WebCore::GPURenderPipelineDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURequestAdapterOptions.h:

(WebCore::GPURequestAdapterOptions::convertToBacking const):

  • Modules/WebGPU/GPUSampler.cpp:

(WebCore::GPUSampler::label const):
(WebCore::GPUSampler::setLabel):

  • Modules/WebGPU/GPUSampler.h:

(WebCore::GPUSampler::create):
(WebCore::GPUSampler::backing):
(WebCore::GPUSampler::backing const):
(WebCore::GPUSampler::GPUSampler):

  • Modules/WebGPU/GPUSamplerBindingLayout.h:

(WebCore::GPUSamplerBindingLayout::convertToBacking const):

  • Modules/WebGPU/GPUSamplerBindingType.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUSamplerDescriptor.h:

(WebCore::GPUSamplerDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUShaderModule.cpp:

(WebCore::GPUShaderModule::label const):
(WebCore::GPUShaderModule::setLabel):
(WebCore::GPUShaderModule::compilationInfo):

  • Modules/WebGPU/GPUShaderModule.h:

(WebCore::GPUShaderModule::create):
(WebCore::GPUShaderModule::backing):
(WebCore::GPUShaderModule::backing const):
(WebCore::GPUShaderModule::GPUShaderModule):

  • Modules/WebGPU/GPUShaderModuleDescriptor.h:

(WebCore::GPUShaderModuleDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUShaderStage.h:

(WebCore::convertShaderStageFlagsToBacking):

  • Modules/WebGPU/GPUStencilFaceState.h:

(WebCore::GPUStencilFaceState::convertToBacking const):

  • Modules/WebGPU/GPUStencilOperation.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUStorageTextureAccess.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUStorageTextureBindingLayout.h:

(WebCore::GPUStorageTextureBindingLayout::convertToBacking const):

  • Modules/WebGPU/GPUStoreOp.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUSupportedFeatures.cpp:

(WebCore::GPUSupportedFeatures::initializeSetLike const):

  • Modules/WebGPU/GPUSupportedFeatures.h:

(WebCore::GPUSupportedFeatures::create):
(WebCore::GPUSupportedFeatures::backing):
(WebCore::GPUSupportedFeatures::backing const):
(WebCore::GPUSupportedFeatures::GPUSupportedFeatures):

  • Modules/WebGPU/GPUSupportedLimits.cpp:

(WebCore::GPUSupportedLimits::maxTextureDimension1D const):
(WebCore::GPUSupportedLimits::maxTextureDimension2D const):
(WebCore::GPUSupportedLimits::maxTextureDimension3D const):
(WebCore::GPUSupportedLimits::maxTextureArrayLayers const):
(WebCore::GPUSupportedLimits::maxBindGroups const):
(WebCore::GPUSupportedLimits::maxDynamicUniformBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxDynamicStorageBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxSampledTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxSamplersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBufferBindingSize const):
(WebCore::GPUSupportedLimits::maxStorageBufferBindingSize const):
(WebCore::GPUSupportedLimits::minUniformBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::minStorageBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::maxVertexBuffers const):
(WebCore::GPUSupportedLimits::maxVertexAttributes const):
(WebCore::GPUSupportedLimits::maxVertexBufferArrayStride const):
(WebCore::GPUSupportedLimits::maxInterStageShaderComponents const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupStorageSize const):
(WebCore::GPUSupportedLimits::maxComputeInvocationsPerWorkgroup const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeX const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeY const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeZ const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupsPerDimension const):

  • Modules/WebGPU/GPUSupportedLimits.h:

(WebCore::GPUSupportedLimits::create):
(WebCore::GPUSupportedLimits::backing):
(WebCore::GPUSupportedLimits::backing const):
(WebCore::GPUSupportedLimits::GPUSupportedLimits):

  • Modules/WebGPU/GPUTexture.cpp:

(WebCore::GPUTexture::label const):
(WebCore::GPUTexture::setLabel):
(WebCore::convertToBacking):
(WebCore::GPUTexture::createView const):

  • Modules/WebGPU/GPUTexture.h:

(WebCore::GPUTexture::create):
(WebCore::GPUTexture::backing):
(WebCore::GPUTexture::backing const):
(WebCore::GPUTexture::GPUTexture):

  • Modules/WebGPU/GPUTextureAspect.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUTextureBindingLayout.h:

(WebCore::GPUTextureBindingLayout::convertToBacking const):

  • Modules/WebGPU/GPUTextureDescriptor.h:

(WebCore::GPUTextureDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUTextureDimension.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUTextureFormat.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUTextureSampleType.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUTextureUsage.h:

(WebCore::convertTextureUsageFlagsToBacking):

  • Modules/WebGPU/GPUTextureView.cpp:

(WebCore::GPUTextureView::label const):
(WebCore::GPUTextureView::setLabel):

  • Modules/WebGPU/GPUTextureView.h:

(WebCore::GPUTextureView::create):
(WebCore::GPUTextureView::backing):
(WebCore::GPUTextureView::backing const):
(WebCore::GPUTextureView::GPUTextureView):

  • Modules/WebGPU/GPUTextureViewDescriptor.h:

(WebCore::GPUTextureViewDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUTextureViewDimension.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUUncapturedErrorEvent.cpp:

(WebCore::GPUUncapturedErrorEvent::error const):
(WebCore::GPUUncapturedErrorEvent::GPUUncapturedErrorEvent): Deleted.

  • Modules/WebGPU/GPUUncapturedErrorEvent.h:

(WebCore::GPUUncapturedErrorEvent::create):
(WebCore::GPUUncapturedErrorEvent::backing):
(WebCore::GPUUncapturedErrorEvent::backing const):
(WebCore::GPUUncapturedErrorEvent::GPUUncapturedErrorEvent):

  • Modules/WebGPU/GPUUncapturedErrorEventInit.h:
  • Modules/WebGPU/GPUValidationError.cpp:

(WebCore::GPUValidationError::message const):
(WebCore::GPUValidationError::GPUValidationError): Deleted.

  • Modules/WebGPU/GPUValidationError.h:

(WebCore::GPUValidationError::create):
(WebCore::GPUValidationError::backing):
(WebCore::GPUValidationError::backing const):
(WebCore::GPUValidationError::GPUValidationError):

  • Modules/WebGPU/GPUVertexAttribute.h:

(WebCore::GPUVertexAttribute::convertToBacking const):

  • Modules/WebGPU/GPUVertexBufferLayout.h:

(WebCore::GPUVertexBufferLayout::convertToBacking const):

  • Modules/WebGPU/GPUVertexFormat.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUVertexState.h:

(WebCore::GPUVertexState::convertToBacking const):

  • Modules/WebGPU/GPUVertexStepMode.h:

(WebCore::convertToBacking):

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::NavigatorBase):

  • page/NavigatorBase.h:

(WebCore::NavigatorBase::gpu):

Source/WebCore/PAL:

Various assorted cleanups.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/WebGPU.h:
  • pal/graphics/WebGPU/WebGPUAdapter.h:

(PAL::WebGPU::Adapter::Adapter):

  • pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
  • pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
  • pal/graphics/WebGPU/WebGPUBuffer.h:
  • pal/graphics/WebGPU/WebGPUBufferBinding.h:
  • pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
  • pal/graphics/WebGPU/WebGPUColor.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUColorDict.h.
  • pal/graphics/WebGPU/WebGPUCommandEncoder.h:
  • pal/graphics/WebGPU/WebGPUComputePassDescriptor.h:
  • pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
  • pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUComputePassTimestampWrite.h.
  • pal/graphics/WebGPU/WebGPUDevice.h:

(PAL::WebGPU::Device::features):
(PAL::WebGPU::Device::limits):

  • pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
  • pal/graphics/WebGPU/WebGPUError.h:
  • pal/graphics/WebGPU/WebGPUExtent3D.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUExtent3DDict.h.
  • pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
  • pal/graphics/WebGPU/WebGPUFrontFace.h:
  • pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
  • pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
  • pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
  • pal/graphics/WebGPU/WebGPUOrigin2D.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUOrigin2DDict.h.
  • pal/graphics/WebGPU/WebGPUOrigin3D.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUOrigin3DDict.h.
  • pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
  • pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • pal/graphics/WebGPU/WebGPUProgrammableStage.h:
  • pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
  • pal/graphics/WebGPU/WebGPUQueue.h:
  • pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
  • pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassTimestampWrite.h.
  • pal/graphics/WebGPU/WebGPUShaderModule.h:
  • pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
  • pal/graphics/WebGPU/WebGPUSupportedLimits.h:
  • pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
1:36 PM Changeset in webkit [285428] by Chris Dumez
  • 12 edits in trunk

Add abort reason to AbortSignal
https://bugs.webkit.org/show_bug.cgi?id=232299
<rdar://problem/84921281>

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

Import https://github.com/web-platform-tests/wpt/commit/9c7dfd2809b6c3a209a2c4df43c1d6816e6bfc1b from
upstream WPT to gain layout test coverage and rebaseline the test.

  • web-platform-tests/dom/abort/event.any-expected.txt:
  • web-platform-tests/dom/abort/event.any.js:
  • web-platform-tests/dom/abort/event.any.worker-expected.txt:

Source/WebCore:

Add abort reason to AbortSignal:

No new tests, updated & rebaselined existing WPT test.

  • bindings/js/JSAbortSignalCustom.cpp:

(WebCore::JSAbortSignal::visitAdditionalChildren):

  • dom/AbortController.cpp:

(WebCore::AbortController::abort):

  • dom/AbortController.h:
  • dom/AbortController.idl:
  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::abort):
(WebCore::AbortSignal::AbortSignal):
(WebCore::AbortSignal::signalAbort):
(WebCore::AbortSignal::signalFollow):

  • dom/AbortSignal.h:
  • dom/AbortSignal.idl:
1:12 PM Changeset in webkit [285427] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Fix !ENABLE(ACCESSIBILITY) build following r285399
https://bugs.webkit.org/show_bug.cgi?id=232826

Unreviewed build fix.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::enableAccessibility):
(WebCore::AXObjectCache::disableAccessibility):
(WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility):

1:00 PM Changeset in webkit [285426] by ntim@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Stop skipping html/semantics/interactive-elements/the-details-element/toggleEvent.html in import-expectations.json

Unreviewed.

No point skipping it, WebKit passes the test, and we want that test to be up to date.
Also, with directory-wide imports, that test will no longer be wrongly deleted.

  • resources/import-expectations.json:
12:55 PM Changeset in webkit [285425] by Wenson Hsieh
  • 5 edits in trunk/Source/WebCore

[Live Text] Add a helper method to remove recognized text from an image element
https://bugs.webkit.org/show_bug.cgi?id=232788

Reviewed by Aditya Keerthi.

Add a couple of helper functions for resetting cached text recognition results, and for removing recognized text
from the shadow root of an image element. These will be used to support enhancements to Live Text in a future
patch. No change in behavior.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::removeImageOverlaySoonIfNeeded):

  • html/HTMLElement.h:
  • page/Page.cpp:

(WebCore::Page::resetTextRecognitionResult):

  • page/Page.h:
12:54 PM Changeset in webkit [285424] by Devin Rousso
  • 7 edits in trunk

webView.scrollView.indicatorStyle does not work on iOS 15
https://bugs.webkit.org/show_bug.cgi?id=232295
<rdar://problem/82816423>

Reviewed by Wenson Hsieh.

Source/WebKit:

Keep track of whether the backgroundColor and/or indicatorStyle of the WKScrollView
has been set by the WKWebView owner/client. If so, don't allow the WKWebView to override
it when it updates. Clients can opt-out of this "override prevention" by setting to nil
and UIScrollViewIndicatorStyleDefault respectively.

Tests: WKScrollViewTests.IndicatorStyleSetByClient

WKScrollViewTests.BackgroundColorSetByClient

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

(-[WKScrollView setBackgroundColor:]): Added.
(-[WKScrollView _setBackgroundColorInternal:]): Added.
(-[WKScrollView setIndicatorStyle:]): Added.
(-[WKScrollView _setIndicatorStyleInternal:]): Added.

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _resetCachedScrollViewBackgroundColor]): Added.
(-[WKWebView _updateScrollViewBackground]):
(-[WKWebView _updateScrollViewIndicatorStyle]): Added.
(-[WKWebView _processDidExit]):

Tools:

  • TestWebKitAPI/Tests/ios/WKScrollViewTests.mm:

(TEST.WKScrollViewTests.IndicatorStyleSetByClient): Added.
(TEST.WKScrollViewTests.BackgroundColorSetByClient): Added.

12:14 PM Changeset in webkit [285423] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

Discrete animation of content property does not work
https://bugs.webkit.org/show_bug.cgi?id=183544
LayoutTests/imported/w3c:

<rdar://problem/38360395>

Reviewed by Antti Koivisto.

Add a new test to check that we can animate the "content" property using a discrete animation.

  • web-platform-tests/css/css-content/content-animation-expected.txt: Added.
  • web-platform-tests/css/css-content/content-animation.html: Added.

Source/WebCore:

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/css/css-content/content-animation.html

Add support for animating the "content" property.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:
11:57 AM Changeset in webkit [285422] by commit-queue@webkit.org
  • 19 edits in trunk

Unreviewed, reverting r285408.
https://bugs.webkit.org/show_bug.cgi?id=232829

Depending on r285392, which caused 4% Speedometer2 regression

Reverted changeset:

"[CSS Cascade Layers] Support 'revert-layer' value"
https://bugs.webkit.org/show_bug.cgi?id=232236
https://commits.webkit.org/r285408

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

Unreviewed, reverting r285392.
https://bugs.webkit.org/show_bug.cgi?id=232828

4% Speedometer2 regression

Reverted changeset:

"Use narrower types for style scope ordinal and cascade layer
priority"
https://bugs.webkit.org/show_bug.cgi?id=232797
https://commits.webkit.org/r285392

11:34 AM Changeset in webkit [285420] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix the newly added code
https://bugs.webkit.org/show_bug.cgi?id=215438

  • runtime/TemporalObject.cpp:

(JSC::roundNumberToIncrement):

11:33 AM Changeset in webkit [285419] by Kocsen Chung
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.3.5

11:20 AM Changeset in webkit [285418] by ysuzuki@apple.com
  • 24 edits
    16 adds in trunk

[JSC] Implement IntlNumberFormat v3
https://bugs.webkit.org/show_bug.cgi?id=215438

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-numberformat-format-large.js: Added.

(shouldBe):

  • stress/intl-numberformat-format-range-v3.js: Added.

(shouldBe):
(shouldThrow):
(shouldNotThrow):
(nf.formatRange.string_appeared_here.forEach):
(nf.formatRangeToParts.validRanges.forEach):
(nf6.formatRange.shouldThrow):

  • stress/intl-numberformat-format-string-v3.js: Added.

(shouldBe):

  • stress/intl-numberformat-format-string.js: Added.

(shouldBe):

  • stress/intl-numberformat-format-to-parts.js:
  • stress/intl-numberformat-rounding-increment-resolved-match-v3.js: Added.

(shouldBe):
(validRoundingIncrements.forEach):

  • stress/intl-numberformat-rounding-increment-v3.js: Added.

(shouldThrow):
(validRoundingIncrements.forEach):
(invalidRoundingIncrements.forEach):

  • stress/intl-numberformat-rounding-increment-value-hanidec.js: Added.

(shouldBe):

  • stress/intl-numberformat-rounding-increment-value-v3.js: Added.

(shouldBe):

  • stress/intl-numberformat-rounding-increment-value.js: Added.

(shouldBe):

  • stress/intl-numberformat-rounding-mode-table-v3.js: Added.

(shouldBe):
(Object.keys.expectations.forEach):

  • stress/intl-numberformat-rounding-mode-v3.js: Added.

(shouldBe):
(shouldThrow):
(validRoundingMode.forEach):
(invalidRoundingMode.forEach):
(let.options.get signDisplay):
(let.options.get roundingMode):

  • stress/intl-numberformat-sign-display-v3.js: Added.

(shouldBe):

  • stress/intl-numberformat-trailing-zero-display-resolved-options-v3.js: Added.

(shouldBe):

  • stress/intl-numberformat-trailing-zero-display-v3.js: Added.

(shouldBe):

  • stress/intl-numberformat-usegrouping-v3.js: Added.

(shouldBe):
(shouldThrow):
(validUseGrouping.forEach):
(invalidUseGrouping.forEach):
(all.forEach):
(mgd1.forEach):
(mgd2.forEach):

  • stress/intl-numberformat.js:

(testNumberFormat):
(shouldBe.testNumberFormat.Intl.NumberFormat):

  • stress/intl-pluralrules-selectrange.js: Added.

(shouldBe):

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements part of Intl.NumberFormat v3 proposal[1].
It adds (1) several new options to Intl.NumberFormat, (2) adds
formatRange and formatRangeToParts to Intl.NumberFormat and Intl.PluralRules,
and (3) adds toIntlMathematicalValue support, which allows some of Intl.NumberFormat
functions to take "string" decimal form.

We cannot implement some features because it requires super new ICU.

  • trailingZeroDisplay (requires ICU 69)
  • halfCeil / halfFloor (requires ICU 69)
  • signDisplay: "negative" (requires ICU 69)
  • formatRangeToParts (requires ICU 70)

[1]: https://github.com/tc39/proposal-intl-numberformat-v3

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/BigIntPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/CommonIdentifiers.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::UNumberFormatterDeleter::operator()):
(JSC::UNumberRangeFormatterDeleter::operator()):
(JSC::partTypeString):
(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::format const):
(JSC::IntlNumberFormat::formatRange const):
(JSC::IntlNumberFormat::signDisplayString):
(JSC::IntlNumberFormat::roundingModeString):
(JSC::IntlNumberFormat::trailingZeroDisplayString):
(JSC::IntlNumberFormat::roundingPriorityString):
(JSC::IntlNumberFormat::useGroupingValue):
(JSC::IntlNumberFormat::resolvedOptions const):
(JSC::IntlNumberFormat::formatToPartsInternal):
(JSC::IntlNumberFormat::formatToParts const):

  • runtime/IntlNumberFormat.h:

(JSC::IntlMathematicalValue::IntlMathematicalValue):
(JSC::IntlMathematicalValue::ensureNonDouble):
(JSC::IntlMathematicalValue::numberType const):
(JSC::IntlMathematicalValue::sign const):
(JSC::IntlMathematicalValue::tryGetDouble const):
(JSC::IntlMathematicalValue::getString const):
(JSC::IntlMathematicalValue::numberTypeFromDouble):

  • runtime/IntlNumberFormatInlines.h:

(JSC::setNumberFormatDigitOptions):
(JSC::appendNumberFormatDigitOptionsToSkeleton):
(JSC::toIntlMathematicalValue):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::create):
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObjectInlines.h:

(JSC::intlStringOrBooleanOption):

  • runtime/IntlPluralRules.cpp:

(JSC::UPluralRulesDeleter::operator()):
(JSC::IntlPluralRules::initializePluralRules):
(JSC::IntlPluralRules::resolvedOptions const):
(JSC::IntlPluralRules::select const):
(JSC::IntlPluralRules::selectRange const):

  • runtime/IntlPluralRules.h:
  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::create):
(JSC::IntlPluralRulesPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlPluralRulesPrototype.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::formatToParts const):

  • runtime/JSBigInt.h:

(JSC::JSBigInt::tryExtractDouble):

  • runtime/MathCommon.h:

(JSC::isNegativeZero):

  • runtime/TemporalObject.cpp:

(JSC::roundNumberToIncrement):

  • runtime/TemporalObject.h:
11:15 AM Changeset in webkit [285417] by Chris Dumez
  • 8 edits in trunk

Unreviewed, reverting r284883.

Caused high energy use on wsj.com <rdar://85156874>

Reverted changeset:

"<link> elements should be able to fire more than one load /
error event"
https://bugs.webkit.org/show_bug.cgi?id=232309
https://commits.webkit.org/r284883

11:00 AM Changeset in webkit [285416] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc

Unreviewed, tweak header include
https://bugs.webkit.org/show_bug.cgi?id=231815

  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/libpas/pas_utils.h:
10:52 AM Changeset in webkit [285415] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

Unreviewed, fix internal build failure on Catalina
https://bugs.webkit.org/show_bug.cgi?id=231815

Several pthread functions are not available.

  • bmalloc/BPlatform.h:
  • libpas/src/libpas/pas_thread_local_cache.h:

(pas_thread_local_cache_is_guaranteed_to_destruct):
(pas_thread_local_cache_can_set):

  • libpas/src/libpas/pas_utils.h:
10:45 AM Changeset in webkit [285414] by Manuel Rego Casasnovas
  • 8 edits
    1 move in trunk

WPT test importer imports rel="mismatch" as the reference
https://bugs.webkit.org/show_bug.cgi?id=207175
<rdar://problem/69332102>

Reviewed by Jonathan Bedard.

LayoutTests/imported/w3c:

Re-imported css/css-fonts/standard-font-family-5.html from WPT, so the -expected.html file gets renamed to -expected-mismatch.html.

  • web-platform-tests/css/css-fonts/standard-font-family-5-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/standard-font-family-5-expected.html.
  • web-platform-tests/css/css-fonts/w3c-import.log:

Tools:

Setting "-expected-mismatch" suffix for <meta rel="mismatch"> references from WPT.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.find_importable_tests): Adding "-mismatch" suffix as needed.

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.analyze_test): Store the reference type in test_infotype.

  • Scripts/webkitpy/w3c/test_parser_unittest.py:

(test_analyze_test_reftest_one_mismatch): Add new test cases for the reference type.

LayoutTests:

css/css-fonts/standard-font-family-5.html stars passing now.

10:37 AM Changeset in webkit [285413] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using a timer to dispatch the source element's error event asynchronously
https://bugs.webkit.org/show_bug.cgi?id=232817

Reviewed by Youenn Fablet.

Stop using a timer to dispatch the source element's error event asynchronously and use
the HTML5 event loop instead.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::HTMLSourceElement):
(WebCore::HTMLSourceElement::scheduleErrorEvent):
(WebCore::HTMLSourceElement::cancelPendingErrorEvent):
(WebCore::HTMLSourceElement::errorEventTimerFired): Deleted.
(WebCore::HTMLSourceElement::suspend): Deleted.
(WebCore::HTMLSourceElement::resume): Deleted.

  • html/HTMLSourceElement.h:
10:36 AM Changeset in webkit [285412] by pvollan@apple.com
  • 13 edits in trunk/Source/WebKit

Unify sandbox rules for diagnostic services
https://bugs.webkit.org/show_bug.cgi?id=232207
<rdar://problem/84582424>

Reviewed by Darin Adler.

In the WebContent process, we only allow access to diagnostic services for internal builds. We should do the same in all WebKit sandboxes.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::isInternalInstall): Deleted.
(WebKit::diagnosticServices): Deleted.

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
10:05 AM Changeset in webkit [285411] by Kate Cheney
  • 2 edits in trunk/Tools

[ iOS15 EWS ] TestWebKitAPI.AppPrivacyReport.LoadSimulatedRequest tests are timing out
https://bugs.webkit.org/show_bug.cgi?id=232166
<rdar://problem/84560948>

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
9:57 AM Changeset in webkit [285410] by Wenson Hsieh
  • 9 edits in trunk/Source

Enabling "media source inline painting" by default should work when using GPU Process for media
https://bugs.webkit.org/show_bug.cgi?id=232802

Reviewed by Eric Carlson.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

Propagate the bit for MediaSourceInlinePaintingEnabled over to the GPU process when updating preferences in
GPUProcessProxy.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::setMediaSourceInlinePaintingEnabled):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::updatePreferences):

Also, add a couple of FIXMEs here. Note that due to the latter FIXME, this change *still* doesn't allow us to
turn on media source inline painting when using GPU process for media by simply toggling the feature in user
defaults or through UI. This is because preferences on WebPageGroups are not modified when changing experimental
feature user defaults, so logic that iterates through all page groups and looks at preferences will still only
get the default value of each feature flag (as defined in the yaml file).

Source/WTF:

Clean up this experimental feature -- since it's backed by a global RuntimeEnabledFeature, we should:

  1. Add webcoreBinding: RuntimeEnabledFeatures, and also:
  2. Not be adding the corresponding page-scoped WebCore setting as well.

This adjustment makes it possible to enable this experimental feature when the GPU process is disabled, since
we now actually call into RuntimeEnabledFeatures to set the value (instead of just setting the WebCore setting
which wasn't consulted by anything).

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
9:56 AM Changeset in webkit [285409] by Simon Fraser
  • 3 edits in trunk/Tools

Fix the CGEvent types used for wheel event generation from streams
https://bugs.webkit.org/show_bug.cgi?id=232805

Reviewed by Sam Weinig.

The set of enum values for wheel event types are confusing, and I used the wrong ones in
r285390, so fix that. Values are all the same other than kCGMomentumScrollPhaseEnd which is
now correct.

Also relax parsing of event steam JSON to allow "continue" for momentumPhase; this is the
name of the CG-level enum, but AppKit calls this "changed". This will ease conversion from
eventSender in tests.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::cgScrollPhaseFromPhase):
(WTR::cgMomentumPhaseFromPhase):
(WTR::EventSenderProxy::sendWheelEvent):
(WTR::cgGesturePhaseFromString): Deleted.

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::eventPhaseFromString):
(WTR::UIScriptControllerMac::sendEventStream):

9:20 AM Changeset in webkit [285408] by Antti Koivisto
  • 19 edits in trunk

[CSS Cascade Layers] Support 'revert-layer' value
https://bugs.webkit.org/show_bug.cgi?id=232236
<rdar://problem/84879369>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/revert-layer-008-expected.txt:

Source/WebCore:

'revert-layer' keyword rolls back the value computed by the cascade to the one coming from the layer below.

https://www.w3.org/TR/css-cascade-5/#revert-layer

  • css/CSSPrimitiveValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::isRevertLayerValue const):

  • css/CSSValue.h:
  • css/CSSValueKeywords.in:

Add a 'revert-layer' keyword.

  • css/parser/CSSParserIdioms.h:

(WebCore::isCSSWideKeyword):

Make the keyword CSS-wide.

(WebCore::isValidCustomIdentifier):

  • style/CascadeLevel.h:

(WebCore::Style::operator--):

Add decrement operator.

(WebCore::Style::allCascadeLevels): Deleted.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addElementStyleProperties):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):

Pass the casdade layer priority so it is available when resolving the cascade.

(WebCore::Style::ElementRuleCollector::addElementInlineStyleProperties):

Add a bit indicating if the properties came from a style attribute. This is needed for correct resolution of !important with cascade layers.

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

(WebCore::Style::PropertyCascade::PropertyCascade):

Specify cascade levels in terms of the maximum level instead of an OptionSet of levels. This makes things simpler.
Make it a member.
Provide maximum cascade layer priority when constructing rollback cascade.

(WebCore::Style::PropertyCascade::buildCascade):
(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::addMatch):

Ignore properties with cascade level higher than the maximum.

(WebCore::Style::PropertyCascade::addImportantMatches):

Take cascade layers into accouny when sorting important matches.

(WebCore::Style::PropertyCascade::propertyCascadeForRollback const): Deleted.

Move rollback cascades to Builder.

  • style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::maximumCascadeLevel const):
(WebCore::Style::PropertyCascade::maximumCascadeLayerPriority const):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::Builder):

Specify cascade levels in terms of the maximum level instead of an OptionSet of levels.

(WebCore::Style::Builder::applyCascadeProperty):
(WebCore::Style::Builder::applyProperty):

Construct rollback cascade for 'revert-layer' case too. This is similar to 'revert'.

(WebCore::Style::Builder::ensureRollbackCascadeForRevert):
(WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer):

Make the rollback cascades and store them into a HashMap.

(WebCore::Style::Builder::makeRollbackCascadeKey):

  • style/StyleBuilder.h:
  • style/StyleBuilderState.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::styleForPage):
(WebCore::Style::Resolver::applyMatchedProperties):

Adopt to the new interface.

LayoutTests:

9:07 AM Changeset in webkit [285407] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[libpas] Enable libpas on macOS
https://bugs.webkit.org/show_bug.cgi?id=231815

Reviewed by Filip Pizlo.

Source/bmalloc:

Enabling libpas on x64 macOS. Previously, we enabled it only on AppleSilicon.
This helps stressing libpas more. And it offers large performance improvement.

  1. Speedometer2 is 2.1% improved on low-end macOS (MBA8,2) and 1.7% improved on high-end macOS (MBP14,1).
  2. JetStream2 is neutral on both.

libpas is written in C to be portable to the other components. But since C does not have templates,
we are using particular programming pattern where we pass set of functions annotated with ALWAYS_INLINE to
the functions with ALWAYS_INLINE. This pattern ensures that the fast path function will be inlined completely
while we can pass function pointer to configure the malloc implementation. However, we found that this pattern
emits massive amount of unnecessary mov, movd etc. when it is built with O0 in x64.
Discussed with Phil, and we use O3 options to build bmalloc and its inlined functions to keep C-written libpas
customizable while avoiding timeouts in Debug tests.

  • Configurations/Base.xcconfig:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BPlatform.h:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
9:05 AM Changeset in webkit [285406] by sbarati@apple.com
  • 3 edits
    1 add in trunk

We need to PreferNumber when calling toPrimitive for negate
https://bugs.webkit.org/show_bug.cgi?id=232679

Reviewed by Alexey Shvayka.

JSTests:

  • stress/negate-prefer-number-to-primitive.js

Source/JavaScriptCore:

We were forgetting to do this in a few implementations of the negate
bytecode. So depending on which variant you took, you could get different
results.

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

8:58 AM Changeset in webkit [285405] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Update CSSDocumentation.js with latest upstream data to fix wrong documentation for block-size
https://bugs.webkit.org/show_bug.cgi?id=231566
<rdar://problem/84406443>

Reviewed by Devin Rousso.

Update CSSDocumentation.js with latest upstream data source which contains
fixes for descriptions of logical properties for sizing:
block-size, inline-size, min-/max-block-size, min-/max-inline-size

  • UserInterface/External/CSSDocumentation/CSSDocumentation.js:
8:39 AM Changeset in webkit [285404] by Kate Cheney
  • 5 edits in trunk/Source

trustd network connections occasionally omitted from App Privacy report
https://bugs.webkit.org/show_bug.cgi?id=232770
<rdar://problem/83840427>

Reviewed by Alex Christensen.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(NetworkSessionCocoa::setClientAuditToken):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

Source/WTF:

  • wtf/spi/cocoa/SecuritySPI.h:
8:24 AM Changeset in webkit [285403] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] The first run in visual order may not generate a display box
https://bugs.webkit.org/show_bug.cgi?id=232806

Reviewed by Antti Koivisto.

Do not rely on the 0 index value to compute the content start position when visual ordering is in place.
The very first run (i == 0) in visual order may not even call into the displayBoxRect function (e.g. inline box end as </span>)
which means that we end up with an incorrect initial content start position (as we miss the RTL conversion).

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent):

8:19 AM Changeset in webkit [285402] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebCore

Infinite loop in SourceBufferParserWebM::SegmentReader::Read
https://bugs.webkit.org/show_bug.cgi?id=232740
<rdar://83573873>

Reviewed by Eric Carlson.

Source/WebCore:

No test because the reproduction steps are still unknown.

Customer reports indicate an infinite loop condition on a background queue inside
SourceBufferParserWebM::SegmentReader::Read(), and those reports indicate that the
MTPluginByteSourceRead() call is failing and returning an error. When an error occurs, the
SourceBufferParser::Segment::read() method drops the error and simply reports that zero
bytes were read. And consequently in the SegmentReader::Read() method, that method will
loop forever attempting to satisfy the request for a certain number of bytes to be read.

The cause of the MTPluginByteSourceRead() call failing is not well known at this point.
It could be the case of a faulty server reporting an incorrect content-length, or it could
be a result of a WebContent process crash. Regardless, that error should be propagated
up the call stack so that the caller can correctly break out of its while loop.

Change the return type the Segment::read() method from size_t to an Expected object
containing either a size_t or a ReaderError. Check the return value from within
SegmentReader::Read() and bail if an error was returned. ReadInto() will need to be
modified similarly.

  • platform/graphics/cocoa/SourceBufferParser.cpp:

(WebCore::SourceBufferParser::Segment::read const):
(WebCore::SourceBufferParser::Segment::takeSharedBuffer):

  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::segmentReadErrorToWebmStatus):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

Source/WebCore/PAL:

  • pal/spi/cocoa/MediaToolboxSPI.h:
7:57 AM Changeset in webkit [285401] by youenn@apple.com
  • 1 edit
    3 deletes in trunk/LayoutTests

Remove http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html and http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe.html mac specific expectations
https://bugs.webkit.org/show_bug.cgi?id=232810
<rdar://problem/84997169>

Unreviewed, test gardening.

  • platform/mac-bigsur-wk2/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Removed.
  • platform/mac-bigsur-wk2/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Removed.
  • platform/mac-catalina-wk2/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Removed.
  • platform/mac-catalina-wk2/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Removed.
  • platform/mac-wk2/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Removed.
  • platform/mac-wk2/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Removed.
7:43 AM Changeset in webkit [285400] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

newAudioChunkPushed callback should take the total number of audio samples as parameter
https://bugs.webkit.org/show_bug.cgi?id=232808

Reviewed by Eric Carlson.

Update code according review.
This is a refactoring, no change of behavior.

  • platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.cpp:

(WebCore::IncomingAudioMediaStreamTrackRendererUnit::newAudioChunkPushed):

  • platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.h:
  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::pollFromSource):

5:56 AM Changeset in webkit [285399] by Andres Gonzalez
  • 13 edits in trunk

WTR::AccessibilityController::focusedElement() cannot get the focused object via WKAccessibilityFocusedObject in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=232756
<rdar://problem/85069882>

Reviewed by Chris Fleizach.

WTR::AccessibilityController::focusedElement() was getting the focused
object from WKAccessibilityFocusedObject, which has to run on the main
thread. WKAccessibilityFocusedObject was in turn calling AXObjectCache::
focusedUIElementForPage that tried to return the isolated focused
object. The problem with this is that the isolated focused object can
only be retrieved on the secondary thread.
The solution in this patch is to retrieve the focused object from the
root object as an AT client would do.
Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedObjectForPage):
(WebCore::AXObjectCache::isolatedTreeFocusedObject): Deleted, not needed any more.
(WebCore::AXObjectCache::focusedUIElementForPage): Deleted, using focusedObjectForPage instead.

  • accessibility/AXObjectCache.h:

Moved the following inlines out of the class declaration.
(WebCore::AXObjectCache::accessibilityEnhancedUserInterfaceEnabled):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::focusedObjectForPage):
(WebCore::AXObjectCache::enableAccessibility):
(WebCore::AXObjectCache::disableAccessibility):
(WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility):
(WebCore::AXObjectCache::accessibilityEnabled):
(WebCore::AXObjectCache::focusedUIElementForPage): Deleted.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]): Code cleanup.

  • accessibility/win/AXObjectCacheWin.cpp:

(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKAccessibilityFocusedObject):
Now uses AXObjectCache::focusedObejctForPage().

Tools:

Added AccessibilityUIElement::focusedElement in order to retrieve the
focused object from the root object.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::focusedElement):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::focusedElement const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::focusedElement const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::focusedElement const):

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

[GStreamer] fast/mediastream/media-stream-video-track-interrupted.html is failing since added in 242093@main
https://bugs.webkit.org/show_bug.cgi?id=231057

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

Source/WebKit:

Wire up mock camera interruption IPC support in WPE/GTK.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetMockCameraIsInterrupted):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMockCameraIsInterrupted):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setMockCameraIsInterrupted):

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

LayoutTests:

  • platform/glib/TestExpectations: Unflag now-passing test.
3:34 AM Changeset in webkit [285397] by graouts@webkit.org
  • 87 edits
    1 delete in trunk

[Web Animations] Add support for composite operations for software animations
https://bugs.webkit.org/show_bug.cgi?id=230404
<rdar://problem/83495091>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark 1546 new PASS results among tests for composite operations. There are technically 10
new FAIL results for a few transform-related tests, but these were only passing because the
entire feature of composite operations was missing and will be fixed before this feature
is enabled.

  • web-platform-tests/css/css-align/animation/column-gap-composition-expected.txt:
  • web-platform-tests/css/css-align/animation/row-gap-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-bottom-left-radius-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-bottom-right-radius-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-width-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-top-left-radius-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-top-right-radius-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-bottom-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-left-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-right-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-top-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-left-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-right-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
  • web-platform-tests/css/css-color/animation/color-composition-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-basis-composition-expected.txt:
  • web-platform-tests/css/css-masking/animations/clip-path-composition-expected.txt:
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-002-expected.txt:
  • web-platform-tests/css/css-masking/clip-path/interpolation-expected.txt:
  • web-platform-tests/css/css-position/animations/bottom-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/left-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/right-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/top-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
  • web-platform-tests/css/css-shapes/basic-shape-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/aspect-ratio-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/width-composition-expected.txt:
  • web-platform-tests/css/css-text/animations/letter-spacing-composition-expected.txt:
  • web-platform-tests/css/css-text/animations/text-indent-composition-expected.txt:
  • web-platform-tests/css/css-text/animations/word-spacing-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/perspective-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-scale-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-skew-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-translate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
  • web-platform-tests/css/css-transitions/animations/vertical-align-composition-expected.txt:
  • web-platform-tests/css/css-ui/animation/caret-color-composition-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-offset-composition-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-width-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-anchor-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-distance-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-position-composition-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/combining-effects/effect-composition-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context-filling-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-replaced-animations-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:

Source/WebCore:

We now support composite operations provided via the Web Animations API. Much of the work is to ensure
we account for the CompositeOperation provided to the blending functions. The rest of the work is to
correctly handle the values provided by the API, store them in the KeyframeValue and KeyframeList objects
created to support blending in KeyframeEffect and correctly use the composite operations as part of the
KeyframeEffect::setAnimatedPropertiesInStyle() function.

The remaining work not covered by this patch is to fix the remaining WPT failures related to additivity
of various transform types (bug 232082) and support for additivity for accelerated animations (bug 232081).

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): support additivity when blending float and ShapeValue values. In the case of
Visibility, we make sure to ignore additivity since it's irrelevant for this type.
(WebCore::AnimationPropertyWrapperBase::isAdditiveOrCumulative const): There are rare cases where
types do not support additivity, so we add a new virtual method to the base wrapper to let subclasses
indicate such cases.
(WebCore::canInterpolateLengths): some of the composition WPT identified an issue where we ought not
interpolate LengthPoint in the case where one of the from or to values are calc() unless the other value
is fixed, a percentage or another calc() value.
(WebCore::PropertyWrapperShadow::canInterpolate): shadows can always interpolate when they are additive
since in that case we don't blend but rather add the list of shadows.
(WebCore::StrokeDasharrayPropertyWrapper): stoke-dasharray is not additive so we add a dedicated wrapper
which implements isAdditiveOrCumulative() and returns false.
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): composition WPT revealed issues
with blending for margin and padding properties where we did not support blending between lengths and
percentages, so we add the IsLengthPercentage to the option set when creating wrappers for these properties.
We also do this for shape-margin and flex-basis.
(WebCore::CSSPropertyAnimation::isPropertyAdditiveOrCumulative): expose this method such that it may be
called from KeyframeEffect to determine whether the wrapper for a given property supports blending with
additivity.

  • animation/CSSPropertyAnimation.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animatedStyleForRenderer): composition WPT revealed that we weren't applying
effects when computing the animated style in the correct order. We now respect the correct order by making
sure we iterate over KeyframeEffectStack::sortedEffects().

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create): when creating a KeyframeEffect via the Web Animations API, ensure we pass
the compositeOperation and iterationCompositeOperation properties provided as optional options.
(WebCore::KeyframeEffect::updateBlendingKeyframes): when creating the supporting blending keyframes, a
KeyframeList containing KeyframeValue objects, we now set the composite operations on those objects.
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle): account for composite operations when blending for
the animated style. The important part here is when we implement step 12 from the "effect value of a keyframe
effect" spec procedure and we blend the start and end keyframe values over the underlying style with additivity
if set. The rest of the function is slightly refactored to keep around KeyframeValue references rather than
blending keyframe indexes when working out the keyframes for the current interval.
(WebCore::KeyframeEffect::timingFunctionForBlendingKeyframe const): factor some code out of timingFunctionForKeyframeAtIndex()
in order to deal with a KeyframeValue directly in setAnimatedPropertiesInStyle().
(WebCore::KeyframeEffect::timingFunctionForKeyframeAtIndex const): call the new timingFunctionForBlendingKeyframe()
which has much of the code from this function factored in.
(WebCore::KeyframeEffect::backingAnimationForCompositedRenderer const): set the composite operation on the
Animation generated for composited animations (which will be supported in the future).

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::addEffect): one of the WPT identified a bug where we didn't mark the style for an
effect target as dirty when an effect was added to it, which is the case when persist() is called on a replaced
animation.

  • platform/Length.cpp:

(WebCore::makeCalculated):
(WebCore::convertTo100PercentMinusLength):
(WebCore::blendMixedTypes):
(WebCore::blend):

  • platform/animation/Animation.cpp: add a compositeOperation member.

(WebCore::Animation::Animation):
(WebCore::Animation::operator=):
(WebCore::Animation::animationsMatch const):

  • platform/animation/Animation.h: add a compositeOperation member.

(WebCore::Animation::isCompositeOperationSet const):
(WebCore::Animation::isEmpty const):
(WebCore::Animation::clearCompositeOperation):
(WebCore::Animation::clearAll):
(WebCore::Animation::compositeOperation const):
(WebCore::Animation::setCompositeOperation):
(WebCore::Animation::initialCompositeOperation):

  • platform/animation/AnimationUtilities.h: support additivity blending for more types.

(WebCore::blend):

  • platform/graphics/transforms/AffineTransform.cpp:

(WebCore::AffineTransform::blend):

  • platform/graphics/transforms/RotateTransformOperation.cpp:

(WebCore::RotateTransformOperation::blend):

  • platform/graphics/transforms/ScaleTransformOperation.cpp:

(WebCore::blendScaleComponent): scale is the rare operation where additivity and accumulation yield different
results.
(WebCore::ScaleTransformOperation::blend):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::blendFloat):
(WebCore::TransformationMatrix::blend):

  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapeInset::blend const): some WPT showed that we clip blended inset() values to be non-negative.

  • rendering/style/KeyframeList.h: add a compositeOperation member to KeyframeValue.

(WebCore::KeyframeValue::compositeOperation const):
(WebCore::KeyframeValue::setCompositeOperation):

LayoutTests:

Remove two platform-specicfic expectations that are not required anymore and mark one ref test as newly passing.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt: Removed.
  • TestExpectations:

Nov 7, 2021:

2:16 PM Changeset in webkit [285396] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore

Non-unified build fixes, early November 2021 edition take two
https://bugs.webkit.org/show_bug.cgi?id=232801

Unreviewed non-unified build fixes.

  • Modules/WebGPU/GPUColorWrite.h:
  • Modules/WebGPU/GPUSupportedLimits.h:
  • Modules/WebGPU/GPUValidationError.h:
  • css/parser/CSSParserIdioms.h:
1:29 PM Changeset in webkit [285395] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Pass MatchedProperties PropertyCascade setters
https://bugs.webkit.org/show_bug.cgi?id=232799

Reviewed by Alan Bujtas.

Reduce the number of arguments and make it easier to expand.

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::setDeferred):
(WebCore::Style::PropertyCascade::addMatch):

  • style/PropertyCascade.h:
1:13 PM Changeset in webkit [285394] by Cameron McCormack
  • 12 edits
    405 adds in trunk/LayoutTests

Restore canvas WPTs removed in bug 232449
https://bugs.webkit.org/show_bug.cgi?id=232795
<rdar://problem/85108161>

Rubber-stamped by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/manual/README.md: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_arcto_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_arcto_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_beziercurveto_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_beziercurveto_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/canvas_compositing_globalcompositeoperation_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/canvas_compositing_globalcompositeoperation_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/canvas-with-padding-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/canvas-with-padding.html: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/getContextAttributes-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/getContextAttributes.html: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_crossorigin.sub-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_html_image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_html_image.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_1-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_1.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-with-src-rect.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-with-src-rect.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/canvas_complexshapes_ispointInpath_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/canvas_complexshapes_ispointInpath_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_002-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_003-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_004-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_005-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.normal-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.normal.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/canvas_colorsandstyles_createlineargradient_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/canvas_colorsandstyles_createlineargradient_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-blur-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-blur.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-component-transfer-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-component-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-convolve-matrix-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-convolve-matrix.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/imagesmoothing-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/imagesmoothing.html: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-ImageBitmap-close-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-ImageBitmap-close.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/common.sub.js: Added.

(makeCanvas):
(imageBitmapVideoPromise.new.Promise.video.oncanplaythrough):
(imageBitmapVideoPromise.new.Promise):
(makeVideo):
(response.arrayBuffer.then.):
(response.arrayBuffer.then):
(makeMakeHTMLImage.):
(makeMakeHTMLImage):
(makeBlob.):
(factory.makeMakeHTMLImage):
(factory.makeMakeSVGImage):

  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-blob-invalidtype-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-blob-invalidtype.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-bounds-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-bounds.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-closed-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-closed.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-in-worker-transfer-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-in-worker-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-sizeOverflow-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-sizeOverflow.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-worker.js: Added.

(makeBlob.):
(makeBlob):

  • web-platform-tests/html/canvas/element/manual/imagebitmap/imageBitmap-from-imageData-no-image-rotation-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/imageBitmap-from-imageData-no-image-rotation.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/resources/squares.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/transfer-worker.js: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/worker-onmessage-noop.js: Added.

(self.onmessage):

  • web-platform-tests/html/canvas/element/manual/line-styles/canvas_linestyles_linecap_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/canvas_linestyles_linecap_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_a-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_a.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/setLineDash-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/setLineDash.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_002-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_002.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_system_colors-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_system_colors.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/shadowBlur_gaussian_tolerance.1-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/shadowBlur_gaussian_tolerance.1.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/canvas_text_font_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/canvas_text_font_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.state.saverestore.imageSmoothingEnabled-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.state.saverestore.imageSmoothingEnabled.html: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.zero.size.canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.zero.size.canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/canvas_state_restore_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/canvas_state_restore_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/2d.transformation.getTransform-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/2d.transformation.getTransform.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_reset_001-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_reset_001.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_scale_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_scale_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_a-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_a.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-1-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-1.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-2-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-2.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-3-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-3.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-4-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-4.htm: Added.
  • web-platform-tests/html/canvas/element/manual/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/ImageData-fidelity-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/ImageData-fidelity.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorspace-arguments-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorspace-arguments.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js: Added.

(pixelsApproximatelyEqual):

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-0.7333-0-0.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-1-0-0.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Generic-CMYK-BE000000.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Generic-CMYK-FF000000.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-p3d65.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-rec2020.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-srgb.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-fullcolor.ogv: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.avif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.bmp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.ico: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.webp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.avif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.bmp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.gif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.ico: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.webp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.js: Added.

(getRegularContextForFilter):
(matchImageDataResults):
(createPatternCanvas):

  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.worker.js: Added.

(createTestImage):
(test):
(test.draw):

  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.js: Added.

(t1.step):
(t2.step):

  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker.js: Added.

(test):

  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/transformations/2d.transformation.getTransform-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/transformations/2d.transformation.getTransform.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/transformations/w3c-import.log: Added.

LayoutTests:

  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-catalina/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
1:12 PM Changeset in webkit [285393] by mmaxfield@apple.com
  • 6 edits
    122 copies
    8 adds in trunk/Source/WebCore

[WebGPU] Add internal WebGPU API interface
https://bugs.webkit.org/show_bug.cgi?id=232792

Reviewed by Dean Jackson.

Source/WebCore:

Tiny fixup.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUCompilationInfo.cpp:

(WebCore::GPUCompilationInfo::messages const):

Source/WebCore/PAL:

Whenever we add new public API, we always have an internal version of the API which doesn't
know anything about things like promises and ActiveDOMObject. (One example is the difference
between FontFace and CSSFontFace.)

Adding such a internal version of the WebGPU API has 2 benefits:

  1. We can use WebGPU to implement WebKit features. For example, if we wanted to, we could

implement hardware accelerated SVG filters using WebGPU.

  1. We are actually going to have two implementations of the WebGPU API - one that is

implemented in WebKit (rather than WebCore) and implements all commands by simply
sending messages to the GPU process, and a second implementation in PAL that is
hooked up to WebGPU.framework (or Dawn or WGPU for the non-Apple ports). When the GPU
process receives the messages, it will forward them to the second implementation to
be executed. This new internal API provides a great places to provide virtual
function signatures which can be implemented in both places.

Mechanically, this new API lives in its own namespace within PAL: WebGPU, and therefore stops
using prefixes for all the type names. So, for example, the Javascript type named "GPUDevice"
corresponds to PAL::WebGPU::Device. This new API lives in PAL because it shouldn't need to
know anything about the DOM or style or anything like that.

There are no .cpp files in this patch - this patch just adds interfaces. Those interfaces will
be hooked up to real implementations in subsequent patches.

  • pal/graphics/WebGPU/WebGPU.h: Added.
  • pal/graphics/WebGPU/WebGPUAdapter.h: Added.

(PAL::WebGPU::Adapter::name const):
(PAL::WebGPU::Adapter::features const):
(PAL::WebGPU::Adapter::limits const):
(PAL::WebGPU::Adapter::isFallbackAdapter const):
(PAL::WebGPU::Adapter::Adapter):

  • pal/graphics/WebGPU/WebGPUAddressMode.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroup.h: Added.

(PAL::WebGPU::BindGroup::label const):
(PAL::WebGPU::BindGroup::setLabel):

  • pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroupEntry.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroupLayout.h: Added.

(PAL::WebGPU::BindGroupLayout::label const):
(PAL::WebGPU::BindGroupLayout::setLabel):

  • pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendComponent.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendFactor.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendOperation.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendState.h: Added.
  • pal/graphics/WebGPU/WebGPUBuffer.h: Added.

(PAL::WebGPU::Buffer::label const):
(PAL::WebGPU::Buffer::setLabel):

  • pal/graphics/WebGPU/WebGPUBufferBinding.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferBindingType.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferUsage.h: Added.
  • pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h: Added.
  • pal/graphics/WebGPU/WebGPUCanvasConfiguration.h: Added.
  • pal/graphics/WebGPU/WebGPUColorDict.h: Added.
  • pal/graphics/WebGPU/WebGPUColorTargetState.h: Added.
  • pal/graphics/WebGPU/WebGPUColorWrite.h: Added.
  • pal/graphics/WebGPU/WebGPUCommandBuffer.h: Added.

(PAL::WebGPU::CommandBuffer::label const):
(PAL::WebGPU::CommandBuffer::setLabel):

  • pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUCommandEncoder.h: Added.

(PAL::WebGPU::CommandEncoder::label const):
(PAL::WebGPU::CommandEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUCompareFunction.h: Added.
  • pal/graphics/WebGPU/WebGPUCompilationInfo.h: Added.
  • pal/graphics/WebGPU/WebGPUCompilationMessage.h: Added.
  • pal/graphics/WebGPU/WebGPUCompilationMessageType.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePassDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePassEncoder.h: Added.

(PAL::WebGPU::ComputePassEncoder::label const):
(PAL::WebGPU::ComputePassEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePassTimestampWrite.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePipeline.h: Added.

(PAL::WebGPU::ComputePipeline::label const):
(PAL::WebGPU::ComputePipeline::setLabel):

  • pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUCullMode.h: Added.
  • pal/graphics/WebGPU/WebGPUDepthStencilState.h: Added.
  • pal/graphics/WebGPU/WebGPUDevice.h: Added.

(PAL::WebGPU::Device::label const):
(PAL::WebGPU::Device::setLabel):
(PAL::WebGPU::Device::registerDeviceLostClient):
(PAL::WebGPU::Device::unregisterDeviceLostClient):

  • pal/graphics/WebGPU/WebGPUDeviceDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUDeviceLostInfo.h: Added.
  • pal/graphics/WebGPU/WebGPUDeviceLostReason.h: Added.
  • pal/graphics/WebGPU/WebGPUError.h: Added.
  • pal/graphics/WebGPU/WebGPUErrorFilter.h: Added.
  • pal/graphics/WebGPU/WebGPUExtent3DDict.h: Added.
  • pal/graphics/WebGPU/WebGPUExternalTexture.h: Added.

(PAL::WebGPU::ExternalTexture::label const):
(PAL::WebGPU::ExternalTexture::setLabel):

  • pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUFeatureName.h: Added.
  • pal/graphics/WebGPU/WebGPUFilterMode.h: Added.
  • pal/graphics/WebGPU/WebGPUFragmentState.h: Added.
  • pal/graphics/WebGPU/WebGPUFrontFace.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyBuffer.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyTexture.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h: Added.
  • pal/graphics/WebGPU/WebGPUImageDataLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUIndexFormat.h: Added.
  • pal/graphics/WebGPU/WebGPUIntegralTypes.h: Added.
  • pal/graphics/WebGPU/WebGPULoadOp.h: Added.
  • pal/graphics/WebGPU/WebGPUMapMode.h: Added.
  • pal/graphics/WebGPU/WebGPUMultisampleState.h: Added.
  • pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h: Added.
  • pal/graphics/WebGPU/WebGPUOrigin2DDict.h: Added.
  • pal/graphics/WebGPU/WebGPUOrigin3DDict.h: Added.
  • pal/graphics/WebGPU/WebGPUOutOfMemoryError.h: Added.
  • pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h: Added.
  • pal/graphics/WebGPU/WebGPUPipelineLayout.h: Added.

(PAL::WebGPU::PipelineLayout::label const):
(PAL::WebGPU::PipelineLayout::setLabel):

  • pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUPipelineStatisticName.h: Added.
  • pal/graphics/WebGPU/WebGPUPowerPreference.h: Added.
  • pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h: Added.
  • pal/graphics/WebGPU/WebGPUPrimitiveState.h: Added.
  • pal/graphics/WebGPU/WebGPUPrimitiveTopology.h: Added.
  • pal/graphics/WebGPU/WebGPUProgrammableStage.h: Added.
  • pal/graphics/WebGPU/WebGPUQuerySet.h: Added.

(PAL::WebGPU::QuerySet::label const):
(PAL::WebGPU::QuerySet::setLabel):

  • pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUQueryType.h: Added.
  • pal/graphics/WebGPU/WebGPUQueue.h: Added.

(PAL::WebGPU::Queue::label const):
(PAL::WebGPU::Queue::setLabel):

  • pal/graphics/WebGPU/WebGPURenderBundle.h: Added.

(PAL::WebGPU::RenderBundle::label const):
(PAL::WebGPU::RenderBundle::setLabel):

  • pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURenderBundleEncoder.h: Added.

(PAL::WebGPU::RenderBundleEncoder::label const):
(PAL::WebGPU::RenderBundleEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassEncoder.h: Added.

(PAL::WebGPU::RenderPassEncoder::label const):
(PAL::WebGPU::RenderPassEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPURenderPassLayout.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassTimestampWrite.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPipeline.h: Added.

(PAL::WebGPU::RenderPipeline::label const):
(PAL::WebGPU::RenderPipeline::setLabel):

  • pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURequestAdapterOptions.h: Added.
  • pal/graphics/WebGPU/WebGPUSampler.h: Added.

(PAL::WebGPU::Sampler::label const):
(PAL::WebGPU::Sampler::setLabel):

  • pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUSamplerBindingType.h: Added.
  • pal/graphics/WebGPU/WebGPUSamplerDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUShaderModule.h: Added.

(PAL::WebGPU::ShaderModule::label const):
(PAL::WebGPU::ShaderModule::setLabel):

  • pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUShaderStage.h: Added.
  • pal/graphics/WebGPU/WebGPUStencilFaceState.h: Added.
  • pal/graphics/WebGPU/WebGPUStencilOperation.h: Added.
  • pal/graphics/WebGPU/WebGPUStorageTextureAccess.h: Added.
  • pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUStoreOp.h: Added.
  • pal/graphics/WebGPU/WebGPUSupportedFeatures.h: Added.
  • pal/graphics/WebGPU/WebGPUSupportedLimits.h: Added.
  • pal/graphics/WebGPU/WebGPUTexture.h: Added.

(PAL::WebGPU::Texture::label const):
(PAL::WebGPU::Texture::setLabel):

  • pal/graphics/WebGPU/WebGPUTextureAspect.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureDimension.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureFormat.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureSampleType.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureUsage.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureView.h: Added.

(PAL::WebGPU::TextureView::label const):
(PAL::WebGPU::TextureView::setLabel):

  • pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureViewDimension.h: Added.
  • pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h: Added.
  • pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h: Added.
  • pal/graphics/WebGPU/WebGPUValidationError.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexAttribute.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexBufferLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexFormat.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexState.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexStepMode.h: Added.
10:58 AM Changeset in webkit [285392] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Use narrower types for style scope ordinal and cascade layer priority
https://bugs.webkit.org/show_bug.cgi?id=232797

Reviewed by Alan Bujtas.

This shrinks critical ElementRuleCollector data structures like MatchedRule.

64k layers ought to be enough for anybody (and 256 scopes).

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):

Check the scope depth limits.

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

(WebCore::Style::RuleSet::cascadeLayerPriorityForIdentifier const):
(WebCore::Style::RuleSet::cascadeLayerPriorityFor const):

Add a type alias and make it uint16_t.

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::updateCascadeLayerPriorities):

  • style/StyleScopeOrdinal.h:

(WebCore::Style::operator++):
(WebCore::Style::operator--):

Use int8_t. No realistic case requires more than a handful.

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

[LFC][IFC] bidi boundary does not necessarily mean soft wrapping opportunity
https://bugs.webkit.org/show_bug.cgi?id=232793

Reviewed by Antti Koivisto.

Prior to bidi support, we only split non-whitespace content at soft break opportunities e.g. hyphen.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity): Now we call findNextBreakablePosition on those rare bidi boundaries.
Could add a "break reason" to InlineTextItem if it turns out to be a perf issue.

8:07 AM Changeset in webkit [285390] by Simon Fraser
  • 7 edits
    2 adds in trunk

Implement UIScriptController.sendEventStream() on macOS for wheel events
https://bugs.webkit.org/show_bug.cgi?id=232794

Reviewed by Tim Horton.

eventSender.mouseScrollByWithWheelAndMomentumPhases() is problematic for timing-sensitive
scrolling behaviors because the timestamps used are not under script control. It's also
a rather unwieldy API.

To make wheel event testing easier, implement enough of UIScriptController.sendEventStream()
on macOS that it can generate a series of wheel events with predicable timestamps
(currently hardcoded to be 16.6ms apart).

Tools:

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::cgScrollPhaseFromPhase):
(WTR::cgGesturePhaseFromString):
(WTR::EventSenderProxy::sendWheelEvent):

  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::eventPhaseFromString):
(WTR::UIScriptControllerMac::sendEventStream):

LayoutTests:

  • fast/scrolling/mac/momentum-event-sequence-expected.txt: Added.
  • fast/scrolling/mac/momentum-event-sequence.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.async mouseWheelSequence.await.new.Promise):
(window.UIHelper.async mouseWheelSequence):

Nov 6, 2021:

9:07 PM Changeset in webkit [285389] by commit-queue@webkit.org
  • 6 edits in trunk

AX: WebKit1 PluginViewBase objects with an associated widget()->platformWidget() should be considered attachments
https://bugs.webkit.org/show_bug.cgi?id=232759

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-06
Reviewed by Chris Fleizach.

Source/WebCore:

In https://bugs.webkit.org/show_bug.cgi?id=229556 (AX: Make PDFs
loaded via <embed> accessible), we changed AccessibilityRenderObject::isAttachment
to return false if the underlying object represented a PluginViewBase
under the assumption that if a PluginViewBase existed, the object must
be a WebKit2 plugin. That assumption is wrong, because in certain
scenarios an object can be a WebKit1 PluginViewBase (e.g. attachments
inserted by WebKit1 webviews).

This patch changes isAttachment to only return false if the
PluginViewBase doesn't also have an associated platformWidget, which
should be present in WebKit1 only.

This patch also fixes a bug in the Mac -[WebAccessibilityObjectWrapper
subrole]. For objects with a role of group and no children, we
returned a subrole of AXEmptyGroup. However, we didn't check for the
presence of renderWidgetChildren that a group may have.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isAttachment const):
Consider PluginViewBase objects with an associated platformWidget to
be attachments.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):
Don't return AXEmptyGroup subrole for objects with
renderWidgetChildren.

LayoutTests:

This patch changes the Mac WebAccessibilityObjectWrapper to not return
an AXEmptyGroup subrole for objects with renderWidgetChildren.

  • accessibility/mac/basic-embed-pdf-accessibility-expected.txt:
  • accessibility/mac/basic-embed-pdf-accessibility.html:

Add expectation that the embed container doesn't have an AXEmptyGroup
subrole.

5:34 PM Changeset in webkit [285388] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix GTK build after r285381.
https://bugs.webkit.org/show_bug.cgi?id=232657

Unreviewed.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUShaderModuleDescriptor.h:
4:58 PM Changeset in webkit [285387] by Simon Fraser
  • 14 edits in trunk/Source/WebCore

Improve ScrollAnimation logging
https://bugs.webkit.org/show_bug.cgi?id=232789

Reviewed by Wenson Hsieh.

Add ScrollAnimation::debugDescription() and implement in concrete subclasses so each
can dump more information about the animation. In particular, the destination of
a momentum scroll is useful for debugging.

Improve logging at some locations that start animations.

  • platform/ScrollAnimation.cpp:

(WebCore::operator<<):

  • platform/ScrollAnimation.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::debugDescription const):

  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollAnimationMomentum.cpp:

(WebCore::ScrollAnimationMomentum::debugDescription const):

  • platform/ScrollAnimationMomentum.h:
  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::debugDescription const):

  • platform/ScrollAnimationSmooth.h:
  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::startAnimatedScrollToDestination):
(WebCore::ScrollingEffectsController::startMomentumScrollWithInitialVelocity):

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollAnimationRubberBand.h:
  • platform/mac/ScrollAnimationRubberBand.mm:

(WebCore::ScrollAnimationRubberBand::debugDescription const):

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::startRubberBandAnimation): The return value isn't used
by the caller but is a convenient way to avoid an unused variable warning.

4:39 PM Changeset in webkit [285386] by ddkilzer@apple.com
  • 6 edits
    81 deletes in trunk

Remove empty directories from from svn.webkit.org repository as of r285357
<https://webkit.org/b/232773>

Unreviewed clean up.

LayoutTests:

  • canvas: Removed.
  • platform/glib/imported/w3c/web-platform-tests/cors: Removed.
  • platform/glib/imported/w3c/web-platform-tests/dom/events: Removed.
  • platform/glib/imported/w3c/web-platform-tests/eventsource: Removed.
  • platform/glib/imported/w3c/web-platform-tests/svg/shapes/scripted: Removed.
  • platform/gtk/fast/forms/fieldset: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-images: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/media-source: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/animations: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/embedded: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/geometry/reftests: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/pservers: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/struct: Removed.
  • platform/gtk/media/W3C: Removed.
  • platform/gtk/media/media-source: Removed.
  • platform/gtk/media/mediacapabilities: Removed.
  • platform/gtk/webaudio: Removed.
  • platform/ios-14-wk2/imported/w3c/web-platform-tests/css: Removed.
  • platform/ios-simulator/webgl/2.0.0/conformance/buffers: Removed.
  • platform/ios-simulator/webgl/2.0.0/conformance/glsl: Removed.
  • platform/ios-simulator/webgl/2.0.0/conformance/reading: Removed.
  • platform/ios-wk2/fast/clip: Removed.
  • platform/ios-wk2/fast/dom/Window: Removed.
  • platform/ios-wk2/fast/multicol: Removed.
  • platform/ios-wk2/http/tests/adClickAttribution: Removed.
  • platform/ios-wk2/http/tests/security: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/webappapis: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/svg/painting: Removed.
  • platform/ios/compositing/contents-opaque: Removed.
  • platform/ios/css3/calc: Removed.
  • platform/ios/fast/events/constructors: Removed.
  • platform/ios/imported/w3c/web-platform-tests/cors: Removed.
  • platform/ios/imported/w3c/web-platform-tests/fetch/api/basic: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-meter-element: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/interactive-elements: Removed.
  • platform/ios/imported/w3c/web-platform-tests/web-animations: Removed.
  • platform/mac-mojave/imported/w3c/web-platform-tests/WebCryptoAPI: Removed.
  • platform/mac-wk1/fast/canvas: Removed.
  • platform/mac-wk1/http/wpt/html/browsers: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/geometry: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/history/joint-session-history: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/history/the-history-interface: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/svg: Removed.
  • platform/mac-wk1/inspector/model: Removed.
  • platform/mac-wk2/canvas: Removed.
  • platform/mac-wk2/editing/style: Removed.
  • platform/mac-wk2/fast/frames/flattening: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content: Removed.
  • platform/mac-wk2/media: Removed.
  • platform/mac/canvas: Removed.
  • platform/mac/editing/mac/selection: Removed.
  • platform/mac/fast/dom/HTMLImageElement/resources: Removed.
  • platform/mac/imported/w3c/web-platform-tests/IndexedDB: Removed.
  • platform/mac/imported/w3c/web-platform-tests/cors: Removed.
  • platform/mac/imported/w3c/web-platform-tests/css/css-masking: Removed.
  • platform/mac/security: Removed.
  • platform/mac/userscripts: Removed.
  • platform/win-7sp0/media/W3C/audio: Removed.
  • platform/win/canvas: Removed.
  • platform/wincairo/css3/calc: Removed.
  • platform/wk2/http/tests/contentdispositionattachmentsandbox: Removed.
  • platform/wk2/http/tests/contentextensions: Removed.
  • platform/wk2/imported/w3c/web-platform-tests/html/browsers: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-images: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/webappapis: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/embedded: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/geometry/reftests: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/pservers: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/struct: Removed.

Source/ThirdParty/ANGLE:

  • src/id: Removed.
  • src/libANGLE/renderer/metal/shaders/compiled: Removed.
  • src/tests/perf_tests/restricted_traces: Removed.

Source/WebKitLegacy/mac:

  • Plugins/Hosted: Removed.

Tools:

  • WebKitTestRunner/WebKitTestRunnerApp/en.lproj: Removed.

Tools/buildstream:

  • patches/fdo: Removed.
  • patches/mesa: Removed.

Websites/perf.webkit.org:

  • public/js: Removed.
  • public/v2/js: Removed.
4:30 PM Changeset in webkit [285385] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Fixing style checks in WebGPU bindings code
https://bugs.webkit.org/show_bug.cgi?id=232790

Unreviewed.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUCompilationMessage.cpp:
  • Modules/WebGPU/GPUComputePipeline.h:
  • Modules/WebGPU/GPUDevice.h:
4:17 PM Changeset in webkit [285384] by mmaxfield@apple.com
  • 11 edits
    28 copies in trunk/Source/WebCore

font-synthesis inline/computed style should be in canonical order.
https://bugs.webkit.org/show_bug.cgi?id=186344

Patch by Joonghun Park <jh718.park@samsung.com> on 2021-11-06
Reviewed by Myles C. Maxfield.

Per the spec, https://drafts.csswg.org/css-fonts/#font-synthesis.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontSynthesis):

4:07 PM Changeset in webkit [285383] by jh718.park@samsung.com
  • 32 edits in trunk

font-synthesis inline/computed style should be in canonical order.
https://bugs.webkit.org/show_bug.cgi?id=186344

Reviewed by Myles C. Maxfield.

Per the spec, https://drafts.csswg.org/css-fonts/#font-synthesis.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/inheritance-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-synthesis-computed-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-synthesis-valid-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontSynthesis):

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css3-text/font-synthesis-parse-expected.txt:
  • fast/css3-text/font-synthesis-parse.html:
  • fast/text/font-synthesis-parsing-expected.txt:
  • fast/text/font-synthesis-parsing.html:
  • platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/glib/svg/css/getComputedStyle-basic-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
4:04 PM Changeset in webkit [285382] by mmaxfield@apple.com
  • 20 edits
    69 copies
    9 adds in trunk/Source/WebCore

[WebGPU] Bindings Part 7: Bring back command encoder bindings code
https://bugs.webkit.org/show_bug.cgi?id=232661

Reviewed by Dean Jackson.

This is the seventh chunk of bindings code, brought back from r280467.
This chunk includes the command encoder objects.
The objects have no methods inside them yet - those will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUColorDict.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUColorDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUCommandBuffer.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.

(WebCore::GPUCommandBuffer::label const):
(WebCore::GPUCommandBuffer::setLabel):

  • Modules/WebGPU/GPUCommandBuffer.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.

(WebCore::GPUCommandBuffer::create):
(WebCore::GPUCommandBuffer::GPUCommandBuffer):

  • Modules/WebGPU/GPUCommandBuffer.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUCommandBufferDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUCommandBufferDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUCommandEncoder.cpp: Added.

(WebCore::GPUCommandEncoder::label const):
(WebCore::GPUCommandEncoder::setLabel):
(WebCore::GPUCommandEncoder::beginRenderPass):
(WebCore::GPUCommandEncoder::beginComputePass):
(WebCore::GPUCommandEncoder::copyBufferToBuffer):
(WebCore::GPUCommandEncoder::copyBufferToTexture):
(WebCore::GPUCommandEncoder::copyTextureToBuffer):
(WebCore::GPUCommandEncoder::copyTextureToTexture):
(WebCore::GPUCommandEncoder::fillBuffer):
(WebCore::GPUCommandEncoder::pushDebugGroup):
(WebCore::GPUCommandEncoder::popDebugGroup):
(WebCore::GPUCommandEncoder::insertDebugMarker):
(WebCore::GPUCommandEncoder::writeTimestamp):
(WebCore::GPUCommandEncoder::resolveQuerySet):
(WebCore::GPUCommandEncoder::finish):

  • Modules/WebGPU/GPUCommandEncoder.h: Added.

(WebCore::GPUCommandEncoder::create):

  • Modules/WebGPU/GPUCommandEncoder.idl: Added.
  • Modules/WebGPU/GPUCommandEncoderDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUCommandEncoderDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUCompilationMessage.h:

(WebCore::GPUCompilationMessage::GPUCompilationMessage): Deleted.

  • Modules/WebGPU/GPUComputePassDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUComputePassDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUComputePassEncoder.cpp: Added.

(WebCore::GPUComputePassEncoder::label const):
(WebCore::GPUComputePassEncoder::setLabel):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::dispatchIndirect):
(WebCore::GPUComputePassEncoder::beginPipelineStatisticsQuery):
(WebCore::GPUComputePassEncoder::endPipelineStatisticsQuery):
(WebCore::GPUComputePassEncoder::endPass):
(WebCore::GPUComputePassEncoder::setBindGroup):
(WebCore::GPUComputePassEncoder::pushDebugGroup):
(WebCore::GPUComputePassEncoder::popDebugGroup):
(WebCore::GPUComputePassEncoder::insertDebugMarker):

  • Modules/WebGPU/GPUComputePassEncoder.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.h.

(WebCore::GPUComputePassEncoder::create):

  • Modules/WebGPU/GPUComputePassEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUComputePassTimestampLocation.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUComputePassTimestampLocation.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUComputePassTimestampWrite.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUComputePassTimestampWrite.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createShaderModule):
(WebCore::GPUDevice::createComputePipeline):
(WebCore::GPUDevice::createRenderPipeline):
(WebCore::GPUDevice::createComputePipelineAsync):
(WebCore::GPUDevice::createRenderPipelineAsync):
(WebCore::GPUDevice::createCommandEncoder):
(WebCore::GPUDevice::createRenderBundleEncoder):
(WebCore::GPUDevice::createQuerySet):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUExtent3DDict.h:
  • Modules/WebGPU/GPUImageCopyBuffer.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUImageCopyBuffer.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUImageCopyExternalImage.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUImageCopyExternalImage.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUImageCopyTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUImageCopyTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUImageCopyTextureTagged.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUImageCopyTextureTagged.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUImageDataLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUImageDataLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPULoadOp.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPULoadOp.idl: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUOrigin2DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUOrigin2DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUOrigin3DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUOrigin3DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUPipelineStatisticName.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUPipelineStatisticName.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUPowerPreference.idl:
  • Modules/WebGPU/GPUProgrammablePassEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUQuerySet.cpp: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.

(WebCore::GPUQuerySet::label const):
(WebCore::GPUQuerySet::setLabel):
(WebCore::GPUQuerySet::destroy):

  • Modules/WebGPU/GPUQuerySet.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.

(WebCore::GPUQuerySet::create):

  • Modules/WebGPU/GPUQuerySet.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUQuerySetDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUQuerySetDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUQueryType.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUQueryType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUQueue.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUTexture.cpp.

(WebCore::GPUQueue::label const):
(WebCore::GPUQueue::setLabel):
(WebCore::GPUQueue::submit):
(WebCore::GPUQueue::onSubmittedWorkDone):
(WebCore::GPUQueue::writeBuffer):
(WebCore::GPUQueue::writeTexture):
(WebCore::GPUQueue::copyExternalImageToTexture):

  • Modules/WebGPU/GPUQueue.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.h.

(WebCore::GPUQueue::create):

  • Modules/WebGPU/GPUQueue.idl: Added.
  • Modules/WebGPU/GPURenderBundle.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.

(WebCore::GPURenderBundle::label const):
(WebCore::GPURenderBundle::setLabel):

  • Modules/WebGPU/GPURenderBundle.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.

(WebCore::GPURenderBundle::create):

  • Modules/WebGPU/GPURenderBundle.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderBundleDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPURenderBundleDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPURenderBundleEncoder.cpp: Added.

(WebCore::GPURenderBundleEncoder::label const):
(WebCore::GPURenderBundleEncoder::setLabel):
(WebCore::GPURenderBundleEncoder::setPipeline):
(WebCore::GPURenderBundleEncoder::setIndexBuffer):
(WebCore::GPURenderBundleEncoder::setVertexBuffer):
(WebCore::GPURenderBundleEncoder::draw):
(WebCore::GPURenderBundleEncoder::drawIndexed):
(WebCore::GPURenderBundleEncoder::drawIndirect):
(WebCore::GPURenderBundleEncoder::drawIndexedIndirect):
(WebCore::GPURenderBundleEncoder::setBindGroup):
(WebCore::GPURenderBundleEncoder::pushDebugGroup):
(WebCore::GPURenderBundleEncoder::popDebugGroup):
(WebCore::GPURenderBundleEncoder::insertDebugMarker):
(WebCore::GPURenderBundleEncoder::finish):

  • Modules/WebGPU/GPURenderBundleEncoder.h: Added.

(WebCore::GPURenderBundleEncoder::create):

  • Modules/WebGPU/GPURenderBundleEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderEncoderBase.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPURenderPassColorAttachment.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassColorAttachment.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPURenderPassDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPassEncoder.cpp: Added.

(WebCore::GPURenderPassEncoder::label const):
(WebCore::GPURenderPassEncoder::setLabel):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setIndexBuffer):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::drawIndexed):
(WebCore::GPURenderPassEncoder::drawIndirect):
(WebCore::GPURenderPassEncoder::drawIndexedIndirect):
(WebCore::GPURenderPassEncoder::setBindGroup):
(WebCore::GPURenderPassEncoder::pushDebugGroup):
(WebCore::GPURenderPassEncoder::popDebugGroup):
(WebCore::GPURenderPassEncoder::insertDebugMarker):
(WebCore::GPURenderPassEncoder::setViewport):
(WebCore::GPURenderPassEncoder::setScissorRect):
(WebCore::GPURenderPassEncoder::setBlendConstant):
(WebCore::GPURenderPassEncoder::setStencilReference):
(WebCore::GPURenderPassEncoder::beginOcclusionQuery):
(WebCore::GPURenderPassEncoder::endOcclusionQuery):
(WebCore::GPURenderPassEncoder::beginPipelineStatisticsQuery):
(WebCore::GPURenderPassEncoder::endPipelineStatisticsQuery):
(WebCore::GPURenderPassEncoder::executeBundles):
(WebCore::GPURenderPassEncoder::endPass):

  • Modules/WebGPU/GPURenderPassEncoder.h: Added.

(WebCore::GPURenderPassEncoder::create):

  • Modules/WebGPU/GPURenderPassEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPURenderPassLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPassTimestampLocation.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPURenderPassTimestampLocation.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPURenderPassTimestampWrite.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassTimestampWrite.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPipeline.cpp:

(WebCore::GPURenderPipeline::label const):
(WebCore::GPURenderPipeline::setLabel):

  • Modules/WebGPU/GPURenderPipeline.h:

(WebCore::GPURenderPipeline::label const): Deleted.
(WebCore::GPURenderPipeline::setLabel): Deleted.

  • Modules/WebGPU/GPURequestAdapterOptions.idl:
  • Modules/WebGPU/GPUShaderModule.cpp:

(WebCore::GPUShaderModule::label const):
(WebCore::GPUShaderModule::setLabel):

  • Modules/WebGPU/GPUShaderModule.h:

(WebCore::GPUShaderModule::label const): Deleted.
(WebCore::GPUShaderModule::setLabel): Deleted.

  • Modules/WebGPU/GPUStoreOp.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUStoreOp.idl: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUTexture.cpp:

(WebCore::GPUTexture::label const):
(WebCore::GPUTexture::setLabel):
(WebCore::GPUTexture::createView const):
(WebCore::GPUTexture::destroy):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
3:38 PM Changeset in webkit [285381] by mmaxfield@apple.com
  • 11 edits
    70 copies in trunk/Source/WebCore

[WebGPU] Bindings Part 6: Bring back compilation bindings code
https://bugs.webkit.org/show_bug.cgi?id=232657

Reviewed by Dean Jackson.

This is the sixth chunk of bindings code, brought back from r280467.
This chunk includes the objects related to shader compilation.
The objects have no methods inside them yet - those will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUBlendComponent.h: Added.
  • Modules/WebGPU/GPUBlendComponent.idl: Added.
  • Modules/WebGPU/GPUBlendFactor.h: Added.
  • Modules/WebGPU/GPUBlendFactor.idl: Added.
  • Modules/WebGPU/GPUBlendOperation.h: Added.
  • Modules/WebGPU/GPUBlendOperation.idl: Added.
  • Modules/WebGPU/GPUBlendState.h: Added.
  • Modules/WebGPU/GPUBlendState.idl: Added.
  • Modules/WebGPU/GPUColorTargetState.h: Added.
  • Modules/WebGPU/GPUColorTargetState.idl: Added.
  • Modules/WebGPU/GPUColorWrite.h: Added.
  • Modules/WebGPU/GPUColorWrite.idl: Added.
  • Modules/WebGPU/GPUCompilationInfo.cpp: Added.

(WebCore::GPUCompilationInfo::messages const):

  • Modules/WebGPU/GPUCompilationInfo.h: Added.

(WebCore::GPUCompilationInfo::create):

  • Modules/WebGPU/GPUCompilationInfo.idl: Added.
  • Modules/WebGPU/GPUCompilationMessage.cpp: Added.

(WebCore::GPUCompilationMessage::message const):
(WebCore::GPUCompilationMessage::type const):
(WebCore::GPUCompilationMessage::lineNum const):
(WebCore::GPUCompilationMessage::linePos const):
(WebCore::GPUCompilationMessage::offset const):
(WebCore::GPUCompilationMessage::length const):

  • Modules/WebGPU/GPUCompilationMessage.h: Added.

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

  • Modules/WebGPU/GPUCompilationMessage.idl: Added.
  • Modules/WebGPU/GPUCompilationMessageType.h: Added.
  • Modules/WebGPU/GPUCompilationMessageType.idl: Added.
  • Modules/WebGPU/GPUComputePipeline.cpp: Added.

(WebCore::GPUComputePipeline::label const):
(WebCore::GPUComputePipeline::setLabel):
(WebCore::GPUComputePipeline::getBindGroupLayout):

  • Modules/WebGPU/GPUComputePipeline.h: Added.

(WebCore::GPUComputePipeline::create):

  • Modules/WebGPU/GPUComputePipeline.idl: Added.
  • Modules/WebGPU/GPUComputePipelineDescriptor.h: Added.
  • Modules/WebGPU/GPUComputePipelineDescriptor.idl: Added.
  • Modules/WebGPU/GPUCullMode.h: Added.
  • Modules/WebGPU/GPUCullMode.idl: Added.
  • Modules/WebGPU/GPUDepthStencilState.h: Added.
  • Modules/WebGPU/GPUDepthStencilState.idl: Added.
  • Modules/WebGPU/GPUFragmentState.h: Added.
  • Modules/WebGPU/GPUFragmentState.idl: Added.
  • Modules/WebGPU/GPUFrontFace.h: Added.
  • Modules/WebGPU/GPUFrontFace.idl: Added.
  • Modules/WebGPU/GPUIndexFormat.h: Added.
  • Modules/WebGPU/GPUIndexFormat.idl: Added.
  • Modules/WebGPU/GPUMultisampleState.h: Added.
  • Modules/WebGPU/GPUMultisampleState.idl: Added.
  • Modules/WebGPU/GPUPipelineBase.idl: Added.
  • Modules/WebGPU/GPUPipelineDescriptorBase.h: Added.
  • Modules/WebGPU/GPUPipelineDescriptorBase.idl: Added.
  • Modules/WebGPU/GPUPrimitiveState.h: Added.
  • Modules/WebGPU/GPUPrimitiveState.idl: Added.
  • Modules/WebGPU/GPUPrimitiveTopology.h: Added.
  • Modules/WebGPU/GPUPrimitiveTopology.idl: Added.
  • Modules/WebGPU/GPUProgrammableStage.h: Added.
  • Modules/WebGPU/GPUProgrammableStage.idl: Added.
  • Modules/WebGPU/GPURenderPipeline.cpp: Added.

(WebCore::GPURenderPipeline::getBindGroupLayout):

  • Modules/WebGPU/GPURenderPipeline.h: Added.

(WebCore::GPURenderPipeline::create):
(WebCore::GPURenderPipeline::label const):
(WebCore::GPURenderPipeline::setLabel):

  • Modules/WebGPU/GPURenderPipeline.idl: Added.
  • Modules/WebGPU/GPURenderPipelineDescriptor.h: Added.
  • Modules/WebGPU/GPURenderPipelineDescriptor.idl: Added.
  • Modules/WebGPU/GPUShaderModule.cpp: Added.

(WebCore::GPUShaderModule::compilationInfo):

  • Modules/WebGPU/GPUShaderModule.h: Added.

(WebCore::GPUShaderModule::create):
(WebCore::GPUShaderModule::label const):
(WebCore::GPUShaderModule::setLabel):

  • Modules/WebGPU/GPUShaderModule.idl: Added.
  • Modules/WebGPU/GPUShaderModuleDescriptor.h: Added.
  • Modules/WebGPU/GPUShaderModuleDescriptor.idl: Added.
  • Modules/WebGPU/GPUStencilFaceState.h: Added.
  • Modules/WebGPU/GPUStencilFaceState.idl: Added.
  • Modules/WebGPU/GPUStencilOperation.h: Added.
  • Modules/WebGPU/GPUStencilOperation.idl: Added.
  • Modules/WebGPU/GPUVertexAttribute.h: Added.
  • Modules/WebGPU/GPUVertexAttribute.idl: Added.
  • Modules/WebGPU/GPUVertexBufferLayout.h: Added.
  • Modules/WebGPU/GPUVertexBufferLayout.idl: Added.
  • Modules/WebGPU/GPUVertexFormat.h: Added.
  • Modules/WebGPU/GPUVertexFormat.idl: Added.
  • Modules/WebGPU/GPUVertexState.h: Added.
  • Modules/WebGPU/GPUVertexState.idl: Added.
  • Modules/WebGPU/GPUVertexStepMode.h: Added.
  • Modules/WebGPU/GPUVertexStepMode.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
3:16 PM Changeset in webkit [285380] by mmaxfield@apple.com
  • 12 edits
    41 copies in trunk/Source/WebCore

[WebGPU] Bindings Part 5: Bring back Pipeline bindings code
https://bugs.webkit.org/show_bug.cgi?id=232612

Reviewed by Dean Jackson.

This is the fifth chunk of bindings code, brought back from r280467.
This chunk includes the PipelineLayout object. Interestingly, it
doesn't actually have any methods. Its presence is just used when
creating pipelines.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUAdapter.cpp:

(WebCore::GPUAdapter::requestDevice):

  • Modules/WebGPU/GPUBindGroup.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroup::label const):
(WebCore::GPUBindGroup::setLabel):

  • Modules/WebGPU/GPUBindGroup.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroup::create):

  • Modules/WebGPU/GPUBindGroup.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupEntry.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupEntry.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayout.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroupLayout::label const):
(WebCore::GPUBindGroupLayout::setLabel):

  • Modules/WebGPU/GPUBindGroupLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroupLayout::create):

  • Modules/WebGPU/GPUBindGroupLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutEntry.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutEntry.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBinding.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBinding.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingType.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createBindGroupLayout):
(WebCore::GPUDevice::createPipelineLayout):
(WebCore::GPUDevice::createBindGroup):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUExternalTextureBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUExternalTextureBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUPipelineLayout.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUPipelineLayout::label const):
(WebCore::GPUPipelineLayout::setLabel):

  • Modules/WebGPU/GPUPipelineLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUPipelineLayout::create):

  • Modules/WebGPU/GPUPipelineLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUPipelineLayoutDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUPipelineLayoutDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingType.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUShaderStage.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUShaderStage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureAccess.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureAccess.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureSampleType.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureSampleType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
3:02 PM Changeset in webkit [285379] by mmaxfield@apple.com
  • 11 edits
    11 copies in trunk/Source/WebCore

[WebGPU] Bindings part 4: Bring back Sampler bindings code
https://bugs.webkit.org/show_bug.cgi?id=232610

Reviewed by Dean Jackson.

This is the fourth chunk of bindings code, brought back from r280467.
This chunk includes the Sampler object. Interestingly, it doesn't actually
have any methods. Its presence is just used inside bind groups.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUAddressMode.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUAddressMode.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUCompareFunction.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUCompareFunction.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createSampler):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUFilterMode.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUFilterMode.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUSampler.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUSampler::label const):
(WebCore::GPUSampler::setLabel):

  • Modules/WebGPU/GPUSampler.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUSampler::create):

  • Modules/WebGPU/GPUSampler.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUSamplerDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUSamplerDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
2:50 PM Changeset in webkit [285378] by mmaxfield@apple.com
  • 11 edits
    25 copies
    2 adds in trunk/Source/WebCore

[WebGPU] Bindings Part 3: Bring back Texture bindings code
https://bugs.webkit.org/show_bug.cgi?id=232609

Reviewed by Dean Jackson.

This is the third chunk of bindings code, brought back from r280467.
This chunk includes the Texture object. Its methods are just stubbed out
and do nothing - those implementations will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createTexture):
(WebCore::GPUDevice::importExternalTexture):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUExtent3DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExtent3DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExternalTexture.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUExternalTexture::label const):
(WebCore::GPUExternalTexture::setLabel):

  • Modules/WebGPU/GPUExternalTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUExternalTexture::create):

  • Modules/WebGPU/GPUExternalTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExternalTextureDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExternalTextureDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTexture.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTexture::createView const):
(WebCore::GPUTexture::destroy):
(WebCore::GPUTexture::label const):
(WebCore::GPUTexture::setLabel):

  • Modules/WebGPU/GPUTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTexture::create):

  • Modules/WebGPU/GPUTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureAspect.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureAspect.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDimension.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDimension.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureFormat.h: Added.
  • Modules/WebGPU/GPUTextureFormat.idl: Added.
  • Modules/WebGPU/GPUTextureUsage.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureUsage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureView.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTextureView::label const):
(WebCore::GPUTextureView::setLabel):

  • Modules/WebGPU/GPUTextureView.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTextureView::create):

  • Modules/WebGPU/GPUTextureView.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDimension.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDimension.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
2:08 PM Changeset in webkit [285377] by mmaxfield@apple.com
  • 16 edits
    10 copies in trunk/Source/WebCore

[WebGPU] Bindings part 2: Bring back Buffer bindings code
https://bugs.webkit.org/show_bug.cgi?id=232560

Reviewed by Alex Christensen.

This is the second chunk of bindings code, brought back from r280467.
This chunk includes the Buffer object. Its methods are just stubbed out
and do nothing - those implementations will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUBuffer.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.

(WebCore::GPUBuffer::label const):
(WebCore::GPUBuffer::setLabel):
(WebCore::GPUBuffer::mapAsync):
(WebCore::GPUBuffer::getMappedRange):
(WebCore::GPUBuffer::unmap):
(WebCore::GPUBuffer::destroy):

  • Modules/WebGPU/GPUBuffer.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.

(WebCore::GPUBuffer::create):

  • Modules/WebGPU/GPUBuffer.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUBufferDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUBufferDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUBufferUsage.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUBufferUsage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::destroy):
(WebCore::GPUDevice::createBuffer):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUIntegralTypes.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUMapMode.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUMapMode.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/applepay/ApplePayCancelEvent.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
1:50 PM Changeset in webkit [285376] by mmaxfield@apple.com
  • 19 edits
    30 adds in trunk/Source

[WebGPU] Bindings part 1: Bring back Adapter/Device bindings code
https://bugs.webkit.org/show_bug.cgi?id=232550

Reviewed by Alex Christensen.

Source/WebCore:

This is the first chunk of bindings code, brought back from r280467.
This chunk includes the Adapter and Device object. The Device object
has no methods inside it yet - those will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPU.cpp: Added.

(WebCore::GPU::requestAdapter):

  • Modules/WebGPU/GPU.h: Added.

(WebCore::GPU::create):

  • Modules/WebGPU/GPU.idl: Added.
  • Modules/WebGPU/GPUAdapter.cpp: Added.

(WebCore::GPUAdapter::name const):
(WebCore::GPUAdapter::features const):
(WebCore::GPUAdapter::limits const):
(WebCore::GPUAdapter::isFallbackAdapter const):
(WebCore::GPUAdapter::requestDevice):

  • Modules/WebGPU/GPUAdapter.h: Added.

(WebCore::GPUAdapter::create):

  • Modules/WebGPU/GPUAdapter.idl: Added.
  • Modules/WebGPU/GPUDevice.cpp: Added.

(WebCore::GPUDevice::label const):
(WebCore::GPUDevice::setLabel):
(WebCore::GPUDevice::features const):
(WebCore::GPUDevice::limits const):

  • Modules/WebGPU/GPUDevice.h: Added.

(WebCore::GPUDevice::create):
(WebCore::GPUDevice::GPUDevice):

  • Modules/WebGPU/GPUDevice.idl: Added.
  • Modules/WebGPU/GPUDeviceDescriptor.h: Added.
  • Modules/WebGPU/GPUDeviceDescriptor.idl: Added.
  • Modules/WebGPU/GPUFeatureName.h: Added.
  • Modules/WebGPU/GPUFeatureName.idl: Added.
  • Modules/WebGPU/GPUObjectBase.idl: Added.
  • Modules/WebGPU/GPUObjectDescriptorBase.h: Added.
  • Modules/WebGPU/GPUObjectDescriptorBase.idl: Added.
  • Modules/WebGPU/GPUPowerPreference.h: Added.
  • Modules/WebGPU/GPUPowerPreference.idl: Added.
  • Modules/WebGPU/GPUPredefinedColorSpace.h: Added.
  • Modules/WebGPU/GPUPredefinedColorSpace.idl: Added.
  • Modules/WebGPU/GPURequestAdapterOptions.h: Added.
  • Modules/WebGPU/GPURequestAdapterOptions.idl: Added.
  • Modules/WebGPU/GPUSupportedFeatures.cpp: Added.

(WebCore::GPUSupportedFeatures::initializeSetLike const):

  • Modules/WebGPU/GPUSupportedFeatures.h: Added.

(WebCore::GPUSupportedFeatures::create):

  • Modules/WebGPU/GPUSupportedFeatures.idl: Added.
  • Modules/WebGPU/GPUSupportedLimits.cpp: Added.

(WebCore::GPUSupportedLimits::maxTextureDimension1D const):
(WebCore::GPUSupportedLimits::maxTextureDimension2D const):
(WebCore::GPUSupportedLimits::maxTextureDimension3D const):
(WebCore::GPUSupportedLimits::maxTextureArrayLayers const):
(WebCore::GPUSupportedLimits::maxBindGroups const):
(WebCore::GPUSupportedLimits::maxDynamicUniformBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxDynamicStorageBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxSampledTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxSamplersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBufferBindingSize const):
(WebCore::GPUSupportedLimits::maxStorageBufferBindingSize const):
(WebCore::GPUSupportedLimits::minUniformBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::minStorageBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::maxVertexBuffers const):
(WebCore::GPUSupportedLimits::maxVertexAttributes const):
(WebCore::GPUSupportedLimits::maxVertexBufferArrayStride const):
(WebCore::GPUSupportedLimits::maxInterStageShaderComponents const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupStorageSize const):
(WebCore::GPUSupportedLimits::maxComputeInvocationsPerWorkgroup const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeX const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeY const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeZ const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupsPerDimension const):

  • Modules/WebGPU/GPUSupportedLimits.h: Added.

(WebCore::GPUSupportedLimits::create):

  • Modules/WebGPU/GPUSupportedLimits.idl: Added.
  • Modules/WebGPU/NavigatorGPU.idl: Added.
  • Modules/applepay/PaymentCoordinator.cpp:
  • Modules/mediasource/SourceBuffer.h:
  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/scripts/CodeGenerator.pm:

(ProcessDocument):

  • dom/EventTargetFactory.in:
  • page/Navigator.idl:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::NavigatorBase):

  • page/NavigatorBase.h:

(WebCore::NavigatorBase::gpu):

  • page/WorkerNavigator.idl:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
12:43 PM Changeset in webkit [285375] by Simon Fraser
  • 6 edits in trunk/Source

WheelEventDeltaFilter::shouldApplyFilteringForEvent can be a static function
https://bugs.webkit.org/show_bug.cgi?id=232786

Reviewed by Wenson Hsieh.
Source/WebCore:

This function just looks at event phase. It can be static.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultWheelEventHandler):

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent):
(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent const): Deleted.

  • page/WheelEventDeltaFilter.h:

Source/WebKit:

This function just looks at event phase. It can be static.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

12:41 PM Changeset in webkit [285374] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Process all replacement, control and opaque inline items.
https://bugs.webkit.org/show_bug.cgi?id=232772

Reviewed by Antti Koivisto.

Keep track of each inline item position in the paragraph content (including the opaque items with nullopt position) in a vector.
(This offset vector is always in sync with the InlineItems vector (i.e. nth value refers to the nth inline item)
Note that it needs to grow together with the InlineItems as we split inline text content on bidi boundaries.)

  1. Walk the InlineItems up to the bidi end position and assign the computed bidi level to each entry.
  2. Split the inline text item on the bidi boundary as needed.
  3. Post-process the opaque items (items that are not part of the paragraph content).
  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::buildBidiParagraph):
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::split):
(WebCore::Layout::InlineTextItem::splitAt): Deleted.

  • layout/formattingContexts/inline/InlineTextItem.h:
12:20 PM Changeset in webkit [285373] by Antti Koivisto
  • 26 edits
    8 deletes in trunk/Source/WebCore

Remove separate classes for CSS wide keywords (initial/inherit/unset/revert)
https://bugs.webkit.org/show_bug.cgi?id=232750

Reviewed by Sam Weinig.

Remove CSSInitialValue, CSSInheritedValue, CSSRevertValue and CSSUnsetValue classes.
They can all be handled by CSSPrimitiveValue.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDeprecatedCSSOMValueCustom.cpp:

(WebCore::toJSNewlyCreated):

Avoid changing the class type visible in CSSOM.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationStyleFlagsToCSSValue):
(WebCore::renderTextDecorationSkipToCSSValue):

  • css/CSSInheritedValue.cpp: Removed.
  • css/CSSInheritedValue.h: Removed.
  • css/CSSInitialValue.cpp: Removed.
  • css/CSSInitialValue.h: Removed.
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::isCSSWideKeyword const):

  • css/CSSPrimitiveValue.h:
  • css/CSSRevertValue.cpp: Removed.
  • css/CSSRevertValue.h: Removed.
  • css/CSSUnsetValue.cpp: Removed.
  • css/CSSUnsetValue.h: Removed.
  • css/CSSValue.cpp:

(WebCore::CSSValue::cssValueType const):
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::treatAsInheritedValue const):
(WebCore::CSSValue::treatAsInitialValue const):
(WebCore::CSSValue::isInitialValue const):
(WebCore::CSSValue::isImplicitInitialValue const):
(WebCore::CSSValue::isInheritValue const):
(WebCore::CSSValue::isUnsetValue const):
(WebCore::CSSValue::isRevertValue const):
(WebCore::CSSValue::isCSSWideKeyword const):

  • css/CSSValue.h:

(WebCore::CSSValue::CSSValue):
(WebCore::CSSValue::isInheritedValue const): Deleted.
(WebCore::CSSValue::isInitialValue const): Deleted.
(WebCore::CSSValue::isUnsetValue const): Deleted.
(WebCore::CSSValue::isRevertValue const): Deleted.
(WebCore::CSSValue::isGlobalKeyword const): Deleted.

  • css/CSSValuePool.cpp:

(WebCore::StaticCSSValuePool::StaticCSSValuePool):

  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createImplicitInitialValue):
(WebCore::CSSValuePool::createInheritedValue): Deleted.
(WebCore::CSSValuePool::createExplicitInitialValue): Deleted.
(WebCore::CSSValuePool::createUnsetValue): Deleted.
(WebCore::CSSValuePool::createRevertValue): Deleted.

  • css/DeprecatedCSSOMPrimitiveValue.h:

(WebCore::DeprecatedCSSOMPrimitiveValue::isCSSWideKeyword const):

  • css/SelectorChecker.cpp:
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::borderRadiusValue const):
(WebCore::StyleProperties::pageBreakPropertyValue const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::parseKeywordValue):

  • css/parser/CSSParserIdioms.h:

(WebCore::isCSSWideKeyword):
(WebCore::isValidCustomIdentifier):

Separate the concept of valid custom identifier from that of CSS-wide keyword. The former also excludes the obsolete "default" keyword.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::maybeConsumeCSSWideKeyword):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
(WebCore::CSSPropertyParserHelpers::consumeCounterStyleNameInPrelude):
(WebCore::CSSPropertyParserHelpers::concatenateFamilyName):
(WebCore::CSSPropertyParserHelpers::isCSSWideKeyword): Deleted.

  • editing/EditingStyle.cpp:

(WebCore::fontWeightIsBold):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverterCaches::floatPropertyValueForNode):
(HTMLConverterCaches::colorPropertyValueForNode):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::createSharedCellStyle const):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addMatchedProperties):

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyProperty):
(WebCore::Style::Builder::resolveValue):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::parseAttribute):

11:35 AM Changeset in webkit [285372] by Kocsen Chung
  • 1 copy in tags/Safari-612.3.4

Tag Safari-612.3.4.

8:51 AM Changeset in webkit [285371] by commit-queue@webkit.org
  • 6 edits
    2 moves in trunk

AX: Rename usages DefinitionList to DescriptionList and DescriptionListDefinition to DescriptionListDetail
https://bugs.webkit.org/show_bug.cgi?id=232775

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-06
Reviewed by Chris Fleizach.

Rename usages of "definition list" to "description list" and
DescriptionListDefinition to DescriptionListDetail, as the latter
versions of each pair are what the corresponding HTML elements are
actually called.

Tools:

https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element
https://html.spec.whatwg.org/multipage/grouping-content.html#the-dd-element

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isInDescriptionListDetail const): Added.
(WTR::AccessibilityUIElement::isInDescriptionListTerm const): Added.
(WTR::AccessibilityUIElement::isInDefinitionListDefinition const): Deleted.
(WTR::AccessibilityUIElement::isInDefinitionListTerm const): Deleted.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:

Rename isInDefinitionListDefinition to isInDescriptionListDetail and
isInDefinitionListTerm to isInDescriptionListTerm.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::isInDescriptionListDetail const): Added.
(WTR::AccessibilityUIElement::isInDescriptionListTerm const): Added.
(WTR::AccessibilityUIElement::isInDefinitionListDefinition const): Deleted.
(WTR::AccessibilityUIElement::isInDefinitionListTerm const): Deleted.

LayoutTests:

Note this patch does this renaming everywhere except the interface
layers, e.g. WebAccessibilityObjectWrapperIOS.

https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element
https://html.spec.whatwg.org/multipage/grouping-content.html#the-dd-element

  • accessibility/ios-simulator/description-list-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/definition-list-expected.txt.
  • accessibility/ios-simulator/description-list.html: Renamed from LayoutTests/accessibility/ios-simulator/definition-list.html.
6:24 AM Changeset in webkit [285370] by ntim@apple.com
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

Unreviewed, add missing green-dialog-and-backdrop.html
https://bugs.webkit.org/show_bug.cgi?id=232784

This should have been part of r285368 to avoid resource-files.json referencing an non-existing file.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/green-dialog-and-backdrop.html: Added.
5:59 AM Changeset in webkit [285369] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Build the paragraph content when all the inline items are processed
https://bugs.webkit.org/show_bug.cgi?id=232771

Reviewed by Antti Koivisto.

This patch simplifies the inline collection logic and helps with the upcoming "resolve the bidi ranges" patch.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::buildBidiParagraph): Let's build the paragraph content at once.
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxStart):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxEnd):
(WebCore::Layout::InlineItemsBuilder::handleInlineLevelBox):
(WebCore::Layout::InlineItemsBuilder::enterBidiContext): Deleted.
(WebCore::Layout::InlineItemsBuilder::exitBidiContext): Deleted.
(WebCore::Layout::InlineItemsBuilder::buildPreviousTextContent): Deleted.

  • layout/formattingContexts/inline/InlineItemsBuilder.h:

(WebCore::Layout::InlineItemsBuilder::hasSeenBidiContent const):

5:05 AM Changeset in webkit [285368] by ntim@apple.com
  • 22 edits
    1 delete in trunk/LayoutTests

Re-import html/semantics/interactive-elements/the-dialog-element WPT
https://bugs.webkit.org/show_bug.cgi?id=232784

Unreviewed, reverting some changes made by r285346, and upstreamed them.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/301143db2eced1c387ca4927c03cf2be41056a83

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html: Removed.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-clip-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-clip.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-filter-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-filter.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-mask-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-mask.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-clip-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-clip.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-hidden-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-hidden.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-scroll-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-scroll.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:

LayoutTests:

Nov 5, 2021:

11:58 PM Changeset in webkit [285367] by Simon Fraser
  • 12 edits
    2 adds in trunk

Simplify code that makes use of WheelEventDeltaFilter
https://bugs.webkit.org/show_bug.cgi?id=232536

Reviewed by Wenson Hsieh.

Source/WebCore:

Push the decision about which kinds of wheel events to apply filtering to down into
WheelEventDeltaFilter, which simplifies call sites. WheelEventDeltaFilterMac::updateFromEvent()
now determines when to call into m_predominantAxisFilter based on the event phase. We
also simplify the timing logic by computing WallTime from when the WheelEventDeltaFilterMac
is constructed.

EventHandler code is cleaned up to simplify the logic a little but the behavior should
be the same.

Test: fast/scrolling/mac/wheel-event-deltas-are-not-filtered.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler): Move the filtering code out of the latching
#ifdef.
(WebCore::EventHandler::recordWheelEventForDeltaFilter): Deleted.

  • page/EventHandler.h:
  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent const):
(WebCore::WheelEventDeltaFilter::eventCopyWithFilteredDeltas const):
(WebCore::BasicWheelEventDeltaFilter::updateFromEvent):
(WebCore::BasicWheelEventDeltaFilter::updateWithDelta):
(WebCore::BasicWheelEventDeltaFilter::reset):
(WebCore::BasicWheelEventDeltaFilter::dominantAxis const):
(WebCore::WheelEventDeltaFilter::isFilteringDeltas const): Deleted.
(WebCore::BasicWheelEventDeltaFilter::updateFromDelta): Deleted.
(WebCore::BasicWheelEventDeltaFilter::beginFilteringDeltas): Deleted.
(WebCore::BasicWheelEventDeltaFilter::endFilteringDeltas): Deleted.
(WebCore::BasicWheelEventDeltaFilter::dominantScrollGestureDirection const): Deleted.

  • page/WheelEventDeltaFilter.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::recordWheelEventForDeltaFilter): Deleted.

  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::WheelEventDeltaFilterMac):
(WebCore::WheelEventDeltaFilterMac::updateFromEvent):
(WebCore::WheelEventDeltaFilterMac::reset):
(WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas): Deleted.
(WebCore::WheelEventDeltaFilterMac::updateFromDelta): Deleted.
(WebCore::WheelEventDeltaFilterMac::endFilteringDeltas): Deleted.

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::copyWithDeltaAndVelocity const): Take a FloatSize for the delta.
(WebCore::PlatformWheelEvent::copyWithDeltasAndVelocity const): Deleted.

Source/WebKit:

Push the decision about which kinds of wheel events to apply filtering to down into
WheelEventDeltaFilter, which simplifies call sites.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

LayoutTests:

Add a test to verify that wheel events sent to JS aren't affected by the wheel event
delta filter.

  • fast/scrolling/mac/wheel-event-deltas-are-not-filtered-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-deltas-are-not-filtered.html: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:

Adjust the test for the fact that the momentum phase is now axis-locked.

11:53 PM Changeset in webkit [285366] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make it possible to avoid retargeting a ScrollingMomentumCalculator
https://bugs.webkit.org/show_bug.cgi?id=232778

Reviewed by Wenson Hsieh.

Calling -[_NSScrollingMomentumCalculator setDestinationOrigin:] to the same origin it's
already targeting has side effects related to rubber-banding which a future patch needs to
avoid. However, ScrollingMomentumCalculator is structured to expect that
setRetargetedScrollOffset() is called, otherwise m_retargetedScrollOffset is left unset.

Fix so that if the ScrollingMomentumCalculator's destination is already correct when no
retargeting is necessary. We continue to store the std::optional m_retargetedScrollOffset,
but always initialize m_initialDestinationOffset.

Now ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity() can avoid
calling setRetargetedScrollOffset() if the modifier function doesn't alter the
target scroll offset.

ScrollingMomentumCalculatorMac had some undesirable behavior in the
!gEnablePlatformMomentumScrollingPrediction code path; we need to ensure that
_NSScrollingMomentumCalculator agrees about the predicted destination.

Tested by existing scroll snap tests.

  • platform/ScrollAnimationMomentum.cpp:

(WebCore::ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationMomentum::updateScrollExtents):

  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::startMomentumScrollWithInitialVelocity):

  • platform/ScrollingMomentumCalculator.cpp:

(WebCore::ScrollingMomentumCalculator::setRetargetedScrollOffset):
(WebCore::BasicScrollingMomentumCalculator::BasicScrollingMomentumCalculator):
(WebCore::BasicScrollingMomentumCalculator::linearlyInterpolatedOffsetAtProgress):
(WebCore::BasicScrollingMomentumCalculator::initializeInterpolationCoefficientsIfNecessary):
(WebCore::BasicScrollingMomentumCalculator::initializeSnapProgressCurve):

  • platform/ScrollingMomentumCalculator.h:

(WebCore::ScrollingMomentumCalculator::destinationScrollOffset const):
(WebCore::ScrollingMomentumCalculator::destinationScrollOffsetDidChange):
(WebCore::ScrollingMomentumCalculator::retargetedScrollOffset const): Deleted.
(WebCore::ScrollingMomentumCalculator::retargetedScrollOffsetDidChange): Deleted.

  • platform/mac/ScrollingMomentumCalculatorMac.h:
  • platform/mac/ScrollingMomentumCalculatorMac.mm:

(WebCore::ScrollingMomentumCalculatorMac::ScrollingMomentumCalculatorMac):
(WebCore::ScrollingMomentumCalculatorMac::scrollOffsetAfterElapsedTime):
(WebCore::ScrollingMomentumCalculatorMac::predictedDestinationOffset):
(WebCore::ScrollingMomentumCalculatorMac::destinationScrollOffsetDidChange):
(WebCore::ScrollingMomentumCalculatorMac::setMomentumCalculatorDestinationOffset):
(WebCore::ScrollingMomentumCalculatorMac::requiresMomentumScrolling):
(WebCore::ScrollingMomentumCalculatorMac::ensurePlatformMomentumCalculator):
(WebCore::ScrollingMomentumCalculatorMac::retargetedScrollOffsetDidChange): Deleted.

9:49 PM Changeset in webkit [285365] by Megan Gardner
  • 3 edits in trunk/Source/WebCore

Lookup for text would not show after clicking the page and using key commands to launch.
https://bugs.webkit.org/show_bug.cgi?id=232766
rdar://74562619

Reviewed by Wenson Hsieh.

When triggering the lookup command with command-control-D or the triple finger tap on mac, if you have previously
clicked the page, the lookup would time out and the popover would never show. This was because after clicking on the page,
an invisible caret selection would exist, which would change the path taken for highlighting and temporarily selecting text to
be sent to data detectors.
The solution was to set ignoreSelectionChanges on the temporary selection, and also to stop propagating temporary selection changes to accessibility, as
that should not be necessary and that is the code that cause a sync message (RootViewToScreen) to be sent to the UI process while it was sync awaiting our
reply to the sync message (DidPerformImmediateActionHitTest) sent earlier for the original request for data detectors.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

9:33 PM Changeset in webkit [285364] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Rebaseline for fast/text/midword-break-after-breakable-char.html
https://bugs.webkit.org/show_bug.cgi?id=232777
<rdar://84995628>

Unreviewed.

  • platform/mac/fast/text/midword-break-after-breakable-char-expected.txt: soft-hyphen font fallback measuring progression.
9:27 PM Changeset in webkit [285363] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Rebaseline for fast/text/basic/014.html
https://bugs.webkit.org/show_bug.cgi?id=232776
<rdar://84995386>

Unreviewed.

  • platform/mac/fast/text/basic/014-expected.txt:
8:52 PM Changeset in webkit [285362] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening some offscreencanvas failures after recent WPT update

Unreviewed test gardening.

  • platform/glib/TestExpectations:
8:02 PM Changeset in webkit [285361] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] IPC decoder for ResourceRequest loses systemPreviewInfo when there is platform data
https://bugs.webkit.org/show_bug.cgi?id=232769

Reviewed by Wenson Hsieh.

The IPC decoder for ResourceRequest decodes systemPreviewInfo and sets it on the ResourceRequest.
It then uses different code paths to decode the rest of the ResourceRequest based on whether or not
there is underlying platform data. If there is underlying platform data, we call decodePlatformData()
which creates a brand-new ResourceRequest, and thus loses the systemPreviewInfo we've just set.

To address the issue, we now decode extra data members *after* decoding platform data instead of
*before*.

This was causing the ProcessSwap.SameOriginSystemPreview API test to fail on iOS with the patch for
Bug 231727.

  • Shared/WebCoreArgumentCoders.cpp:

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

6:42 PM Changeset in webkit [285360] by Russell Epstein
  • 1 copy in tags/Safari-613.1.7

Tag Safari-613.1.7.

5:51 PM Changeset in webkit [285359] by Wenson Hsieh
  • 7 edits
    1 add in trunk

[iOS] Mail compose becomes unresponsive after pasting in text and attempting to type
https://bugs.webkit.org/show_bug.cgi?id=232764
rdar://84669661

Reviewed by Geoff Garen.

Source/WebCore:

After some recent changes in UIKit, keyboard code now calls into -requestDocumentContext:completionHandler:
after inserting text with the software keyboard, and specifically requests sentence-granularity text context
near the selection. This triggered an existing bug in WebKit, where we hang underneath
WebPage::requestDocumentEditingContext when trying to move backwards by sentence granularity, when computing
contextBeforeStart; this hang occurs because it's possible for the logic in nextSentenceBoundaryInDirection
(inside WebCore) to return a visible position that is in the opposite direction, relative to the given starting
position and direction. In turn, this means we end up revisiting visible positions while moving to the next
sentence boundary.

To prevent this, we make two minor adjustments in editing code. First, in nextSentenceBoundaryInDirection(),
we use result instead of the given vp when trying to find the next sentence boundary, in the case where the
given visible position is not already within a sentence. This was presumably the original intent of this code,
which is to "iterate to the start of the next sentence (when moving downstream) or the end of the previous
sentence (when moving upstream)". However, since vp is currently used here instead, we end up moving in the
wrong direction and return the start of the current sentence when moving downstream, or the end of the current
sentence when moving upstream.

Fixing this issue is actually already sufficient in order to address the hangs encountered in the radar;
however, the test case still hits subsequent debug assertions in moveByGranularityRespectingWordBoundary, due
to atBoundaryOfGranularity never returning true, even for visible positions that are at the start or end of
sentences. In lieu of debug assertions, this causes -requestDocumentContext to effectively ignore the given
granularity and traverse too far in either direction, due to atBoundaryOfGranularity always being false (we
avoid infinitely looping and bail because after fixing the first bug above, nextPosition eventually becomes
null).

To address this assertion, we make a second tweak to atBoundaryOfGranularity that allows us to return true
if the given position is already at a sentence boundary (instead of marching to the previous or next sentence
and then moving in the opposite direction). The latter was added in r253561 to fix some corner cases where
startOfSentence() or endOfSentence() would end up moving us past the next (or previous) sentence, but this
seems to break some existing scenarios where the given position is already at the start or end of the sentence.

Test: DocumentEditingContext.RequestSentencesAfterTextInsertion

  • editing/VisibleUnits.cpp:

(WebCore::atBoundaryOfGranularity):
(WebCore::nextSentenceBoundaryInDirection):

See above for more details.

Tools:

Add an API test that exercises the hang (and also verifies that we don't hit any debug assertions in the
process).

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

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InsertTextAlternatives.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/simple-editor.html: Added.
  • TestWebKitAPI/ios/UIKitSPI.h:

Drive-by fixes: remove some old staging declarations for UIKit SPI that has long been in the internal iOS 15
SDK. Remove the staging categories and definitions, and move them to the non-internal SDK section instead.

4:55 PM Changeset in webkit [285358] by Patrick Griffis
  • 3 edits in trunk/Source/WebCore

[GLIB] Be more careful about calling LowPowerModeNotifier's callback
https://bugs.webkit.org/show_bug.cgi?id=232767

Reviewed by Michael Catanzaro.

This callback is expected to only be called when the value changes
otherwise it will hit asserts elsewhere such as in NetworkCache.

  • platform/LowPowerModeNotifier.h:
  • platform/glib/LowPowerModeNotifierGLib.cpp:

(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled const):

4:06 PM Changeset in webkit [285357] by Nikos Mouchtaris
  • 26 edits in trunk/Source

Make scroll bar mode an enum class
https://bugs.webkit.org/show_bug.cgi?id=232651

Reviewed by Simon Fraser.

Source/WebCore:

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::scrollingMode const):

  • html/HTMLFrameOwnerElement.h:

(WebCore::HTMLFrameOwnerElement::scrollingMode const):

  • page/Frame.cpp:

(WebCore::Frame::createView):

  • page/Frame.h:
  • page/FrameView.cpp:

(WebCore::FrameView::resetScrollbars):
(WebCore::FrameView::init):
(WebCore::FrameView::updateCanHaveScrollbars):
(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::adjustScrollbarsForLayout):
(WebCore::FrameView::performFixedWidthAutoSize):
(WebCore::FrameView::performSizeToContentAutoSize):
(WebCore::FrameView::isScrollable):
(WebCore::FrameView::enableAutoSizeMode):

  • page/SpatialNavigation.cpp:

(WebCore::canScrollInDirection):

  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • platform/ScrollTypes.cpp:

(WebCore::operator<<):

  • platform/ScrollTypes.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::setCanHaveScrollbars):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::platformScrollbarModes const):

  • platform/ScrollView.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalScrollbarMode const):
(WebCore::ScrollableArea::verticalScrollbarMode const):
(WebCore::ScrollableArea::canHaveScrollbars const):

  • platform/ios/wak/WAKScrollView.mm:

(-[WAKScrollView horizontalScrollingMode]):
(-[WAKScrollView verticalScrollingMode]):

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::performLayoutWithFlattening):

  • rendering/RenderIFrame.cpp:

(WebCore::RenderIFrame::flattenFrame const):

  • rendering/RenderLayer.cpp:

(WebCore::frameElementAndViewPermitScroll):

  • rendering/RenderLayerBacking.cpp:

(WebCore::computePageTiledBackingCoverage):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setAlwaysShowsHorizontalScroller):
(WebKit::WebPage::setAlwaysShowsVerticalScroller):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebView/WebDynamicScrollBarsView.mm:

(-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
(-[WebDynamicScrollBarsView updateScrollers]):
(-[WebDynamicScrollBarsView allowsHorizontalScrolling]):
(-[WebDynamicScrollBarsView allowsVerticalScrolling]):

  • WebView/WebView.mm:

(-[WebView setAlwaysShowVerticalScroller:]):
(-[WebView alwaysShowVerticalScroller]):
(-[WebView setAlwaysShowHorizontalScroller:]):
(-[WebView alwaysShowHorizontalScroller]):

3:42 PM Changeset in webkit [285356] by Ryan Haddad
  • 5 edits in trunk/Tools

[steps.py] Update macOS versions in build_to_name_mapping
https://bugs.webkit.org/show_bug.cgi?id=232732

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(PrintConfiguration.convert_build_to_os_name):

  • CISupport/ews-build/steps_unittest.py:
  • CISupport/build-webkit-org/steps.py:

(PrintConfiguration.convert_build_to_os_name):

  • CISupport/build-webkit-org/steps_unittest.py:
3:20 PM Changeset in webkit [285355] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening more timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
3:00 PM Changeset in webkit [285354] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Print SDK version after update
https://bugs.webkit.org/show_bug.cgi?id=232725

Reviewed by Adrian Perez de Castro.

Print the actual installed version after the update step, even if
nothing was updated. This should help tracking the SDK versions across
builds on the bots.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.main):

1:32 PM Changeset in webkit [285353] by Ryan Haddad
  • 2 edits in trunk/Tools

Bring up queues for Monterey
https://bugs.webkit.org/show_bug.cgi?id=232186

Unreviewed follow-up fix.

  • CISupport/build-webkit-org/config.json: Should have used bot185, not bot186.
12:53 PM Changeset in webkit [285352] by Russell Epstein
  • 2 edits in branches/safari-613.1.7-branch/Source/WebCore

Cherry-pick r285305. rdar://problem/85082384

[ iOS ] TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS is crashing
https://bugs.webkit.org/show_bug.cgi?id=232676

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-04
Reviewed by Eric Carlson.

In WebKitLegacy on iOS, WebCoreAVFPullDelegate.initWithPlayer is being called on the web thread,
but outputMediaDataWillChange is being called on the main run loop then accessing _player in a non-thread-safe manner.
To fix this, I call callOnMainThread to access _player on the web thread. To fix the assertion that happens after this
fix, I made MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange able to be called on the non-main run loop.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange): (-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):

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

12:53 PM Changeset in webkit [285351] by Russell Epstein
  • 2 edits in branches/safari-613.1.7-branch/Source/WebCore

Cherry-pick r285231. rdar://problem/85082384

[ iOS ] TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS is crashing
https://bugs.webkit.org/show_bug.cgi?id=232676

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-03
Reviewed by Eric Carlson.

In r284743 we changed types from raw pointers to WeakPtr, but accessing them in layoutSublayers is not thread safe.
Remove some unsafe early returns.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (-[WebAVPlayerLayer layoutSublayers]): (-[WebAVPlayerLayer resolveBounds]):

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

12:33 PM Changeset in webkit [285350] by commit-queue@webkit.org
  • 22 edits
    1 copy
    1 add in trunk

Restructure WKContentRuleList Action storage during compilation and interpretation
https://bugs.webkit.org/show_bug.cgi?id=232692

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-05
Reviewed by Brady Eidson.

Source/WebCore:

This uses a std::variant of each type's metadata instead of an enum type and a String.
This is necessary cleanup before implementing actions with more complex metadata.

I also separated out DeserializedAction, which is deserialized from the compiled WKContentRuleList
from Action, which is parsed from the JSON and doesn't have an identifier.

This is covered by numerous tests, which also needed syntax updating for the new structure types.
There is no change in behavior and the serialization and deserialization is all the same.

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::findFirstIgnorePreviousRules const):
(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::ActionWithoutMetadata::isolatedCopy):
(WebCore::ContentExtensions::ActionWithoutMetadata::operator== const):
(WebCore::ContentExtensions::ActionWithoutMetadata::serialize const):
(WebCore::ContentExtensions::ActionWithoutMetadata::deserialize):
(WebCore::ContentExtensions::ActionWithoutMetadata::serializedLength):
(WebCore::ContentExtensions::ActionWithStringMetadata::isolatedCopy):
(WebCore::ContentExtensions::ActionWithStringMetadata::operator== const):
(WebCore::ContentExtensions::ActionWithStringMetadata::serialize const):
(WebCore::ContentExtensions::ActionWithStringMetadata::deserialize):
(WebCore::ContentExtensions::ActionWithStringMetadata::serializedLength):
(WebCore::ContentExtensions::hasStringArgument): Deleted.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::resolvePendingDisplayNoneActions):
(WebCore::ContentExtensions::serializeActions):
(WebCore::ContentExtensions::serializeString): Deleted.

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):

  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::deserializeString):
(WebCore::ContentExtensions::serializeString):
(WebCore::ContentExtensions::stringSerializedLength):
(WebCore::ContentExtensions::VariantDeserializerHelper::serializedLength):
(WebCore::ContentExtensions::Action::deserialize):
(WebCore::ContentExtensions::Action::serializedLength):
(WebCore::ContentExtensions::Action::isolatedCopy const):
(WebCore::ContentExtensions::Action::deserializeType): Deleted.

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::Action::operator== const):
(WebCore::ContentExtensions::Action::operator!= const):
(WebCore::ContentExtensions::Action::data const):
(WebCore::ContentExtensions::DeserializedAction::DeserializedAction):
(WebCore::ContentExtensions::DeserializedAction::actionID const):
(WebCore::ContentExtensions::Action::type const): Deleted.
(WebCore::ContentExtensions::Action::actionID const): Deleted.
(WebCore::ContentExtensions::Action::stringArgument const): Deleted.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):

Source/WTF:

  • wtf/CrossThreadCopier.h:
  • wtf/StdLibExtras.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::testRequest):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::actionsEqual):
(WebCore::ContentExtensions::operator<<): Deleted.

12:08 PM Changeset in webkit [285349] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

generate-xcfilelists doesn't work if build path contains a +
https://bugs.webkit.org/show_bug.cgi?id=232493

Reviewed by Simon Fraser.

  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(BaseGenerator._generate_derived):
(BaseGenerator._replaceSinglePrefix):
(BaseGenerator._replacePrefix):
(BaseGenerator._unexpand._try_unexpand):
(BaseGenerator._replace): Deleted.
The xcfilelist generator had a regex injection issue that resulted in
paths with not-very-special characters causing it to infinitely
regenerate the xcfilelists; we can just use simple string prefix
replacement instead.

11:57 AM Changeset in webkit [285348] by Russell Epstein
  • 3 edits in trunk

Cherry-pick r284635. rdar://problem/85039977

[JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232059

Reviewed by Saam Barati.

JSTests:

  • stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added. (foo.bar): (foo):

Source/JavaScriptCore:

When inserting GetTypedArrayLengthAsInt52 after fixup phase, we must set NodeResultInt52.

  • dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode):

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

11:46 AM Changeset in webkit [285347] by Nikos Mouchtaris
  • 13 edits in trunk/Source

Make scroll elasticity an enum class
https://bugs.webkit.org/show_bug.cgi?id=232646

Reviewed by Simon Fraser.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:
  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):

  • platform/ScrollTypes.cpp:

(WebCore::operator<<):

  • platform/ScrollTypes.h:
  • platform/ScrollableArea.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::setHasHorizontalScrollbar):
(WebCore::RenderLayerScrollableArea::setHasVerticalScrollbar):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setEnableVerticalRubberBanding):
(WebKit::WebPage::setEnableHorizontalRubberBanding):

11:14 AM Changeset in webkit [285346] by Chris Dumez
  • 275 edits
    58 copies
    19 moves
    914 adds
    59 deletes in trunk/LayoutTests

Resync web-platform-tests/html from upstream
https://bugs.webkit.org/show_bug.cgi?id=232449

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync web-platform-tests/html from upstream 038de3e0ddeaf9e20b.

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

10:43 AM Changeset in webkit [285345] by Devin Rousso
  • 17 edits in trunk

[css-values-4] viewport units should be floats
https://bugs.webkit.org/show_bug.cgi?id=231644
<rdar://problem/84172685>

Reviewed by Tim Horton.

Source/WebCore:

Views can be fractional pixels wide. We should not round, especially since viewport units
are used as percentage values (e.g. 50dvh is "50% of the height of the current viewport").

Tests: CSSViewportUnits.EmptyUnobscuredSizeOverrides

CSSViewportUnits.SameUnobscuredSizeOverrides
CSSViewportUnits.DifferentUnobscuredSizeOverrides

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

(WebCore::FrameView::setSizeForCSSSmallViewportUnits):
(WebCore::FrameView::overrideWidthForCSSSmallViewportUnits):
(WebCore::FrameView::sizeForCSSSmallViewportUnits const):
(WebCore::FrameView::setSizeForCSSLargeViewportUnits):
(WebCore::FrameView::overrideWidthForCSSLargeViewportUnits):
(WebCore::FrameView::sizeForCSSLargeViewportUnits const):
(WebCore::FrameView::calculateSizeForCSSViewportUnitsOverride const):
(WebCore::FrameView::sizeForCSSDynamicViewportUnits const):
(WebCore::FrameView::sizeForCSSDefaultViewportUnits const):

  • rendering/RenderView.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::sizeForCSSSmallViewportUnits const):
(WebCore::RenderView::sizeForCSSLargeViewportUnits const):
(WebCore::RenderView::sizeForCSSDynamicViewportUnits const):
(WebCore::RenderView::sizeForCSSDefaultViewportUnits const):

Source/WebKit:

Views can be fractional pixels wide. We should not round, especially since viewport units
are used as percentage values (e.g. 50dvh is "50% of the height of the current viewport").

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setViewportSizeForCSSViewportUnits:]):

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

(WebKit::WebPageProxy::setViewportSizeForCSSViewportUnits):

  • Shared/WebPageCreationParameters.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setViewportSizeForCSSViewportUnits):
(WebKit::WebPage::viewportSizeForCSSViewportUnits const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:

(evaluateForNumber):
(getElementHeight):
(TEST.CSSViewportUnits.AllSame):
(TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SameUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides):

  • TestWebKitAPI/Tests/WebKit/ViewportSizeForViewportUnits.mm:

(TEST.WebKit.ViewportSizeForViewportUnits):

10:34 AM Changeset in webkit [285344] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Media Controls] Volume button orientation is always stuck to right-to-left
https://bugs.webkit.org/show_bug.cgi?id=232761

Reviewed by Dean Jackson.

  • Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection):

10:18 AM Changeset in webkit [285343] by commit-queue@webkit.org
  • 37 edits
    2 adds in trunk

Implement parsing and animation support for offset-path
https://bugs.webkit.org/show_bug.cgi?id=231801

Patch by Kiet Ho <Kiet Ho> on 2021-11-05
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Updated relevant test expectations.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-001-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-002-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-003-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-004-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt:
  • web-platform-tests/css/motion/inheritance-expected.txt:
  • web-platform-tests/css/motion/offset-path-serialization-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-parsing-valid-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-shorthand-expected.txt:

Source/WebCore:

Implements parsing and animation support for offset-path based on clip-path.
offset-path additionally supports ray() shape, which will be implemented in a future patch.

Tests: imported/w3c/web-platform-tests/css/motion/inheritance.html

imported/w3c/web-platform-tests/css/motion/offset-path-serialization.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-001.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-002.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-003.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-004.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005.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::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Added animation support for offset-path.

  • css/BasicShapeFunctions.cpp:

(WebCore::copySVGPathByteStream):
(WebCore::valueForBasicShape): Added enum to specify conversions done on the
resulting SVG path. So far, the only available conversion is converting relative
draw commands in a path to absolute. This is required when getting the computed value of
offset-path.

  • css/BasicShapeFunctions.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForPathOperation): Moved logic to get value of PathOperation
into a separate method.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Added support for
offset-path.

  • css/CSSProperties.json: Added entry for offset-path.
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumePathOperation): Renamed from consumeClipPath.
(WebCore::CSSPropertyParser::parseSingleValue): Added support for parsing offset-path.

  • rendering/style/RenderStyle.h: Added support for offset-path.

(WebCore::RenderStyle::offsetPath const):
(WebCore::RenderStyle::setOffsetPath):
(WebCore::RenderStyle::initialOffsetPath):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h: Added storage space for offset-path.
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPathOperation): Renamed from convertClipPath

  • svg/SVGPathAbsoluteConverter.cpp: Added helper class to convert relative draw

commands in an SVG path to absolute.
(WebCore::SVGPathAbsoluteConverter::SVGPathAbsoluteConverter):
(WebCore::SVGPathAbsoluteConverter::incrementPathSegmentCount):
(WebCore::SVGPathAbsoluteConverter::continueConsuming):
(WebCore::SVGPathAbsoluteConverter::moveTo):
(WebCore::SVGPathAbsoluteConverter::lineTo):
(WebCore::SVGPathAbsoluteConverter::curveToCubic):
(WebCore::SVGPathAbsoluteConverter::closePath):
(WebCore::SVGPathAbsoluteConverter::lineToHorizontal):
(WebCore::SVGPathAbsoluteConverter::lineToVertical):
(WebCore::SVGPathAbsoluteConverter::curveToCubicSmooth):
(WebCore::SVGPathAbsoluteConverter::curveToQuadratic):
(WebCore::SVGPathAbsoluteConverter::curveToQuadraticSmooth):
(WebCore::SVGPathAbsoluteConverter::arcTo):

  • svg/SVGPathAbsoluteConverter.h: Added.
  • svg/SVGPathUtilities.cpp:

(WebCore::convertSVGPathByteStreamToAbsoluteCoordinates):

  • svg/SVGPathUtilities.h:

LayoutTests:

Updated relevant test expectations.

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
9:32 AM Changeset in webkit [285342] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Media Controls] range buttons don't prevent scrolling while dragging
https://bugs.webkit.org/show_bug.cgi?id=232757
<rdar://problem/83637971>

Reviewed by Dean Jackson.

Since we are using Pointer Events to implement the dragging interaction for RangeButton,
we need to set touch-action: none to prevent any default user-agent behavior.

  • Modules/modern-media-controls/controls/range-button.css:

(button.range):

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

[ic-stats.py] Change shebang to Python 3
https://bugs.webkit.org/show_bug.cgi?id=232721
<rdar://problem/85030782>

Reviewed by Alexey Proskuryakov.

  • Scripts/ic-stats.py:
1:23 AM Changeset in webkit [285340] by Carlos Garcia Campos
  • 13 edits in trunk/Source

AX: rename actionVerb() as localizedActionVerb()
https://bugs.webkit.org/show_bug.cgi?id=232711
<rdar://problem/85015496>

Reviewed by Andres Gonzalez.

Source/WebCore:

Since it's returning the localized name. In ATSPI there are two methods in the action interface GetName and
GetLocalizedName, so this patch also adds actionVerb() returning the unlocalized action name.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::localizedActionVerb const):
(WebCore::AccessibilityObject::actionVerb const):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::localizedActionVerb const):

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::tabChildren):
(WebCore::AccessibilityRenderObject::actionVerb const): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(webkitAccessibleHyperlinkActionGetName):

  • accessibility/atk/WebKitAccessibleInterfaceAction.cpp:

(webkitAccessibleActionGetName):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

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

Source/WebKitLegacy/win:

  • AccessibleBase.cpp:

(AccessibleBase::get_accDefaultAction): Use localizedActionVerb().

1:22 AM Changeset in webkit [285339] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK][a11y] Embedded objects are not correctly handled by text interface with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232622

Reviewed by Andres Gonzalez.

Source/WebCore:

Make sure text iterator is emitting object replacement characters when converting offsets to/from visible positions.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionForIndex const):
(WebCore::AccessibilityRenderObject::indexForVisiblePosition const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::boundsForSelection const):

  • editing/Editing.cpp:

(WebCore::indexForVisiblePosition):
(WebCore::visiblePositionForIndex):

  • editing/Editing.h:

Tools:

Add a test case to check handling of embedded objects by text interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTextReplacedObjects):
(beforeAll):

1:21 AM Changeset in webkit [285338] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GTK][WPE] Fix compile warning after r284675

  • accessibility/AXObjectCache.cpp:
Note: See TracTimeline for information about the timeline view.