Timeline



Jan 28, 2022:

11:34 PM Changeset in webkit [288788] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

css/css-backgrounds/animations/box-shadow-composition.html has failures
https://bugs.webkit.org/show_bug.cgi?id=235773

Unreviewed sync with WPT upstream, our copy of this test was outdated and we in fact pass
all assertions.

  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition.html:
11:32 PM Changeset in webkit [288787] by graouts@webkit.org
  • 3 edits
    17 adds
    6 deletes in trunk/LayoutTests

[WPT] Update CSS animation tests
https://bugs.webkit.org/show_bug.cgi?id=235759

Unreviewed manual WPT update.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-empty-no-draw-crash-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-empty-no-draw-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-removed-element-crash-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-removed-element-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask-ref.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask.html: Added.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2-expected.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3-expected-mismatch.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-expected.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation.html: Removed.
  • web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
  • web-platform-tests/css/css-fonts/animations/system-fonts.html: Added.
  • web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation.html: Added.

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
11:24 PM Changeset in webkit [288786] by Antti Koivisto
  • 51 edits in trunk

[CSS container Queries] Include container queries in RuleSets
https://bugs.webkit.org/show_bug.cgi?id=235763

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:

Source/WebCore:

Build the data structures in RuleSets. They are not yet used, all queries behave as if they match.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):

  • style/RuleSet.h:
  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addStyleRule):

  • style/RuleSetBuilder.h:

LayoutTests:

9:33 PM Changeset in webkit [288785] by Diego Pino Garcia
  • 4 edits in trunk/Source

Source/JavaScriptCore:
[WPE] Unreviewed, fix non-unified build after r288758
https://bugs.webkit.org/show_bug.cgi?id=235853

  • wasm/WasmBranchHintsSectionParser.cpp:

Source/WebCore:
[WPE] Unreviewed, fix non-unified build after r288759
https://bugs.webkit.org/show_bug.cgi?id=235853

  • Modules/webaudio/AudioWorkletNode.cpp:
9:22 PM Changeset in webkit [288784] by Fujii Hironori
  • 29 edits
    1 delete in trunk

[WinCairo] WebKitTestRunner should support pixel dump for accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=215041

Reviewed by Don Olmstead.

Source/WebKit:

Windows WebKitTestRunner is using WM_PRINT message to get the
widonws content for the pixel dump support. However, in the
accelerated compositing mode, the compositor in the GPU process
directly renders to the HWND of UI process.

This change added the offscreen rendering mode for the compositor.
In this mode, the rendering results of the compositor are captured
by using glReadPixels in GPU process, and transferred it to UI
process via the non-AC mode code path.

Added WKViewSetUsesOffscreenRendering API to enable the offscreen
rendering mode.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createWCLayerTreeHost):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.cpp:

(WebKit::RemoteWCLayerTreeHost::create):
(WebKit::RemoteWCLayerTreeHost::RemoteWCLayerTreeHost):
(WebKit::RemoteWCLayerTreeHost::update):

  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.h:
  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.messages.in:
  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::WCScene):
(WebKit::WCScene::update):

  • GPUProcess/graphics/wc/WCScene.h:
  • PlatformWin.cmake:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/win/WKView.cpp:

(WKViewSetUsesOffscreenRendering):

  • UIProcess/API/C/win/WKView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/wc/DrawingAreaProxyWC.cpp:

(WebKit::DrawingAreaProxyWC::dispatchAfterEnsuringDrawing):

  • UIProcess/wc/DrawingAreaProxyWC.h:
  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::usesOffscreenRendering const):

  • UIProcess/win/PageClientImpl.h:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setUsesOffscreenRendering):
(WebKit::WebView::usesOffscreenRendering const):

  • UIProcess/win/WebView.h:
  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.cpp:

(WebKit::RemoteWCLayerTreeHostProxy::RemoteWCLayerTreeHostProxy):
(WebKit::RemoteWCLayerTreeHostProxy::ensureGPUProcessConnection):
(WebKit::RemoteWCLayerTreeHostProxy::disconnectGpuProcessIfNeeded):
(WebKit::RemoteWCLayerTreeHostProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteWCLayerTreeHostProxy::update):
(WebKit::RemoteWCLayerTreeHostProxy::didUpdate): Deleted.

  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.h:
  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.messages.in: Removed.
  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::DrawingAreaWC):
(WebKit::DrawingAreaWC::setNeedsDisplay):
(WebKit::DrawingAreaWC::setNeedsDisplayInRect):
(WebKit::DrawingAreaWC::forceRepaintAsync):
(WebKit::DrawingAreaWC::sendUpdateAC):
(WebKit::DrawingAreaWC::didUpdate):

  • WebProcess/WebPage/wc/DrawingAreaWC.h:

Tools:

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::PlatformWebView):

8:44 PM Changeset in webkit [288783] by mmaxfield@apple.com
  • 7 edits
    2 adds in trunk

REGRESSION(r281687): Space widths have synthetic bold applied to them in the fast text codepath but not the complex text codepath
https://bugs.webkit.org/show_bug.cgi?id=235755
<rdar://problem/88052073>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/synthetic-bold-space-width-expected.html: Added.
  • web-platform-tests/css/css-fonts/synthetic-bold-space-width.html: Added.

Source/WebCore:

r281687 made Font::widthForGlyph() return the non-synthetically-expanded width,
instead of the synthetically-expanded width.

I think this is philosophically correct, because Font::widthForGlyph() is called before shaping,
and shaping requires the original width. If some custom code is asking for the width of specific
characters without going through WidthIterator or ComplexTextController, that code needs to
determine whether or not it's going to run shaping, and thus when it should be adding in the
synthetic offset.

adjustGlyphsAndAdvances() used to subtract out the synthetic offset because it was expecting
Font::widthForGlyph() to return the already-expanded width. So, the solution is just stop subtracting
the offset, because it hasn't been applied in the first place.

Test: imported/w3c/web-platform-tests/css/css-fonts/synthetic-bold-space-width.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/Font.h:

LayoutTests:

  • platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
8:22 PM Changeset in webkit [288782] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WebKit

Implement CSS overscroll-behavior for iOS
https://bugs.webkit.org/show_bug.cgi?id=233788

Reviewed by Simon Fraser.

Add setting of ScrollView parameters based on overscroll-behavior values.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

7:29 PM Changeset in webkit [288781] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16

Tag Safari-613.1.16.

7:29 PM Changeset in webkit [288780] by Kocsen Chung
  • 1 delete in tags/Safari-613.1.16

Delete tag.

7:27 PM Changeset in webkit [288779] by Kocsen Chung
  • 21 edits
    1 move
    3 adds in branches/safari-613-branch/Source

Apply patch. rdar://problem/82627192

7:27 PM Changeset in webkit [288778] by Kocsen Chung
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r287961. rdar://problem/86282584

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

Reviewed by Keith Miller.

Source/JavaScriptCore:

Removed some unused code.

  • runtime/MachineContext.h: (JSC::MachineContext::stackPointer): (JSC::MachineContext::framePointer): (JSC::MachineContext::instructionPointer): (JSC::MachineContext::linkRegister): (JSC::MachineContext::setStackPointer): Deleted. (JSC::MachineContext::setFramePointer): Deleted. (JSC::MachineContext::setLinkRegister): Deleted.

Source/WTF:

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

Also remove some unused code.

  • wtf/PlatformRegisters.h:
  • wtf/threads/Signals.cpp: (WTF::hashThreadState):

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

6:56 PM Changeset in webkit [288777] by Nikos Mouchtaris
  • 8 edits
    9 adds in trunk

Implement CSS overscroll-behavior for asynchronous scroll on Mac
https://bugs.webkit.org/show_bug.cgi?id=220139

Reviewed by Simon Fraser.

Source/WebCore:

Split up patch by Cathie Chen and Frederic Wang. Add function for blocking scroll chaining
and filtering scroll delta depending on the values of overscroll behavior for a scrolling
node. This patch is for asynchronous scrolling only.

Tests: fast/scrolling/mac/async-overscroll-behavior-element.html

fast/scrolling/mac/async-overscroll-behavior-iframe.html
fast/scrolling/mac/async-overscroll-behavior-unscrollable-element.html
fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldBlockScrollChainingWithNode):
(WebCore::ScrollingTree::handleWheelEventWithNode):

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

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate):
(WebCore::RenderLayerCompositor::rootOrBodyStyleChanged):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRecompositeLayer const):

LayoutTests:

  • fast/scrolling/mac/async-overscroll-behavior-element-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-element.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-iframe-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-iframe.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-element-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-element.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe.html: Added.
  • fast/scrolling/resources/overscroll-behavior-support.js: Added.

(getDeltas):
(async mouseWheelScrollAndWait):

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

[macOS][WP] Temporarily add syscall to sandbox
https://bugs.webkit.org/show_bug.cgi?id=235841
<rdar://88197549>

Reviewed by Brent Fulgham.

Temporarily add syscall to sandbox in the WebContent process on macOS. This can be removed when <rdar://88210738> is fixed.

  • WebProcess/com.apple.WebProcess.sb.in:
6:15 PM Changeset in webkit [288775] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ Release wk1 arm64 ] Bots are flaky exiting testing after 500 layout-test failures (235733)
https://bugs.webkit.org/show_bug.cgi?id=235733

Uneviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skipping test for mac BigSur and later wk1 arm64 Release because it intermittently causes many tests to fail.
6:12 PM Changeset in webkit [288774] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: AccessibilitySlider::inputElement should check if the renderer has become null
https://bugs.webkit.org/show_bug.cgi?id=235827

Reviewed by Chris Fleizach.

After https://bugs.webkit.org/show_bug.cgi?id=235715, we no longer
call the update version of children() from logging. This has made
accessibility/mac/spinbutton-valuedescription.html a constant failure
in debug mode only, since the logging is trying to print an AX tree that
is out of sync with the DOM. This test uses JS to remove an <input>
renderer + node.

Fixes accessibility/mac/spinbutton-valuedescription.html in debug.

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::inputElement const):
Null check m_renderer before using it.
(WebCore::AccessibilitySlider::getAttribute const):
(WebCore::AccessibilitySlider::valueForRange const):
(WebCore::AccessibilitySlider::maxValueForRange const):
(WebCore::AccessibilitySlider::minValueForRange const):
Null check the result of inputElement() before dereferencing it.

5:23 PM Changeset in webkit [288773] by Aditya Keerthi
  • 14 edits in trunk

Add SPI to retrieve the rect of a found text range
https://bugs.webkit.org/show_bug.cgi?id=235830
rdar://88193004

Reviewed by Wenson Hsieh.

Source/WebKit:

Clients of found text ranges need a way to determine their position
in the web view. An asynchronous SPI is provided to support this need.
This information is not encoded in the text range itself, as the
position can change due to scrolling in sub-scrollable regions.
Consequently, the position must be obtained by communicating with the
WebProcess.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _requestRectForFoundTextRange:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestRectForFoundTextRange):

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

(-[WKContentView requestRectForFoundTextRange:completionHandler:]):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::requestRectForFoundTextRange):

  • WebProcess/WebPage/WebFoundTextRangeController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestRectForFoundTextRange):

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

Tools:

Added a test to verify the API works as expected.

The test uses an <iframe> to verify behavior for scrolled
<iframe>s.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(-[TestSearchAggregator initWithCompletionHandler:]):
(-[TestSearchAggregator foundRange:forSearchString:inDocument:]):
(-[TestSearchAggregator foundRanges]):
(-[TestSearchAggregator count]):
(TEST):

5:02 PM Changeset in webkit [288772] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Update CaptivePortal entitlements to support full GigaCage
https://bugs.webkit.org/show_bug.cgi?id=235834
<rdar://problem/88075019>

Reviewed by Chris Dumez.

The CaptivePortal process, which does not allow JIT, cannot enable GigaCage without
a new entitlement.

  • Scripts/process-entitlements.sh:
4:54 PM Changeset in webkit [288771] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16

Tag Safari-613.1.16.

4:50 PM Changeset in webkit [288770] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288750. rdar://problem/88177392

[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Darin Adler.

  • WebProcess/com.apple.WebProcess.sb.in:

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

4:50 PM Changeset in webkit [288769] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287844. rdar://problem/87262730

[MacCatalyst] Add syscalls from iOS sandbox
https://bugs.webkit.org/show_bug.cgi?id=234970
<rdar://problem/87262730>

Reviewed by Darin Adler.

Add syscalls from iOS sandbox that are not in the MacCatalyst sandbox, since these are potentially
still needed on MacCatalyst.

  • WebProcess/com.apple.WebProcess.sb.in:

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

4:39 PM Changeset in webkit [288768] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.6

Tag Safari-613.1.14.5.6.

4:38 PM Changeset in webkit [288767] by Russell Epstein
  • 4 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288766. rdar://problem/88207448

Catalyst builds for WebCore and WebKitLegacy don't create proper symlinks for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235839

Reviewed by Saam Barati.

Source/WebCore:

Fixed ALTERNATE_ROOT_PATH to have a proper path for Catalyst builds, but not for normal macOS builds
since they are under WebKit.framework.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy/mac:

Fixed ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH to have proper paths for Catalyst builds,
but not for normal macOS builds since they are under WebKit.framework.

  • Configurations/WebKitLegacy.xcconfig:

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

4:36 PM Changeset in webkit [288766] by msaboff@apple.com
  • 4 edits in trunk/Source

Catalyst builds for WebCore and WebKitLegacy don't create proper symlinks for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235839

Reviewed by Saam Barati.

Source/WebCore:

Fixed ALTERNATE_ROOT_PATH to have a proper path for Catalyst builds, but not for normal macOS builds
since they are under WebKit.framework.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy/mac:

Fixed ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH to have proper paths for Catalyst builds,
but not for normal macOS builds since they are under WebKit.framework.

  • Configurations/WebKitLegacy.xcconfig:
4:25 PM Changeset in webkit [288765] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.6

4:14 PM Changeset in webkit [288764] by Kocsen Chung
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.16

4:05 PM Changeset in webkit [288763] by Alexey Shvayka
  • 8 edits in trunk

Remove showModalDialog-specific logic from JSDOMWindow::getOwnPropertySlot()
https://bugs.webkit.org/show_bug.cgi?id=234282

Reviewed by Yusuke Suzuki.

Source/WebCore:

This change removes showModalDialog-specific logic from JSDOMWindow::getOwnPropertySlot()
in favor of a setter-less CustomValue property on window, which returns a function only
if modals are allowed, and can be overriden by userland code.

Since we need to support setCanRunModal(true) being called after DOMWindow is initialized,
[EnabledByQuirk] and friends could not be used. However, once the function was exposed,
there is no point in hiding it, so the CustomValue getter replaces itself with a regular
data property to preserve function's identity (covered by fast/dom/wrapper-identity.html).

The patch makes JSDOMWindow's getOwnPropertySlot() consistent with its getOwnPropertyNames()
regarding the presence of "showModalDialog" property, and fixes JSDOMWindow::getOwnPropertySlot()
being ignored by LLInt when accessing "showModalDialog" from scope, which resulted in exposing
the function even if modals were disallowed.

Test: fast/dom/Window/forbid-showModalDialog.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMWindow::showModalDialog): Deleted.

  • bindings/js/JSDOMWindowCustom.h:
  • page/DOMWindow.idl:

LayoutTests:

  • fast/dom/Window/forbid-showModalDialog-expected.txt:
  • fast/dom/Window/forbid-showModalDialog.html:
3:12 PM Changeset in webkit [288762] by Aditya Keerthi
  • 9 edits in trunk/Source/WebKit

Migrate _UITextSearching implementation to be backed by WebFoundTextRangeController
https://bugs.webkit.org/show_bug.cgi?id=235693
rdar://88117303

Reviewed by Tim Horton.

Migrate _UITextSearching implementation to be backed by
WebFoundTextRangeController to support restoreable find results.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView scrollRangeToVisible:inDocument:]):
(-[WKWebView didBeginTextSearchOperation]):
(-[WKWebView didEndTextSearchOperation]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findTextRangesForStringMatches):
(WebKit::WebPageProxy::decorateTextRangeWithStyle):
(WebKit::WebPageProxy::scrollTextRangeToVisible):
(WebKit::WebPageProxy::clearAllDecoratedFoundText):
(WebKit::WebPageProxy::didBeginTextSearchOperation):
(WebKit::WebPageProxy::didEndTextSearchOperation):

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

(-[WKContentView offsetFromPosition:toPosition:]):
(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKContentView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKContentView scrollRangeToVisible:inDocument:]):
(-[WKContentView clearAllDecoratedFoundText]):
(-[WKContentView didBeginTextSearchOperation]):
(-[WKContentView didEndTextSearchOperation]):
(+[WKFoundTextRange foundTextRangeWithWebFoundTextRange:]):
(-[WKFoundTextRange start]):
(-[WKFoundTextRange end]):
(-[WKFoundTextRange webFoundTextRange]):
(+[WKFoundTextPosition textPositionWithOffset:order:]):
(+[WKFoundTextRange foundTextRangeWithRect:index:]): Deleted.
(+[WKFoundTextPosition textPositionWithIndex:]): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::findTextRangesForStringMatches):
(WebKit::WebPage::decorateTextRangeWithStyle):
(WebKit::WebPage::scrollTextRangeToVisible):
(WebKit::WebPage::clearAllDecoratedFoundText):
(WebKit::WebPage::didBeginTextSearchOperation):
(WebKit::WebPage::didEndTextSearchOperation):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::foundTextRangeController):

  • WebProcess/WebPage/WebPage.messages.in:
3:06 PM Changeset in webkit [288761] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable wasm branch hinting
https://bugs.webkit.org/show_bug.cgi?id=235832

Reviewed by Saam Barati.

https://github.com/WebAssembly/branch-hinting is stage-3 wasm feature.
Flip the flag to enable it.

  • runtime/OptionsList.h:
1:46 PM Changeset in webkit [288760] by Aditya Keerthi
  • 4 edits in trunk/Source/WebKit

Add support for decorating and scrolling to ranges in WebFoundTextRangeController
https://bugs.webkit.org/show_bug.cgi?id=235692
rdar://88117232

Reviewed by Wenson Hsieh.

  • Shared/WebFoundTextRange.h:

(WTF::HashTraits<WebKit::WebFoundTextRange>::deletedValue):

The empty and deleted values should not be the same.

(WTF::HashTraits<WebKit::WebFoundTextRange>::constructDeletedValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::isDeletedValue):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::findTextRangesForStringMatches):

Cache the found ranges and their corresponding SimpleRange, to avoid
unnecessary tree traversal each time we want to decorate or scroll to
a found result.

(WebKit::WebFoundTextRangeController::decorateTextRangeWithStyle):

Found ranges can currently be decorated with 3 styles: "Normal",
"Found", and "Highlighted". The "Found" style is drawn using
document markers. The "Highlighted" style is drawn using a
TextIndicator.

(WebKit::WebFoundTextRangeController::scrollTextRangeToVisible):

Use TemporarySelectionChange to make the range visible.

(WebKit::WebFoundTextRangeController::clearAllDecoratedFoundText):
(WebKit::WebFoundTextRangeController::didBeginTextSearchOperation):
(WebKit::WebFoundTextRangeController::didEndTextSearchOperation):
(WebKit::WebFoundTextRangeController::willMoveToPage):
(WebKit::WebFoundTextRangeController::didMoveToPage):
(WebKit::WebFoundTextRangeController::drawRect):
(WebKit::WebFoundTextRangeController::rectsForTextMatchesInRect):
(WebKit::WebFoundTextRangeController::documentForFoundTextRange const):

Use the frame identifer of the WebFoundTextRange to retrieve the
corresponding Document, so that the range can be appropriately
mapped for decoration/scrolling.

(WebKit::WebFoundTextRangeController::simpleRangeFromFoundTextRange):

A helper method to cache WebFoundTextRanges and SimpleRanges.

  • WebProcess/WebPage/WebFoundTextRangeController.h:
12:56 PM Changeset in webkit [288759] by Chris Dumez
  • 14 edits
    1 copy in trunk/Source

ASSERTION FAILED: m_processCallback in WebCore::AudioWorkletProcessor::process
https://bugs.webkit.org/show_bug.cgi?id=235529

Reviewed by Geoffrey Garen and Darin Adler.

Source/WebCore:

m_processCallback stores the JS wrapper for the AudioWorkletProcessor and the crash
was due to that JS wrapper getting garbage collected while the AudioWorkletNode
was still rendering. The JS wrapper for AudioWorkletProcessor is actually created
by AudioWorkletGlobalScope::createProcessor() and the JavaScript does not usually
keep a reference to it.

To address the issue, I added a visitor to the AudioWorkletGlobalScope wrapper
which visits the processors that it created and that still have an associated
AudioWorkletNode owner.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::createProcessor):
(WebCore::AudioWorkletGlobalScope::processorIsNoLongerNeeded):
(WebCore::AudioWorkletGlobalScope::visitProcessors):

  • Modules/webaudio/AudioWorkletGlobalScope.h:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::~AudioWorkletNode):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setWrapper):
(WebCore::AudioWorkletProcessor::setProcessCallback): Deleted.

  • Modules/webaudio/AudioWorkletProcessor.h:

(WebCore::AudioWorkletProcessor::wrapper):
(WebCore::AudioWorkletProcessor::processCallbackWrapper): Deleted.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAudioWorkletProcessorCustom.cpp:

(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):

Source/WTF:

Add template parameter to WeakHashSet to disable threading assertions. This is useful
when the call site is using locking.

  • wtf/WeakHashSet.h:
  • wtf/WeakPtr.h:
12:48 PM Changeset in webkit [288758] by commit-queue@webkit.org
  • 10 edits
    6 adds in trunk

[JSC] Add support for WASM branch hinting proposal
https://bugs.webkit.org/show_bug.cgi?id=235581

Patch by Tom Tartarin <tom@leaningtech.com> on 2022-01-28
Reviewed by Yusuke Suzuki.

JSTests:

Add test for branch hinting custom section

  • wasm.yaml:
  • wasm/branch-hints/branchHintsModule.wasm: Added.
  • wasm/branch-hints/branchHintsSection.js: Added.

(const.module):

Source/JavaScriptCore:

See the proposal for a more detailed description: https://github.com/WebAssembly/branch-hinting.

This allows parsing a "code_annotation.branch_hint" custom section,
as per the code annotation proposal: https://github.com/WebAssembly/annotations.
This section provides per function information about how likely a branch at a
given offset is to be taken. It is similar to branch weight metadata in LLVM.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addIf):
(JSC::Wasm::AirIRGenerator::addBranch):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addIf):
(JSC::Wasm::B3IRGenerator::addBranch):

  • wasm/WasmBranchHints.h: Added.

(JSC::Wasm::BranchHintMap::add):
(JSC::Wasm::BranchHintMap::getBranchHint const):
(JSC::Wasm::BranchHintMap::isValidKey const):
(JSC::Wasm::isValidBranchHint):

  • wasm/WasmBranchHintsSectionParser.cpp: Added.

(JSC::Wasm::BranchHintsSectionParser::parse):

  • wasm/WasmBranchHintsSectionParser.h: Added.

(JSC::Wasm::BranchHintsSectionParser::BranchHintsSectionParser):

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::getBranchHint const):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseCustom):

12:19 PM Changeset in webkit [288757] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.5

Tag Safari-613.1.14.5.5.

12:18 PM Changeset in webkit [288756] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288749. rdar://problem/87928380

Catalyst builds fail for WebCore, WebKi and WebKitLegacy for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235821

Reviewed by Saam Barati.

Source/WebCore:

The value of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR for Catalyst builds had the system content prefix
after the Catalyst prefix. I reversed them.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Eliminated the system content prefix from ALTERNATE_ROOT_PATH since it is the old location.
Changed the create symlink script to create the directory path leading up to the symlink because
it isn't created for Catalyst builds.

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebKit.xcodeproj/project.pbxproj:

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

12:09 PM Changeset in webkit [288755] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.5

11:52 AM Changeset in webkit [288754] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Ensure session is added in network process when it creates connection to web process
https://bugs.webkit.org/show_bug.cgi?id=235754

Reviewed by Chris Dumez.

In NetworkProcess::CreateNetworkConnectionToWebProcess, if the session that web process is using is not added
yet, WorkQueueMessageReceiver cannot be added to the connection and storage messages will be dropped. Usually
session is added in NetworkProcess::AddWebsiteDataStore, which is sent from UI process before
NetworkProcess::CreateNetworkConnectionToWebProcess; but CreateNetworkConnectionToWebProcess message has
DispatchMessageEvenWhenWaitingForSyncReply flag set, so it might get processed earlier.

To fix the issue, now we send set DispatchMessageEvenWhenWaitingForSyncReply flag on AddWebsiteDataStore message
too, so it's processed before CreateNetworkConnectionToWebProcess.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::addSession):

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

JSEventListener::replaceJSFunctionForAttributeListener() should not replace m_wrapper unconditionally
https://bugs.webkit.org/show_bug.cgi?id=235658

Unreviewed, follow-up to r288648 based on Geoff's feedback.

Assert that if replaceJSFunctionForAttributeListener() is invoked, m_wrapper is
alive and remains unchanged. Remove writeBarrier() as ensureJSFunction() sets it
up only for functions created from source code.

To meet the expectation for Window-reflecting event handlers, ensure that
setAttributeEventListener() is called with the correct wrapper, and also call it
directly on DOMWindow to improve readability.

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-28

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

  • bindings/js/JSEventListener.h:

(WebCore::setWindowEventHandlerAttribute):

11:47 AM Changeset in webkit [288752] by Kocsen Chung
  • 1 edit in branches/safari-613-branch/Source/WTF/wtf/PlatformEnable.h

Apply patch. rdar://problem/88164014

11:29 AM Changeset in webkit [288751] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288591. rdar://problem/87850345

[macOS][WP] Allow mach extension to service

https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:

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

11:07 AM Changeset in webkit [288750] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Darin Adler.

  • WebProcess/com.apple.WebProcess.sb.in:
11:03 AM Changeset in webkit [288749] by msaboff@apple.com
  • 6 edits in trunk/Source

Catalyst builds fail for WebCore, WebKi and WebKitLegacy for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235821

Reviewed by Saam Barati.

Source/WebCore:

The value of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR for Catalyst builds had the system content prefix
after the Catalyst prefix. I reversed them.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Eliminated the system content prefix from ALTERNATE_ROOT_PATH since it is the old location.
Changed the create symlink script to create the directory path leading up to the symlink because
it isn't created for Catalyst builds.

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebKit.xcodeproj/project.pbxproj:
11:01 AM Changeset in webkit [288748] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] YarrJIT optimization for character BM search
https://bugs.webkit.org/show_bug.cgi?id=235738

Reviewed by Saam Barati.

Add micro-optimization of BM search path. Since it is super hot path,
this small improvement offsers 1% in jquery-todomvc-regexp microbenchmark.

ToT Patched

jquery-todomvc-regexp 484.1399+-1.0527 479.0932+-1.0999 definitely 1.0105x faster

  • yarr/YarrJIT.cpp:
10:33 AM Changeset in webkit [288747] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Symbols not always properly hidden when using WebKitAdditions to introduce new API
https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Follow-up to r288658 to address post commit feedback from Alexey Proskuryakov.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py:

(main):

10:28 AM Changeset in webkit [288746] by ntim@apple.com
  • 2 edits in trunk/Source/WTF

Enable inert attribute feature flag
https://bugs.webkit.org/show_bug.cgi?id=235668

Reviewed by Darin Adler.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:09 AM Changeset in webkit [288745] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Add copy-to-clipboard button for fuzzy matching meta tag
https://bugs.webkit.org/show_bug.cgi?id=235665

Reviewed by Darin Adler.

  • fast/harness/image-diff-template.html: Add button which cycles through different versions of

the fuzzy match string to allow for both absolute values and a range. Add a button that copies
that text and inserts into meta tag string prior to copying to clipboard.

  • fast/harness/image-diff-template-expected.txt:
9:37 AM Changeset in webkit [288744] by Ryan Haddad
  • 3 edits in trunk/Tools/CISupport/build-webkit-org

Bring up additional test queues on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=235446

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

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

9:29 AM Changeset in webkit [288743] by Patrick Angle
  • 2 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 15.4)
https://bugs.webkit.org/show_bug.cgi?id=235741

Reviewed by Devin Rousso.

  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

  • Update compatibility comment to reflect that the change is not present in iOS 15.4 or earlier.
  • UserInterface/Protocol/Legacy/15.4/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-15.4.json: Added.
9:16 AM Changeset in webkit [288742] by commit-queue@webkit.org
  • 4 edits in trunk

[XCBuild] Small corrections to build-webkit and Makefile for workspace builds
https://bugs.webkit.org/show_bug.cgi?id=235747

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

.:

  • Makefile: Set SCRIPTS_PATH correctly from the root of the repo

Tools:

  • Scripts/build-webkit: When --use-workspace is passed, assume --xcbuild
8:09 AM Changeset in webkit [288741] by Tyler Wilcock
  • 2 edits in trunk/Source/WebKit

AX: Isolated tree object frames no longer encode content offsets, so hit testing should be updated accordingly
https://bugs.webkit.org/show_bug.cgi?id=235726

Reviewed by Chris Fleizach.

In -[WKAccessibilityWebPageObjectMac accessibilityHitTest], we have a special isolated tree case:

Isolated tree frames have the offset encoded into them so we don't need to undo here.
#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)

applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled();

#endif

The statement in the comment no longer seems to be true, as not applying this content offset results
in hit testing working incorrectly (the point given to WebCore is too small).

This is because isolated tree hit testing used to use relative frames:

https://github.com/WebKit/WebKit/blob/f5525921aac090ca9544cce2a3ac28e38f92c9ba/Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp#L115

But now doesn't, instead deferring to the live, main-thread AX object, which doesn't use relative frames:

https://github.com/WebKit/WebKit/blob/4221a510fe4678cf1a03e5c06878cf2d3f0c1738/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp#L814

This patch removes this isolated-tree-specific behavior.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

8:00 AM Changeset in webkit [288740] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Only make a single request to GitHub when validating PR
https://bugs.webkit.org/show_bug.cgi?id=235716
<rdar://problem/88133197>

Reviewed by Aakash Jain.

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

(GitHubMixin._is_pr_closed): Accept pr_json, do not make request.
(GitHubMixin._is_pr_obsolete): Ditto.
(ValidateChange.validate_github): Make request and pass json to functions.

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

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

7:27 AM Changeset in webkit [288739] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][a11y] WTR: implement AccessibilityUIElement::isIgnored() for ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235761

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::isIgnored const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isIgnored const):

7:25 AM Changeset in webkit [288738] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][a11y] Return the list of column/row headers from header cells too with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235711

Reviewed by Adrian Perez de Castro.

Source/WebCore:

We are only returning the list of column/row headers from cells that are not headers for consistency with
chromium. However, our layout tests don't expect that and firefox doesn't do it either.

  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):

Tools:

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTableBasic):

7:22 AM Changeset in webkit [288737] by graouts@webkit.org
  • 2 edits
    4 deletes in trunk/LayoutTests

[WPT] Remove outdated Web Animations expectations
https://bugs.webkit.org/show_bug.cgi?id=235767

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
5:28 AM Changeset in webkit [288736] by Pablo Saavedra
  • 2 edits in trunk

[WPE] Build error with ACCESSIBILITY=OFF after r288731
https://bugs.webkit.org/show_bug.cgi?id=235764

Reviewed by Adrian Perez de Castro.

  • Source/cmake/OptionsWPE.cmake:
3:35 AM Changeset in webkit [288735] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] validate-change step fails while running for a try build
https://bugs.webkit.org/show_bug.cgi?id=235750

Reviewed by Jonathan Bedard.

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

(loadBuilderConfig):

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

Jan 27, 2022:

11:58 PM Changeset in webkit [288734] by Chris Dumez
  • 20 edits in trunk

Radio buttons with no form owner are not grouped
https://bugs.webkit.org/show_bug.cgi?id=220502
<rdar://problem/73300895>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

Per the HTML specification and to match the behavior of both Gecko and Blink,
radio buttons should still be grouped, even if they are disconnected and not
owned by a form.

This patch aligns our behavior with Gecko and Blink and is based on the following
Blink commit:

No new tests, rebaselined existing tests.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didChangeForm):
(WebCore::HTMLInputElement::insertedIntoAncestor):
(WebCore::HTMLInputElement::removedFromAncestor):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup const):

  • html/InputType.h:

(WebCore::InputType::willUpdateCheckedness):

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::valueMissing const):
(WebCore::RadioInputType::willUpdateCheckedness):

  • html/RadioInputType.h:

LayoutTests:

  • fast/forms/radio/ValidityState-valueMissing-radio-expected.txt:
  • fast/forms/radio/ValidityState-valueMissing-radio.html:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:

Update existing tests to reflect behavior change. I have verified that our behavior on those tests
is aligned with both Firefox and Chrome.

  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:

Rebaseline existing WPT tests now that more checks are passing.

11:33 PM Changeset in webkit [288733] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r288672
https://bugs.webkit.org/show_bug.cgi?id=235756

  • Modules/webxr/XRReferenceSpaceEvent.cpp:
  • loader/ProgressTracker.h:
11:31 PM Changeset in webkit [288732] by Aditya Keerthi
  • 15 edits
    3 copies
    2 adds in trunk/Source

Introduce WebFoundTextRange and WebFoundTextRangeController to support restorable find results
https://bugs.webkit.org/show_bug.cgi?id=235691
rdar://88117167

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/TextIterator.cpp:

(WebCore::findIteratorOptions): Deleted.

  • editing/TextIterator.h:

(WebCore::findIteratorOptions):

Moved method into header to share logic.

  • page/Page.cpp:

(WebCore::Page::findTextMatches):

Added a way to suppress marking text matches.

  • page/Page.h:

Source/WebKit:

To better support the _UITextSearching protocol, WKWebView needs to be
able to restore find-in-page results found in other views with the same
content.

The desired functionality is achieved through the use of two new interfaces:
WebFoundTextRange, which represents a range of found text, and
WebFoundTextRangeController, which will be responsible for finding,
decorating, and scrolling to ranges.

A "found text range" is uniquely identified by a location, length,
frame identifier, and order. The location and length represent a
character range in document corresponding to the frame identifier.
The order represents the relative ordering between ranges - for
example, results in the main frame are ordered before results in a
subframe.

This is the first in a series of patches that implements the interface.
The available methods on WebFoundTextRangeController map one-to-one with
the _UITextSearching protocol. This patch implements the creation of
restorable found ranges.

  • Scripts/generate-unified-sources.sh:

Increase unified build files to 120.

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebFindOptions.cpp: Copied from Source/WebKit/Shared/WebFindOptions.h.

(WebKit::core):

  • Shared/WebFindOptions.h:
  • Shared/WebFoundTextRange.cpp:

(WebKit::WebFoundTextRange::operator== const):
(WebKit::WebFoundTextRange::encode const):
(WebKit::WebFoundTextRange::decode):

  • Shared/WebFoundTextRange.h:

(WTF::WebFoundTextRangeHash::hash):
(WTF::WebFoundTextRangeHash::equal):
(WTF::HashTraits<WebKit::WebFoundTextRange>::emptyValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::constructDeletedValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::isDeletedValue):

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode):

Fix unified source-related build failure.

  • Sources.txt:
  • UnifiedSources-output.xcfilelist:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::core): Deleted.

  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/WebFoundTextRangeController.cpp: Added.

(WebKit::WebFoundTextRangeController::WebFoundTextRangeController):
(WebKit::WebFoundTextRangeController::findTextRangesForStringMatches):

Use the FrameTrees's uniqueName as a frame identifier for the found
text range. These names are consistent across web content with the
same markup.

(WebKit::WebFoundTextRangeController::decorateTextRangeWithStyle):
(WebKit::WebFoundTextRangeController::scrollTextRangeToVisible):
(WebKit::WebFoundTextRangeController::clearAllDecoratedFoundText):
(WebKit::WebFoundTextRangeController::didBeginTextSearchOperation):
(WebKit::WebFoundTextRangeController::didEndTextSearchOperation):
(WebKit::WebFoundTextRangeController::willMoveToPage):
(WebKit::WebFoundTextRangeController::didMoveToPage):
(WebKit::WebFoundTextRangeController::mouseEvent):
(WebKit::WebFoundTextRangeController::drawRect):

  • WebProcess/WebPage/WebFoundTextRangeController.h: Added.
11:05 PM Changeset in webkit [288731] by Carlos Garcia Campos
  • 11 edits in trunk

[WPE][a11y] Add option to build with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235701

Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • PlatformWPE.cmake:
  • SourcesWPE.txt:

Source/WebKit:

  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformDetach):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

Tools:

  • WebKitTestRunner/PlatformWPE.cmake:
11:04 PM Changeset in webkit [288730] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[GTK][a11y] Do not set the accessibility root object on svg image page elements with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235705

Reviewed by Adrian Perez de Castro.

This was needed only because of isolated tree mode.

  • accessibility/AccessibilityRenderObject.cpp:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.h:
11:03 PM Changeset in webkit [288729] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Ignore span elements with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235704

Reviewed by Adrian Perez de Castro.

Their text contents are exposed as part of the parent object.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

11:02 PM Changeset in webkit [288728] by graouts@webkit.org
  • 20 edits
    5 adds in trunk

[Model] Allow disabling interaction
https://bugs.webkit.org/show_bug.cgi?id=227621
<rdar://problem/80079703>

Reviewed by Darin Adler.

Source/WebCore:

We add support for the "interactive" IDL property and HTML attribute as discussed
in the <model> explainer at https://github.com/WebKit/explainers/tree/main/model.

If the "interactive" property is "true", then the HTML "interactive" attribute is
set on the element. If the property is "false", then the HTML attribute is absent.

Likewise, if the HTML attribute is present, the property returns "true". If the
HTML attribute is midding, the property returns "false".

Note that the value held by the HTML attribute is not taken into account, its mere
presence is all that is required.

Based on the value of the "interactive" property, we either disable or enable
interaction. On macOS, we check the property in HTMLModelElement::defaultEventHandler()
while on iOS, where dragging is performed entirely in the UI process, we use the
new ModelPlayer::setInteractionEnabled() method.

By default, interaction is disabled.

Tests: model-element/model-element-interactive-dragging.html

model-element/model-element-interactive.html

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::isInteractive const):
(WebCore::HTMLModelElement::attributeChanged):
(WebCore::HTMLModelElement::defaultEventHandler):

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

(WebCore::ModelPlayer::setInteractionEnabled):

  • Modules/model-element/ModelPlayer.h:
  • html/HTMLAttributeNames.in:

Source/WebKit:

Override the new ModelPlayer::setInteractionEnabled() method for the iOS flavor
and send the value up to the UI process such that it may set the matching value
for UIView.userInteractionEnabled on the matching WKModelView.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::setInteractionEnabledForModelElement):

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

(WebKit::WebPageProxy::modelElementSetInteractionEnabled):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKModelView.mm:

(-[WKModelView initWithModel:]):

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::setInteractionEnabled):

LayoutTests:

Add two new tests:

  • model-element/model-element-interactive.html tests the "interactive" IDL property

and the "interactive" HTML attribute,

  • model-element/model-element-interactive-dragging.html tests that the "interactive"

IDL property correctly disables setting the camera by dragging when "false", and allows
it when "true".

We also refactor some code previously found in model-element/model-element-camera.html
to now be in the shared model-element/resources/model-utils.js to ease writing <model>
tests.

  • model-element/model-element-camera.html:
  • model-element/model-element-interactive-dragging-expected.txt: Added.
  • model-element/model-element-interactive-dragging.html: Added.
  • model-element/model-element-interactive-expected.txt: Added.
  • model-element/model-element-interactive.html: Added.
  • model-element/resources/model-utils.js: Added.

(const.makeModel):
(const.bodyAvailability.async return):
(const.bodyAvailability):
(const.readyModel.async test):
(const.assert_cameras_are_equal):
(const.assert_cameras_are_not_equal):

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:01 PM Changeset in webkit [288727] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK][a11y] WTR: add implementation for all relation APIs with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235702

Reviewed by Adrian Perez de Castro.

There's more API that is ATK only but should be implemented by ATSPI too.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::ariaOwnsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaLabelledByElementAtIndex):
(WTR::AccessibilityUIElement::ariaLabelledByReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaDescribedByElementAtIndex):
(WTR::AccessibilityUIElement::ariaDescribedByReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex):

11:00 PM Changeset in webkit [288726] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[GTK][a11y] Do not set the children count when serializing objects for the ATSPI cache
https://bugs.webkit.org/show_bug.cgi?id=235700

Reviewed by Adrian Perez de Castro.

It's confusing the cache if things don't happen in the expected order. We handle the children by emitting the
children-changed signals. When the children count is set in the cache by AddAccessible signal or as a response
to GetItems, atspi sets the accessible children vector size to the given value. If children-changed:add is
emitted after that, it's considered a new child and the children vector grows. So, we end up with the double of
children, but half of them are just null.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerObject): Add the registered object to the update cache list.
(WebCore::AccessibilityAtspi::unregisterObject): Remove the object from the cache and emit RemoveAccessible
signal if needed.
(WebCore::AccessibilityAtspi::parentChanged): Stop registering the objects here, they will be registered when
actually needed. Also don't emit the signal if the object is pending, because AddAccessible will update the cache.
(WebCore::AccessibilityAtspi::childrenChanged): Do not add the pending objects to the cache, we can just emit
the signal now and cache will be updated later.
(WebCore::AccessibilityAtspi::stateChanged): Ditto.
(WebCore::AccessibilityAtspi::textChanged): Ditto.
(WebCore::AccessibilityAtspi::textAttributesChanged): Ditto.
(WebCore::AccessibilityAtspi::textCaretMoved): Ditto.
(WebCore::AccessibilityAtspi::textSelectionChanged): Ditto.
(WebCore::AccessibilityAtspi::valueChanged): Ditto.
(WebCore::AccessibilityAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityAtspi::loadEvent): Ditto.
(WebCore::AccessibilityAtspi::cacheUpdateTimerFired): Copy the list because addToCacheIfNeeded() might add new
items to the that we don't want to process in this iteration.
(WebCore::AccessibilityAtspi::addToCacheIfPending): Deleted.
(WebCore::AccessibilityAtspi::addAccessible): Deleted.
(WebCore::AccessibilityAtspi::removeAccessible): Deleted.

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

(WebCore::AccessibilityObjectAtspi::registerObject): Remove the call to addAccessible, it's now done in AccessibilityAtspi::registerObject.
(WebCore::AccessibilityObjectAtspi::serialize const): Pass -1 as children count to ensure the children vector is
not modified.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::serialize const): Ditto.

10:59 PM Changeset in webkit [288725] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Keep a reference to the parent wrapper with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235699

Reviewed by Adrian Perez de Castro.

When wrappers are destroyed it doesn't necessarily happen in the tree order, we need to keep the parent alive to
emit the children-changed signal.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
10:58 PM Changeset in webkit [288724] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Return null reference for root parent reference if queried before being embedded
https://bugs.webkit.org/show_bug.cgi?id=235698

Reviewed by Adrian Perez de Castro.

Once embedded parent-changed will be emitted.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::parentReference const):

10:53 PM Changeset in webkit [288723] by graouts@webkit.org
  • 9 edits in trunk/Source

<model> should not be draggable on macOS
https://bugs.webkit.org/show_bug.cgi?id=235697

Reviewed by Dean Jackson.

Source/WebCore:

As part of bug 229246 we added support for dragging <model> elements. However, it did not
work on macOS in practice so we make that explicit.

This is also important leading up to bug 227621, where we'll implement the "interactive"
HTML attribute and IDL property, since disabling dragging over a <model> element to adjust
the camera would trigger a crash under Pasteboard::write() on macOS due to not having an
image set on the pasteboard data.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::supportsDragging const):
(WebCore::HTMLModelElement::isDraggableIgnoringAttributes const):

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

(WebCore::ModelPlayer::supportsDragging):

  • Modules/model-element/ModelPlayer.h:
  • page/DragController.cpp:

(WebCore::modelElementIsDraggable):

Source/WebKit:

Override the ModelPlayer method to disable <model> dragging on macOS.

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::supportsDragging):

10:51 PM Changeset in webkit [288722] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove unnecessary build-time branch in ARKitInlinePreviewModelPlayerMac::supportsMouseInteraction()
https://bugs.webkit.org/show_bug.cgi?id=235729

Reviewed by Dean Jackson.

The whole file is wrapped in a #if ENABLE(ARKIT_INLINE_PREVIEW_MAC) statement already.

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::supportsMouseInteraction):

9:13 PM Changeset in webkit [288721] by Megan Gardner
  • 9 edits in trunk

DocumentContext gives empty rects for blank lines.
https://bugs.webkit.org/show_bug.cgi?id=235695

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: DocumentEditingContext::RectsRequestInContentEditable

When requesting the document context for the end of a document, we would give empty rects for
blank lines. This was because when calculating the absoluteBoundingRect for the range, we
would use a normal unionRect call, which would use the basic unite call, which does not combine
empty rects. And empty rect is defined as a rect that does not have a non-zero hight and width.
Since we were calculating information about <br> lines, this was causing us to union a list of
a single rect, which was an empty rect. This left us with a zero rect after unioning. The solution
is to unionIfNonZero when calculating these rects for DocumentContext. I also took the opportunity
to make some of this code more parallel to other implementations.

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::unionRectIfNonZero):

  • platform/graphics/GeometryUtilities.h:
  • platform/graphics/IntRect.cpp:

(WebCore::IntRect::uniteIfNonZero):

  • platform/graphics/IntRect.h:

(WebCore::IntRect::isZero const):

Source/WebKit:

When requesting the document context for the end of a document, we would give empty rects for
blank lines. This was because when calculating the absoluteBoundingRect for the range, we
would use a normal unionRect call, which would use the basic unite call, which does not combine
empty rects. And empty rect is defined as a rect that does not have a non-zero hight and width.
Since we were calculating information about <br> lines, this was causing us to union a list of
a single rect, which was an empty rect. This left us with a zero rect after unioning. The solution
is to unionIfNonZero when calculating these rects for DocumentContext. I also took the opportunity
to make some of this code more parallel to other implementations.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST): DocumentEditingContext::RectsRequestInContentEditable

7:11 PM Changeset in webkit [288720] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Remove ENABLE(HOVER_GESTURE_RECOGNIZER) and related code
https://bugs.webkit.org/show_bug.cgi?id=235749
Source/WebKit:

<rdar://problem/86425437>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView setUpHoverGestureRecognizer]): Deleted.
(-[WKContentView hoverGestureRecognizerChanged:]): Deleted.

  • UIProcess/ios/WKHoverPlatter.h:
  • UIProcess/ios/WKHoverPlatter.mm:
  • UIProcess/ios/WKHoverPlatterParameters.h:
  • UIProcess/ios/WKHoverPlatterParameters.mm:
  • WebProcess/WebPage/MomentumEventDispatcher.cpp:

(WebKit::mode):
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
(WebKit::MomentumEventDispatcher::equalizeTailGaps):

  • WebProcess/WebPage/MomentumEventDispatcher.h:

Source/WTF:

Reviewed by Wenson Hsieh.

  • wtf/PlatformEnableCocoa.h:
5:51 PM Changeset in webkit [288719] by Jonathan Bedard
  • 3 edits in trunk/Tools

[git-webkit] Respect EMAIL_ADDRESS environment variable during setup
https://bugs.webkit.org/show_bug.cgi?id=235748
<rdar://problem/88161757>

Reviewed by Ryan Haddad.

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

(Setup.git): Prefer EMAIL_ADDRESS variable over git config email.

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

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

5:23 PM Changeset in webkit [288718] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Do not require GNU Gold usage to enable DEBUG_FISSION
https://bugs.webkit.org/show_bug.cgi?id=235737

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsCommon.cmake: Allow enabling DEBUG_FISSION with any linker.
5:08 PM Changeset in webkit [288717] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.4

Tag Safari-613.1.14.5.4.

5:07 PM Changeset in webkit [288716] by Russell Epstein
  • 15 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288710. rdar://problem/88100509

com.apple.WebKit.WebAuthn.xpc fails to build with system content path
https://bugs.webkit.org/show_bug.cgi?id=235734

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Adjusted build path variables to handle the case when building for Catalyst.
Did this by refactoring how the optional system content path is added as a prefix to paths.
As a result, modified the create symlink script to not be dependent on the target location,
since it isn't created when doing a catalyst build. Instead the script creates the parent
directory of the symlink if it doesn't exisst.

  • Configurations/Base.xcconfig:
  • Configurations/JSC.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/create-symlink-to-altroot.sh:

Source/ThirdParty/libwebrtc:

Added explicit PUBLIC_HEADERS_FOLDER_PATH vavriable. Otherwise we get the
project version with didn't include the "libwebrtc" component.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Since WebCore is installed under the WebKit framework on macOS, we don't need a symlink for the
WebCore.framework itself. As a result, modified the create symlink script to not be dependent
on the target location, since it isn't created when doing a catalyst build.
Instead the script creates the parent directory of the symlink if it doesn't exisst.

  • Configurations/WebCore.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Since we symlink the the whole framework when building the main "WebKit" target,
we can eliminate the create symlink script for the WebAuth target.
Eliminated the setting of ALTERNATE_ROOT_PATH build variables for all XPC services.

  • Configurations/BaseXPCService.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

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

5:06 PM Changeset in webkit [288715] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.4

4:58 PM Changeset in webkit [288714] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Differentiate UAT and production PR processing
https://bugs.webkit.org/show_bug.cgi?id=235669
<rdar://problem/88093065>

Reviewed by Aakash Jain.

  • CISupport/ews-build/events.py:

(Events.buildFinished): Append custom_suffix to reported context.
(Events.stepStartedGitHub): Ditto.

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

4:53 PM Changeset in webkit [288713] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1

Tag Safari-614.1.1.

4:44 PM Changeset in webkit [288712] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed fix for older macOS builds after r288577.

  • wtf/Assertions.h:
4:42 PM Changeset in webkit [288711] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][macOS] Removed unneeded telemetry
https://bugs.webkit.org/show_bug.cgi?id=235742

Reviewed by Darin Adler.

Remove some telemetry we have sufficient data for.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
4:24 PM Changeset in webkit [288710] by msaboff@apple.com
  • 15 edits in trunk/Source

com.apple.WebKit.WebAuthn.xpc fails to build with system content path
https://bugs.webkit.org/show_bug.cgi?id=235734

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Adjusted build path variables to handle the case when building for Catalyst.
Did this by refactoring how the optional system content path is added as a prefix to paths.
As a result, modified the create symlink script to not be dependent on the target location,
since it isn't created when doing a catalyst build. Instead the script creates the parent
directory of the symlink if it doesn't exisst.

  • Configurations/Base.xcconfig:
  • Configurations/JSC.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/create-symlink-to-altroot.sh:

Source/ThirdParty/libwebrtc:

Added explicit PUBLIC_HEADERS_FOLDER_PATH vavriable. Otherwise we get the
project version with didn't include the "libwebrtc" component.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Since WebCore is installed under the WebKit framework on macOS, we don't need a symlink for the
WebCore.framework itself. As a result, modified the create symlink script to not be dependent
on the target location, since it isn't created when doing a catalyst build.
Instead the script creates the parent directory of the symlink if it doesn't exisst.

  • Configurations/WebCore.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Since we symlink the the whole framework when building the main "WebKit" target,
we can eliminate the create symlink script for the WebAuth target.
Eliminated the setting of ALTERNATE_ROOT_PATH build variables for all XPC services.

  • Configurations/BaseXPCService.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
4:01 PM Changeset in webkit [288709] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk

Add .clangd similar to .ccls
https://bugs.webkit.org/show_bug.cgi?id=235743

Reviewed by Saam Barati.

This patch adds .clangd local configuration, which is similar to .ccls.

  • .clangd: Added.
3:29 PM Changeset in webkit [288708] by Matt Lewis
  • 1 edit in trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/editor.py

VSCode needs to be an option for commit message editor in git-webkit
https://bugs.webkit.org/show_bug.cgi?id=235731

Reviewed by Jonathan Bedard.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/editor.py:

(Editor):
(Editor.vscode):
(Editor.programs):

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

3:24 PM Changeset in webkit [288707] by Chris Dumez
  • 9 edits in trunk

Geolocation API should callback with error if doc is not fully active
https://bugs.webkit.org/show_bug.cgi?id=228319
<rdar://problem/81450315>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

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

Rebaseline WPT test that is now passing.

Source/WebCore:

Test: imported/w3c/web-platform-tests/geolocation-API/non-fully-active.https.html

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::getCurrentPosition):
(WebCore::Geolocation::watchPosition):
Schedule a task to call the error callback if the document is not fully active, as
per the specification:

  • dom/TaskSource.h:

As Geolocation task source for the HTML5 event loop, as per the Geolocation
specification.

LayoutTests:

Update existing layout tests to reflect behavior change.

  • fast/dom/Geolocation/disconnected-frame-already-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-already.html:

Aligns test assertions with the spec. Gecko also passes it.

3:22 PM Changeset in webkit [288706] by Devin Rousso
  • 2 edits in trunk/Source/WTF

Change version number for HAVE_PASSKIT_DEFAULT_SHIPPING_METHOD
https://bugs.webkit.org/show_bug.cgi?id=235732
<rdar://problem/88152385>

Reviewed by Wenson Hsieh.

  • wtf/PlatformHave.h:
3:18 PM Changeset in webkit [288705] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Ignore hooks from closed PRs
https://bugs.webkit.org/show_bug.cgi?id=235666
<rdar://problem/88091611>

Unreviewed follow-up fix.

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

(GitHubEventHandlerNoEdits.handle_pull_request): 'state' is a member of the 'pull_request' dictionary.

3:07 PM Changeset in webkit [288704] by Russell Epstein
  • 1 copy in tags/Safari-613.1.15

Tag Safari-613.1.15.

2:23 PM Changeset in webkit [288703] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

AXIsolatedObject::children should honor the parameter updateChildrenIfNeeded.
https://bugs.webkit.org/show_bug.cgi?id=235728
<rdar://problem/88149344>

Reviewed by Chris Fleizach.

This will allow to get a more accurate smapshot of the isolated tree
during debugging. For instance it will allow to do AXLOG of the isolated
tree in applyPendingChanges which is currently not possible because
results in infinite recursion.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::children):

2:18 PM Changeset in webkit [288702] by Devin Rousso
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: move Preserve Log checkbox navigation item to a gear-with-contextmenu to save space (and match the Network Tab)
https://bugs.webkit.org/show_bug.cgi?id=235541

Reviewed by Patrick Angle.

Also collapse source scope bar into a single button for more space, and align it (and the
filter bar and type scope bar) to the left to better match other tabs.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):
(WI.LogContentView.prototype.get navigationItems):
(WI.LogContentView.prototype._updateOtherFiltersNavigationItemState): Added.
(WI.LogContentView.prototype._handleOtherFiltersNavigationItemContextMenu): Added.
(WI.LogContentView.prototype._handleClearLogOnNavigateSettingChanged):
(WI.LogContentView.prototype._showHiddenMessagesBannerIfNeeded):
Drive-by: Also reset the message source WI.ScopeBar when clearing filters.

  • UserInterface/Views/LogContentView.css:

(.console-find-banner): Added.
(.message-channel-scope-bar.default-item-selected:not(:hover)): Added.
(.message-channel-scope-bar.default-item-selected:hover): Added.
(.log-scope-bar + .message-channel-scope-bar): Added.
(.console-other-filters-button > .glyph): Added.
(.console-other-filters-button:active > .glyph): Added.
(.console-other-filters-button.active > .glyph): Added.
(.console-other-filters-button.active:active > .glyph): Added.

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView):
Override the flexibleNavigationItem so that there's no expanding space before the filter.

  • UserInterface/Views/ConsoleDrawer.js:

(WI.ConsoleDrawer):
Somehow this got overlooked when the constructor of WI.ContentBrowser was changed :(

  • UserInterface/Views/FindBanner.css:

(.find-banner):
(.find-banner > input[type="search"]):
Add --find-banner-input-margin-start so that this can be overridden by specific clients.

  • Localizations/en.lproj/localizedStrings.js:
2:11 PM Changeset in webkit [288701] by Kate Cheney
  • 113 edits
    10 adds in trunk

"Unrecognized Content-Security-Policy directive 'worker-src'."
https://bugs.webkit.org/show_bug.cgi?id=235260
<rdar://problem/83734079>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/child-src/child-src-cross-origin-load.sub-expected.txt:
  • web-platform-tests/content-security-policy/child-src/child-src-worker-blocked.sub-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-none.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-script-fallback.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-self-fallback.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/service-none.https.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/shared-child.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-list.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-none.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-self.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-default-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-script-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-self-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/blob/self-doesnt-match-blob.sub-expected.txt:
  • web-platform-tests/content-security-policy/blob/star-doesnt-match-blob.sub-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.https-expected.txt:

Source/WebCore:

Implementation of worker-src directive. According to https://www.w3.org/TR/CSP3/#changes-from-level-2
the worker-src directive now restricts URLs that can be loaded by
workers, and defers to child-src if not specified.

  • bindings/js/WorkerModuleScriptLoader.cpp:

(WebCore::WorkerModuleScriptLoader::load):
Check worker-src instead of child-src for worker loads.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/ThreadableLoader.h:

Check worker-src instead of child-src for worker loads.

  • page/csp/ContentSecurityPolicy.cpp:

We can remove allowChildContextFromSource which is now fully replaced
by allowWorkerFromSource.

(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowChildContextFromSource const): Deleted.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::operativeDirectiveForWorkerSrc const):
worker-src defers to child-src, then script-src, then default-src.

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForWorker):
(WebCore::ContentSecurityPolicyDirectiveList::addDirective):

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.h:
  • workers/AbstractWorker.cpp:

(WebCore::AbstractWorker::resolveURL):

  • workers/AbstractWorker.h:

We check LegacySchemeRegistry::schemeShouldBypassContentSecurityPolicy
in allowWorkerFromSource, so we don't need to check in in AbstractWorker::resolveURL
anymore. We can also replace the child-src checks with worker-src
ones.

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/WorkerFontLoadRequest.cpp:

(WebCore::WorkerFontLoadRequest::load):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
Block service worker registrations not specified by worker-src.

  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::create):
Block shared worker urls not specified by worker-src.

  • workers/shared/SharedWorkerScriptLoader.cpp:

(WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):

Source/WebKit:

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

Update tests now that worker-src defaults eventually to script-src.
Since this was not the case with child-src, legacy CSP tests do not
expect script-src policies to affect workers. We can fix this by
specifying a separate worker-src policy for these tests to maintain
behavior.

Some wpt tests log random URL strings that change for every test
iteration. For now we can't unskip those.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-blocks-eval.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp.html:
  • http/tests/security/contentSecurityPolicy/worker-script-src.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-importScript-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:
1:37 PM Changeset in webkit [288700] by Antti Koivisto
  • 5 edits in trunk

Default to 32 bit refcount for CanMakeCheckedPtr
https://bugs.webkit.org/show_bug.cgi?id=235723
rdar://86602114

Reviewed by Darin Adler.

Source/WTF:

It is currently uint16_t for no good reason. It is no unreasonable to have an object being referenced
by a large number of other objects.

We just hit the first bug caused by overrunning it (in IFC).

  • wtf/CheckedRef.h:

uint16_t -> uint32_t

Tools:

  • TestWebKitAPI/Tests/WTF/CheckedPtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/CheckedRef.cpp:
1:21 PM Changeset in webkit [288699] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Fix !ENABLE(ACCESSIBILITY) after r288674
https://bugs.webkit.org/show_bug.cgi?id=235727
<rdar://problem/88147878>

Unreviewed build fix.

In r288674 AXObjectCache had updateLoadingProgress added but it wasn't added to the block
of inlined !ENABLE(ACCESSIBILITY) methods further down the file.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::updateLoadingProgress):

1:06 PM Changeset in webkit [288698] by Devin Rousso
  • 51 edits
    3 copies
    1 move
    3 adds in trunk

[Payment Request] allow additional payment method specific data to be passed to complete()
https://bugs.webkit.org/show_bug.cgi?id=235415
<rdar://problem/82970451>

Reviewed by Darin Adler.

Source/WebCore:

This allows for developers/merchants to give additional details to Apple Pay on completion.

Issue: <https://github.com/w3c/payment-request/issues/981>
Spec PR: <https://github.com/w3c/payment-request/pull/982>

Test: http/tests/paymentrequest/ApplePayPaymentCompleteDetails.https.html

  • Modules/paymentrequest/PaymentCompleteDetails.h: Added.
  • Modules/paymentrequest/PaymentCompleteDetails.idl: Added.
  • Modules/paymentrequest/PaymentResponse.h:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::complete):

  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::complete):

  • Modules/paymentrequest/PaymentHandler.h:

Add new dictionary PaymentCompleteDetails that's allowed as an optional second argument to
PaymentResponse.prototype.complete. If provided, JSON stringify it and pass the serialized
string data along to the relevant PaymentHandler for JSON (re)parsing if the associated
payment method requires it.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::convertAndValidate):
(WebCore::merge):
(WebCore::ApplePayPaymentHandler::complete):
(WebCore::ApplePayPaymentHandler::retry):

  • Modules/applepay/paymentrequest/ApplePayPaymentCompleteDetails.idl: Added.
  • Modules/applepay/paymentrequest/ApplePayPaymentCompleteDetails.h: Added.

(WebCore::ApplePayPaymentCompleteDetails::encode const):
(WebCore::ApplePayPaymentCompleteDetails::decode):
Convert the JSON (re)parsed object into a ApplePayPaymentCompleteDetails, merging it into
the ApplePayPaymentAuthorizationResult passed to the PaymentCoordinator (see below).

  • Modules/applepay/ApplePayPaymentAuthorizationResult.h:
  • Modules/applepay/ApplePayPaymentAuthorizationResult.cpp: Added.

(WebCore::ApplePayPaymentAuthorizationResult::isFinalState const):
(WebCore::ApplePayPaymentAuthorizationResult::encode const):
(WebCore::ApplePayPaymentAuthorizationResult::decode):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:
  • Modules/applepay/ApplePaySessionPaymentRequest.cpp:

(WebCore::isFinalStateResult): Deleted.

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::completePayment):

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completePaymentSession):

  • Modules/applepay/PaymentCoordinatorClient.h:
  • loader/EmptyClients.cpp:
  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completePaymentSession):
Replace PaymentAuthorizationResult with ApplePayPaymentAuthorizationResult so that data
doesn't need to be moved between identically shaped structs for sending to the UIProcess.

  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current):
Increment the current version.

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

(WebCore::ApplePayAMSUIPaymentHandler::complete):
AMS UI does not allow/require any data to be provided on completion.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • PlatformMac.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

This allows for developers/merchants to give additional details to Apple Pay on completion.

Issue: <https://github.com/w3c/payment-request/issues/981>
Spec PR: <https://github.com/w3c/payment-request/pull/982>

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::completePaymentSession):

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentAuthorizationResult>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::PaymentAuthorizationResult>::decode): Deleted.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toPKPaymentAuthorizationStatus):
(WebKit::PaymentAuthorizationPresenter::completePaymentSession):
Replace PaymentAuthorizationResult with ApplePayPaymentAuthorizationResult so that data
doesn't need to be moved between identically shaped structs for sending to the UIProcess.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

Add some WKA hooks.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::completePaymentSession):

LayoutTests:

  • http/tests/paymentrequest/ApplePayPaymentCompleteDetails.https.html: Added.
  • http/tests/paymentrequest/ApplePayPaymentCompleteDetails.https-expected.txt: Added.
12:56 PM Changeset in webkit [288697] by jonlee@apple.com
  • 104 edits in trunk/LayoutTests

Add fuzzy match meta headers to tests
https://bugs.webkit.org/show_bug.cgi?id=235671

Reviewed by Simon Fraser.

LayoutTests/imported/mozilla:

  • svg/blend-saturation.svg:
  • svg/filters/feComposite-2.svg:
  • svg/filters/feFlood-1.svg:
  • svg/filters/feFlood-2.svg:
  • svg/filters/feImage-1.svg:
  • svg/mask-type-01.svg:
  • svg/opacity-and-gradient-02.svg:
  • svg/text-scale-02.svg:
  • svg/text/simple-fill-gradient.svg:

LayoutTests:

Use a conservative range of pixels based on a comparison between an EWS run and a run on an
M1 16" MacBook Pro.

  • platform/ios/TestExpectations: a few tests are real failures with accelerated drawing. Mark

as image failures.

  • compositing/clipping/border-radius-async-overflow-non-stacking.html: Some of the ranges

were not large enough, and still reported errors on my machine. Expanding range.

  • compositing/geometry/css-clip-oversize.html:
  • compositing/geometry/scroller-with-clipping-and-foreground-layers.html:
  • compositing/masks/compositing-clip-path-and-mask.html:
  • compositing/patterns/direct-pattern-compositing-add-text.html:
  • compositing/patterns/direct-pattern-compositing-contain.html:
  • compositing/patterns/direct-pattern-compositing-padding.html:
  • compositing/patterns/direct-pattern-compositing-size.html:
  • compositing/patterns/direct-pattern-compositing.html:
  • compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html:
  • css3/background/background-repeat-space-border.html:
  • css3/background/background-repeat-space-content.html:
  • css3/background/background-repeat-space-padding.html:
  • css3/blending/background-blend-mode-body-image.html:
  • css3/blending/background-blend-mode-body-transparent-color-and-image.html:
  • css3/blending/background-blend-mode-body-transparent-image.html:
  • css3/filters/filters-on-svg-root.html:
  • css3/masking/mask-luminance-gradient.html:
  • css3/masking/mask-repeat-space-border.html:
  • css3/masking/mask-repeat-space-content.html:
  • css3/masking/mask-repeat-space-padding.html:
  • fast/attachment/attachment-border-should-stay-inside-attachment.html:
  • fast/backgrounds/background-opaque-clipped-gradients.html:
  • fast/backgrounds/generated-bck-image-with-small-relative-size.html:
  • fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision.html:
  • fast/backgrounds/scaled-gradient-background.html:
  • fast/borders/border-painting-inset.html:
  • fast/borders/border-painting-outset.html:
  • fast/borders/border-radius-on-html.html:
  • fast/borders/hidpi-border-painting-groove.html:
  • fast/borders/hidpi-border-painting-ridge.html:
  • fast/borders/wrong-border-color-when-radius-is-present.html:
  • fast/box-shadow/inset-box-shadow.html:
  • fast/box-shadow/inset-spread-box-shadow-split-inline.html:
  • fast/css/cascade/box-shadow-and-webkit-box-shadow-cascade-order.html:
  • fast/css/object-fit/object-fit-img-svg2.html:
  • fast/gradients/conic-center-outside-box.html:
  • fast/gradients/conic-extended-stops.html:
  • fast/gradients/conic-from-angle.html:
  • fast/gradients/conic-off-center.html:
  • fast/gradients/conic-repeating.html:
  • fast/gradients/conic-two-hints.html:
  • fast/gradients/conic.html:
  • fast/gradients/linear-two-hints-angle.html:
  • fast/gradients/linear-two-hints.html:
  • fast/gradients/radial-two-hints.html:
  • fast/images/async-image-background-image-repeated.html:
  • fast/images/exif-orientation-background-image-repeat.html:
  • fast/images/exif-orientation-svg-feimage.html:
  • fast/images/hidpi-image-position-on-device-pixels-with-border-radius.html:
  • fast/images/sprite-sheet-image-draw.html:
  • fast/inline/inline-background-clip-text-multiline.html:
  • fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html:
  • fast/shadow-dom/svg-linear-gradient-href-in-shadow-tree.html:
  • fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html:
  • fast/shadow-dom/svg-radial-gradient-href-in-shadow-tree.html:
  • fast/text/empty-shadow.html:
  • fast/text/initial-advance-selected-text.html:
  • fast/transforms/skew-x-135deg-with-gradient.html:
  • fast/transforms/skew-y-135deg-with-gradient.html:
  • imported/blink/fast/gradients/large-horizontal-gradient.html:
  • imported/blink/fast/gradients/large-vertical-gradient.html:
  • imported/blink/svg/custom/fill-fallback-currentcolor-1.svg:
  • imported/blink/svg/text/obb-paintserver.html:
  • svg/animations/animated-string-href.svg:
  • svg/clip-path/clip-opacity.html:
  • svg/clip-path/clip-path-shape-rounded-inset-1.svg:
  • svg/clip-path/clip-path-shape-rounded-inset-2.svg:
  • svg/css/invalid-color-cascade.svg:
  • svg/custom/composited-svg-with-opacity.html:
  • svg/custom/hidpi-masking-clipping.svg:
  • svg/custom/href-svg-namespace-static.svg:
  • svg/custom/href-xlink-href-gradient-element.svg:
  • svg/custom/local-url-reference-fill.html:
  • svg/custom/local-url-reference-radial-gradient.html:
  • svg/custom/local-url-reference-srcdoc.html:
  • svg/custom/local-url-reference-stroke.html:
  • svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html:
  • svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html:
  • svg/filters/feComposite.svg:
  • svg/filters/feImage-element-primitive-subregion.svg:
  • svg/gradients/spreadMethod.svg:
  • svg/gradients/spreadMethodAlpha.svg:
  • svg/gradients/spreadMethodDiagonal.svg:
  • svg/gradients/spreadMethodDiagonal2.svg:
  • svg/gradients/spreadMethodDiagonal3.svg:
  • svg/gradients/spreadMethodDiagonal4.svg:
  • svg/gradients/spreadMethodDuplicateStop.svg:
  • svg/gradients/spreadMethodReversed.svg:
  • svg/gradients/stopAlpha.svg:
  • system-preview/badge.html:
  • webanimations/opacity-animation.html:
12:49 PM Changeset in webkit [288696] by commit-queue@webkit.org
  • 8 edits in trunk

[XCBuild] Add missing task dependencies on generate-unified-source-bundles.rb
https://bugs.webkit.org/show_bug.cgi?id=235724

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

Source/WebCore:

The targets which generate unified sources all use
/usr/local/include/wtf/Scripts/generate-unified-source-bundles.rb, but do not declare it.
In workspace builds, WTF may not have been built and this header may not exist yet.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
12:27 PM Changeset in webkit [288695] by Chris Dumez
  • 1 edit
    2 adds in trunk/LayoutTests/imported/w3c

Add layout test for Bug 235645
https://bugs.webkit.org/show_bug.cgi?id=235718

Reviewed by Alex Christensen.

  • web-platform-tests/html/semantics/forms/the-input-element/radio-multiple-selected-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/radio-multiple-selected.html: Added.
12:10 PM Changeset in webkit [288694] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Unreviewed, reverting r288670.
https://bugs.webkit.org/show_bug.cgi?id=235725

broke TestWebKitAPI.DragAndDropTests.CanStartDragOnModel on
iOS

Reverted changeset:

"<model> should only be draggable on iOS"
https://bugs.webkit.org/show_bug.cgi?id=235697
https://commits.webkit.org/r288670

12:07 PM Changeset in webkit [288693] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Remove ancestor flag initialized ASSERT in AXIsolatedObject::initializeAttributeData
https://bugs.webkit.org/show_bug.cgi?id=235717

Reviewed by Andres Gonzalez.

This patch removes:

ASSERT(isRoot
object.ancestorFlagsAreInitialized());

From AXIsolatedObject::initializeAttributeData.

This ASSERT is not very useful, since after
https://bugs.webkit.org/show_bug.cgi?id=235189 we do a single
traversal to compute all flags in the rare but legitimate cases
they aren't already initialized.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

12:03 PM Changeset in webkit [288692] by commit-queue@webkit.org
  • 21 edits in trunk

Generated xcfilelists contain symlinks when building for macOS
https://bugs.webkit.org/show_bug.cgi?id=235663
rdar://88054903

Source/WebCore:

Introduce a build variable that expands to Versions/A when building for macOS, so that our
input filelists refer to the resolved location of headers and other files inside of
framework bundles. This fixes task dependencies which were not being detected by XCBuild.

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

  • Configurations/Base.xcconfig:
  • Configurations/WebCore.xcconfig:

Source/WebInspectorUI:

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

  • Configurations/Base.xcconfig:
  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

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

  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy:

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

  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy/mac:

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

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Tools:

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

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
11:59 AM Changeset in webkit [288691] by Russell Epstein
  • 3 edits in branches/safari-614.1.1-branch/Source/WebKit

Cherry-pick r288658. rdar://problem/87999257

Symbols not always properly hidden when using WebKitAdditions to introduce new API
https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Surround APIs from WebKitAdditions with #if ENABLE(API_WEBKIT_ADDITIONS) instead of
#if USE(APPLE_INTERNAL_SDK) and leaving API_WEBKIT_ADDITIONS to be intentionally
undefined. This is because we never want to build the code inside this #if block.
Instead, those blocks are only meant to be replaced by the
replace-webkit-additions-includes.py with the code from WebKitAdditions.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py: (main):

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

11:55 AM Changeset in webkit [288690] by Wenson Hsieh
  • 8 edits
    1 add in trunk

ImageAnalysisQueue should prioritize elements that intersect the visible viewport
https://bugs.webkit.org/show_bug.cgi?id=235664
rdar://88131827

Reviewed by Darin Adler.

Source/WebCore:

Make few adjustments to the image analysis queueing mechanism, such that we prioritize analyzing images that
are in the visible document rect over offscreen images. To do this, we turn the current image element queue into
a PriorityQueue instead, which treats images that are in the visible viewport (at enqueueing time) as higher
priority over images that are not in the visible viewport, and otherwise treats images that were queued earlier
as higher priority in the case where both images are either visible or not visible.

Test: ImageAnalysisTests.ImageAnalysisPrioritizesVisibleImages

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):
(WebCore::ImageAnalysisQueue::resumeProcessingSoon):
(WebCore::ImageAnalysisQueue::resumeProcessing):
(WebCore::ImageAnalysisQueue::clear):

  • page/ImageAnalysisQueue.h:

Swap out the Deque for a PriorityQueue, and introduce ImageAnalysisQueue::Task to represent an image analysis
task (which can be compared against other tasks to determine priority using firstIsHigherPriority() below).

(WebCore::ImageAnalysisQueue::firstIsHigherPriority):

Tools:

Add an API test to verify that batch image analysis prioritizes a visible image over another image that appears
first in DOM traversal order, but is offscreen.

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

(TestWebKitAPI::processedRequests):
(TestWebKitAPI::processRequestWithResults):
(TestWebKitAPI::makeFakeRequest):
(TestWebKitAPI::makeImageAnalysisRequestSwizzler):
(TestWebKitAPI::processRequestWithError):

Additionally add a mechanism for swizzling out VKImageAnalyzerRequest initialization to return a mock object
(TestVKImageAnalyzerRequest) instead, which can then be used to inspect the CGImage that would've been sent for
analysis. See changes in ImageAnalysisTestingUtilities.* below for more information.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/offscreen-image.html: Added.
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.h:
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm:

(-[TestVKImageAnalyzerRequest initWithCGImage:orientation:requestType:]):
(-[TestVKImageAnalyzerRequest image]):
(-[TestVKImageAnalyzerRequest imageURL]):
(-[TestVKImageAnalyzerRequest setImageURL:]):
(-[TestVKImageAnalyzerRequest pageURL]):
(-[TestVKImageAnalyzerRequest setPageURL:]):
(TestWebKitAPI::createRequest):

11:45 AM Changeset in webkit [288689] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Disable WebXR experimental feature by default
https://bugs.webkit.org/show_bug.cgi?id=235688

Patch by Ada Chan <ada.chan@apple.com> on 2022-01-27
Reviewed by Tim Horton.

Source/WebKit:

Remove WebKit::defaultWebXREnabled() since it's no longer used.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebXREnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

Remove WebKit::defaultWebXREnabled() since it's no longer used.

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultWebXREnabled): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:35 AM Changeset in webkit [288688] by Jonathan Bedard
  • 10 edits in trunk/Tools

[webkitbugspy] JSON encode trackers
https://bugs.webkit.org/show_bug.cgi?id=235426
<rdar://problem/87856802>

Reviewed by Dewei Zhu.

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

(Tracker.Encoder.default): Encode bugzilla Tracker object.

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

(Tracker.Encoder.default): Encode github Tracker object.

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

(Tracker.Encoder.default): Encode radar Tracker object.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:

(TestBugzilla.test_encoding):
(TestBugzilla.test_decoding):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_encoding):
(TestGitHub.test_decoding):

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

(TestRadar.test_encoding):
(TestRadar.test_decoding):

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

(Tracker.Encoder.default): Generic encoding for all Tracker objects.
(Tracker.from_json): Decode dictionary into Tracker objects.

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

11:25 AM Changeset in webkit [288687] by Kocsen Chung
  • 3 edits in branches/safari-612.4.9.1-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/88139659

Expand RefPtr / Ref use in FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

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

11:23 AM Changeset in webkit [288686] by Kocsen Chung
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.8

11:16 AM Changeset in webkit [288685] by Russell Epstein
  • 3 edits in branches/safari-612.4.9.0-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/88139598

Expand RefPtr / Ref use in FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

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

11:14 AM Changeset in webkit [288684] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.0-branch/Source

Versioning.

WebKit-7612.4.9.0.4

10:54 AM Changeset in webkit [288683] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.41.3

Tag Safari-613.1.14.41.3.

10:53 AM Changeset in webkit [288682] by Russell Epstein
  • 12 edits in branches/safari-613.1.14.41-branch/Source/WebKit

Cherry-pick r288387. rdar://problem/87468788

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

Reviewed by Chris Dumez.

To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database. To make sure also prewarmed WebContent
processes are receiving the Launch Services database, the WebsiteDataStore method
sendNetworkProcessXPCEndpointToProcess is moved to the class NetworkProcessProxy, since prewarmed processes
will not have a data store initially. This allows us to simplify the code, since we are no longer depending
on having a Website data store before sending the XPC endpoint.

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess): (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const): Deleted.
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: (WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

10:49 AM Changeset in webkit [288681] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Versioning.

WebKit-7613.1.14.41.3

10:27 AM Changeset in webkit [288680] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Detect failed ThreadableLoader creation in FileReaderLoader.
https://bugs.webkit.org/show_bug.cgi?id=235566

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-01-27
Reviewed by Youenn Fablet.

When we fail to successfully create a ThreadableLoader in FileReaderLoader we should catch
the failure and return early.

  • Modules/fetch/FormDataConsumer.cpp:

(WebCore::FormDataConsumer::consumeBlob):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

10:17 AM Changeset in webkit [288679] by Alexander Mikhaylenko
  • 19 edits
    2 deletes in trunk/Source

[GTK] Support accent colors
https://bugs.webkit.org/show_bug.cgi?id=235706

Reviewed by Michael Catanzaro.

Source/WebCore:

Use the accent color UI process provides rather than fetching it here.
Remove the last bits of ThemeGtk and stop using foreign drawing for
text selection on GTK3.

Use dark foreground color if the accent color is bright.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::Theme::singleton):
(WebCore::ThemeAdwaita::activeSelectionForegroundColor const):
(WebCore::ThemeAdwaita::activeSelectionBackgroundColor const):
(WebCore::ThemeAdwaita::inactiveSelectionForegroundColor const):
(WebCore::ThemeAdwaita::setAccentColor):

  • platform/adwaita/ThemeAdwaita.h:
  • platform/gtk/ThemeGtk.cpp: Removed.
  • platform/gtk/ThemeGtk.h: Removed.
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::setAccentColor):

  • rendering/RenderThemeAdwaita.h:

Source/WebKit:

Take the accent color from CSS named colors. Handle the colors used in
libadwaita, elementary OS 6.x and 5.x, and the generic selection bg
color that people have been using out of context for a long time.

Track changes the best we can, even though it's not perfect: css_changed()
in GTK4 won't be called unless the CSS change affects the web view itself.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::accentColor):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseStyleUpdated):
(webkit_web_view_base_class_init):

  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::accentColorDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::setAccentColor):

Source/WTF:

  • wtf/PlatformHave.h: Flip HAVE_APP_ACCENT_COLORS for GTK.
10:13 AM Changeset in webkit [288678] by Patrick Griffis
  • 37 edits in trunk

CSP: Clean up effective-violation handling in reports
https://bugs.webkit.org/show_bug.cgi?id=235602

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Updated expectations with more passes.

  • web-platform-tests/content-security-policy/child-src/child-src-cross-origin-load.sub-expected.txt:
  • web-platform-tests/content-security-policy/frame-src/frame-src-cross-origin-load.sub-expected.txt:
  • web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted-expected.txt:

Source/WebCore:

The CSP 3 spec uses the same value for effectiveDirective and
violatedDirective noting that is now now just an alias for historical
purposes. https://www.w3.org/TR/CSP3/#violation-events

I have refactored this so we only pass around a single string instead of constantly
repeating the directive which was error prone.

This does result in a lot of script-src changing to script-src-elem in reports
however this behavior matches what Chromium is already reporting and it fixes some
WPT results where it expects frame-src instead of child-src.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::consoleMessageForViolation):
(WebCore::ContentSecurityPolicy::allowRunningOrDisplayingInsecureContent):
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
(WebCore::ContentSecurityPolicy::allowEval const):
(WebCore::ContentSecurityPolicy::allowFrameAncestors const):
(WebCore::ContentSecurityPolicy::allowPluginType const):
(WebCore::ContentSecurityPolicy::allowObjectFromSource const):
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource const):
(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowChildContextFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowImageFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allowFontFromSource const):
(WebCore::ContentSecurityPolicy::allowManifestFromSource const):
(WebCore::ContentSecurityPolicy::allowMediaFromSource const):
(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::allowFormAction const):
(WebCore::ContentSecurityPolicy::allowBaseURI const):
(WebCore::ContentSecurityPolicy::reportViolation const):

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):

LayoutTests:

Update effective-violation of expectations.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src.html:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src.html:
  • http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url2-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
  • platform/glib/http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
10:04 AM Changeset in webkit [288677] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Check the process has the dynamic-codesigning entitlement before trying to allocate a holding JIT region
https://bugs.webkit.org/show_bug.cgi?id=235673
rdar://88094997

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-01-27
Reviewed by Saam Barati.

We only need to allocate a holding JIT region, for processes with the JIT disabled, if that process has the
dynamic-codesigning entitlement. We can skip this allocation if the process doesn't have that entitlement.

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::setJITEnabled):

9:58 AM Changeset in webkit [288676] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AXLogger::add should not cause tree updates via children()
https://bugs.webkit.org/show_bug.cgi?id=235715

Reviewed by Chris Fleizach.

AXLogger::add(TextStream&, const RefPtr<AXCoreObject>&, bool) currently
calls the update version of AXCoreObject::children(bool), causing behavior
to potentially be different between builds with logging enabled and logging
disabled.

The logger should only read the current state of the object / tree, never modify it.

  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::add):

9:49 AM Changeset in webkit [288675] by Antti Koivisto
  • 10 edits in trunk

[CSS Container Queries] Basic parsing support for query syntax
https://bugs.webkit.org/show_bug.cgi?id=235712

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:

Source/WebCore:

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

Use MediaQueryParser to parse the query syntax. Note that because the limitations
of MediaQueryParser only simple non-nested queries can be parsed for now.

  • css/StyleRule.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeContainerRule):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeSingleContainerName):

  • css/parser/CSSPropertyParserHelpers.h:
  • css/parser/MediaQueryParser.cpp:

(WebCore::MediaQueryParser::parseContainerQuery):
(WebCore::MediaQueryParser::MediaQueryParser):
(WebCore::MediaQueryParser::readContainerQuery):
(WebCore::MediaQueryParser::handleBlocks):
(WebCore::MediaQueryParser::processToken):
(WebCore::MediaQueryParser::parseInternal):

  • css/parser/MediaQueryParser.h:
8:51 AM Changeset in webkit [288674] by Tyler Wilcock
  • 21 edits in trunk

AX ITM: Defer to the tree when determining AX object loading progress
https://bugs.webkit.org/show_bug.cgi?id=235646

Reviewed by Andres Gonzalez.

Source/WebCore:

Currently, we set AXPropertyName::IsLoaded and AXPropertyName::EstimatedLoadingProgress
once in AXIsolatedObject::initializeAttributeData and never update it. This means that
if an object is created while the page is at some non-100% load percentage, AX clients
that request these attributes will always think the object isn't loaded.

This patch removes these two properties and instead defers to the isolated tree associated
with each object when determining the load percentage. Both of these properties were based
on the entire page / document load progress anyways, so it doesn't make sense to set the
same value for all of them.

We track loading progress by changing ProgressTracker to also notify
the page when progress changes, which in turn updates the associated
AXObjectCache with the new progress value.

Covered by accessibility/mac/document-attributes.html which verifies the AXLoad and
AXLoadingProgress attributes.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::updateLoadingProgress):
Added.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::loadingFinished):
(WebCore::AXObjectCache::loadingProgress const):
Added.

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

(WebCore::AccessibilityRenderObject::loadingProgress const):
(WebCore::AccessibilityRenderObject::estimatedLoadingProgress const):
Rename estimatedLoadingProgress methods to loadingProgress.

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

(WebCore::AXIsolatedObject::initializeAttributeData):

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

(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::updateLoadingProgress):
(WebCore::AXIsolatedTree::applyPendingChanges):
Apply m_pendingEstimatedLoadingProgress.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::loadingProgress):
Added.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
Handle rename of estimatedLoadingProgress methods to loadingProgress.

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::ProgressTracker):
Store a reference to the associated page in new m_page member.
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::progressEstimateChanged):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
Notify the Page when progress changes or completes.

  • loader/ProgressTracker.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::progressEstimateChanged const):
Added.
(WebCore::Page::progressFinished const):
Added.

  • page/Page.h:

LayoutTests:

  • accessibility/mac/document-attributes-expected.txt:

Associated test now uses js-test.js, so modify expectations to include
js-test output (e.g. test description()).

  • accessibility/mac/document-attributes.html:

Wait asynchronously for loading to complete ("AXLoaded: 1").

  • accessibility/parent-delete.html:

Don't output all attributes, since it's not necessary for the purpose
of the test (which is to ensure calling allAttributes() in this
scenario doesn't cause a crash). Previously, the test output contained
loading AX attributes, so rather than making this test wait for
loading to complete I decided to remove the output all together.

  • platform/mac/accessibility/parent-delete-expected.txt:
8:03 AM Changeset in webkit [288673] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/CISupport/ews-app/ews

[ews] Display status-bubble for try builds (builds for specific ews queues)
https://bugs.webkit.org/show_bug.cgi?id=235679

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-app/ews/models/build.py:

(Build.save_build): Save the patch information in database.

  • Tools/CISupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble):
(StatusBubble._should_show_bubble_for_build):
(StatusBubble._build_bubbles_for_patch):

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

7:36 AM Changeset in webkit [288672] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

jsc_fuz/wktr: crash with new XRReferenceSpaceEvent(, {referenceSpace})
https://bugs.webkit.org/show_bug.cgi?id=235456

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-27
Reviewed by Chris Dumez.

Source/WebCore:

FastMalloc.h specifies that each derived class needs to be annotated as well with WTF_MAKE_ISO_ALLOCATED
if the base class is annotated with WTF_MAKE_ISO_ALLOCATED.

After doing this, the crash in WebCore::Event::operator new(unsigned long) is no longer reproducible.
However, this caused ASSERT(m_transform) to be hit in debug builds with the attached test case.

The XRReferenceSpaceEvent spec specifies the transform attribute as nullable
(https://immersive-web.github.io/webxr/#dictdef-xrreferencespaceeventinit), so this patch updates the
XRReferenceSpaceEvent IDL and implementation to match the spec, and removes the ASSERT accordingly.

Test: webxr/xr-reference-space-event-crash.html

  • Modules/webxr/XRReferenceSpaceEvent.cpp:

(WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent):
(WebCore::XRReferenceSpaceEvent::transform const):

  • Modules/webxr/XRReferenceSpaceEvent.h:
  • Modules/webxr/XRReferenceSpaceEvent.idl:

LayoutTests:

  • webxr/xr-reference-space-event-crash.html: Added.
4:15 AM WebKitGTK/2.34.x edited by Alexander Mikhaylenko
Add 2 touch fixes to proposed (diff)
3:16 AM Changeset in webkit [288671] by commit-queue@webkit.org
  • 50 edits
    44 copies
    29 moves
    351 adds
    3 deletes in trunk

Update WebGL conformance test suite to 2022-01-12
https://bugs.webkit.org/show_bug.cgi?id=235563

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-27
Reviewed by Dean Jackson.

Tools:

Add functionality to Tools/Scripts/update-webgl-conformance-tests:

  • Copy http-only tests to http/tests/webgl
  • Add template to js-test-pre.js
  • Scripts/webkitpy/update_webgl_conformance_tests_lib/js-test-pre-template.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-pre.js.
  • Scripts/webkitpy/update_webgl_conformance_tests_lib/main.py:

(_copy_tree):
(main):

LayoutTests:

Update WebGL testsuite to 2022-01-12 9b58fd243d38f4b9c72ab6f75ad701cafc131137.

Additionally:
The import script can now categorize tests to regular tests and small amount of http
tests:

  • Remove old http/tests/webgl/1.0.2/
  • Add new http/tests/webgl/1.0.x / 2.0.y
  • http/tests/webgl/1.0.2/origin-clean-conformance-expected.txt: Removed.
  • http/tests/webgl/1.0.2/origin-clean-conformance.html: Removed.
  • http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt: Removed.
  • http/tests/webgl/1.0.2/readPixelsBadArgs.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/3x3.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/blue-1x1.jpg: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/bug-32888-texture.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/floatUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-256-with-128-alpha.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-256.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-default-gamma.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma0.1.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma1.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma2.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma4.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma9.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/green-2x2-16bit.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/noopUniformShader.frag: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/npot-video.mp4: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/npot-video.theora.ogv: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/npot-video.webmvp8.webm: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/pnglib.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.mp4: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.theora.ogv: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.webmvp8.webm: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-indexed.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-cie-rgb-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-colormatch-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-colorspin-profile.jpg: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-colorspin-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-e-srgb-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-smpte-c-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-srgb-iec61966-2.1-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-canvas.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-image-data.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-image.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-video.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/zero-alpha.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/00_test_list.txt: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/compressed-tex-image.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/copy-tex-image-2d-formats.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/copy-tex-image-and-sub-image-2d.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/gl-get-tex-parameter.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/gl-pixelstorei.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/gl-teximage.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/mipmap-fbo.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/origin-clean-conformance.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-array-buffer-view.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-uniform-binding-bugs.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-webgl.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-format-and-type.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-invalid-data.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-input-validation.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-sub-image-2d-bad-args.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-sub-image-2d.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texparameter-test.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-active-bind-2.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-active-bind.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-attachment-formats.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-clear.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-complete.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-formats-test.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-hd-dpi.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-mips.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-npot-video.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-npot.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-size-cube-maps.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-size-limit.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-size.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-sub-image-cube-maps.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-transparent-pixels-initialized.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-upload-cube-maps.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/desktop-gl-constants.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-post.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/webgl-test-harness.js: Removed.
  • http/tests/webgl/1.0.2/texImage2DHTML-expected.txt: Removed.
  • http/tests/webgl/1.0.2/texImage2DHTML.html: Removed.
  • http/tests/webgl/1.0.2/texSubImage2DHTML-expected.txt: Removed.
  • http/tests/webgl/1.0.2/texSubImage2DHTML.html: Removed.
  • http/tests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs-expected.txt.
  • http/tests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html.
  • http/tests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • http/tests/webgl/1.0.x/conformance/more/functions/texImage2DHTML.html: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML.html.
  • http/tests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML-expected.txt.
  • http/tests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML.html: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML.html.
  • http/tests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs-expected.txt.
  • http/tests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs.html: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs.html.
  • http/tests/webgl/2.0.y/conformance/more/functions/texImage2DHTML-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texImage2DHTML-expected.txt.
  • http/tests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html: Copied from LayoutTests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html.
  • http/tests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML-expected.txt.
  • http/tests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML.html: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML.html.
  • http/tests/webgl/resources/js-test-pre.js: Copied from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-pre.js.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/unit.css: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.css.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/unit.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/util.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js.
  • http/tests/webgl/resources/webgl_test_files/js/js-test-post.js: Added.
  • http/tests/webgl/resources/webgl_test_files/js/js-test-pre.js: Copied from LayoutTests/webgl/resources/webgl_test_files/js/js-test-pre.js.
  • http/tests/webgl/resources/webgl_test_files/js/webgl-test-utils.js: Copied from LayoutTests/webgl/resources/webgl_test_files/js/webgl-test-utils.js.
  • http/tests/webgl/resources/webgl_test_files/resources/js-test-style.css: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-style.css.
  • http/tests/webgl/resources/webgl_test_files/resources/opengl_logo.jpg: Added.
  • http/tests/webgl/resources/webgl_test_files/resources/thunderbird-logo-64x64.png: Added.
  • http/tests/webgl/resources/webkit-webgl-test-harness.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webkit-webgl-test-harness.js.
  • webgl/1.0.x/conformance/canvas/to-data-url-after-composite-expected.txt: Renamed from LayoutTests/webgl/2.0.y/deqp/functional/gles3/multisample-expected.txt.
  • webgl/1.0.x/conformance/canvas/to-data-url-after-composite.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_001_to_008-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_001_to_008.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_009_to_016-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_009_to_016.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_017_to_024-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_017_to_024.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_025_to_032-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_025_to_032.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_033_to_040-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_033_to_040.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_041_to_048-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_041_to_048.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_049_to_056-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_049_to_056.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_057_to_064-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_057_to_064.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_065_to_072-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_065_to_072.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_073_to_080-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_073_to_080.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_081_to_088-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_081_to_088.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_089_to_096-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_089_to_096.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_097_to_104-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_097_to_104.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_105_to_112-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_105_to_112.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_113_to_120-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_113_to_120.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_121_to_128-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_121_to_128.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_129_to_136-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_129_to_136.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_137_to_144-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_137_to_144.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_145_to_152-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_145_to_152.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_153_to_160-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_153_to_160.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_161_to_168-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_161_to_168.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_169_to_176-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_169_to_176.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_177_to_178-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_177_to_178.html: Added.
  • webgl/1.0.x/conformance/rendering/clear-default-framebuffer-with-scissor-test-expected.txt: Added.
  • webgl/1.0.x/conformance/rendering/clear-default-framebuffer-with-scissor-test.html: Added.
  • webgl/1.0.x/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution-expected.txt: Added.
  • webgl/1.0.x/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution.html: Added.
  • webgl/1.0.x/conformance/textures/misc/format-filterable-renderable-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-expected.txt.
  • webgl/1.0.x/conformance/textures/misc/format-filterable-renderable.html: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html.
  • webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html: Removed.
  • webgl/1.0.x/conformance/textures/misc/png-image-types-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-expected.txt.
  • webgl/1.0.x/conformance/textures/misc/png-image-types.html: Renamed from LayoutTests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance.html.
  • webgl/2.0.y/conformance/canvas/to-data-url-after-composite-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance/canvas/to-data-url-after-composite.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_001_to_008-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_001_to_008.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_009_to_016-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_009_to_016.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_017_to_024-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_017_to_024.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_025_to_032-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_025_to_032.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_033_to_040-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_033_to_040.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_041_to_048-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_041_to_048.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_049_to_056-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_049_to_056.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_057_to_064-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_057_to_064.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_065_to_072-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_065_to_072.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_073_to_080-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_073_to_080.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_081_to_088-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_081_to_088.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_089_to_096-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_089_to_096.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_097_to_104-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_097_to_104.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_105_to_112-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_105_to_112.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_113_to_120-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_113_to_120.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_121_to_128-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_121_to_128.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_129_to_136-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_129_to_136.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_137_to_144-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_137_to_144.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_145_to_152-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_145_to_152.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_153_to_160-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_153_to_160.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_161_to_168-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_161_to_168.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_169_to_176-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_169_to_176.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_177_to_178-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_177_to_178.html: Added.
  • webgl/2.0.y/conformance/rendering/clear-default-framebuffer-with-scissor-test-expected.txt: Added.
  • webgl/2.0.y/conformance/rendering/clear-default-framebuffer-with-scissor-test.html: Added.
  • webgl/2.0.y/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution-expected.txt: Added.
  • webgl/2.0.y/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution.html: Added.
  • webgl/2.0.y/conformance/textures/misc/format-filterable-renderable-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-offscreencanvas-expected.txt.
  • webgl/2.0.y/conformance/textures/misc/format-filterable-renderable.html: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html.
  • webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html: Removed.
  • webgl/2.0.y/conformance/textures/misc/origin-clean-conformance.html: Removed.
  • webgl/2.0.y/conformance/textures/misc/png-image-types-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-offscreencanvas-expected.txt.
  • webgl/2.0.y/conformance/textures/misc/png-image-types.html: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html.
  • webgl/2.0.y/conformance2/extensions/required-extensions-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance2/extensions/required-extensions.html: Added.
  • webgl/2.0.y/conformance2/glsl3/fragment-shader-loop-crash-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance2/glsl3/fragment-shader-loop-crash.html: Added.
  • webgl/2.0.y/conformance2/glsl3/reciprocal-sqrt-of-sum-of-squares-crash-expected.txt: Added.
  • webgl/2.0.y/conformance2/glsl3/reciprocal-sqrt-of-sum-of-squares-crash.html: Added.
  • webgl/2.0.y/conformance2/misc/blend-integer-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance2/misc/blend-integer.html: Added.
  • webgl/2.0.y/conformance2/rendering/blitframebuffer-unaffected-by-colormask-expected.txt: Added.
  • webgl/2.0.y/conformance2/rendering/blitframebuffer-unaffected-by-colormask.html: Added.
  • webgl/2.0.y/conformance2/rendering/draw-buffers-sparse-output-locations-expected.txt: Added.
  • webgl/2.0.y/conformance2/rendering/draw-buffers-sparse-output-locations.html: Added.
  • webgl/2.0.y/conformance2/textures/misc/origin-clean-conformance-offscreencanvas-expected.txt: Removed.
  • webgl/2.0.y/conformance2/textures/misc/origin-clean-conformance-offscreencanvas.html: Removed.
  • webgl/2.0.y/deqp/functional/gles3/multisample.html: Removed.
  • webgl/2.0.y/deqp/functional/gles3/multisample/default_fbo-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/default_fbo.html: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_4_samples-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_4_samples.html: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_8_samples-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_8_samples.html: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_max_samples-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_max_samples.html: Added.
  • webgl/draw-webgl-to-context2d-memory-test-expected.txt:
  • webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html:
  • webgl/resources/webgl_test_files/conformance/canvas/to-data-url-after-composite.html: Added.
  • webgl/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
  • webgl/resources/webgl_test_files/conformance/context/methods.html:
  • webgl/resources/webgl_test_files/conformance/extensions/ext-texture-compression-bptc.html:
  • webgl/resources/webgl_test_files/conformance/extensions/ext-texture-compression-rgtc.html:
  • webgl/resources/webgl_test_files/conformance/extensions/s3tc-and-rgtc.html:
  • webgl/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html:
  • webgl/resources/webgl_test_files/conformance/extensions/webgl-multi-draw.html:
  • webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html:
  • webgl/resources/webgl_test_files/conformance/glsl/bugs/character-set.html:
  • webgl/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html:
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CG_Data_Types_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CG_Standard_Library_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectBuiltInOveride_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectComma_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectConstFolding1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectConstFolding2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectConstruct_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectExtension10_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectExtension1_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectExtension4_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFull_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFuncOverload_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFuncOverload_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFunction1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectModule_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParse1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParse2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParse2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParseTest1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParseTest_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectPreprocess5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectPreprocess8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectPreprocess9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectVersion_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/DuplicateVersion1_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/FunctionParam_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Include_Preprocessor_Directive_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Low_Level_Assembly_Reserved_Words_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Main_Parameters_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/ParseTest3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/ParseTest4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Permissive_Constant_Conversions_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Permissive_Scalar_Vector_Expressions_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/TernaryOp_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Texture_Rectangle_Samplers_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array11_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/break_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_001_to_008.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_009_to_016.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_017_to_024.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_025_to_032.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_033_to_040.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_041_to_048.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_049_to_056.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_057_to_064.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_065_to_072.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_073_to_080.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_081_to_088.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_089_to_096.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_097_to_104.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_105_to_112.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_113_to_120.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_121_to_128.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_129_to_136.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_137_to_144.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_145_to_152.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_153_to_160.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_161_to_168.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_169_to_176.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_177_to_178.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma3_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comment_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/conditional1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/conditional2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/conditional3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constFunc_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constructor1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constructor2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constructor3_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/continue_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType11_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType12_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType13_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType19_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/default.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/default.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dowhile_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dvec2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dvec3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dvec4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension2_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension3_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension5_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension6_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension7_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension8_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension9_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/float2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/float3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/float4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly3_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly4_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function2_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/hvec2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/hvec3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/hvec4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/identifier1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/identifier2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/identifier3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/if1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/if2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/input.run.txt: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/main1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/main2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/main3_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/matrix_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/normal_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess0_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/scoping1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/scoping2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct11_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/swizzle1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/swizzle2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/swizzle3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/typecast_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/uniform1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/uniform_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vector_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/version2_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/version3_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vertexOnly2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vertexOnly_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vertex_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/while1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/while2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/while_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/programs/program-test.html:
  • webgl/resources/webgl_test_files/conformance/rendering/clear-default-framebuffer-with-scissor-test.html: Added.
  • webgl/resources/webgl_test_files/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution.html: Added.
  • webgl/resources/webgl_test_files/conformance/state/gl-object-get-calls.html:
  • webgl/resources/webgl_test_files/conformance/textures/misc/format-filterable-renderable.html: Added.
  • webgl/resources/webgl_test_files/conformance/textures/misc/png-image-types.html: Added.
  • webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html:
  • webgl/resources/webgl_test_files/conformance2/context/methods-2.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/ext-texture-norm16.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/oes-draw-buffers-indexed.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/required-extensions.html: Added.
  • webgl/resources/webgl_test_files/conformance2/extensions/webgl-multi-draw-instanced-base-vertex-base-instance.html:
  • webgl/resources/webgl_test_files/conformance2/glsl3/array-equality.html:
  • webgl/resources/webgl_test_files/conformance2/glsl3/fragment-shader-loop-crash.html: Added.
  • webgl/resources/webgl_test_files/conformance2/glsl3/matrix-row-major-dynamic-indexing.html:
  • webgl/resources/webgl_test_files/conformance2/glsl3/reciprocal-sqrt-of-sum-of-squares-crash.html: Added.
  • webgl/resources/webgl_test_files/conformance2/misc/blend-integer.html: Added.
  • webgl/resources/webgl_test_files/conformance2/programs/gl-get-frag-data-location.html:
  • webgl/resources/webgl_test_files/conformance2/rendering/blitframebuffer-unaffected-by-colormask.html: Added.
  • webgl/resources/webgl_test_files/conformance2/rendering/draw-buffers-sparse-output-locations.html: Added.
  • webgl/resources/webgl_test_files/conformance2/state/gl-object-get-calls.html:
  • webgl/resources/webgl_test_files/conformance2/textures/misc/tex-storage-compressed-formats.html:
  • webgl/resources/webgl_test_files/deqp/functional/gles3/es3fMultisampleTests.js:
  • webgl/resources/webgl_test_files/deqp/functional/gles3/es3fPrimitiveRestartTests.js:
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample.html: Removed.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/default_fbo.html: Added.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/fbo_4_samples.html: Added.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/fbo_8_samples.html: Added.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/fbo_max_samples.html: Added.
  • webgl/resources/webgl_test_files/js/glsl-conformance-test.js:
  • webgl/resources/webgl_test_files/js/js-test-post.js:
  • webgl/resources/webgl_test_files/js/js-test-pre.js:
  • webgl/resources/webgl_test_files/js/tests/compressed-texture-utils.js:
  • webgl/resources/webgl_test_files/js/tests/context-methods.js: Added.
  • webgl/resources/webgl_test_files/js/tests/ext-color-buffer-half-float.js:
  • webgl/resources/webgl_test_files/js/tests/gl-object-get-calls.js:
  • webgl/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-image-bitmap-from-video.js:
  • webgl/resources/webgl_test_files/js/tests/tex-image-and-sub-image-3d-with-image-bitmap-from-video.js:
  • webgl/resources/webgl_test_files/js/webgl-test-utils.js:
  • webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm:
  • webgl/resources/webgl_test_files/resources/video-rotation-0.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-180.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-270.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-90.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4:
3:08 AM Changeset in webkit [288670] by graouts@webkit.org
  • 9 edits in trunk/Source

<model> should only be draggable on iOS
https://bugs.webkit.org/show_bug.cgi?id=235697

Reviewed by Dean Jackson.

Source/WebCore:

As part of bug 229246 we added support for dragging <model> elements. However, it only
worked on iOS in practice so we make that explicit so that other platforms that do not
have complete support for <model> dragging do not have that feature.

This is also important leading up to bug 227621, where we'll implement the "interactive"
HTML attribute and IDL property, since disabling dragging over a <model> element to adjust
the camera would trigger a crash under Pasteboard::write() on macOS due to not having an
image set on the pasteboard data.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::supportsDragging const):
(WebCore::HTMLModelElement::isDraggableIgnoringAttributes const):

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

(WebCore::ModelPlayer::supportsDragging):

  • Modules/model-element/ModelPlayer.h:
  • page/DragController.cpp:

(WebCore::modelElementIsDraggable):

Source/WebKit:

Override the ModelPlayer method to enable <model> dragging on iOS.

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::supportsDragging):

12:48 AM Changeset in webkit [288669] by Cameron McCormack
  • 4 edits in trunk

Avoid setting and clearing :active state when dispatching synthetic click events when possible
https://bugs.webkit.org/show_bug.cgi?id=235672
<rdar://problem/88095418>

Reviewed by Simon Fraser.

Source/WebCore:

Simulated click events are dispatched with two options:

  • whether to send associated events mouseover, mouseup, mousedown
  • whether to repaint the target element with its pressed look

We currently always set the element's :active state just after when we'd
send the mousedown event, and clear it just after that.

When we dispatch a simulated click event with neither of the above
options set, there's no way to observe the temporary :active state on
the element. We can skip it in that case.

We need to continue clearing clearing the :active state regardless,
because some callers have already set :active and are relying on
simulateClick to clear it.

This patch is a 0.3-0.4% improvement on Speedometer 2.

  • dom/SimulatedClick.cpp:

(WebCore::simulateClick):

LayoutTests:

  • platform/gtk/inspector/timeline/line-column-expected.txt:

Jan 26, 2022:

11:21 PM Changeset in webkit [288668] by graouts@webkit.org
  • 4 edits in trunk/Source

[Web Inspector] Update return value name for Animation.requestEffectTarget()
https://bugs.webkit.org/show_bug.cgi?id=235661

Reviewed by Devin Rousso.

Source/JavaScriptCore:

I wrongly assumed the name of the return value was important for backward compatibility when
fixing bug 235234, but it's not, so let's use a better name which doesn't make any particular
assumption on the type.

  • inspector/protocol/Animation.json:

Source/WebInspectorUI:

Update the parameter name to match the name used in the protocol.

  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

10:59 PM Changeset in webkit [288667] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

10:16 PM Changeset in webkit [288666] by ChangSeok Oh
  • 11 edits in trunk

[GTK] WTR: Native HTML form validation popover is not supported
https://bugs.webkit.org/show_bug.cgi?id=167579

Reviewed by Carlos Garcia Campos.

This change enables form-validation-related tests. To this end, two APIs called
overridePreference and contentsOfUserInterfaceItem are added to UIScriptController.

Source/WebKit:

WebKitWebViewBase implements contentsOfUserInterfaceItem for UIScriptController
necessary for webkit tests. It returns a font size and an actual message of a validation
bubble in the dictionary format. For overridePreference, we directly call WKPreference API
in WKView.cpp

No new tests since this change is the enabler of existing tests.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewContentsOfUserInterfaceItem):

  • UIProcess/API/C/gtk/WKViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContentsOfUserInterfaceItem):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

UIScriptController.overridePreference configures the minimum font size of the validation bubbles
and UIScriptController.contentsOfUserInterfaceItem returns an actual bubble message along with its font size
in a json object.

  • WebKitTestRunner/TestController.h: Make paltformPreferences public.
  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::overridePreference):
(WTR::toJSONObject):
(WTR::UIScriptControllerGtk::contentsOfUserInterfaceItem const):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

We configure the minimum font size of the validation bubbles via UIScriptController.overridePreference
and retrieve a message and its font size through UIScriptController.contentsOfUserInterfaceItem.

  • platform/gtk/TestExpectations: Enable form validation related tests we can perform with native bubble widgets but skip ones related to HTML-based form validation as Cocoa-based ports do.
9:35 PM Changeset in webkit [288665] by Alan Coon
  • 1 copy in tags/Safari-613.1.14.11.2

Tag Safari-613.1.14.11.2.

9:32 PM Changeset in webkit [288664] by Alan Coon
  • 9 edits in branches/safari-613.1.14.11-branch/Source

Versioning.

WebKit-7613.1.14.11.2

8:36 PM Changeset in webkit [288663] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r288640
https://bugs.webkit.org/show_bug.cgi?id=235682

  • bindings/js/JSDOMMicrotask.cpp: Add missing header.
8:12 PM Changeset in webkit [288662] by pvollan@apple.com
  • 9 edits in trunk/Source

[WP] Avoid calling IOSurfaceAlignProperty
https://bugs.webkit.org/show_bug.cgi?id=235659

Reviewed by Simon Fraser.

Source/WebCore:

Add information about alignment of bytes per row to IOSurface class.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::surfaceBytesPerRowAlignment):
(WebCore::IOSurface::bytesPerRowAlignment):
(WebCore::IOSurface::setBytesPerRowAlignment):

Source/WebKit:

Avoid calling IOSurfaceAlignProperty in the WebContent process, since it requires IOKit access.
Information about the alignment of bytes per row of IOSurface will be retrieved in the UI process,
and sent to the WebContent process, where it will be stored.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::calculateBytesPerRow):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

7:20 PM Changeset in webkit [288661] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Source/WebCore

Remove the now-unused JSGlobalObjectTask class
https://bugs.webkit.org/show_bug.cgi?id=235675

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-26
Reviewed by Darin Adler.

It was named quite poorly and replaced with JSMicrotaskCallback.

No new tests, no behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObjectTask.cpp: Removed.
  • bindings/js/JSDOMGlobalObjectTask.h: Removed.
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
6:53 PM Changeset in webkit [288660] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Build failure with GCC 12: MediaTime.h:167:71: error: call to non-'constexpr' function 'WTF::MediaTime& WTF::MediaTime::operator=(const WTF::MediaTime&)'
https://bugs.webkit.org/show_bug.cgi?id=235610

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-26
Reviewed by Darin Adler.

The problem is the constexpr constructor calls the non-constexpr copy assignment operator.
This is easy to fix, at the expense of readability, by open-coding the desired values here.

  • wtf/MediaTime.h:

(WTF::MediaTime::MediaTime):

5:21 PM Changeset in webkit [288659] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r288614.

Caused layout test crashes

Reverted changeset:

"REGRESSION(r287684) speedtest.net uses many GB of memory"
https://bugs.webkit.org/show_bug.cgi?id=235615
https://commits.webkit.org/r288614

5:04 PM Changeset in webkit [288658] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Symbols not always properly hidden when using WebKitAdditions to introduce new API
https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Surround APIs from WebKitAdditions with #if ENABLE(API_WEBKIT_ADDITIONS) instead of
#if USE(APPLE_INTERNAL_SDK) and leaving API_WEBKIT_ADDITIONS to be intentionally
undefined. This is because we never want to build the code inside this #if block.
Instead, those blocks are only meant to be replaced by the
replace-webkit-additions-includes.py with the code from WebKitAdditions.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py:

(main):

5:02 PM Changeset in webkit [288657] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Ignore hooks from closed PRs
https://bugs.webkit.org/show_bug.cgi?id=235666
<rdar://problem/88091611>

Reviewed by Aakash Jain.

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

(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request): Ignore hooks coming from closed pull requests.

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

4:57 PM Changeset in webkit [288656] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (01/14/22?): [macOS Release WK2] imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html and createImageBitmap-flipY.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=235681

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark tests as flaky.
4:57 PM Changeset in webkit [288655] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: m_pdfDocument under WebKit::PDFPlugin::installPDFDocument()
https://bugs.webkit.org/show_bug.cgi?id=235660

Unreviewed test gardening.

Speculatively skip fast/replaced/encrypted-pdf-as-object-and-embed.html, which runs right
before a non-PDF test that gets the blame for the crash.

  • platform/mac/TestExpectations:
4:15 PM Changeset in webkit [288654] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Make some minor adjustments after r288621
https://bugs.webkit.org/show_bug.cgi?id=235598
rdar://88032375

Reviewed by Darin Adler.

Address some post-commit review comments.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

  • testing/Internals.mm:

(WebCore::Internals::fakeDataDetectorResultForTesting):

4:07 PM Changeset in webkit [288653] by don.olmstead@sony.com
  • 7 edits in trunk/Tools

Share TestRunner::installFakeHelvetica implementation
https://bugs.webkit.org/show_bug.cgi?id=235657

Reviewed by Darin Adler.

The implementation of TestRunner::installFakeHelvetica was the same for each port. It just
calls into the WTR::installFakeHelvetica function defined in ActivateFonts.h which does the
actual work of installing the font.

  • WebKitTestRunner/InjectedBundle/ActivateFonts.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installFakeHelvetica):

  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

4:03 PM Changeset in webkit [288652] by J Pascoe
  • 8 edits in trunk/Source/WebKit

[WebAuthn] We should pass extensions to ASC if possible
https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(authenticationExtensionsClientInputs):

  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::toNSString):
(WebKit::toASCExtensions):
(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
3:56 PM Changeset in webkit [288651] by commit-queue@webkit.org
  • 53 edits in trunk/LayoutTests

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

This is mostly rebaselining and updating expectations after r288070
enabled LFC integration for complex text.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-26

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t1508-c527-font-00-b-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-position-001-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt:
  • platform/glib/transforms/2d/hindi-rotated-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/block/margin-collapse/045-expected.txt:
  • platform/gtk/fast/borders/rtl-border-05-expected.txt:
  • platform/gtk/fast/css/word-space-extra-expected.txt:
  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/gtk/fast/forms/large-toggle-elements-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/frames/iframe-scrolling-attribute-expected.txt:
  • platform/gtk/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/gtk/fast/text/wbr-expected.txt:
  • platform/gtk/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
  • platform/gtk/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
  • platform/gtk/fast/text/whitespace/span-in-word-space-causes-overflow-expected.txt:
  • platform/gtk/fast/text/word-space-expected.txt:
  • platform/gtk/fonts/sans-serif-expected.txt:
  • platform/gtk/fonts/serif-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/innerText/getter-expected.txt:
  • platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/gtk/scrollbars/overflow-scrollbar-combinations-expected.txt:
  • platform/gtk/svg/as-object/object-box-sizing-no-width-height-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.txt:
  • platform/gtk/svg/hixie/processing-model/003-expected.txt:
  • platform/gtk/svg/hixie/processing-model/004-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug126742-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug14323-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2947-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2973-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug38916-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/core/col_span-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_col_width_rel-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_colgroup_width_rel-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
  • platform/gtk/transforms/3d/general/perspective-units-expected.txt:
  • platform/wpe/TestExpectations:
3:53 PM Changeset in webkit [288650] by Alan Bujtas
  • 11 edits
    2 adds in trunk

REGRESSION (r281306): Non-breaking space incorrectly collapsed when webkit-nbsp-mode is set to "space"
https://bugs.webkit.org/show_bug.cgi?id=235627
<rdar://88004831>

Reviewed by Antti Koivisto.

Source/WebCore:

"-webkit-nbsp-mode: space" has a peculiar collapsing behavior. It only collapses as leading content
preceded by forced line break.

<div style="-webkit-nbsp-mode: space; width: 0px;">

first_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second_line

</div>
The non-breaking space is collapsed. It does not show on the second line as leading content.

<div style="-webkit-nbsp-mode: space; width: 0px;">

first_line<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second_line

</div>
The non-breaking space is NOT collapsed. It shows up as leading content on the second line, indenting the "second_line" text content.

To mimic this legacy behavior, it's easier just to switch back to handling nbsp; as a non-whitespace inline item and
collapse it as leading content (depending on the breaking context).
(as opposed to customize regular whitespace content collapsing behavior just to support this quirk)

Test: fast/text/collapsible-non-breaking-space.html

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition): remove special nbsp; handling
(WebCore::Layout::InlineItemsBuilder::handleTextContent): create an inline text item for the special mon-breaking space content.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::appendTextContent):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLine):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::isFirstLine const):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::isCollapsibleNonBreakingSpace const):

  • layout/formattingContexts/inline/InlineTextItem.h:

LayoutTests:

  • fast/text/collapsible-non-breaking-space-expected.html: Added.
  • fast/text/collapsible-non-breaking-space.html: Added.
  • platform/ios/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt: A slight behavior change with trailing content trimming, but

not generally noticeable and very specific to this non-standard property.

  • platform/mac/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
3:29 PM Changeset in webkit [288649] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

Move leftover JSValue inlines from JSString.h to JSCJSValueInlines.h
https://bugs.webkit.org/show_bug.cgi?id=235662

Reviewed by Yusuke Suzuki.

JSString.h still contains some JSValue inlines from years past
(including toBoolean which doesn't overtly relate to strings at all);
these can be moved to JSCJSValueInlines.h without issue.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toBoolean const): Added.
(JSC::JSValue::toString const): Added.
(JSC::JSValue::toStringOrNull const): Added.
(JSC::JSValue::toWTFString const): Added.

  • runtime/JSString.h:

(JSC::JSValue::toBoolean const): Deleted.
(JSC::JSValue::toString const): Deleted.
(JSC::JSValue::toStringOrNull const): Deleted.
(JSC::JSValue::toWTFString const): Deleted.

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

JSEventListener::replaceJSFunctionForAttributeListener() should not replace m_wrapper unconditionally
https://bugs.webkit.org/show_bug.cgi?id=235658

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

This is a follow-up to r287293, which aligns JSEventListener::replaceJSFunctionForAttributeListener()
with JSEventListener::ensureJSFunction() in terms of handling uninitilized lazy event listeners.

Without this change, the microbenchmark in <https://webkit.org/b/234441> consumes 16 GB of memory in
30 seconds and crashes, which even isn't a regression: the same issue was observed before r287293.

According to new microbenchmark samples, I'm hopeful that with this patch, Speedometer2/Inferno-TodoMVC
will progress as promised in r287293.

No new tests, no behavior change.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

2:49 PM Changeset in webkit [288647] by Russell Epstein
  • 4 edits in branches/safari-611.3.10.1-branch/Source

Revert "Cherry-pick r281384. rdar://problem/82195071"

This reverts commit r281392.

2:35 PM Changeset in webkit [288646] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

REGRESSION(r288623) MSVC reports "InspectorDOMAgent.cpp(558,40): error C2059: syntax error: ':'"
https://bugs.webkit.org/show_bug.cgi?id=235667

Unreviewed build fix.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushStyleableElementToFrontend):
(WebCore::InspectorDOMAgent::pushStyleablePathToFrontend):
Don't use GNU extension ?:.

2:15 PM Changeset in webkit [288645] by Alan Coon
  • 4 edits in branches/safari-609.4.1.1-branch

Cherry-pick r286308. rdar://problem/85830759

Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):

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

1:59 PM Changeset in webkit [288644] by Alexander Mikhaylenko
  • 2 edits in trunk/Source/WebKit

[GTK3] Pinch zooming from a link activates it
https://bugs.webkit.org/show_bug.cgi?id=235639

Reviewed by Carlos Garcia Campos.

Turns out gestures behave differently between GTK3 and 4. On GTK4 it works
fine, but on GTK3 starting a pinch zoom triggers the multipress gesture
when one finger is down, and completes it when the second finger is down.

This results in a bogus click, with no way to prevent it as it happens
before any of the zoom callbacks are called. Since we can't know if there
will be a zoom afterwards or not, we can't do anything about it.

However, what we can do is reorder these gestures. In GTK3 the order the
gestures are processed in depends on which order they were created in.

At that point, there's a problem with the fact the gestures are grouped.
Grouping means that these 2 gestures are triggered at the same time. While
somehow the press gesture is still triggered without grouping with the
original order, they become properly decoupled in reverse order and
ungrouped.

At that point, we can safely cancel the press gesture when the zoom gesture
starts, and fix the issue.

This seems to still work fine for GTK4.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseConstructed):

1:58 PM Changeset in webkit [288643] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Make sure WGSLUnitTests can call into WGSL
https://bugs.webkit.org/show_bug.cgi?id=235630

Reviewed by Dean Jackson.

  • WGSL/WGSL.cpp:

(WGSL::staticCheck): Apparently /usr/local/include/AssertMacros.h #defines "check"
(WGSL::check): Deleted.

  • WGSL/WGSL.h:
  • WGSLUnitTests/WGSLUnitTests.mm:

(-[WGSLUnitTests testExample]):

12:51 PM Changeset in webkit [288642] by Kocsen Chung
  • 8 edits in branches/safari-609.4.1.1-branch/Source

Versioning.

WebKit-7609.4.1.1.1

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

Add an iterator to KeyframeList
https://bugs.webkit.org/show_bug.cgi?id=235652

Reviewed by Darin Adler.

Add an iterator for KeyframeList and remove the keyframes() method which serves no purpose now.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computedNeedsForcedLayout):
(WebCore::KeyframeEffect::computeSomeKeyframesUseStepsTimingFunction):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::copyKeyframes):

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeList::operator[] const):
(WebCore::KeyframeList::begin const):
(WebCore::KeyframeList::end const):
(WebCore::KeyframeList::keyframes const): Deleted.

12:10 PM Changeset in webkit [288640] by Alexey Shvayka
  • 21 edits
    5 adds in trunk

globalThis.queueMicrotask() should report thrown exceptions
https://bugs.webkit.org/show_bug.cgi?id=235614

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.serviceworker-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.worker-expected.txt:

Source/JavaScriptCore:

  1. Move JSGlobalObject::hasDebugger() to the header to facilitate inlining as it's used in a rather hot Microtask execution code.
  2. Export a few Debugger methods for JSDOMMicrotask::run().
  3. Remove the now-unused createJSMicrotask() overload.
  • debugger/Debugger.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::hasDebugger const): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::hasDebugger const):

  • runtime/JSMicrotask.cpp:
  • runtime/JSMicrotask.h:

Source/WebCore:

This patch introduces WebCore::JSDOMMicrotask so the queueMicrotask() could report
a thrown exception as per spec [1] and to avoid invocation of a userland function
from detached <iframe>, which aligns WebKit with Blink and Gecko.

Both this changes align the callback of queueMicrotask() with generated callback
functions / interfaces (see bug 232387) that are implemented via JSCallbackData.

[1] https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing:report-the-exception

Tests: imported/w3c/web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js

fast/dom/callback-function-detached-frame-queue-microtask.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMMicrotask.cpp: Added.

(WebCore::createJSDOMMicrotask):
(WebCore::JSDOMMicrotask::run):

  • bindings/js/JSDOMMicrotask.h: Added.
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::queueMicrotask):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::queueMicrotask):

  • dom/EventLoop.h:

LayoutTests:

  • TestExpectations: Unskip 3 WPT tests that are now passing.
  • fast/dom/callback-function-detached-frame-queue-microtask-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-queue-microtask.html: Added.
  • fast/dom/resources/callback-function-detached-frame-queue-microtask-iframe.html: Added.
  • inspector/debugger/break-on-uncaught-exception-expected.txt:
  • platform/mac-wk1/TestExpectations: Skip Service Worker test.
12:06 PM Changeset in webkit [288639] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.3

Tag Safari-613.1.14.5.3.

12:01 PM Changeset in webkit [288638] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Revert 609 "Versioning."

11:46 AM Changeset in webkit [288637] by Russell Epstein
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7609.4.1.1.1

11:44 AM Changeset in webkit [288636] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Support pull requests in built product management
https://bugs.webkit.org/show_bug.cgi?id=235589
<rdar://problem/88024098>

Reviewed by Aakash Jain.

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

(ConfigureBuild.add_patch_id_url): Set change_id.
(ConfigureBuild.add_pr_details): Ditto.
(Trigger.propertiesToPassToTriggers): Pass change_id.
(UploadBuiltProduct): Use change_id instead of patch_id.
(TransferToS3): Ditto.
(DownloadBuiltProduct): Ditto.
(DownloadBuiltProductFromMaster): Ditto.

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

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

11:32 AM Changeset in webkit [288635] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Remove remaining PseudoElement.h includes
https://bugs.webkit.org/show_bug.cgi?id=235651

Reviewed by Antti Koivisto.

After the fix for bug 235234, we've successfully removed all use of PseudoElement
under animation/ yet we had some remaining includes of PseudoElement.h.

  • animation/DeclarativeAnimation.cpp:
  • animation/WebAnimationUtilities.cpp:
11:31 AM Changeset in webkit [288634] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] Allow triggering individual EWS queues
https://bugs.webkit.org/show_bug.cgi?id=235620

Reviewed by Jonathan Bedard.

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

(loadBuilderConfig): Allow ForceScheduler in production, configure it appropriately.

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

11:24 AM Changeset in webkit [288633] by Russell Epstein
  • 4 edits in branches/safari-613.1.14.5-branch/Source/WebKit

Cherry-pick r288629. rdar://problem/88061283

Build failure - webkit daemons don't need symlink with system content path
https://bugs.webkit.org/show_bug.cgi?id=235648

Reviewed by Darin Adler.

Removed the create symlinks for the WebKit daemons since they are under the symlink for
/System/Library/WebKit.framework.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

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

11:22 AM Changeset in webkit [288632] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Support workspace builds in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=235550

On Apple platforms, build-webkit --use-workspace now builds using WebKit.xcworkspace and
XCBuild. This complements the USE_WORKSPACE=YES Make flag added in
https://commits.webkit.org/246232@main.

At this time, there is no guarantee of correctness when building with USE_WORKSPACE=YES, and
workspace builds are not checked by builders.

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

  • Scripts/build-webkit: Add --use-workspace flag, correct platform hints in $usage.
  • Scripts/webkitdirs.pm: Remove canUseXCBuild, the flag it powered is no longer used.

(buildXCodeWorkspace): Added.

11:13 AM Changeset in webkit [288631] by Chris Dumez
  • 20 edits in trunk

Unreviewed, revert r286855 as it caused form submission issues
https://bugs.webkit.org/show_bug.cgi?id=235645
<rdar://88020080>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didChangeForm):
(WebCore::HTMLInputElement::insertedIntoAncestor):
(WebCore::HTMLInputElement::removedFromAncestor):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup const):

  • html/InputType.h:

(WebCore::InputType::willUpdateCheckedness): Deleted.

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::valueMissing const):
(WebCore::RadioInputType::willUpdateCheckedness): Deleted.

  • html/RadioInputType.h:

LayoutTests:

  • fast/forms/radio/ValidityState-valueMissing-radio-expected.txt:
  • fast/forms/radio/ValidityState-valueMissing-radio.html:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
10:59 AM Changeset in webkit [288630] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.3

10:55 AM Changeset in webkit [288629] by msaboff@apple.com
  • 4 edits in trunk/Source/WebKit

Build failure - webkit daemons don't need symlink with system content path
https://bugs.webkit.org/show_bug.cgi?id=235648

Reviewed by Darin Adler.

Removed the create symlinks for the WebKit daemons since they are under the symlink for
/System/Library/WebKit.framework.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
10:04 AM Changeset in webkit [288628] by Alan Coon
  • 4 edits in branches/safari-611.3.10.1-branch

Cherry-pick r286308. rdar://problem/85830732

Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):

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

10:01 AM Changeset in webkit [288627] by Antti Koivisto
  • 10 edits
    1 delete in trunk

[CSS Container Queries] container-type property should establish containment for 'size' and 'inline-size' values
https://bugs.webkit.org/show_bug.cgi?id=235638

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt:

Source/WebCore:

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

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isLayoutContainmentBox const):
(WebCore::Layout::Box::isSizeContainmentBox const):

  • rendering/RenderObject.cpp:

(WebCore::shouldApplyAnyContainment):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::effectiveContainment const):

Add effectiveContaiment function add use it in most places instead of accessing contain()
property value directly.

Apply appropriate containment for container-type. Note that 'inline-size' containment is not
supported yet.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containsLayout const):
(WebCore::RenderStyle::containsSize const):
(WebCore::RenderStyle::containsStyle const):
(WebCore::RenderStyle::containsPaint const):

LayoutTests:

9:58 AM Changeset in webkit [288626] by Alan Coon
  • 1 copy in branches/safari-609.4.1.1-branch

New branch.

9:57 AM Changeset in webkit [288625] by Alan Coon
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.16

9:49 AM Changeset in webkit [288624] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Pass -pipe to compilers that support it
https://bugs.webkit.org/show_bug.cgi?id=235641

Reviewed by Darin Adler.

  • Source/cmake/WebKitCompilerFlags.cmake: Add -pipe to compiler options where supported.
9:41 AM Changeset in webkit [288623] by graouts@webkit.org
  • 25 edits
    1 add in trunk

[Web Inspector] Graphics tab should display pseudo-elements for more than ::before and ::after
https://bugs.webkit.org/show_bug.cgi?id=235234
<rdar://87766777>

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add a new DOM.Styleable type to be used as the parameter type for requestEffectTarget() callbacks.

  • inspector/protocol/Animation.json:
  • inspector/protocol/DOM.json:

Source/WebCore:

Until now, we would pass the result of KeyframeEffect::targetElementOrPseudoElement() to
InspectorAnimationAgent::willApplyKeyframeEffect(). This meant that the inspector would only
be told of an animation target as an Element or a PseudoElement but not as an Element / PseudoId
pair, thus only allowing ::before and ::after to be represented since only those pseudo-elements
create a PseudoElement.

We now pass a Styleable, which encapsulate an Element / PseudoId pair, to
InspectorAnimationAgent::willApplyKeyframeEffect(). Additionally, the Styleable target is read from
the effect for callbacks provided to requestEffectTarget().

Sadly, we still rely on PseudoElement, but this patch at least removes all use of PseudoElement
from KeyframeEffect and pushes it down to InspectorDOMAgent with a new static method
elementToPushForStyleable() which the new pushStyleableElementToFrontend() and pushStyleablePathToFrontend()
methods use to turn the Styleable to an Element or PseudoElement.

In the future, we would need to further remove PseudoElement from Web Inspector and expose something
similar to Styleable throughout the codebase, or find some other way to encapsulate an Element / PseudoId
pair.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::targetElementOrPseudoElement const): Deleted.

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::target const):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffect):

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::requestEffectTarget):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):

  • inspector/agents/InspectorAnimationAgent.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::protocolValueForPseudoId):
(WebCore::protocolValueForPseudoId): Deleted.

  • inspector/agents/InspectorCSSAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::elementToPushForStyleable):
(WebCore::InspectorDOMAgent::pushStyleableElementToFrontend):
(WebCore::InspectorDOMAgent::pushStyleablePathToFrontend):

  • inspector/agents/InspectorDOMAgent.h:

Source/WebInspectorUI:

Add a new DOMStyleable model class to match the new DOM.Styleable protocol type.

When calling Animation.requestEffectTarget(), we now use this new DOMStyleable class
to display pseudo-elements other than ::before or ::after in the Graphics tab.

  • UserInterface/Base/DOMUtilities.js:

(WI.linkifyStyleable):

  • UserInterface/Main.html:
  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

  • UserInterface/Models/DOMStyleable.js: Added.

(WI.DOMStyleable.prototype.fromPayload):
(WI.DOMStyleable.prototype.get node):
(WI.DOMStyleable.prototype.get pseudoId):
(WI.DOMStyleable.prototype.get displayName):
(WI.DOMStyleable):

  • UserInterface/Test.html:
  • UserInterface/Views/AnimationCollectionContentView.js:

(WI.AnimationCollectionContentView.prototype._handleContentViewMouseEnter):

  • UserInterface/Views/AnimationContentView.js:

(WI.AnimationContentView.prototype._refreshSubtitle):

  • UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype._refreshIdentitySection):

LayoutTests:

Check that requestEffectTarget() returns the correct Styleable by checking whether it's defined
or null, and checking its node and pseudoId members.

  • inspector/animation/targetChanged-expected.txt:
  • inspector/animation/targetChanged.html:
8:59 AM Changeset in webkit [288622] by J Pascoe
  • 7 edits in trunk

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

Reviewed by Dean Jackson.

Source/WebCore:

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

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

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::authenticatorAttachment const):

  • Modules/webauthn/PublicKeyCredential.h:
  • Modules/webauthn/PublicKeyCredential.idl:

LayoutTests:

Modify webauthn layout tests to check for new authenticatorAttachment field.

  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/util.js:
8:49 AM Changeset in webkit [288621] by Wenson Hsieh
  • 14 edits
    2 adds in trunk

Data detectors sometimes show up in the wrong place when resizing images with Live Text
https://bugs.webkit.org/show_bug.cgi?id=235598
rdar://88032375

Reviewed by Dean Jackson.

Source/WebCore:

On macOS, Live Text data detectors sometimes show up in the wrong place when images are resized; this can happen
in the case where image analysis injects data detection results into the image, but then the image is resized
from underneath the user's mouse cursor. To fix this, add some logic to invalidate ImageOverlayController's
cached data detector highlight information in the case where the image overlay layout has been changed.

Test: fast/images/text-recognition/mac/image-overlay-data-detectors.html

  • WebCore.xcodeproj/project.pbxproj:

Have libWebCoreTestSupport additionally link against libPAL, so that we can use PAL's DataDetectorsCore soft-
linking utilities.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

Drive-by fix in adjacent code: when installing image overlays in media elements, make sure that we install them
inside the media controls root container by calling ensureUserAgentShadowRoot() before inserting the overlay
content; this ensures that we don't end up with a redundant image overlay in the shadow root. Tests for this
will be added in #235623.

(WebCore::ImageOverlay::updateWithTextRecognitionResult):

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::textRecognitionResultsChanged):
(WebCore::ImageOverlayController::hasActiveDataDetectorHighlightForTesting const):

  • page/ImageOverlayController.h:
  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::textRecognitionResultsChanged):

Add a hook to inform ImageOverlayController when image overlay content changes. If the image overlay host
matches the currently active host element showing data detector highlights, then invalidate the highlights;
these highlights will be recomputed once the user hovers over the data detector elements again.

(WebCore::ImageOverlayController::hasActiveDataDetectorHighlightForTesting const):

Add a testing-only helper method to query whether or not there is an active data detector highlight. See below
for more details.

  • testing/Internals.cpp:

Add some more WebCore testing support to make it possible to test data detector highlights in Live Text on
macOS.

(WebCore::makeDataForLine):
(WebCore::Internals::installImageOverlay):

Add an optional argument to provide a list of data detector quads to inject into the overlay host. For now, each
data detector element simply corresponds to a dummy DDScannerResult returned by the static
fakeDataDetectorResultForTesting() helper below.

(WebCore::Internals::hasActiveDataDetectorHighlight const):

Add an internal testing hook to query whether or not ImageOverlayController is tracking an active data detector
highlight.

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

(WebCore::Internals::fakeDataDetectorResultForTesting):

Source/WebCore/PAL:

Move some soft-linked DataDetectorsCore API out of the iOS-specific define, so that we can call them on macOS.
See WebCore/ChangeLog for more details.

  • pal/cocoa/DataDetectorsCoreSoftLink.h:
  • pal/cocoa/DataDetectorsCoreSoftLink.mm:

LayoutTests:

Add a layout test to exercise (some) of the changes. This new layout test consists of 4 steps:

  1. Hover over a data detector in Live Text and confirm that a data detector highlight is activated.
  2. Resize the image (via script) such that the cursor is no longer over a data detector; confirm that the data

detector highlight is cleared.

  1. Move over the data detector highlight in the resized image, and confirm that the highlight is once again

activated.

  1. Move out of the image altogether and confirm that the highlight is deactivated.
  • fast/images/text-recognition/mac/image-overlay-data-detectors-expected.txt: Added.
  • fast/images/text-recognition/mac/image-overlay-data-detectors.html: Added.
8:42 AM Changeset in webkit [288620] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

[MacOS] Set kAudioOutputUnitProperty_CurrentDevice on CoreAudioSharedUnit outputBus
https://bugs.webkit.org/show_bug.cgi?id=235632
<rdar://87771490>

Reviewed by Eric Carlson.

When VPIO is used for rendering audio, it is not always updating the audio route when system default speaker is updated.
While it is doing so when capturing using the built-in microphone, it is not doing so with BT microphones.

To make it reliable, we are now setting kAudioOutputUnitProperty_CurrentDevice on the output bus to the default output device.
Whenever we detect a change of default output device, we reconfigure the audio unit to select the new default output device.

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::devicesChanged):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:

(WebCore::BaseAudioSharedUnit::setOutputDeviceID):
(WebCore::BaseAudioSharedUnit::validateOutputDevice):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::validateOutputDevice):

7:54 AM Changeset in webkit [288619] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Do less work under m_changeLogLock in AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
https://bugs.webkit.org/show_bug.cgi?id=235624

Reviewed by Chris Fleizach.

AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
do work while holding m_changeLogLock that does not require this lock. This
patch moves this work before the lock acquisition so we hold the lock for as short
a time as possible.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::setFocusedNodeID):
Move work that doesn't require m_changeLogLock before we acquire the lock.

6:45 AM Changeset in webkit [288618] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html is failing
https://bugs.webkit.org/show_bug.cgi?id=235640

Unreviewed rebase.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
6:35 AM Changeset in webkit [288617] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

ASSERTION FAILED: !hasPendingSheets() under WebCore::Style::Scope::~Scope()
https://bugs.webkit.org/show_bug.cgi?id=235612
<rdar://problem/88046988>

Reviewed by Alan Bujtas.

  • dom/Document.cpp:

(WebCore::Document::didRemoveAllPendingStylesheet):

Don't try to scroll to anchor if we don't have a view. This avoids hitting ASSERT(!m_inRemovedLastRefFunction)
trying to ref the document during teardown (with refererencing node count still non-zero).

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::removedFromDocument):

Ensure we always remove the Element from the pending sheet list when it is removed from the document.

6:13 AM Changeset in webkit [288616] by youenn@apple.com
  • 28 edits
    6 copies
    100 adds in trunk/LayoutTests

Rebase WPT streams tests up to 8d1dc42
https://bugs.webkit.org/show_bug.cgi?id=235580

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebased WPT stream tests and expectations from WPT ToT.

  • web-platform-tests/streams: Refreshed.

LayoutTests:

  • platform/mac-wk1/TestExpectations: Skipping service worker tests.
6:11 AM Changeset in webkit [288615] by commit-queue@webkit.org
  • 13 edits
    6 copies
    9 adds
    1 delete in trunk/LayoutTests

WebGL conformance tests that are pending upstreaming should not duplicate unmodified files
https://bugs.webkit.org/show_bug.cgi?id=235631

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-26
Reviewed by Antti Koivisto.

Duplicating the unmodified files keeps the pending tests somewhat isolated from the
upstream test updates. However, this is not feasible as the tests refer to bigger files
that are inconvenient to duplicate, such as videos. Also this makes it harder to write new tests,
since if the new pending test starts to use a file, the file would need duplication.
Also if the upstream has modified the shared files, the change done to the pending test needs
to be done anyway.

It is more consistent to use the same helper media, js and css resources for the pending tests
as the conformance test suite snapshot uses.

Remove all unmodified helper css and js files from the pending test directory and
use the unmodified files from the actual test files.

WebGL conformance tests are:
webgl/2.0.y/ -- autogenerated driver html files referencing the actual test suite test files
webgl/resources/webgl_test_files -- the actual test suite files

Move the pending tests similarly:
webgl/pending -- drivers
webgl/pending/resources/webgl_test_files -- old pending actual test files
webgl/resources/pending_webgl_test_files -- new pending actual test files

This way it is easier to refer to the resources from the actual test files.

  • webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt:
  • webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2-expected.txt:
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html:
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue-expected.txt:
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue.html:
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt:
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html:
  • webgl/pending/conformance2/glsl3/empty-shader-with-output-expected.txt:
  • webgl/pending/conformance2/glsl3/empty-shader-with-output.html:
  • webgl/pending/conformance2/glsl3/float-constant-expressions-expected.txt:
  • webgl/pending/conformance2/glsl3/float-constant-expressions.html:
  • webgl/pending/resources/js-test-pre.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/glsl-conformance-test.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/js-test-post.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/js-test-pre.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/webgl-test-utils.js: Removed.
  • webgl/pending/resources/webgl_test_files/resources/glsl-feature-tests.css: Removed.
  • webgl/pending/resources/webgl_test_files/resources/js-test-style.css: Removed.
  • webgl/pending/resources/webkit-webgl-test-harness.js: Removed.
  • webgl/resources/pending_webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html.
  • webgl/resources/pending_webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html.
  • webgl/resources/pending_webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html.
  • webgl/resources/pending_webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html.
  • webgl/resources/pending_webgl_test_files/conformance2/glsl3/empty-shader-with-output.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance2/glsl3/empty-shader-with-output.html.
  • webgl/resources/pending_webgl_test_files/conformance2/glsl3/float-constant-expressions.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance2/glsl3/float-constant-expressions.html.
4:56 AM Changeset in webkit [288614] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

REGRESSION(r287684) speedtest.net uses many GB of memory
https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

4:18 AM Changeset in webkit [288613] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] C++20 warnings in TestConsoleMessage
https://bugs.webkit.org/show_bug.cgi?id=235634

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

Fix ambiguous-reversed-operator warnings. In C++20 comparison operators (like a == b) need
to be declared const, so that reverse comparisons (like b == a) also work as intended.

  • TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp:

(ConsoleMessageTest::ConsoleMessage::operator== const):
(ConsoleMessageTest::ConsoleMessage::operator==): Deleted.

2:24 AM Changeset in webkit [288612] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Do not run testPingPongStackOverflow while running multithreaded MultithreadedMultiVMExecutionTest
https://bugs.webkit.org/show_bug.cgi?id=235633

Reviewed by Mark Lam.

MultithreadedMultiVMExecutionTest is failing occasionally in CLoop test. This is because of the following.

  1. CLoop is slow, so multithreaded tests are running longly.
  2. Then, this multithreaded tests overlap with testPingPongStackOverflow.
  3. testPingPongStackOverflow changes global Options::maxPerThreadStackUsage to test stack-overflow behavior. This test is strongly assuming that there is only one thread using this VM. But this is wrong since MultithreadedMultiVMExecutionTest is running concurrently. Then this configuration change affects on the running MultithreadedMultiVMExecutionTest.
  4. Stack-overflow error happens in MultithreadedMultiVMExecutionTest if the changed option is observed in that test.

We should not run testPingPongStackOverflow until MultithreadedMultiVMExecutionTest finishes since it assumes
that there is only one user of this VM.

This patch also cleans up / adds diagnosis of failures in MultithreadedMultiVMExecutionTest.

  • API/tests/MultithreadedMultiVMExecutionTest.cpp:

(startMultithreadedMultiVMExecutionTest):
(finalizeMultithreadedMultiVMExecutionTest):

  • API/tests/testapi.c:

(main):

1:47 AM Changeset in webkit [288611] by commit-queue@webkit.org
  • 3 edits
    6 deletes in trunk/LayoutTests

Streams tests try to call ReadableStream.prototype.pipeThrough.call generically
https://bugs.webkit.org/show_bug.cgi?id=235560

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

ReadableStream methods are nowadays defined to accept only ReadableStream instances.
Tests sometimes assert that an exception is thrown. However, the exception being actually thrown is different.
Future testharness.js will check the exception and the test will fail.

  • TestExpectations:
  • platform/win/TestExpectations:
  • streams/brand-checks-expected.txt: Removed.
  • streams/brand-checks.html: Removed.
  • streams/readable-stream-pipeThrough-expected.txt: Removed.
  • streams/readable-stream-pipeThrough.html: Removed.
  • streams/reference-implementation/brand-checks-expected.txt: Removed.
  • streams/reference-implementation/brand-checks.html: Removed.
1:25 AM Changeset in webkit [288610] by graouts@webkit.org
  • 8 edits in trunk/Source

[Model] Mouse interaction for <model> is flipped in the y-axis
https://bugs.webkit.org/show_bug.cgi?id=235363
<rdar://problem/87772557>

Reviewed by Dean Jackson.

Source/WebCore:

The mouse coordinates we should send up to the ARQL APIs are in the coordinates
of the <model> element with the y-axis flipped.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::flippedLocationInElementForMouseEvent):
(WebCore::HTMLModelElement::dragDidStart):
(WebCore::HTMLModelElement::dragDidChange):
(WebCore::HTMLModelElement::dragDidEnd):

  • Modules/model-element/HTMLModelElement.h:

Source/WebKit:

The mouse coordinates consumed by the ARQL APIs are in the coordinates
of the <model> element with the y-axis flipped, so let's label them
as such.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::handleMouseDownForModelElement):
(WebKit::ModelElementController::handleMouseMoveForModelElement):
(WebKit::ModelElementController::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseDownForModelElement):
(WebKit::WebPageProxy::handleMouseMoveForModelElement):
(WebKit::WebPageProxy::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseDown):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseMove):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseUp):

12:10 AM Changeset in webkit [288609] by Alexander Mikhaylenko
  • 9 edits in trunk

[GTK] REGRESSION: Touch scrolling is broken
https://bugs.webkit.org/show_bug.cgi?id=235436

Reviewed by Chris Lord.

Source/WebKit:

Remove webkitWebViewBaseSetWheelHasPreciseDeltas(), instead add a parameter
to webkitWebViewBaseSynthesizeWheelEvent() that specifies whether the event
should have precise deltas or not.

Correct the touch swipe velocity, since it won't get multiplied by
pixelsPerLineStep().

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidBegin):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction):

Tools:

Stop using webkitWebViewBaseSetWheelHasPreciseDeltas(), instead pass the correct parameter into
webkitWebViewBaseSynthesizeWheelEvent().

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

12:00 AM Changeset in webkit [288608] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:

Jan 25, 2022:

11:58 PM Changeset in webkit [288607] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

Unreviewed, reverting r288606.
https://bugs.webkit.org/show_bug.cgi?id=235629

Should never have been committed

Reverted changeset:

"[WebGPU] Fix WGSLUnitTests build"
https://bugs.webkit.org/show_bug.cgi?id=235628
https://commits.webkit.org/r288606

Patch by Commit Queue <commit-queue@webkit.org> on 2022-01-25

11:54 PM Changeset in webkit [288606] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:
11:00 PM Changeset in webkit [288605] by Chris Dumez
  • 12 edits in trunk

REGRESSION (iOS 15.2): Loading gets stuck after back-navigation involving COOP header
https://bugs.webkit.org/show_bug.cgi?id=235475
<rdar://problem/87948317>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure ShouldTreatAsContinuingLoad is properly propagated for back/forward navigations,
not just regular loadRequests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

Source/WebKit:

WebPageProxy::continueNavigationInNewProcess() was failing to pass the identifier of the
NetworkResourceLoader that needs to be resumed to ProvisionalPageProxy::goToBackForwardItem().
It was only passing it to ProvisionalPageProxy::loadRequest(), which is used for non-back/forward
navigations. As a result, in case of COOP process-swap on back/forward navigation, the network
process would start a fresh load instead of resuming the existing one. The fresh load would get
a COOP header and thus trigger yet another process swap (and so on in a loop).

Also fix an issue where ProvisionalPageProxy::goToBackForwardItem() would always use
ShouldTreatAsContinuingLoad::YesAfterNavigationPolicyDecision even in the case of a COOP
process-swap. In the case of a COOP process-swap, we should pass in
ShouldTreatAsContinuingLoad::YesAfterProvisionalLoadStarted. This was causing us to
do an extra call to didStartProvisionalLoad() and was causing the new API test to hit
an assertion on debug builds.

Covered by new API test.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::goToBackForwardItem):

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

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadData):
(WebKit::WebPage::goToBackForwardItem):

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

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:22 PM Changeset in webkit [288604] by eric.carlson@apple.com
  • 56 edits
    2 copies
    8 adds in trunk

[macOS] Add new screen and window capture backend
https://bugs.webkit.org/show_bug.cgi?id=234029
Source/WebCore:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

New API test: GetDisplayMediaWindowAndScreen.mm

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • en.lproj/Localizable.strings: Add strings for window and screen prompts.
  • platform/mediastream/MediaConstraints.h:

(WebCore::StringConstraint::getExact const): Drive-by: fix logic inversion bug.
(WebCore::StringConstraint::getIdeal const): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance): Assert if device ID constraint is
not a string.

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const):
(WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit):
(WebCore::RealtimeMediaSourceCenter::useMockCaptureDevices const):
(WebCore::RealtimeMediaSourceCenter::setUseMockCaptureDevices):

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::create):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::Capturer::setObserver):
(WebCore::DisplayCaptureSourceCocoa::Capturer::capturerIsRunningChanged): Deleted.

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

(WebCore::CapturerObserver::capturerIsRunningChanged):
(WebCore::CapturerObserver::capturerFailed):

  • platform/mediastream/ios/ReplayKitCaptureSource.mm:

(WebCore::ReplayKitCaptureSource::captureStateDidChange):

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::updateDisplayCaptureDevices): Use
ScreenCaptureKitCaptureSource when available.
(WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices): Ditto.
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): Ditto.
(WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID): Ditto.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h: Added.
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm: Added.

(-[WebCoreScreenCaptureKitHelper initWithCallback:]):
(-[WebCoreScreenCaptureKitHelper disconnect]):
(-[WebCoreScreenCaptureKitHelper stream:didStopWithError:]):
(WebCore::usingOldAPI):
(WebCore::ScreenCaptureKitCaptureSource::isAvailable):
(WebCore::ScreenCaptureKitCaptureSource::create):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::~ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::start):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamFailedWithError):
(WebCore::ScreenCaptureKitCaptureSource::generateFrame):
(WebCore::ScreenCaptureKitCaptureSource::processSharableContent):
(WebCore::ScreenCaptureKitCaptureSource::findShareableContent):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::intrinsicSize const):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::commitConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::captureQueue):
(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):
(WebCore::ScreenCaptureKitCaptureSource::deviceType const):
(WebCore::ScreenCaptureKitCaptureSource::surfaceType const):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::forEachNSWindow):

  • platform/mock/MockMediaDevice.h:

(WebCore::MockMediaDevice::captureDevice const): Make devices enabled by default.
Initialize screen and window devices with the correct type.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices): Fix window device types.
(WebCore::MockRealtimeMediaSourceCenter::displayDevices):

  • platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebCore/PAL:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • PAL.xcodeproj/project.pbxproj:
  • pal/mac/ScreenCaptureKitSoftLink.h: Added.
  • pal/mac/ScreenCaptureKitSoftLink.mm: Added.

Source/WebKit:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultScreenCaptureKitEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKPreferences.mm: Add _useScreenCaptureKit private preference.

(-[WKPreferences _useScreenCaptureKit]):
(-[WKPreferences _setUseScreenCaptureKit:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add private delegate for a

getDisplayMedia-specific prompt.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setIndexOfGetDisplayMediaDeviceSelectedForTesting:]): Set the index
of the screen or window device to return for getDisplayMedia without prompting.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::promptForDisplayCapturePermission): Call new
screen/window capture delegate.
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::promptForGetDisplayMedia): Add parameter
specifying a window or screen capture prompt.

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::manager const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIndexOfGetDisplayMediaDeviceSelectedForTesting):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/DisplayCaptureSessionManager.h: Added.

(WebKit::DisplayCaptureSessionManager::setIndexOfDeviceSelectedForTesting):

  • UIProcess/mac/DisplayCaptureSessionManager.mm: Added.

(WebKit::getMockWindowList):
(WebKit::getCGWindowList):
(WebKit::getWindowList):
(WebKit::alertForWindowSelection):
(WebKit::DisplayCaptureSessionManager::alertForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::isAvailable):
(WebKit::DisplayCaptureSessionManager::singleton):
(WebKit::DisplayCaptureSessionManager::DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::~DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::promptForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::deviceSelectedForTesting):
(WebKit::DisplayCaptureSessionManager::showWindowPicker):
(WebKit::DisplayCaptureSessionManager::showScreenPicker):

  • UIProcess/mac/UserMediaPermissionRequestProxyMac.h: Added.
  • UIProcess/mac/UserMediaPermissionRequestProxyMac.mm: Added.

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxyMac::UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::~UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::promptForGetDisplayMedia):
(WebKit::UserMediaPermissionRequestProxyMac::canPromptForGetDisplayMedia):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add UseScreenCaptureKit.
  • wtf/PlatformEnableCocoa.h: Define ENABLE_SCREEN_CAPTURE_KIT.
  • wtf/PlatformHave.h: Define HAVE_SCREEN_CAPTURE_KIT.
  • wtf/cocoa/SoftLinking.h: Add softlink macros that take an API_AVAILABLE check.

Tools:

Reviewed by Jer Noble and Youenn Fablet.

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

(-[WindowAndScreenCaptureTestView haveStream:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:

(-[UserMediaCaptureUIDelegate init]):
(-[UserMediaCaptureUIDelegate setGetDisplayMediaDecision:]):
(-[UserMediaCaptureUIDelegate _webView:requestDisplayCapturePermissionForOrigin:initiatedByFrame:decisionHandler:]):

8:15 PM Changeset in webkit [288603] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Build fix for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=235625

Unreviewed.

The WGSL headers and .a file for Mac Catalyst need to not collide with the same files for regular Mac builds.

  • Configurations/Base.xcconfig:
  • Configurations/WGSL.xcconfig:
8:12 PM Changeset in webkit [288602] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Shadows are flattened to bitmaps in CGDisplayListImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=235617

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContextCG::fillRect):
(WebCore::GraphicsContextCG::fillRoundedRectImpl):
(WebCore::GraphicsContextCG::fillRectWithRoundedHole):
(WebCore::GraphicsContextCG::canUseShadowBlur const):

  • platform/graphics/cg/GraphicsContextCG.h:

Factor out canUseShadowBlur so that GraphicsContextCG subclasses can
request that we not use WebCore's custom shadow implementation.

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

Disable ShadowBlur for CGDisplayListImageBufferBackend, allowing it to
be recorded as a "shadow" display list item instead of a series of bitmaps.

7:14 PM Changeset in webkit [288601] by Fujii Hironori
  • 23 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wincairo/fast/css/word-space-extra-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/wincairo/fast/text/atsui-spacing-features-expected.txt:
  • platform/wincairo/fast/text/basic/015-expected.txt:
  • platform/wincairo/fast/text/international/003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wincairo/fast/text/international/hebrew-vowels-expected.txt:
  • platform/wincairo/fast/text/international/hindi-whitespace-expected.txt:
  • platform/wincairo/fast/text/international/thai-baht-space-expected.txt:
  • platform/wincairo/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/wincairo/fast/text/midword-break-before-surrogate-pair-2-expected.txt:
  • platform/wincairo/fast/text/stroking-decorations-expected.txt:
  • platform/wincairo/fast/text/stroking-expected.txt:
  • platform/wincairo/fast/text/wbr-expected.txt:
  • platform/wincairo/fast/text/wide-zero-width-space-expected.txt:
6:13 PM Changeset in webkit [288600] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Fix non-unified build by adding missing headers to JSKeyframeEffectCustom.cpp

Unreviewed non-unified build fix.

No new tests needed.

  • bindings/js/JSKeyframeEffectCustom.cpp: Add missing headers Document.h,

JSDOMConvertObject.h, JSDOMConvertSequences.h, and JSDOMConvertStrings.h.

6:08 PM Changeset in webkit [288599] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: build fix for CLoop.

Not reviewed.

Code for the USE(LIBPAS_JIT_HEAP) ExecutableMemoryHandle is only built in when
ENABLE(JIT). Update the header to reflect this so that CLoop builds don't try to
link against it.

  • jit/ExecutableMemoryHandle.h:
5:37 PM Changeset in webkit [288598] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.2

Tag Safari-613.1.14.5.2.

5:36 PM Changeset in webkit [288597] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288593. rdar://problem/87906922

Install build failure when using SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

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

5:35 PM Changeset in webkit [288596] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.2

5:26 PM Changeset in webkit [288595] by Robert Jenner
  • 2 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://86037417

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Temporarily disabling test.
5:23 PM Changeset in webkit [288594] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebIDL] Remove the now-unused [CustomEnabled] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=235608

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

It's unlikely we will ever need it, and it's limited to Window only,
and it generates a call to a free function rather than a method.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

5:11 PM Changeset in webkit [288593] by msaboff@apple.com
  • 6 edits in trunk/Source

Install build failure when using SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
5:10 PM Changeset in webkit [288592] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

[WebIDL] Blob-related methods should use _relevant_ context instead of _current_
https://bugs.webkit.org/show_bug.cgi?id=235279

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from TBA.

  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html: Added.
  • web-platform-tests/FileAPI/support/empty-document.html: Added.

Source/WebCore:

This patch fixes the following methods to rely on _relevant_ global object instead of _current_:

  1. Blob's slice() / stream() / arrayBuffer() / text() as explicitly required by the File API spec [1]. Before this change, methods from detached <iframe> were throwing when called on a main frame's Blob. Aligns WebKit with Blink and Gecko.
  1. HTMLCanvasElement's toBlob() as per HTML spec [2]: a task should be queued on _relevant_ document's event loop.
  1. HTMLCanvasElement's transferControlToOffscreen() / captureStream() per recommendatation for spec authors [4], and to align with toBlob(). transferControlToOffscreen() should certainly pass _relevant_ context, which would be used later for Blob creation.

[1] https://w3c.github.io/FileAPI/#blob-get-stream
[2] https://html.spec.whatwg.org/#canvas-blob-serialisation-task-source
[3] https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects:concept-relevant-everything-2

Test: imported/w3c/web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html

Not sure if changes to HTMLCanvasElement methods are even testable.

  • fileapi/Blob.cpp:

(WebCore::Blob::slice const):
(WebCore::Blob::loadBlob):
(WebCore::Blob::text):
(WebCore::Blob::arrayBuffer):
(WebCore::Blob::stream):

  • fileapi/Blob.h:
  • fileapi/Blob.idl:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob):
(WebCore::HTMLCanvasElement::transferControlToOffscreen):
(WebCore::HTMLCanvasElement::captureStream):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:

Mark transferControlToOffscreen() as [NewObject].

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

[macOS][WP] Allow mach extension to service
https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
4:55 PM Changeset in webkit [288590] by Aditya Keerthi
  • 16 edits in trunk

Disable input-security CSS property
https://bugs.webkit.org/show_bug.cgi?id=235557
rdar://87984277

Reviewed by Dean Jackson.

Source/WebCore:

CSSWG is planning to remove input-security from CSS UI 4
(https://github.com/w3c/csswg-drafts/issues/6788).

Keep the property around as an experimental feature, so that
it can be used in the UA stylesheet, and easily turned on if the
resolution is not finalized.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):

Enable input-security when parsing the UA stylesheet, as it is used to
obscure text in password inputs.

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSInputSecurityEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::cssInputSecurityEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Make input-security a disabled-by-default experimental feature.

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

Add default for WebKitLegacy on Windows.

LayoutTests:

  • fast/css/computed-text-security-for-input-security.html:
4:31 PM Changeset in webkit [288589] by Alexey Shvayka
  • 3 edits
    2 adds in trunk

XPath::Step::nodesInAxis(): add null checks after Attr::ownerElement() calls
https://bugs.webkit.org/show_bug.cgi?id=235500

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32544.

  • web-platform-tests/domxpath/xpath-evaluate-crash-expected.txt: Added.
  • web-platform-tests/domxpath/xpath-evaluate-crash.html: Added.

Source/WebCore:

This patch adds null checks for results of Attr::ownerElement() to avoid crashes
when evaluating XPath expressions with an orphaned Attr as the context node.

Inspired by the recent Blink fix [1], yet this change covers all null pointer
dereferencing sites, as proven by the updated test.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1236967

Test: imported/w3c/web-platform-tests/domxpath/xpath-evaluate-crash.html

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis const):

4:14 PM Changeset in webkit [288588] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix some spelling errors in Color functions
https://bugs.webkit.org/show_bug.cgi?id=235618

Reviewed by Wenson Hsieh.

Fix the spelling of outOfLineComponentsEqual and outOfLineComponentsEqualIgnoringSemanticColor.

  • platform/graphics/Color.h:

(WebCore::operator==):
(WebCore::outOfLineComponentsEqual):
(WebCore::outOfLineComponentsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::outOfLineComponentssEqual): Deleted.
(WebCore::outOfLineComponentssEqualIgnoringSemanticColor): Deleted.

3:59 PM Changeset in webkit [288587] by Simon Fraser
  • 4 edits in trunk

Fix the lldb Color formatter
https://bugs.webkit.org/show_bug.cgi?id=235613

Reviewed by Darin Adler.
Source/WebCore:

  • platform/graphics/ColorSpace.h:

Tools:

Copy the list of color spaces from ColorSpace.h

  • lldb/lldb_webkit.py:

(WebCoreColorProvider._to_string_out_of_line):

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

[macOS] Observe CFNetwork preference domain
https://bugs.webkit.org/show_bug.cgi?id=235603
<rdar://87994712>

Reviewed by Darin Adler.

Since the Networking process is now using CF prefs direct mode, the CFNetwork preference domain should be observed for changes.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

2:10 PM Changeset in webkit [288585] by mmaxfield@apple.com
  • 8 edits
    7 adds in trunk

Add another test for locale-specific shaping
https://bugs.webkit.org/show_bug.cgi?id=235558

Reviewed by Darin Adler.

Thanks so much to Just van Rossum for contributing the test font!!!

.:

  • metadata/contributors.json:

LayoutTests:

This test makes sure the LOCL lookup works correctly, even without font-feature-settings.

  • fast/text/locale-shaping-2-expected.html: Added.
  • fast/text/locale-shaping-2.html: Added.
  • fast/text/locale-shaping-3-expected.html: Added.
  • fast/text/locale-shaping-3.html: Added.
  • fast/text/resources/langlocatest_cjk/LICENSE: Added.
  • fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
2:09 PM Changeset in webkit [288584] by Alexey Shvayka
  • 3 edits in trunk/Source/WebCore

Remove unused Document::ListenerType enumerators
https://bugs.webkit.org/show_bug.cgi?id=235049

Reviewed by Sam Weinig.

Except for RESIZE_LISTENER, which just seems to be left behind, legacyType() of EventTarget.cpp
handles all other event types, deleted in this patch, according to the spec [1].

[1] https://dom.spec.whatwg.org/#concept-event-listener-invoke (step 9)

No new tests, no behavior change.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
1:55 PM Changeset in webkit [288583] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] fast/scrolling/mac/j-shaped-scroll-rubberband.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235605

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as failing on arm64.
1:54 PM Changeset in webkit [288582] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Mavericks: media/track/track-in-band-legacy-api.html fails intermittently
https://bugs.webkit.org/show_bug.cgi?id=123522

Reviewed by Simon Fraser.

Remove expectations since it's not longer happening.

  • gpu-process/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [288581] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235084

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as failing on arm64.
1:36 PM Changeset in webkit [288580] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Collapse blackboxed call frames by default
https://bugs.webkit.org/show_bug.cgi?id=234581
<rdar://problem/86967088>

Reviewed by Devin Rousso.

Remove "Collapse blackboxed call frames" checkbox from the experimental settings
and enable the feature by default.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.shouldAutoExpandBlackboxedCallFrameGroup):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

1:25 PM Changeset in webkit [288579] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

[ Catalina wk1 ews ] media/remote-control-command-seek.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215325

Reviewed by Simon Fraser.

No longer flaking on Catalina or on iOS bots. Remove expectations.

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:24 PM Changeset in webkit [288578] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287990. rdar://problem/86781432

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

Reviewed by Brent Fulgham.

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

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

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

1:09 PM Changeset in webkit [288577] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WTF

[WTF] Make CRASH_WITH_INFO more useful when using GCC
https://bugs.webkit.org/show_bug.cgi?id=235573

Make CRASH_WITH_INFO() print out the additional information instead of silently crash
when WebKit is compiled with GCC.

Reviewed by Yusuke Suzuki.

  • wtf/Assertions.h: Add a variant of CRASH_WITH_INFO() which uses VA_OPT for

GCC and Clang; MSVC is left with the existing version as the version currently in
use is not happy about VA_OPT.
(CRASH_WITH_INFO): Deleted inline function for GCC.
(CRASH_WITH_SECURITY_IMPLICATION_AND_INFO): Ditto.

12:36 PM Changeset in webkit [288576] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Parsing support for container shorthand property
https://bugs.webkit.org/show_bug.cgi?id=235582

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:

Source/WebCore:

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

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeContainerShorthand):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
12:32 PM Changeset in webkit [288575] by Wenson Hsieh
  • 5 edits in trunk

UIWKDocumentRequestSpatialAndCurrentSelection should limit context to the editable root of the current selection
https://bugs.webkit.org/show_bug.cgi?id=235595
rdar://87835602

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the behavior of document editing context requests in the case where the SpatialAndCurrentSelection flag
is specified, but no explicit textInputContext has been given. Instead of using the hit-tested corners of the
spatial request as-is, clamp to the visible start and end positions of the current editable root (only if it
exists).

This adjustment makes this particular request configuration useful for text input clients that just want to
request text input context information for the current editable element in a given rect, but don't already have
a text input element identifier.

Test: DocumentEditingContext.SpatialAndCurrentSelectionRequest_LimitContextToEditableRoot

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: also clean up a couple of old staging declarations.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

12:21 PM Changeset in webkit [288574] by Robert Jenner
  • 2 edits
    3 adds in trunk/LayoutTests

[CSS Container Queries] Basic parsing support for container-type property
https://bugs.webkit.org/show_bug.cgi?id=235514

Uneviewed, rebaseline for iOS.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
11:54 AM Changeset in webkit [288573] by ysuzuki@apple.com
  • 13 edits in trunk

[JSC] Wasm module import should be done in sync when WebAssembly.instantiate gets module
https://bugs.webkit.org/show_bug.cgi?id=235506

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

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

Source/JavaScriptCore:

According to the spec, module imports need to be done synchronously when WebAssembly.instantiate
is called with a wasm module[1].

To align our implementation to this behavior, we split WebAssemblyModuleRecord::initializeImportsAndExports
into WebAssemblyModuleRecord::initializeImports and WebAssemblyModuleRecord::initializeExports. The former
does not require CalleeGroups so we can execute before compiling CalleeGroups.

[1]: https://webassembly.github.io/spec/js-api/#asynchronously-instantiate-a-webassembly-module

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::evaluate):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::setOwner):
(JSC::Wasm::Instance::finalizeCreation): Deleted.

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::hasMemoryImport const):

  • wasm/js/JSWebAssembly.cpp:

(JSC::instantiate):
(JSC::resolve): Deleted.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::initializeImports):
(JSC::JSWebAssemblyInstance::finalizeCreation):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports): Deleted.

  • wasm/js/WebAssemblyModuleRecord.h:
11:52 AM Changeset in webkit [288572] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Use cwd as default path
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>

Reviewed by Aakash Jain.

Re-landing, infrastructure now handles git-webkit calls appropriately.

  • Scripts/git-webkit: Use default path behavior.
11:41 AM Changeset in webkit [288571] by graouts@webkit.org
  • 6 edits in trunk

Deduplication for @keyframes rules should account for animation-composition
https://bugs.webkit.org/show_bug.cgi?id=235596

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Import test recently added in WPT via https://github.com/web-platform-tests/wpt/pull/32495.
We pass them all with the source change.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:

Source/WebCore:

The CSS Animations Level 2 spec recently changed to account for animation-composition
when deduplicating @keyframes rules (see https://github.com/w3c/csswg-drafts/pull/6974).

  • animation/CompositeOperation.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeRulesForName const):

11:38 AM Changeset in webkit [288570] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r288267. rdar://problem/87785288

<dialog> with transformed ancestor asserts under RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=235194

Reviewed by Antti Koivisto.

Source/WebCore:

With this change we reparent the RenderLayers of top layer elements under the RenderView's
layer. This makes the RenderLayer hierarchy a closer match to the containing block
hierarchy, and means that all the existing RenderLayer tree walks that use
parent()/firstChild()/nextSibling() traverse the the "top layer" layers as children of the
RenderView. This in turn means that the various bits of RenderLayer state that track the
state of descendants (e.g. m_hasVisibleDescendant, m_hasSelfPaintingLayerDescendant,
m_hasNotIsolatedBlendingDescendants) reflect descendency in the top-layer-aware hierarchy.

Note that m_hasVisibleDescendant is about the inherited visibility property which follows
DOM order, but since we consult it during painting-related tree walks, we want this state to
reflect the top-layer-aware tree.

The patch adds top-layer-aware helpers on RenderElement to find the parent and next sibling,
and uses those when parenting layers.

In addition, when the top layer status changes for a RenderLayer, we unparent and
re-parent its layer (which in turn should toggle the relevant dirty bits).

  • rendering/RenderElement.cpp: (WebCore::findNextLayer): (WebCore::layerNextSiblingRespectingTopLayer): (WebCore::addLayers): (WebCore::RenderElement::layerParentRespectingTopLayer const): (WebCore::RenderElement::layerNextSiblingRespectingTopLayer const): (WebCore::RenderElement::insertedIntoTree): (WebCore::RenderElement::willBeRemovedFromTree): (WebCore::RenderElement::findNextLayer const): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer): (WebCore::RenderLayer::stackingContext const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::setHasVisibleContent): (WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus): (WebCore::RenderLayer::setAncestorChainHasVisibleDescendant): (WebCore::RenderLayer::enclosingAncestorForPosition const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::paintLayerWithEffects): Ditto (WebCore::RenderLayer::establishesTopLayerWillChange): (WebCore::RenderLayer::establishesTopLayerDidChange): (WebCore::RenderLayer::clipCrossesPaintingBoundary const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::calculateClipRects const): Ditto

LayoutTests:

  • TestExpectations: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html no longer asserts.

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

11:38 AM Changeset in webkit [288569] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288127. rdar://problem/87785288

Clean up some code around RenderElement::addLayers()
https://bugs.webkit.org/show_bug.cgi?id=235272

Reviewed by Darin Adler.

The code that looks for the next layer via render tree traversal is tricky and
hard to understand. Do some initial cleanup prior to fixing it for top layer.

First, use std::optional<> in the static addLayers() to make the beforeChild
finding easier to understand (no longer need a null newObject as the signal that
you've tried to look).

Second, use references in findNextLayer() and rename 'startPoint' to make its
purpose more clear.

  • rendering/RenderElement.cpp: (WebCore::addLayers): (WebCore::RenderElement::addLayers): (WebCore::RenderElement::findNextLayer const): (WebCore::RenderElement::findNextLayer): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer):

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

11:38 AM Changeset in webkit [288568] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288059. rdar://problem/87785288

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

Reviewed by Alan Bujtas.

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

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

  • dom/Document.h: (WebCore::Document::hasTopLayerElement const):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::rebuildZOrderLists):
  • rendering/RenderLayer.h:

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

11:38 AM Changeset in webkit [288567] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287845. rdar://problem/87785288

REGRESSION(r287683): <dialog> elements inside clipped/overflowed elements are no longer shown
https://bugs.webkit.org/show_bug.cgi?id=234984

Reviewed by Simon Fraser.

Source/WebCore:

Paint at the right place by fixing isContainerForPositioned, also fix clip rects.

  • rendering/RenderLayer.cpp: (WebCore::isContainerForPositioned): (WebCore::RenderLayer::enclosingAncestorForPosition const): (WebCore::accumulateOffsetTowardsAncestor): (WebCore::RenderLayer::calculateClipRects const):

LayoutTests:

Enable relevant tests. Set the asserting test as Crash instead of Skipping.

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

11:13 AM Changeset in webkit [288566] by Russell Epstein
  • 33 edits
    1 copy
    6 adds
    2 deletes in branches/safari-613-branch

Cherry-pick r288315. rdar://problem/87601762

Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams
https://bugs.webkit.org/show_bug.cgi?id=235233
<rdar://problem/87601762>

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

Source/WebCore:

Make full texture uploads from MediaStream camera captures use CVPixelBuffers
instead of reading the pixels back.
Implement MediaPlayerInterface::pixelBufferForCurrentTime() for
MediaPlayerPrivateMediaSourceAVFObjC.
Rename functions from pixelBuffer... to videoSample...
Use new type MediaSampleVideoFrame instead of CVPixelBuffer.
MediaSampleVideoFrame contains also the frame orientation. The
orientation is needed as the camera might capture the image
with a rotation or a flip.

To avoid ifdefs, the new API videoSampleForCurrentTime exists
for all platforms, but is currently called only by Cocoa.
Also the type MediaSampleVideoFrame exists for all platforms
but has the frame contents implementation only for Cocoa.

Tested by
fast/mediastream/getUserMedia-to-canvas-1.html
fast/mediastream/getUserMedia-to-canvas-2.html

Currently the "mirrored" part is tested manually, WebKit
does not request mirrored camera image so it is dead code.

  • Headers.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::videoSampleForCurrentTime): (WebCore::MediaPlayer::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture): (WebCore::MediaPlayerPrivateInterface::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaSampleVideoFrame.h: Added. (WebCore::MediaSampleVideoFrame::orientation const): (WebCore::MediaSampleVideoFrame::pixelBuffer const): (WebCore::MediaSampleVideoFrame::operator== const): (WebCore::MediaSampleVideoFrame::encode const): (WebCore::MediaSampleVideoFrame::decode):
  • platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Added. (WebCore::MediaSampleVideoFrame::MediaSampleVideoFrame):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::videoOrientation): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleForCurrentTime):
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):
  • platform/graphics/cv/GraphicsContextGLCV.h:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: (WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa): (WebCore::GraphicsContextGLCVCocoa::copyVideoFrameToTexture): (WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture): Deleted.
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

Source/WebKit:

Rename functions from pixelBuffer... to videoFrame.
Send new type MediaPlayerVideoFrame instead of CVPixelBuffer.
MediaPlayerVideoFrame contains also the frame orientation.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::invalidate): (WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas.html:
  • webrtc/routines.js: Test camera image rotations in the test.

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

11:08 AM Changeset in webkit [288565] by Devin Rousso
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: replace gear-with-contextmenu icons used for filtering with filter-with-contextmenu icons
https://bugs.webkit.org/show_bug.cgi?id=235546

Reviewed by Dean Jackson.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.initialLayout):

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter:active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active:active): Added.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:active): Added.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Images/Filter.svg: Added.
10:50 AM Changeset in webkit [288564] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r281419): iCloud.com Notes web app fonts render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=235559
<rdar://problem/87268956>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character-expected.txt: Added.
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html: Added.

Source/WebCore:

Chrome and Firefox render U+0000 NULL as invisible. We should do the same, despite it technically being classified as a control character.

https://github.com/w3c/csswg-drafts/pull/6983

Test: imported/w3c/web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

10:30 AM Changeset in webkit [288563] by aakash_jain@apple.com
  • 4 edits in trunk/Tools/CISupport

[buildbot] Detailed bot information should be displayed inside PrintConfiguration step instead of workers page
https://bugs.webkit.org/show_bug.cgi?id=235583

Reviewed by Jonathan Bedard and Ryan Haddad.

  • Tools/CISupport/build-webkit-org/steps.py:

(PrintConfiguration): run 'system_profiler SPSoftwareDataType SPHardwareDataType' command in PrintConfiguration.

  • Tools/CISupport/ews-build/steps.py: Ditto.
  • Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.
  • Tools/CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.

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

9:48 AM Changeset in webkit [288562] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r286669. rdar://problem/81618758

[iOS] Always set audio session preferred input after changing the category
https://bugs.webkit.org/show_bug.cgi?id=232626
rdar://81618758

Reviewed by Youenn Fablet.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule a session update so the category and/or preferred input is setup.
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred capture device if that has changed.
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID): Remember the device UID if the configuration is successful. (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice): Reset the preferred device if necessary. (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal): Refactored from setPreferredAudioSessionDeviceUID.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::captureDeviceChanged):

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

9:48 AM Changeset in webkit [288561] by Russell Epstein
  • 7 edits
    5 deletes in branches/safari-613-branch

Revert r282746. rdar://problem/87732806

9:36 AM Changeset in webkit [288560] by graouts@webkit.org
  • 6 edits
    1 add in trunk/Source/WebCore

Refactor KeyframeEffect::getKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235504

Reviewed by Chris Dumez.

We move all the JS conversion code to a new custom implementation for JSKeyframeEffect::getKeyframes()
such that KeyframeEffect::getKeyframes() is simply in the business of compiling the list of computed
keyframes.

To do this, we start by changing the way the various KeyframeEffect structs are organized. We make
BaseComputedKeyframe extend BaseKeyframe, then ComputedKeyframe extend BaseComputedKeyframe by adding
a map of CSSPropertyID to String values, then ParsedKeyframe can simply extend ComputedKeyframe.
This makes it easy to copy ParsedKeyframe into a ComputedKeyframe for the properties relevant
to the output of getKeyframes().

We also take the opportunity to merge what used to be two methods, getBindingsKeyframes() and getKeyframes(),
into a single method since getKeyframes() is only ever called through the JS bindings.

Finally, we remove the big if/else statement in KeyframeEffect::getKeyframes() to have a small if block
for the case where the keyframes are already set via the setKeyframes() API and return early.

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

(WebCore::KeyframeEffect::CSSPropertyIDToIDLAttributeName):
(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::animatedProperties):
(WebCore::KeyframeEffect::animatesProperty const):
(WebCore::CSSPropertyIDToIDLAttributeName): Deleted.
(WebCore::KeyframeEffect::getBindingsKeyframes): Deleted.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • bindings/js/JSKeyframeEffectCustom.cpp: Added.

(WebCore::JSKeyframeEffect::getKeyframes):

9:34 AM Changeset in webkit [288559] by Pablo Saavedra
  • 5 edits in trunk/Source/WebCore

[WPE][GTK] Build error in ARMv7 Neon targets after r286152
https://bugs.webkit.org/show_bug.cgi?id=235410

Reviewed by Simon Fraser.

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware): Deleted.

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

(WebCore::FEBlendSoftwareApplier::apply const):

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

(WebCore::FECompositeSoftwareApplier::applyArithmetic const):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
9:18 AM Changeset in webkit [288558] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Unreviewed follow-up fix.

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

(Trigger.propertiesToPassToTriggers): Pass ews_revision for patch workflows.

9:09 AM Changeset in webkit [288557] by Russell Epstein
  • 4 edits in branches/safari-614.1.1-branch/Source/WebCore

Cherry-pick r288546. rdar://problem/87944391

Add a WebShare policy quirk for Twitter
https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp: (WebCore::validateWebSharePolicy): (WebCore::Navigator::canShare): (WebCore::Navigator::share):
  • page/Quirks.cpp: (WebCore::isTwitterDocument): (WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const): (WebCore::Quirks::shouldDisableWebSharePolicy const):
  • page/Quirks.h:

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

9:06 AM Changeset in webkit [288556] by Antti Koivisto
  • 14 edits in trunk

[CSS Container Queries] Parsing support for container-name property
https://bugs.webkit.org/show_bug.cgi?id=235564

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Parse 'container-name' and map it to style.

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

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containerNames const):
(WebCore::RenderStyle::setContainerNames):
(WebCore::RenderStyle::initialContainerNames):

'container-name' is actually a list of names, that's why the plural.

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertContainerName):

9:04 AM Changeset in webkit [288555] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.2

9:00 AM Changeset in webkit [288554] by Russell Epstein
  • 1 copy in branches/safari-614.1.1-branch

New branch.

8:47 AM Changeset in webkit [288553] by Sam Sneddon
  • 4 edits in trunk/Source/WebCore

Missing EnabledBySetting=WebXREnabled where Conditional=WEBXR exists
https://bugs.webkit.org/show_bug.cgi?id=235527

Reviewed by Darin Adler.

Manually tested.

  • Modules/webxr/XRFrameRequestCallback.idl:
  • html/canvas/WebGLContextAttributes.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
8:46 AM Changeset in webkit [288552] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger
https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Reviewed by Aakash Jain.

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

(Trigger.init): Pass flags for patch and pull requests.
(Trigger.propertiesToPassToTriggers): Pass different properties if Triggered by a
pull request verse a patch.
(CompileWebKit.evaluateCommand): Pass flags for patch and pull request to Trigger.
(AnalyzeLayoutTestsResults.retry_build): Ditto.

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

8:33 AM Changeset in webkit [288551] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebKit

Regression (r235236): NetworkStorageManager sends messages to wrong StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=235553

Reviewed by Darin Adler.

Started from r235236, NetworkStorageManager uses StorageAreaMapIdentifier instead of StorageAreaIdentifier as
the message destination (as web process stores StorageAreaMap by StorageAreaMapIdentifier). However, the
destination is not changed accordingly when sending didSetItem, didRemoveItem and didClear messages, so the
messages are dispatched to wrong StorageAreaMaps.

Since these messages are reply for some message sent from StorageAreaMap to NetworkStorageManager (e.g.
didSetItem is reply of setItem), we may just use sendMessageWithAsyncReply when sending original message, and
we don't need to worry about the destination.

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::setItem):
(WebKit::NetworkStorageManager::removeItem):
(WebKit::NetworkStorageManager::clear):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):

  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageAreaMap.messages.in:
8:20 AM Changeset in webkit [288550] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Non-unified buildfix after r288546/246378@main
https://bugs.webkit.org/show_bug.cgi?id=235590

Unreviewed build fix.

  • page/Navigator.cpp: Add missing include.
7:59 AM Changeset in webkit [288549] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r282374.
https://bugs.webkit.org/show_bug.cgi?id=235587

Introduced perf regression

Reverted changeset:

"Playback stops although the progress bar moves"
https://bugs.webkit.org/show_bug.cgi?id=230210
https://commits.webkit.org/r282374

7:52 AM Changeset in webkit [288548] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

ews is displaying PR by even on patch based builds
https://bugs.webkit.org/show_bug.cgi?id=235578

Reviewed by Jonathan Bedard.

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

(ConfigureBuild.add_pr_details):

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

6:39 AM Changeset in webkit [288547] by Alan Bujtas
  • 3 edits
    2 adds in trunk

(REGRESSION r287485) [LFC][IFC] Incorrect RTL content position when intrusive float is present
https://bugs.webkit.org/show_bug.cgi?id=235547
<rdar://87824766>

Reviewed by Antti Koivisto.

Source/WebCore:

The float box coordinates are always visual. They need to be converted to
logical to be able to properly constrain the available space on the current line.

Test: fast/inline/intrusive-float-with-rtl-content.html

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::floatConstraints const):

LayoutTests:

  • fast/inline/intrusive-float-with-rtl-content-expected.html: Added.
  • fast/inline/intrusive-float-with-rtl-content.html: Added.
6:09 AM Changeset in webkit [288546] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a WebShare policy quirk for Twitter
https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp:

(WebCore::validateWebSharePolicy):
(WebCore::Navigator::canShare):
(WebCore::Navigator::share):

  • page/Quirks.cpp:

(WebCore::isTwitterDocument):
(WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const):
(WebCore::Quirks::shouldDisableWebSharePolicy const):

  • page/Quirks.h:
4:00 AM Changeset in webkit [288545] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/send_email.py

[ews] Remove redundant check for test mode in send_email.py
https://bugs.webkit.org/show_bug.cgi?id=235552

Reviewed by Jonathan Bedard.

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

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

1:57 AM Changeset in webkit [288544] by Ziran Sun
  • 9 edits in trunk

[css-grid] Fix grid shorthand expansion of initial values
https://bugs.webkit.org/show_bug.cgi?id=234430

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:

Source/WebCore:

This CL is to add the InitialValue support when parsing the grid shorthand for 6 grid properties
including grid-auto-columns, grid-auto-flow, grid-auto-rows, grid-template-areas,
grid-template-columns and grid-template-rows. The original code only adds a CSSInitial.

This is an import of chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/3299364

Apart from fixing wpt test imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand.html,
The CL also updates the expectation file for test
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand-valid.html. This test fails before
this CL and need to be investigated as a seperated issue. Related bugs have been raised at -
https://bugs.chromium.org/p/chromium/issues/detail?id=1028283 &
https://bugs.webkit.org/show_bug.cgi?id=204611

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeImplicitGridAutoFlow):
(WebCore::CSSPropertyParser::consumeGridShorthand):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertGridTrackSizeList):
(WebCore::Style::BuilderConverter::convertGridAutoFlow):

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:

Jan 24, 2022:

11:13 PM Changeset in webkit [288543] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION(r282320): [Cocoa] User-installed fonts don't work in the GPU Process (in WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=235449
<rdar://problem/84958961>

Reviewed by Darin Adler.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WebKit:

The reason for this bug was I was misusing kCTFontOptionsSystemUIFont. I thought this flag just
meant "allow the creation of system fonts" but it turns out it means something more subtle than
that. Instead of unconditionally specifying this flag, we should just pull out the options field
from the source font (which will include that flag if the font was a system font) and use that
instead.

Test: fast/text/user-installed-canvas.html

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<Ref<WebCore::Font>>::encodePlatformData):
(IPC::createCTFont):
(IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):

LayoutTests:

  • fast/text/user-installed-canvas-expected.html: Added.
  • fast/text/user-installed-canvas.html: Added.
11:00 PM Changeset in webkit [288542] by youenn@apple.com
  • 8 edits in trunk

A sandboxed document should not reuse its service worker client ID
https://bugs.webkit.org/show_bug.cgi?id=235310

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:

Source/WebCore:

Create a new identifier when the current identifier, already exposed to service workers, cannot be reused.
Covered by updated test.

  • dom/Document.cpp:
  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:
10:15 PM Changeset in webkit [288541] by mark.lam@apple.com
  • 89 edits in trunk

Rename Vector and FixedVector::findMatching to findIf to match stl naming.
https://bugs.webkit.org/show_bug.cgi?id=234864
rdar://87424746

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::emitDirectBinding):

Source/WebCore:

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::getType):

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::getType):
(WebCore::ClipboardItemBindingsDataSource::collectDataForWriting):

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::findCacheOrCreate):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::doRemove):

  • Modules/highlight/Highlight.cpp:

(WebCore::Highlight::addToSetLike):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::trackEnded):

  • Modules/mediastream/RTCController.cpp:

(WebCore::RTCController::shouldDisableICECandidateFiltering):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::setConfiguration):
(WebCore::RTCPeerConnection::getOrCreateIceTransport):
(WebCore::RTCPeerConnection::getOrCreateDtlsTransport):

  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::decryptFrame):

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::cancelAndHoldAtTime):

  • Modules/webaudio/IIRFilterNode.cpp:

(WebCore::IIRFilterNode::create):

  • Modules/webauthn/fido/U2fCommandConstructor.cpp:

(fido::isConvertibleToU2fRegisterCommand):

  • Modules/webxr/WebXRInputSourceArray.cpp:

(WebCore::WebXRInputSourceArray::handleAddedOrUpdatedInputSources):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::cancelAnimationFrame):

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected):

  • accessibility/AXObjectCache.cpp:

(WebCore::appendIfNotContainsMatching):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::shouldEmitSignal):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::types const):

  • dom/DataTransferItemList.cpp:

(WebCore::removeStringItemOfLowercasedType):

  • dom/Document.cpp:

(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::updateIntersectionObservations):

  • dom/EventPath.cpp:

(WebCore:: const):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::enqueueSlotChangeEvent):

  • html/BaseTextInputType.cpp:

(WebCore::BaseTextInputType::patternMismatch const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::cancelVideoFrameCallback):

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditElement::fieldIndexOf const):
(WebCore::DateTimeEditElement::focusedFieldElement const):
(WebCore::DateTimeEditElement::didBlurFromField):

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::findIncompleteCue):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):

  • inspector/agents/WebDebuggerAgent.cpp:

(WebCore::WebDebuggerAgent::didAddEventListener):
(WebCore::WebDebuggerAgent::willRemoveEventListener):

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::append):

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startIconLoading):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::isObserving const):

  • page/ModalContainerObserver.cpp:

(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::observe):

  • page/scrolling/ScrollLatchingController.cpp:

(WebCore::ScrollLatchingController::removeLatchingStateForTarget):

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::hasCompatibleSnapArea):

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::removeChild):

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::preferredImageMIMETypeForEncoding):

  • platform/PasteboardCustomData.cpp:

(WebCore::PasteboardCustomData::addOrMoveEntryToEnd):
(WebCore::PasteboardCustomData::hasSameOriginCustomData const):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::add):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::findMonitorForDisplayID const):

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::createHEVCCodecParametersString):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::mediaEngine):
(WebCore::MediaPlayer::nextMediaEngine):

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForKeyIDs const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForGroup const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::animationIsRunning const):
(WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const):

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::isProbablyOnlyUsedToRenderIcons const):

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::isContentTypeSupported const):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::fileContentState):

  • platform/mediastream/CaptureDevice.h:

(WebCore::haveDevicesChanged):

  • platform/mediastream/MediaConstraints.h:

(WebCore::NumericConstraint::valueForDiscreteCapabilityValues const):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebKitMediaStreamObserver::didRemoveTrack):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::generatePresets):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::getUncommonHeader const):
(WebCore::HTTPHeaderMap::setUncommonHeader):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::contains const):
(WebCore::HTTPHeaderMap::get const):
(WebCore::HTTPHeaderMap::set):

  • platform/xr/openxr/OpenXRExtensions.cpp:

(PlatformXR::OpenXRExtensions::isExtensionSupported const):

  • plugins/PluginData.h:

(WebCore::isSupportedPlugin):

Source/WebKit:

  • GPUProcess/media/RemoteCDMFactoryProxy.cpp:

(WebKit::factoryForKeySystem):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::findRootNetworkActivity):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::storeRecords):
(WebKit::CacheStorage::Cache::put):
(WebKit::CacheStorage::Cache::remove):
(WebKit::CacheStorage::Cache::removeFromRecordList):
(WebKit::CacheStorage::Cache::updateRecordToDisk):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::find):
(WebKit::CacheStorage::Caches::remove):
(WebKit::CacheStorage::Caches::hasActiveCache const):
(WebKit::CacheStorage::Caches::dispose):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::didProvideMediaData):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_remove_frame_displayed_callback):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::PasteboardAccessInformation::grantAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::accessType const):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::setDeviceAsFirst):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::DragDropInteractionState::defaultDropPreview const):
(WebKit::BlockPtr<void):

  • UIProcess/mac/DisplayLink.cpp:

(WebKit::DisplayLink::setPreferredFramesPerSecond):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(shouldShowDividersBetweenCells):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addUserScriptMessageHandlerInternal):
(WebKit::WebUserContentController::addUserScriptInternal):
(WebKit::WebUserContentController::addUserStyleSheetInternal):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestTextRecognition):

  • WebProcess/WebProcess.cpp:

(WebKit::checkDocumentsCaptureStateConsistency):

Source/WTF:

Also rename reverseFindMatching to reverseFindIf.

See https://bugs.webkit.org/show_bug.cgi?id=234855#c3 and
https://en.cppreference.com/w/cpp/algorithm/find.

  • wtf/FixedVector.h:

(WTF::FixedVector<T>::findIf const):
(WTF::FixedVector<T>::find const):
(WTF::FixedVector<T>::findMatching const): Deleted.

  • wtf/Vector.h:

(WTF::Malloc>::findIf const):
(WTF::Malloc>::find const):
(WTF::Malloc>::reverseFindIf const):
(WTF::Malloc>::findMatching const): Deleted.
(WTF::Malloc>::reverseFindMatching const): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/FixedVector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::parseUserAgent):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::closeOtherPage):

10:09 PM Changeset in webkit [288540] by commit-queue@webkit.org
  • 9 edits in trunk

Re-enable CustomDisplayName and DefaultDisplayName API tests on Monterey
https://bugs.webkit.org/show_bug.cgi?id=234613

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-24
Reviewed by Brady Eidson.

Source/WebKit:

When we introduced setting the display name from the network process,
we didn't update the tests to get the information from the process that can access it.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/mac/NetworkConnectionToWebProcessMac.mm:

(WebKit::NetworkConnectionToWebProcess::updateActivePages):
(WebKit::NetworkConnectionToWebProcess::getProcessDisplayName):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getProcessDisplayName):

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

(WebKit::WebProcess::auditTokenForSelf):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::getProcessDisplayName):
(WebKit::WebProcess::updateActivePages):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

9:48 PM Changeset in webkit [288539] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WebCore

Expand RefPtr / Ref use in FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):

  • loader/FrameLoader.h:
9:38 PM Changeset in webkit [288538] by ysuzuki@apple.com
  • 10 edits in trunk

[JSC] Enable Array#groupBy and Array#groupByToMap
https://bugs.webkit.org/show_bug.cgi?id=235549

Reviewed by Ross Kirsling.

JSTests:

  • stress/unscopables.js:

Source/JavaScriptCore:

  • runtime/OptionsList.h:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-unscopables-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-unscopables-properties.js:
9:13 PM Changeset in webkit [288537] by Cameron McCormack
  • 4 edits in trunk/Source/JavaScriptCore

Remove VM::stringCache
https://bugs.webkit.org/show_bug.cgi?id=235536

Reviewed by Sam Weinig.

We consult VM::stringCache when creating a JSString, but since
bug 142115 we never insert anything into it.

Removing this results in almost-significant improvements in the VueJS,
Vanilla-ES2015, and jQuery sub-tests of Speedometer 2 (of 0.5-2%,
0.03 <= p <= 0.05), and an almost significant 0.2% improvement in the
overall score (p = 0.06).

  • runtime/JSString.cpp:

(JSC::jsStringWithCacheSlowCase):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
8:59 PM Changeset in webkit [288536] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

REGRESSION (r286932): Fixed position elements jiggle sometimes (Twitter, Facebook)
https://bugs.webkit.org/show_bug.cgi?id=235543
<rdar://87981122>

Reviewed by Tim Horton.

In r286932 we ensure that the scrolling layer's position gets committed in the scrolling
thread to reduce stutters. However, we also have to do the same for fixed and sticky
layers, because they need to committed in synchrony with the scrolling layer.

Also change some 'override' to 'final' and add locking annotations.

  • page/scrolling/cocoa/ScrollingTreeFixedNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h:
  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm:

(WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions):

7:44 PM Changeset in webkit [288535] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.7

Tag Safari-613.1.14.1.7.

7:41 PM Changeset in webkit [288534] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.7

7:21 PM Changeset in webkit [288533] by Devin Rousso
  • 3 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Network: give the Ignore Caches button a label so it's more visible and immediately understandable
https://bugs.webkit.org/show_bug.cgi?id=235539

Reviewed by Patrick Angle.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/IgnoreCaches.svg: Deleted.
6:14 PM Changeset in webkit [288532] by Diego Pino Garcia
  • 4 edits in trunk/Source

Unreviewed, fix non-unified build after r288458

Source/JavaScriptCore:

  • runtime/DeferredWorkTimer.h:

Source/WebCore:

  • fileapi/FileReaderLoaderClient.h:
5:57 PM Changeset in webkit [288531] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288441. rdar://problem/87707090

AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>

Addressing post commit comments.

Reviewed by Eric Carlson and Geoff Garen.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: Fixed the release logging.

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

5:56 PM Changeset in webkit [288530] by Russell Epstein
  • 6 edits
    1 copy
    1 add in branches/safari-613-branch

Cherry-pick r288429. rdar://problem/86612099

Position:fixed layers shouldn't allocate a backing buffer if all children are offscreen.
https://bugs.webkit.org/show_bug.cgi?id=235420
<rdar://86612099>

Patch by Matt Woodrow <Matt Woodrow> on 2022-01-23
Reviewed by Simon Fraser and Darin Adler.

Source/WebCore:

Adds a bounds intersection check to isPaintDestinationForDescendantLayers,
so that we can exclude descendants that definitely won't draw anything into
the compositing layer. Uses a conservative check, which gives up if there are
any transforms in the ancestor chain.

Test: compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html

  • rendering/RenderLayerBacking.cpp: (WebCore::intersectsWithAncestor): (WebCore::RenderLayerBacking::isPaintDestinationForDescendantLayers const):

LayoutTests:

Adds a test that has a viewport sized position:fixed element (with compositing
layer), and a single child which is entirely offscreen. Tests that we correctly
determine that we don't need a backing store for the layer.

  • compositing/backing/no-backing-for-offscreen-children-of-position-fixed-expected.txt: Added.
  • compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html: Added.

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

5:56 PM Changeset in webkit [288529] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288415. rdar://problem/87904254

REGRESSION(r280887) broke some svg based chart content repaint
https://bugs.webkit.org/show_bug.cgi?id=235483
<rdar://87904254>

Unreviewed, reverting r280887.

  • svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::svgAttributeChanged):

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

5:56 PM Changeset in webkit [288528] by Russell Epstein
  • 13 edits in branches/safari-613-branch/Source

Cherry-pick r288389. rdar://problem/85405320

Disable CFURLCache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=234988
<rdar://problem/87619196>

Reviewed by Geoffrey Garen.

Source/WebCore:

_CFURLStorageSessionCopyCache can be slow (see rdar://85418732) and UI process may kill network process for
being unresponsive. Since WebKit does not use CFURLCache, we should disable it to avoid the hang.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp: (WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::createPrivateStorageSession):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::newTestingSession): (WebKit::NetworkProcess::ensureSession):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp: (NetworkStorageSessionMap::ensureSession):

Source/WTF:

  • wtf/PlatformHave.h:

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

5:56 PM Changeset in webkit [288527] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288386. rdar://problem/87822314

[iOS][WP] Allow access to CFNetwork prefs
https://bugs.webkit.org/show_bug.cgi?id=235457
<rdar://87822314>

Reviewed by Brent Fulgham.

Allow access to CFNetwork prefs on internal builds.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:

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

5:56 PM Changeset in webkit [288526] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebInspectorUI

Cherry-pick r288385. rdar://problem/87851989

Web Inspector: Make alignment editor accessible
https://bugs.webkit.org/show_bug.cgi?id=235395
<rdar://problem/87851989>

Reviewed by Patrick Angle.

Make alignment editor icons focusable, and annotate elements so VoiceOver could correctly read what is selected.

  • UserInterface/Views/AlignmentEditor.css: (.alignment-editor .glyph:focus): (.alignment-editor .glyph:not(:focus-visible)):
  • UserInterface/Views/AlignmentEditor.js: (WI.AlignmentEditor): (WI.AlignmentEditor.prototype.set alignment): (WI.AlignmentEditor.prototype._removePreviouslySelected): (WI.AlignmentEditor.prototype._updateSelected):

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

5:56 PM Changeset in webkit [288525] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288375. rdar://problem/76403140

[macOS][GPUP] Add access to IOKit property
https://bugs.webkit.org/show_bug.cgi?id=235450
<rdar://76403140>

Reviewed by Brent Fulgham.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

5:56 PM Changeset in webkit [288524] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288336. rdar://problem/86558157

REGRESSION (r284136): A slight horizontal rubberband kills scroll momentum
https://bugs.webkit.org/show_bug.cgi?id=234384

Reviewed by Tim Horton.

Source/WebCore:

ScrollAnimationRubberBand subtly changed the behavior of the rubberband animation on the
axis that is not the rubberbanding axis. Because it converged on m_targetOffset, it always
resulted in no offset on that axis.

Fix by restoring the behavior from before r284136, which applies the rubberbanding as a
delta from the current offset and no longer uses m_targetOffset, which is removed. It's a
bit surprising that this rubberband animation drives a vertical scroll when the gesture is
primarily horizontal (normally we'd clamp these deltas to be purely horizontal), but people
are used to this behavior so restore it.

Test: fast/scrolling/mac/j-shaped-scroll-rubberband.html

  • platform/ScrollAnimation.h:
  • platform/ScrollingEffectsController.cpp: (WebCore::ScrollingEffectsController::overscrollAmount): (WebCore::ScrollingEffectsController::scrollOffset):
  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollAnimationRubberBand.h:
  • platform/mac/ScrollAnimationRubberBand.mm: (WebCore::ScrollAnimationRubberBand::startRubberBandAnimation): (WebCore::ScrollAnimationRubberBand::serviceAnimation): (WebCore::ScrollAnimationRubberBand::debugDescription const):
  • platform/mac/ScrollingEffectsController.mm: (WebCore::ScrollingEffectsController::startRubberBandAnimation): (WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):

LayoutTests:

  • fast/scrolling/mac/j-shaped-scroll-rubberband-expected.txt: Added.
  • fast/scrolling/mac/j-shaped-scroll-rubberband.html: Added.

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

5:56 PM Changeset in webkit [288523] by Russell Epstein
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r288304. rdar://problem/87836459

[:has() pseudo-class] Ignore :visited inside :has()
https://bugs.webkit.org/show_bug.cgi?id=235404

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-visited-expected.html: Added.
  • web-platform-tests/css/selectors/has-visited-ref.html: Added.
  • web-platform-tests/css/selectors/has-visited.html: Added.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/selectors/has-visited.html

  • css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchHasPseudoClass const):

Make this more similar to :is/:not():
Use the current SelectorChecker with a different context rather than a nested SelectorChecker.
Use matchRecursively.
Setup the functional pseudo-class bits for the context.

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

5:56 PM Changeset in webkit [288522] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288303. rdar://problem/87836127

[:has pseudo-class] Support :has(:not(foo))
https://bugs.webkit.org/show_bug.cgi?id=235399

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

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

Source/WebCore:

This already works except for a filter bug.

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

  • style/HasSelectorFilter.h: (WebCore::Style::HasSelectorFilter::reject const):

We shouldn't reject a selector if we have a null key.

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

5:56 PM Changeset in webkit [288521] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288275. rdar://problem/87707090

AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>

Reviewed by Eric Carlson.

Sometimes the defaultInput is not available, in which case it is good to resort to the previous default device if available.
This fix prevents the following case to happen:

  • We start rendering WebRTC audio on some output, say AirPods
  • We start capturing microphone, but the default microphone is not the AirPods one (while it probably should, this is not always the case).
  • We migrate audio rendering to VPIO which will output audio to the same device as the input microphone if feasible (typically builtin speaker).
  • Audio is now flowing on builtin speaker instead of AirPods.

Manually tested.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

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

5:56 PM Changeset in webkit [288520] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288269. rdar://problem/86943871

Grant access to GlobalPreferences and GlobalPreferences_m uniformly
https://bugs.webkit.org/show_bug.cgi?id=235387
<rdar://problem/86943871>

Reviewed by Per Arne Vollan.

We should allow access to GlobalPreferences_m.plist in the places where we currently
allow GlobalPreferences.plist. We are inconsistent about this in our sandboxes, and
telemetry shows that we need to provide access.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:

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

5:56 PM Changeset in webkit [288519] by Russell Epstein
  • 12 edits in branches/safari-613-branch

Cherry-pick r288266. rdar://problem/87804395

Web Inspector: fully blackboxed stack traces don't show the right top call frame
https://bugs.webkit.org/show_bug.cgi?id=235381

Reviewed by Patrick Angle.

Source/WebInspectorUI:

  • UserInterface/Models/StackTrace.js: (WI.StackTrace): (WI.StackTrace.fromPayload): (WI.StackTrace.prototype.get firstNonNativeNonAnonymousNotBlackboxedCallFrame): Only assign to firstNonNativeNonAnonymousCallFrame once. Drive-by: Don't re-fetch the blackbox data for the WI.SourceCode of the WI.CallFrame. Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Models/CallFrame.js: (WI.CallFrame): (WI.CallFrame.fromDebuggerPayload): (WI.CallFrame.fromPayload):
  • UserInterface/Views/ThreadTreeElement.js: (WI.ThreadTreeElement.prototype.refresh): Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Views/CallFrameTreeElement.js: (WI.CallFrameTreeElement): (WI.CallFrameTreeElement.prototype.onattach):
  • UserInterface/Views/CallFrameView.js: (WI.CallFrameView): Drive-by: Don't re-fetch the blackbox data for the WI.SourceCode of the WI.CallFrame.

LayoutTests:

  • inspector/model/stack-trace.html:
  • inspector/model/stack-trace-expected.txt:
  • inspector/debugger/resources/async-stack-trace-test.js: (TestPage.registerInitializer.window.getAsyncStackTrace):
  • inspector/debugger/resources/log-active-stack-trace.js: (TestPage.registerInitializer.window.getActiveStackTrace):
  • inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js: (TestPage.registerInitializer.window.getAsyncStackTrace): Drive-by: Adopt new WI.StackTrace constructor arguments format.

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

5:56 PM Changeset in webkit [288518] by Russell Epstein
  • 6 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r288265. rdar://problem/87842725

[libpas] Disable PAS_ASSERT on Darwin ARM64 (not in ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=235349

Reviewed by Saam Barati.

We have several weak devices which only have ARM64 (not ARM64E).
And in such a weak device, PAS_ASSERT affects on performance.
By disabling PAS_ASSERT, we got 0.5% improvement in PLT in iPhone 6S.

  • libpas/src/libpas/pas_config.h:
  • libpas/src/libpas/pas_config_prefix.h:
  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_platform.h:
  • libpas/src/libpas/pas_utils.h:

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

5:56 PM Changeset in webkit [288517] by Russell Epstein
  • 27 edits in branches/safari-613-branch

Cherry-pick r288264. rdar://problem/87745419

Align our qualified name validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=201699

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt: Rebaseline WPT tests now that more checks are passing.

Source/WebCore:

Align our qualified name validation with the latest specification:

No new tests, rebaselined existing tests.

  • dom/Document.cpp: (WebCore::isValidNameStart): (WebCore::isValidNamePart):

LayoutTests:

  • dom/xhtml/level3/core/canonicalform06-expected.txt:
  • dom/xhtml/level3/core/infoset06-expected.txt:
  • dom/xhtml/level3/core/infoset07-expected.txt:
  • dom/xhtml/level3/core/wellformed01-expected.txt:
  • dom/xhtml/level3/core/wellformed02-expected.txt:
  • dom/xhtml/level3/core/wellformed03-expected.txt:
  • dom/xhtml/level3/core/wellformed04-expected.txt: Rebaseline outdated imported tests.
  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/createDocument-namespace-err.html:
  • fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
  • fast/dom/Document/createAttributeNS-namespace-err.html:
  • fast/dom/Document/createElement-invalid-names-expected.txt:
  • fast/dom/Document/createElement-invalid-names.html:
  • fast/dom/Document/createElementNS-namespace-err-expected.txt:
  • fast/dom/Document/createElementNS-namespace-err.html:
  • fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
  • fast/dom/Element/setAttributeNS-namespace-err.html:
  • fast/dom/dataset-expected.txt:
  • fast/dom/dataset-xhtml-expected.txt:
  • fast/dom/dataset-xhtml.xhtml:
  • fast/dom/dataset.html: Update and rebaseline outdated WebKit tests.

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

5:55 PM Changeset in webkit [288516] by Russell Epstein
  • 9 edits
    2 adds
    2 deletes in branches/safari-613-branch

Cherry-pick r288245. rdar://problem/85878291

Limit the deprecated CSSOMPrimitiveValue to formerly standardized unit types
https://bugs.webkit.org/show_bug.cgi?id=233651
<rdar://problem/85878291>

Reviewed by Darin Adler.

Source/WebCore:

This removes support, and makes it clear that these deprecated APIs shouldn't be exposing
anything more modern than what is standardized in DOM Level 2 Style. Hopefully this avoids
others in future adding support for new units.

Other changes included as they are necessary to make improved test not assert.

Test: fast/css/CSSPrimitiveValue-modern-length.html

  • css/CSSUnits.cpp: (WebCore::unitCategory): Ensure this is complete for all units. (WebCore::canonicalUnitTypeForCategory): Ensure this is complete for all unit categories.
  • css/DeprecatedCSSOMPrimitiveValue.cpp: (WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const): Remove post-DOM Level 2 Style values. (WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const): Remove post-DOM Level 2 Style values. (WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const): Add comment.
  • css/DeprecatedCSSOMPrimitiveValue.h: Remove post-DOM Level 2 Style constants.
  • css/DeprecatedCSSOMPrimitiveValue.idl: Remove post-DOM Level 2 Style constants.
  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor. (WebCore::CSSPrimitiveValue::doubleValueInternal const): Handle std::optional return.
  • css/CSSPrimitiveValue.h: (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.
  • page/PrintContext.cpp: (WebCore::PrintContext::computedPageMargin): Handle std::optional return.

LayoutTests:

Updated/moved test to cover all modern length units, not just ic.

  • fast/css/CSSPrimitiveValue-ic-expected.txt: Removed.
  • fast/css/CSSPrimitiveValue-ic.html: Removed.
  • fast/css/CSSPrimitiveValue-modern-length-expected.txt: Added.
  • fast/css/CSSPrimitiveValue-modern-length.html: Added.

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

5:55 PM Changeset in webkit [288515] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288238. rdar://problem/87272534

WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234986
<rdar://problem/87272534>

Reviewed by Darin Adler.

Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeNetworkProcessAccessTypeForDataFetch): (WebKit::computeWebProcessAccessTypeForDataFetch): (WebKit::WebsiteDataStore::fetchDataAndApply): (WebKit::computeNetworkProcessAccessTypeForDataRemoval): (WebKit::computeWebProcessAccessTypeForDataRemoval): (WebKit::WebsiteDataStore::removeData):

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

5:55 PM Changeset in webkit [288514] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288232. rdar://problem/87265153

WebKit::DownloadProxy::publishProgress() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234975
<rdar://problem/87265153>

Reviewed by Darin Adler.

  • UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::publishProgress): Let's not send the IPC if we failed to create the handle since the recipient code early returns when the handle is invalid.

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

5:55 PM Changeset in webkit [288513] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288180. rdar://problem/84440841

Loupe sometimes flips to the bottom of the page when dragging the end of a selection to the top of a page with selection flipping.
https://bugs.webkit.org/show_bug.cgi?id=235220

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html

When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.

  • platform/graphics/FloatPoint.cpp: (WebCore::FloatPoint::constrainedWithin const):
  • platform/graphics/FloatPoint.h:
  • platform/graphics/IntPoint.cpp: (WebCore::IntPoint::constrainedWithin const):
  • platform/graphics/IntPoint.h:

Source/WebKit:

When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.

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

LayoutTests:

  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow-expected.txt: Added.
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html: Added.

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

5:55 PM Changeset in webkit [288512] by Russell Epstein
  • 7 edits in branches/safari-613-branch

Cherry-pick r288111. rdar://problem/87699260

[:has() pseudo-class] Disallow nested :has()
https://bugs.webkit.org/show_bug.cgi?id=235231

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt:
  • web-platform-tests/css/selectors/has-basic-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:

Source/WebCore:

Nested case ':has(:has(foo))' adds no meaningful capability and would complicate invalidation.
See https://github.com/w3c/csswg-drafts/issues/6952 for more details.

  • css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumePseudo):

Also set m_resistDefaultNamespace like other logical combination pseudo-classes.

  • css/parser/CSSSelectorParser.h:

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

5:55 PM Changeset in webkit [288511] by Russell Epstein
  • 5 edits
    4 adds in branches/safari-613-branch

Cherry-pick r288107. rdar://problem/87425066

REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
https://bugs.webkit.org/show_bug.cgi?id=235053
<rdar://problem/87425066>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/white-space/default-ignorable-complex-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable-complex.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable.html: Added.

Source/WebCore:

The spec says (https://drafts.csswg.org/css-text-3/#white-space-processing)

unsupported Default_ignorable characters must be ignored for text rendering.

Previously, we were handling this by mapping the characters to the zero width space character. r281389 changed
that to be more faithful to the original string (and not do the mapping). One somewhat unexpected result of
this patch was that, now that we're not mapping these code points to the zero width space character, fewer fonts
on the system will support those code points. It became much more common for no font at all to support the code
point in question. r281389 handled the situation where the code points were supported by a font but shouldn't be
rendered, but didn't handle the case where the code points *weren't* supported by any fonts (in the complex text
codepath). This patch updates that path to handle it.

This patch also replaces our previous hardcoded list of Default_ignorable characters with the proper call to ICU
to check the Unicode property. It does this in both the fast text codepath and the simple text codepath, to make
sure they match.

Tests: imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable-complex.html

imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable.html

  • platform/graphics/ComplexTextController.cpp: (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
  • platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::applyCSSVisibilityRules):

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

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

Cherry-pick r288105. rdar://problem/87656387

REGRESSION (r286603): rx::ProgramMtl::getSpecializedShader() leaks MTLFunctionConstantValues object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235281>
<rdar://problem/87656387>

Reviewed by Darin Adler.

  • src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::getSpecializedShader):
  • Use mtl::AutoObjCObj<> to release MTLFunctionConstantValues object on early return.

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

5:55 PM Changeset in webkit [288509] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288099. rdar://problem/86586969

Layered @import rules in <style> should be preloaded
https://bugs.webkit.org/show_bug.cgi?id=234094
<rdar://problem/86586969>

Reviewed by Dean Jackson.

Source/WebCore:

Test: http/tests/loading/preload-css-import-layer.html

  • html/parser/CSSPreloadScanner.cpp: (WebCore::CSSPreloadScanner::tokenize): (WebCore::hasValidImportConditions): (WebCore::CSSPreloadScanner::emitRule):
  • html/parser/CSSPreloadScanner.h:

Allow @import rule containing layer condition to be preloaded.

LayoutTests:

  • http/tests/loading/preload-css-import-layer-expected.txt: Added.
  • http/tests/loading/preload-css-import-layer.html: Added.

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

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

Cherry-pick r288097. rdar://problem/87653812

Follow-up: REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>

Unreviewed follow-up fix from Bug 235281, Comment #5.

  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
  • Remove unneeded calls to .get().

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

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

Cherry-pick r288074. rdar://problem/87653812

REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>

Reviewed by Darin Adler.

  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
  • Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns.

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

5:55 PM Changeset in webkit [288506] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r288039. rdar://problem/79220540

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

Reviewed by Tim Horton and Aditya Keerthi.

Source/WebKit:

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

Test: KeyboardInputTests.DoNotCrashWhenFocusingSelectWithoutViewSnapshot

  • UIProcess/ios/WKContentViewInteraction.mm: (createFallbackTargetedPreview):

Tools:

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

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: (TestWebKitAPI::nilResizableSnapshotViewFromRect): (TestWebKitAPI::TEST):

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

5:55 PM Changeset in webkit [288505] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288034. rdar://problem/86341944

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

Reviewed by Tim Horton.

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

  • UIProcess/API/Cocoa/WKPreferences.mm: Expose the ModelDocumentEnabled WebPreference so that it can be read from a WKWebViewConfiguration. (-[WKPreferences _setModelDocumentEnabled:]): (-[WKPreferences _modelDocumentEnabled]):
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Rather than the compile-time test, check the WebPreferences to see if ModelDocument is disabled. (-[WKWebViewContentProviderRegistry initWithConfiguration:]):

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

5:55 PM Changeset in webkit [288504] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288025. rdar://problem/83407577

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

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

Source/WebCore:

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

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

  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::videoFrameToImage):

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas-expected.txt: Added.
  • fast/mediastream/getUserMedia-to-canvas.html: Added. Add a test to test getting video frame to 2DContext and WebGL canvas elements.
  • webrtc/routines.js: Add a function to assert that ImageData contains the simulated mock camera image. This is useful in verifying that the image is exactly as expected. The test tests only the default orientation. Later changes will update the test to address the camera rotation.

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

5:55 PM Changeset in webkit [288503] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288015. rdar://problem/84617690

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

Reviewed by Antti Koivisto.

Source/WebCore:

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

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

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp: (WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):

LayoutTests:

  • fast/block/line-layout/non-empty-inline-block-with-zero-height-expected.html: Added.
  • fast/block/line-layout/non-empty-inline-block-with-zero-height.html: Added.

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

5:55 PM Changeset in webkit [288502] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288012. rdar://problem/87397176

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

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

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

Source/WebCore:

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

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

  • css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const):
  • css/SelectorChecker.h:
  • style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

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

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

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

  • style/ChildChangeInvalidation.h:

LayoutTests:

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

5:55 PM Changeset in webkit [288501] by Russell Epstein
  • 5 edits in branches/safari-613-branch

Cherry-pick r288010. rdar://problem/87557846

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

Reviewed by Brent Fulgham.

Source/WebKit:

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

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]): (+[_WKWebAuthenticationPanel encodeGetAssertionCommandWithClientDataHash:options:userVerificationAvailability:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): Tests for new SPIs.

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

5:54 PM Changeset in webkit [288500] by Russell Epstein
  • 8 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r287973. rdar://problem/87533906

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

Reviewed by Dean Jackson.

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

This patch doesn't yet use the the selector.

  • style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

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

  • style/PseudoClassChangeInvalidation.cpp: (WebCore::Style::makePseudoClassInvalidationKeys):
  • style/PseudoClassChangeInvalidation.h:
  • style/RuleFeature.cpp: (WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

Always return a selector for consistency.

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

  • style/RuleFeature.h:
  • style/StyleScopeRuleSets.cpp: (WebCore::Style::ScopeRuleSets::collectFeatures const): (WebCore::Style::ScopeRuleSets::hasPseudoClassInvalidationRuleSets const): (WebCore::Style::ScopeRuleSets::tagInvalidationRuleSets const): Deleted.

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

  • style/StyleScopeRuleSets.h:

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

5:54 PM Changeset in webkit [288499] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WTF

Cherry-pick r287941. rdar://problem/87472589

[JSC] Enable libpas jit-heap when libpas is enabled
https://bugs.webkit.org/show_bug.cgi?id=235042

Reviewed by Filip Pizlo.

Previously, we enabled jit-heap only in ARM64 macOS.
We should enable it when libpas is enabled.

  • wtf/PlatformUse.h:

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

5:54 PM Changeset in webkit [288498] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r287934. rdar://problem/86578732

Web Inspector: Unhandled exception when moving cursor mid-token after receiving CSS property name completions
https://bugs.webkit.org/show_bug.cgi?id=234393
<rdar://problem/86578732>

Reviewed by Patrick Angle.

Source/WebInspectorUI:

A faulty check for mid-token completions in WI.CSSKeywordCompletions.forPartialPropertyName(), which are still
unsupported, prevented an early return and completions were provided unexpectedly. This had knock-on effects in
WI.SpreadsheetTextField which is not set up to handle cases where the caret is placed within the completion query.
Calculating the adjusted caret position could return a negative index and throw an unhandled exception.

Web Inspector does not currently explicitly support mid-token completions. See https://webkit.org/b/227157

The implementation of fuzzy matching for CSS completions in https://webkit.org/b/234092
means that, unhindered, the completion provider for CSS property names _can_ return mid-token completions.
Typing a query like margin, then moving the caret to the beginning and correcting to s|margin will return
completions like [s]croll-[margin]. Accepting the completion results in a malformed SpreadsheetTextField.value
by concatenation within the prefix itself. As the user types mid-token, the prefix becomes ambiguous.

Fixing the condition in WI.CSSKeywordCompletions.forPartialPropertyName() now inhibits unintentional
mid-token completions when fuzzy matching is enabled.

  • UserInterface/Models/CSSKeywordCompletions.js: (WI.CSSKeywordCompletions.forPartialPropertyName):
  • UserInterface/Views/SpreadsheetTextField.js: (WI.SpreadsheetTextField.prototype._showSuggestionsView):

LayoutTests:

  • inspector/unit-tests/css-keyword-completions-expected.txt:
  • inspector/unit-tests/css-keyword-completions.html:

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

5:54 PM Changeset in webkit [288497] by Russell Epstein
  • 7 edits
    2 adds in branches/safari-613-branch

Cherry-pick r287922. rdar://problem/87455957

[LFC][IFC] Incorrect negative margin handling (both left/right) with RTL inline base direction
https://bugs.webkit.org/show_bug.cgi?id=235095

Reviewed by Antti Koivisto.

Source/WebCore:

The simplified negative margin handling on inline boxes does not work well with RTL inline base direction.
With LTR direction, we could just treat the negative left margin value (which pulls content to the left)
as part the "logical width" (may resulting in negative width values) and let this shorter width pull
the the adjoining content.
However this setup produces incorrect box positions when the inline base direction is RTL.
In this patch, we switch over to a more correct inline box positioning where the negative margin
affects the logical left while it does not make the run shorter anymore.

Test: fast/inline/rtl-negative-margins.html

  • layout/formattingContexts/inline/InlineLine.cpp: (WebCore::Layout::Line::appendInlineBoxStart): (WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp: (WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
  • layout/formattingContexts/inline/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::layoutInlineContent):
  • layout/formattingContexts/inline/InlineLineBuilder.h:
  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp: (WebCore::Layout::InlineDisplayLineBuilder::build const):

LayoutTests:

  • fast/inline/rtl-negative-margins-expected.html: Added.
  • fast/inline/rtl-negative-margins.html: Added.

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

5:54 PM Changeset in webkit [288496] by Russell Epstein
  • 5 edits
    1 copy in branches/safari-613-branch

Cherry-pick r287878. rdar://problem/85359803

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

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update test expectations.

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

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html

We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.

We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp: (WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):

LayoutTests:

iOS failure is due to WPT test_driver actions being unsupported.

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

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

5:54 PM Changeset in webkit [288495] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebInspectorUI

Cherry-pick r287870. rdar://problem/86543279

Web Inspector: Increase padding around icons in Alignment editor
https://bugs.webkit.org/show_bug.cgi?id=234036
<rdar://problem/86543279>

Reviewed by Devin Rousso.

Increase margin and padding around the icons, making the icons more visually appealing
and easier to distinguish and from each other.

  • UserInterface/Images/AlignContentStretch.svg: The gap between rectangles was only 0.5px. Increase it to 2px.
  • UserInterface/Views/AlignmentEditor.css: (.alignment-editor .glyph): (.alignment-editor .glyph:not(:first-child)): (.alignment-editor .glyph.selected): (.alignment-editor .glyph.selected:active): (.alignment-editor .glyph:not(:last-child)): Deleted. (.alignment-editor .glyph.selected + .glyph): Deleted.

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

5:54 PM Changeset in webkit [288494] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287835. rdar://problem/87338875

[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235028

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:

Source/WebCore:

In bug 235008, we already improved the situtation by reading from the StyleProperties
associated with the StyleRuleKeyframe for CSS Animations. We're now taking the next
step by reading from the matching rules for the provided element.

There is one remaining case where we use the computed style: when the CSSValue uses
a CSS variable. To fix the css/css-animations/KeyframeEffect-getKeyframes.tentative.html
WPT entirely, we'll need to be able to substitute those in the output.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::getKeyframes):

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

5:23 PM Changeset in webkit [288493] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>

Unreviewed, adress post-review feedback.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

5:11 PM Changeset in webkit [288492] by Patrick Angle
  • 10 edits in trunk

Web Inspector: [Flexbox] Add instrumentation/protocol bits for flex layout containers
https://bugs.webkit.org/show_bug.cgi?id=235454

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Source/WebCore:

Added tests in inspector/css/nodeLayoutContextTypeChanged.html.

Add instrumentation to RenderFlexibleBox to observe elements becoming/ceasing to be flex containers. We only
instrument RenderFlexibleBox created with an Element, not a Document, since all anonymous nodes will have their
document passed, which means we would attempt to track multiple different nodes against the same document,
resulting in unexpected results. Conversely, we only instrument in the destructor for non-anonymous nodes.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::layoutContextTypeForRenderer):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::~RenderFlexibleBox):

Source/WebInspectorUI:

  • UserInterface/Models/DOMNode.js:

LayoutTests:

  • inspector/css/nodeLayoutContextTypeChanged-expected.txt:
  • inspector/css/nodeLayoutContextTypeChanged.html:
5:07 PM Changeset in webkit [288491] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.41.2

Tag Safari-613.1.14.41.2.

5:05 PM Changeset in webkit [288490] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Versioning.

WebKit-7613.1.14.41.2

5:02 PM Changeset in webkit [288489] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Avoid calling IOSurfaceGetPropertyMaximum
https://bugs.webkit.org/show_bug.cgi?id=235526
<rdar://85128431>

Reviewed by Simon Fraser and Darin Adler.

There should be no need to call IOSurfaceGetPropertyMaximum on iOS, since the return value will exceed the hardcoded maximum.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::maxSurfaceDimensionCA):
(WebCore::computeMaximumSurfaceSize):

4:51 PM Changeset in webkit [288488] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.3.2

Tag Safari-613.1.14.3.2.

4:48 PM Changeset in webkit [288487] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.2.4

Tag Safari-613.1.14.2.4.

4:48 PM Changeset in webkit [288486] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.6

Tag Safari-613.1.14.1.6.

4:48 PM Changeset in webkit [288485] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.0.5

Tag Safari-613.1.14.0.5.

4:45 PM Changeset in webkit [288484] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.3-branch/Source

Versioning.

WebKit-7613.1.14.3.2

4:43 PM Changeset in webkit [288483] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.2-branch/Source

Versioning.

WebKit-7613.1.14.2.4

4:38 PM Changeset in webkit [288482] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.5

4:35 PM Changeset in webkit [288481] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.6

4:22 PM Changeset in webkit [288480] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.34

Merge r288379 - Build failure with g++ 12: std::exchange undefined
https://bugs.webkit.org/show_bug.cgi?id=235445

Patch by Mike Gorse <mgorse@suse.com> on 2022-01-21
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • API/JSRetainPtr.h: Include <utility>

Source/WebCore:

  • platform/graphics/x11/XUniqueResource.h: Include <utility>

Source/WTF:

  • wtf/CompletionHandler.h: Include <utility>
  • wtf/MallocPtr.h: Ditto

Tools:

  • ImageDiff/ImageDiff.cpp: Include <utility>
4:22 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
4:19 PM Changeset in webkit [288479] by Jonathan Bedard
  • 5 edits in trunk/Tools

[EWS] Support pull request in AnaylzePatch
https://bugs.webkit.org/show_bug.cgi?id=235411
<rdar://problem/87839638>

Reviewed by Aakash Jain.

  • CISupport/ews-build/factories.py:

(Factory.init): Rename AnalyzePatch to AnalyzeChange.

  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Rename AnalyzePatch to AnalyzeChange.

  • CISupport/ews-build/steps.py:

(AnalyzeChange): Renamed from AnalyzePatch.
(AnalyzeChange._get_patch): Create a parseable string including the files changed.
(CheckChangeRelevance): Renamed from CheckPatchRelevance.
(FindModifiedLayoutTests): Inherit from AnalyzeChange.
(AnalyzePatch): Renamed to AnalyzeChange.
(CheckPatchRelevance): Renamed to CheckChangeRelevance.

  • CISupport/ews-build/steps_unittest.py:

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

4:07 PM Changeset in webkit [288478] by sihui_liu@apple.com
  • 4 edits in trunk

Regression (r286936): SessionStorage data is not cleared when deleting website data by modification time
https://bugs.webkit.org/show_bug.cgi?id=235542

Reviewed by Chris Dumez.

Source/WebKit:

The old behavior before r286936 is to delete SessionStorage data regardless of the modifiedSince parameter.
r286936 made it check modifiedSince and perform deleteion when modifiedSince time is -Walltime::infinity. This
patch corrects it by deleting SessionStorage data when modifiedSince time is in the past.

API test: SessionStorage.ClearByModificationTime

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::deleteData):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm:

(TEST):

3:47 PM Changeset in webkit [288477] by Wenson Hsieh
  • 4 edits in trunk

[macOS] Update Pasteboard::read to prioritize native representations over TIFF
https://bugs.webkit.org/show_bug.cgi?id=190101
rdar://44879244

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently on macOS, when pasting image data from the pasteboard into richly editable elements, we attempt to
read the image data by checking a hard-coded list of types; in order, these are: TIFF, PDF, PNG, and finally
JPEG. Since AppKit automatically provides TIFF as an available type for compatibility when writing non-TIFF
image data to the pasteboard, this means that WebKit automatically transcodes all images to TIFF when pasting
images in editable areas.

This leads to unexpected behavior in Mail compose when using the continuity camera to insert images, since all
drawings and photos end up being inserted as (often much larger) TIFF files instead of JPEG and PNG,
respectively. To address this, we adjust Pasteboard::read to prioritize image formats in the hard-coded list
above that were written directly to the pasteboard by the copier (i.e. without transcoding) before reading from
the remaining types that were added to the pasteboard by the system (and thus require extra transcoding).

In the case where only PNG and JPEG data was written to the pasteboard by the copier, this means we'll read
images as PNG and JPEG data directly. If TIFF was explicitly written as an image format to the pasteboard, this
patch will preserve existing behavior by reading the image data as TIFF.

Note that this existing logic for reading images directly into web content is an existing privacy risk, since
AppKit's pasteboard code preserves all metadata properties when transcoding between image formats. In the
future, we should add a step here to strip out as much metadata as possible here, with an allow-list of metadata
properties that are essential to preserving image fidelity (e.g. orientation).

See: <https://webkit.org/b/235534> for more details.

Test: WKAttachmentTests.PastingPreservesImageFormat

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::read):

Refactor this logic so that we first try to read any natively written image formats that happen to be one of
("TIFF", "PDF", "PNG", "JPEG"), before trying to read any other types that would otherwise require transcoding.

Tools:

Add a cross-platform API test to verify that when using the client-side attachments, pasted image data of
varying formats (PDF, JPEG, PNG) are read in their original form. See WebCore/ChangeLog for more details. This
test currently passes on iOS but fails on macOS, where both the PNG and JPEG images are transcoded and read as
TIFF.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(testJPEGFileURL):
(testJPEGData):
(platformCopyPDF):
(platformCopyJPEG):
(TestWebKitAPI::TEST):

Drive-by fix: also remove a JavaScript evaluation in a nearby test that could only result in an exception (and
was probably accidentally left there while writing the test).

3:20 PM Changeset in webkit [288476] by Mikhail R. Gadelha
  • 10 edits in trunk/Source

[JSC][32bit] Fix regexp crash on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=234476

Reviewed by Yusuke Suzuki.

This patch fixes several regexp crashes on ARMv7 due to an incorrect
offset to retrieve the 5th argument from the stack: in ARMv7, only
4 arguments are passed via registers r0-r3i, and any other argument is
placed on the stack, however, YarrJIT was trying to get the 5th arg
from a fixed offset, so because the generateEnter() method pushed
register into the stack, the offset was wrong. This patch fixes how
the offset is calculated for MIPS and ARMv7.

This patch also introduces some small changes:

  1. Added static_asserts that the YarrJIT calls do indeed have 5 arguments

and that the 5th argument has the type that we expect (MatchingContextHolder*).

  1. Removed an unnecessary pointer from the MatchingContextHolder

constructor.

  1. Fixed some warnings in the YarrJIT code here and there.
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • yarr/YarrJIT.cpp:
  • yarr/YarrMatchingContextHolder.h:

(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):

3:02 PM Changeset in webkit [288475] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/Source/WebKit

Soft link ARKit in a separate ARKitSoftLink file
https://bugs.webkit.org/show_bug.cgi?id=235532

Patch by Ada Chan <adachan@apple.com> on 2022-01-24
Reviewed by Tim Horton.

  • Shared/Cocoa/ARKitSoftLink.h: Added.
  • Shared/Cocoa/ARKitSoftLink.mm: Added.
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • WebKit.xcodeproj/project.pbxproj:
2:54 PM Changeset in webkit [288474] by Jonathan Bedard
  • 5 edits in trunk/Tools

[EWS] Use github.head.sha instead of revision
https://bugs.webkit.org/show_bug.cgi?id=235521
<rdar://problem/87970427>

Reviewed by Aakash Jain.

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

(Events.buildFinishedGitHub): Use github.head.sha instead of revision.
(Events.stepStartedGitHub): Ditto.

  • Tools/CISupport/ews-build/master.cfg: Extract github.head.sha from hook.
  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin._is_pr_obsolete): Use github.head.sha instead of revision.
(ConfigureBuild.add_pr_details): Ditto.
(ValidateChange.validate_github): Ditto.

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

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

2:51 PM Changeset in webkit [288473] by ysuzuki@apple.com
  • 31 edits
    2 adds in trunk

[JSC] Support import assertion syntax
https://bugs.webkit.org/show_bug.cgi?id=235312

Reviewed by Ross Kirsling.

JSTests:

  • modules/import-meta-syntax.js:

(shouldThrow):

  • stress/import-syntax.js:
  • stress/modules-syntax-error.js:
  • stress/modules-syntax-import-assertion-error.js: Added.

(shouldThrow):

  • stress/modules-syntax-import-assertion.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-dynamic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-bom.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-bom.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/repeated-imports.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/repeated-imports.any.worker-expected.txt:
  • web-platform-tests/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt:
  • web-platform-tests/workers/dedicated-worker-parse-error-failure-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-options-credentials-expected.txt:

Source/JavaScriptCore:

This patch adds syntax support for import assertion[1].
This does not add the actual feature propagating import assertion
to the module request yet.

[1]: https://github.com/tc39/proposal-import-assertions

  • bytecompiler/NodesCodegen.cpp:

(JSC::ImportNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createImportExpr):
(JSC::ASTBuilder::createImportAssertionList):
(JSC::ASTBuilder::appendImportAssertion):
(JSC::ASTBuilder::createImportDeclaration):
(JSC::ASTBuilder::createExportAllDeclaration):
(JSC::ASTBuilder::createExportNamedDeclaration):

  • parser/NodeConstructors.h:

(JSC::ImportNode::ImportNode):
(JSC::ImportDeclarationNode::ImportDeclarationNode):
(JSC::ExportAllDeclarationNode::ExportAllDeclarationNode):
(JSC::ExportNamedDeclarationNode::ExportNamedDeclarationNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseImportAssertions):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createImportExpr):
(JSC::SyntaxChecker::createImportAssertionList):
(JSC::SyntaxChecker::appendImportAssertion):
(JSC::SyntaxChecker::createImportDeclaration):
(JSC::SyntaxChecker::createExportAllDeclaration):
(JSC::SyntaxChecker::createExportNamedDeclaration):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/OptionsList.h:
2:47 PM Changeset in webkit [288472] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF

Merge r288459 - REGRESION(r288200): [GTK][WPE] Build broken on Ubuntu 18.04
https://bugs.webkit.org/show_bug.cgi?id=235401

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
Reviewed by Adrian Perez de Castro.

This implements WTF_CRASH_UNDER_CONSTEXPR_CONTEXT() properly for compatibility with older
compilers.

  • wtf/Assertions.h:
2:47 PM Changeset in webkit [288471] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF

Merge r288460 - Build failure with GCC 12: no matching function for call to 'end(LChar [7])'
https://bugs.webkit.org/show_bug.cgi?id=235458

Unreviewed. Just need to #include <string> here.

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24

  • wtf/text/IntegerToStringConversion.h:
2:33 PM Changeset in webkit [288470] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: move filtering checkboxes into a single gear-with-contextmenu to save space
https://bugs.webkit.org/show_bug.cgi?id=235538

Reviewed by Patrick Angle.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype.get filterNavigationItems):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype._changeCollection):
(WI.NetworkTableContentView.prototype._updateOtherFiltersNavigationItemState): Added.
(WI.NetworkTableContentView.prototype._handleOtherFiltersNavigationItemContextMenu): Added.
(WI.NetworkTableContentView.prototype._handleClearNetworkOnNavigateChanged): Renamed from _handleClearNetworkOnNavigateChanged.
(WI.NetworkTableContentView.prototype._handleGroupMediaRequestsByDOMNodeChanged): Renamed from _handleGroupMediaRequestsByDOMNodeCheckedDidChange.

  • UserInterface/Views/NetworkTableContentView.css:

(.network-other-filters-button > .glyph): Added.
(.network-other-filters-button:active > .glyph): Added.
(.network-other-filters-button.active > .glyph): Added.
(.network-other-filters-button.active:active > .glyph): Added.

  • Localizations/en.lproj/localizedStrings.js:
2:31 PM Changeset in webkit [288469] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: collapse type filter scope bar into a single button to save space
https://bugs.webkit.org/show_bug.cgi?id=235537

Reviewed by Patrick Angle.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-type-filter-scope-bar.default-item-selected:not(:hover)): Added.
(.network-type-filter-scope-bar.default-item-selected:hover): Added.

2:31 PM Changeset in webkit [288468] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy

Incorrect pull-request url printed by git-webkit
https://bugs.webkit.org/show_bug.cgi?id=235513

Reviewed by Jonathan Bedard.

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

(GitHub.PRGenerator.PullRequest):

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

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

2:22 PM Changeset in webkit [288467] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.5

Tag Safari-613.1.14.1.5.

2:05 PM Changeset in webkit [288466] by eric.carlson@apple.com
  • 9 edits
    2 adds in trunk

REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>

Reviewed by Jer Noble.
Source/WebCore:

An iOS application loses its NowPlaying status as soon as the AudioSession category
is set to Ambient, and it can only get it back again by changing the category
to Playback *and* starting playback. When an application is in the background, however,
it can't start playback unless it *already* has NowPlaying status. So, ipso facto,
background playback will always fail once the category is set to Ambient.

If an AudioSession's category is set to Playback when it is activated, it will
interrupt another application playing audio, activate Bluetooth routes, etc.
This means WebKit has to relinquish Playback when a page is unable to produce audio
because AVFoundation automatically activates the audio session when playback starts

  • even if the AVPlayer is muted or has no audio.

To allow pages that were playing audio when WebKit went into the background to
continue to play after switching urls or activating another media element, add a
grace period when switch from Playback to Ambient.

Test: media/audio-session-category.html

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

Source/WebKit:

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::category const): Return the most recently set category
on all platforms so it is possible to test.

LayoutTests:

  • fast/mediasession/metadata/audio-track-enabled.html: Wait longer for the audio session

category to be reset.

  • media/audio-session-category-expected.txt: Added.
  • media/audio-session-category.html: Added.
  • platform/gtk/TestExpectations: Skip new test.
  • platform/mac-wk1/TestExpectations: Skip new test, MediaStream isn't supported

on WK1.

2:02 PM Changeset in webkit [288465] by Antti Koivisto
  • 71 edits in trunk

[CSS Container Queries] Basic parsing support for container-type property
https://bugs.webkit.org/show_bug.cgi?id=235514

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:

Source/WebCore:

Parse 'container-type' with values 'none', 'size' and 'inline-size.

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

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ContainerType const):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containerType const):
(WebCore::RenderStyle::setContainerType):
(WebCore::RenderStyle::initialContainerType):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
1:55 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:40 PM Changeset in webkit [288464] by youenn@apple.com
  • 9 edits in trunk/Source/ThirdParty/libwebrtc

Cherry-pick WebRTC 235826 change
https://bugs.webkit.org/show_bug.cgi?id=235510
<rdar://87884184>

Reviewed by Eric Carlson.

Cherry-picking above fixing for compliance.

  • Source/webrtc/media/engine/webrtc_media_engine.cc:
  • Source/webrtc/media/engine/webrtc_media_engine.h:
  • Source/webrtc/media/engine/webrtc_media_engine_unittest.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.h:
  • Source/webrtc/media/engine/webrtc_voice_engine.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map_unittest.cc:
1:12 PM Changeset in webkit [288463] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

file.stream() is slow and CPU-bound
https://bugs.webkit.org/show_bug.cgi?id=235448

Reviewed by Alex Christensen.

We introduce a ReadAsBinaryChunks mode to prevent storing the whole file in memory.
Use this in Blob stream implementation.
The new implementation is much faster for big files given it does not need to keep in memory the whole file.
Covered by existing tests.

  • fileapi/Blob.cpp:
  • fileapi/FileReaderLoader.cpp:
  • fileapi/FileReaderLoader.h:
  • fileapi/FileReaderLoaderClient.h:
1:11 PM Changeset in webkit [288462] by youenn@apple.com
  • 5 edits in trunk

[ iOS Release ] fast/mediastream/mediaElement-gc.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231601
<rdar://problem/84158942>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by existing test.

  • testing/Internals.cpp:

Looking at https://build.webkit.org/results/Apple-iOS-15-Simulator-Debug-WK2-Tests/r287831%20(1192)/fast/mediastream/mediaElement-gc-pretty-diff.html,
we can see the number of media elements is 2 while the test has created only 1 element.
We update Internals.mediaElementCount to only count elements of the current document

LayoutTests:

  • fast/mediastream/mediaElement-gc.html: add more precise checks to get better error information if test continues to be flaky.
  • platform/ios-wk2/TestExpectations:
12:33 PM Changeset in webkit [288461] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Reject large number of WebRTC audio channels
https://bugs.webkit.org/show_bug.cgi?id=235511

Reviewed by Eric Carlson.

Cherry-picking WebRTC upstream fix for compliance.

  • Source/webrtc/pc/webrtc_sdp.cc:
  • Source/webrtc/pc/webrtc_sdp_unittest.cc:
12:28 PM Changeset in webkit [288460] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Build failure with GCC 12: no matching function for call to 'end(LChar [7])'
https://bugs.webkit.org/show_bug.cgi?id=235458

Unreviewed. Just need to #include <string> here.

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24

  • wtf/text/IntegerToStringConversion.h:
12:13 PM Changeset in webkit [288459] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

REGRESION(r288200): [GTK][WPE] Build broken on Ubuntu 18.04
https://bugs.webkit.org/show_bug.cgi?id=235401

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
Reviewed by Adrian Perez de Castro.

This implements WTF_CRASH_UNDER_CONSTEXPR_CONTEXT() properly for compatibility with older
compilers.

  • wtf/Assertions.h:
12:01 PM Changeset in webkit [288458] by mark.lam@apple.com
  • 7 edits in trunk

Add FixedVector::clear(), contains(), find(), and findMatching().
https://bugs.webkit.org/show_bug.cgi?id=234855

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Use FixedVector instead of Vector in DeferredWorkTimer::TicketData now that
the needed APIs have been added.

  • runtime/DeferredWorkTimer.h:

Source/WTF:

  • wtf/FixedVector.h:

(WTF::FixedVector::clear):
(WTF::FixedVector<T>::contains const):
(WTF::FixedVector<T>::findMatching const):
(WTF::FixedVector<T>::find const):

Tools:

Added new tests for FixedVector. Also added the ClearContainsAndFind test to
Vector since it is missing these tests.

  • TestWebKitAPI/Tests/WTF/FixedVector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

11:19 AM Changeset in webkit [288457] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.0.4

Tag Safari-613.1.14.0.4.

11:17 AM Changeset in webkit [288456] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.5

11:14 AM Changeset in webkit [288455] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.4

11:09 AM Changeset in webkit [288454] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Pass the Document through bindings to KeyframeEffect::setKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235503

Unreviewed build fix, I had a merge issue when landing r288452.

  • animation/KeyframeEffect.idl:
11:01 AM Changeset in webkit [288453] by Ben Nham
  • 2 edits in trunk/Source/WebCore

Fix macOS build after r288442

Unreviewed build fix.

  • DerivedSources-output.xcfilelist: Add the new IDL file to derived sources.
10:41 AM Changeset in webkit [288452] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Pass the Document through bindings to KeyframeEffect::setKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235503

Reviewed by Sam Weinig.

We're making a similar change as part of bug 232086 for getKeyframes()
after a suggestion from Darin during review. Since the bindings code
can guarantee a Document for these bindings-exposed methods, we might
as well use it rather than obtain the Document through the global object.

  • animation/KeyframeEffect.cpp:

(WebCore::processKeyframeLikeObject):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::setBindingsKeyframes):
(WebCore::KeyframeEffect::setKeyframes):
(WebCore::KeyframeEffect::processKeyframes):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • dom/Element.cpp:

(WebCore::Element::animate):

9:44 AM Changeset in webkit [288451] by david_quesada@apple.com
  • 6 edits in trunk/Source

Simplify accesses to SystemVersion.plist
https://bugs.webkit.org/show_bug.cgi?id=234306

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests since no behavior change is expected.

  • platform/cocoa/SystemVersion.mm:

(WebCore::createSystemMarketingVersion):

Read the SystemVersion.plist file using _CFCopySystemVersionDictionary()
rather than by manually constructing the path and initializing the dictionary.

Source/WebCore/PAL:

  • pal/spi/cf/CFUtilitiesSPI.h:

Forward declare _kCFSystemVersionProductUserVisibleVersionKey, used
by WebCore's SystemVersion.mm

Source/WebKit:

No new tests since no behavior change is expected.

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):

Use _CFCopySystemVersionDictionary() to locate and load the
SystemVersion.plist file rather than doing that all manually.

(WebKit::systemVersionPlist): Deleted.

9:38 AM Changeset in webkit [288450] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove customElements when transitioning documents
https://bugs.webkit.org/show_bug.cgi?id=222727

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-24
Reviewed by Ryosuke Niwa.

Remove customElements when transitioning documents
of Window since the old document may be gone.

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

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::didSecureTransitionTo):
(WebCore::DOMWindow::ensureCustomElementRegistry):

9:36 AM Changeset in webkit [288449] by Simon Fraser
  • 16 edits in trunk/LayoutTests

Add pixel tolerance to some compositing tests
https://bugs.webkit.org/show_bug.cgi?id=235462

Reviewed by Darin Adler.

Add pixel tolerance to tests whose output is slightly different when accelerated drawing
is enabled in the iOS simulator, for bug 231828.

  • compositing/clipping/border-radius-async-overflow-non-stacking.html:
  • compositing/geometry/css-clip-oversize.html:
  • compositing/geometry/scroller-with-clipping-and-foreground-layers.html:
  • compositing/overlap-blending/children-opacity-huge.html:
  • compositing/overlap-blending/children-opacity-no-overlap.html:
  • compositing/patterns/direct-pattern-compositing-add-text.html:
  • compositing/patterns/direct-pattern-compositing-contain.html:
  • compositing/patterns/direct-pattern-compositing-cover.html:
  • compositing/patterns/direct-pattern-compositing-padding.html:
  • compositing/patterns/direct-pattern-compositing-position.html:
  • compositing/patterns/direct-pattern-compositing-size.html:
  • compositing/patterns/direct-pattern-compositing.html:
  • compositing/reflections/nested-reflection-opacity2.html:
  • compositing/reflections/opacity-in-reflection.html:
  • compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html:
8:22 AM Changeset in webkit [288448] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Do not expose the slider thumb to ATs with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235487

Reviewed by Adrian Perez de Castro.

We expose the slider as a whole but not its value indicator.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

8:21 AM Changeset in webkit [288447] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] Only consider links as replaced objects when iterating with EmitsObjectReplacementCharacters
https://bugs.webkit.org/show_bug.cgi?id=235474

Reviewed by Adrian Perez de Castro.

We don't want to consider links replaced objects in other cases.

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement): Add TextIteratorBehaviors parameter to check if
EmitsObjectReplacementCharacters is present.
(WebCore::TextIterator::advance): Pass m_behaviors to isRendererReplacedElement().
(WebCore::SimplifiedBackwardsTextIterator::advance): Ditto.
(WebCore::isInsideReplacedElement): Add TextIteratorBehaviors parameter and pass it to isRendererReplacedElement().
(WebCore::resolveCharacterRange): Pass behaviors to isInsideReplacedElement().

  • editing/TextIterator.h:

(WebCore::isRendererReplacedElement): Add optional parameter TextIteratorBehaviors.

8:20 AM Changeset in webkit [288446] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] Do not use heap allocated timers in AccessibilityAtspi
https://bugs.webkit.org/show_bug.cgi?id=235473

Reviewed by Adrian Perez de Castro.

It was needed to ensure they were constructed in the ax thread, but they are now always created in the main
thread, so they can be created once in the constructor.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::AccessibilityAtspi):
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::removeClient):
(WebCore::AccessibilityAtspi::addToCacheIfPending):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::cacheClearTimerFired):
(WebCore::AccessibilityAtspi::scheduleCacheUpdate): Deleted.

  • accessibility/atspi/AccessibilityAtspi.h:
8:19 AM Changeset in webkit [288445] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Emit children-changed:remove signal even for ignored objects with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235472

Reviewed by Adrian Perez de Castro.

We are returning early in case the object is ignored, but that could change, so if an object is not initially
ignored and is registered we still need to emit children-changed:remove signal when destroyed to ensure the
atspi cache is updated.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::childRemoved):

8:18 AM Changeset in webkit [288444] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK][a11y] Test accessibility/url-test.html fails with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235486

Reviewed by Darin Adler.

Ensure we don't remove the fragment id of URL when removing the base path.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::url):

8:13 AM Changeset in webkit [288443] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Allow configuring multiple user credentials on ews
https://bugs.webkit.org/show_bug.cgi?id=235301

Reviewed by Jonathan Bedard.

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

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

8:05 AM Changeset in webkit [288442] by commit-queue@webkit.org
  • 34 edits
    3 copies
    25 adds in trunk

[Shadow Realms] Use WebCore module loaders for shadow realm importValue
https://bugs.webkit.org/show_bug.cgi?id=234155

Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-24
Reviewed by Darin Adler.

Source/JavaScriptCore:

Add hook for creating the new realm object for shadow realms, since
importValue requires the cooperation of the module loading logic to work
right.

  • API/JSAPIGlobalObject.cpp:
  • jsc.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::deriveShadowRealmGlobalObject):

  • runtime/ShadowRealmConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ShadowRealmObject.cpp:

(JSC::ShadowRealmObject::create):

  • runtime/ShadowRealmObject.h:

Source/WebCore:

Introduces a new ShadowRealmGlobalScope that serves as the
implementation of a global object for code running in a shadow realm--to
implement the requirements of JS(DOM)GlobalObject, it simply delegates
all methods to the incubating (enclosing) realm, with the exception of
methods related to module loading, for which it uses a custom
ScriptModuleLoader configured to use the appropriate global object when
evaluating module code.

Also requires some adjustment to the IDL-driven code generation--the
current draft spec requires that the global object for the shadow realm
be an ordinary object--ShadowRealmGlobalScope is opted out of codegen
for producing a custom prototype, but can still have APIs included as
properties if they are marked as Exposed=ShadowRealm or Exposed=*

Tests: js/ShadowRealm-evaluate.html

js/ShadowRealm-importValue.html
js/ShadowRealm-worker.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::scriptExecutionContext const):
(WebCore::scriptModuleLoader):
(WebCore::JSDOMGlobalObject::deriveShadowRealmGlobalObject):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSRemoteDOMWindowBase.cpp:
  • bindings/js/JSShadowRealmGlobalScopeBase.cpp: Added.

(WebCore::JSShadowRealmGlobalScopeBase::JSShadowRealmGlobalScopeBase):
(WebCore::JSShadowRealmGlobalScopeBase::finishCreation):
(WebCore::JSShadowRealmGlobalScopeBase::visitChildrenImpl):
(WebCore::JSShadowRealmGlobalScopeBase::scriptExecutionContext const):
(WebCore::JSShadowRealmGlobalScopeBase::incubating const):
(WebCore::JSShadowRealmGlobalScopeBase::destroy):
(WebCore::JSShadowRealmGlobalScopeBase::supportsRichSourceInfo):
(WebCore::JSShadowRealmGlobalScopeBase::shouldInterruptScript):
(WebCore::JSShadowRealmGlobalScopeBase::shouldInterruptScriptBeforeTimeout):
(WebCore::JSShadowRealmGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSShadowRealmGlobalScopeBase::scriptExecutionStatus):
(WebCore::JSShadowRealmGlobalScopeBase::reportViolationForUnsafeEval):
(WebCore::JSShadowRealmGlobalScopeBase::queueMicrotaskToEventLoop):
(WebCore::toJS):

  • bindings/js/JSShadowRealmGlobalScopeBase.h: Added.

(WebCore::JSShadowRealmGlobalScopeBase::subspaceFor):
(WebCore::JSShadowRealmGlobalScopeBase::wrapped const):
(WebCore::JSShadowRealmGlobalScopeBase::incubating):
(WebCore::toJS):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::shadowRealmLoader const):
(WebCore::ScriptModuleLoader::evaluate):

  • bindings/js/ScriptModuleLoader.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(IsDOMGlobalObject):
(ShouldUseOrdinaryObjectPrototype):
(GenerateHeader):
(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateImplementation):
(GeneratePrototypeDeclaration):
(GenerateConstructorHelperMethods):

  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/ShadowRealmGlobalScopeConstructors.idl: Added.
  • bindings/scripts/test/SupplementalDependencies.dep:
  • dom/PromiseRejectionEvent.idl:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::isShadowRealmGlobalScope const):

  • page/ShadowRealmGlobalScope.cpp: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.

(WebCore::ShadowRealmGlobalScope::tryCreate):
(WebCore::ShadowRealmGlobalScope::ShadowRealmGlobalScope):
(WebCore::ShadowRealmGlobalScope::moduleLoader):
(WebCore::ShadowRealmGlobalScope::wrapper):
(WebCore::ShadowRealmGlobalScope::~ShadowRealmGlobalScope):

  • page/ShadowRealmGlobalScope.h: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.

(WebCore::ShadowRealmGlobalScope::self):

  • page/ShadowRealmGlobalScope.idl: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.

Tools:

  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.generate_supplemental_dependency):
(BindingsTests.main):

LayoutTests:

Improve test coverage a bit for shadow realms, especially running
nested, in worker contexts, or in iframes.

  • js/ShadowRealm-evaluate-expected.txt: Added.
  • js/ShadowRealm-evaluate.html: Added.
  • js/ShadowRealm-importValue-expected.txt: Added.
  • js/ShadowRealm-importValue.html: Added.
  • js/ShadowRealm-worker-expected.txt: Added.
  • js/ShadowRealm-worker.html: Added.
  • js/script-tests/ShadowRealm-evaluate.js: Added.

(assert_closed_opener):
(promise_test.async t):

  • js/script-tests/ShadowRealm-importValue.js: Added.

(wrappedLog):
(promise_test.async t):

  • js/script-tests/example-module.js: Added.

(check):
(log_equal):
(check_nested):
(setValue):

  • js/script-tests/shadow-realm-worker.js: Added.

(assert_equals):
(async test):
(async await):

8:03 AM Changeset in webkit [288441] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>

Addressing post commit comments.

Reviewed by Eric Carlson and Geoff Garen.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

Fixed the release logging.

8:02 AM Changeset in webkit [288440] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

[Model] Add testing coverage for camera API
https://bugs.webkit.org/show_bug.cgi?id=233643

Reviewed by Dean Jackson.

Source/WebCore:

Test: model-element/model-element-camera.html

We reject the promise returned by the getCamera() and setCamera() methods
with an Exception so that we can correctly test this behavior. We also make
the keys on HTMLModelElementCamera be required to reject incomplete objects.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::getCamera):
(WebCore::HTMLModelElement::setCamera):

  • Modules/model-element/HTMLModelElementCamera.idl:

LayoutTests:

Add a new test that exercises the getCamera() and setCamera() methods.
These are currently skipped in OpenSource and will be enabled on internal bots.

  • model-element/model-element-camera-expected.txt: Added.
  • model-element/model-element-camera.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:37 AM Changeset in webkit [288439] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
https://bugs.webkit.org/show_bug.cgi?id=235397
<rdar://problem/87819949>

Reviewed by Eric Carlson and Geoff Garen.

Address post-commit comments.
Introduce a boolean to make high priority thread callbacks no-ops when reconfiguring the audio unit.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
6:26 AM Changeset in webkit [288438] by Antti Koivisto
  • 63 edits
    264 adds in trunk/LayoutTests

[CSS Container Queries] Import WPT tests
https://bugs.webkit.org/show_bug.cgi?id=235508

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

Import css/css-contain/container-queries and also update css/css-contain.

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/contain-content-001.html:
  • web-platform-tests/css/css-contain/contain-content-002.html:
  • web-platform-tests/css/css-contain/contain-content-003.html:
  • web-platform-tests/css/css-contain/contain-content-004.html:
  • web-platform-tests/css/css-contain/contain-content-011.html:
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-fieldset-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-legend-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-layout-breaks-002.html:
  • web-platform-tests/css/css-contain/contain-layout-cell-001.html:
  • web-platform-tests/css/css-contain/contain-layout-cell-002.html:
  • web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ifc-022.html:
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-ib-split-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-size-003.html:
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-022.html:
  • web-platform-tests/css/css-contain/contain-paint-023.html:
  • web-platform-tests/css/css-contain/contain-paint-024.html:
  • web-platform-tests/css/css-contain/contain-paint-047.html:
  • web-platform-tests/css/css-contain/contain-paint-048.html:
  • web-platform-tests/css/css-contain/contain-paint-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-paint-cell-001.html:
  • web-platform-tests/css/css-contain/contain-paint-cell-002.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-006-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-011.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-012.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-013.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-014.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-015.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-016.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-017.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-018.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-019.html:
  • web-platform-tests/css/css-contain/contain-paint-containing-block-absolute-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-containing-block-fixed-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-float-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-margin-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ifc-011.html:
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ib-split-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-no-principal-box-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-containing-block-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-001.html:
  • web-platform-tests/css/css-contain/contain-paint-size-002.html:
  • web-platform-tests/css/css-contain/contain-paint-size-003.html:
  • web-platform-tests/css/css-contain/contain-paint-stacking-context-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-table-001.html:
  • web-platform-tests/css/css-contain/contain-paint-table-002.html:
  • web-platform-tests/css/css-contain/contain-size-021.html:
  • web-platform-tests/css/css-contain/contain-size-023.html:
  • web-platform-tests/css/css-contain/contain-size-025.html:
  • web-platform-tests/css/css-contain/contain-size-027.html:
  • web-platform-tests/css/css-contain/contain-size-041.html:
  • web-platform-tests/css/css-contain/contain-size-042.html:
  • web-platform-tests/css/css-contain/contain-size-051.html:
  • web-platform-tests/css/css-contain/contain-size-052.html:
  • web-platform-tests/css/css-contain/contain-size-056.html:
  • web-platform-tests/css/css-contain/contain-size-061.html:
  • web-platform-tests/css/css-contain/contain-size-062.html:
  • web-platform-tests/css/css-contain/contain-size-063.html:
  • web-platform-tests/css/css-contain/contain-size-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-size-block-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-button-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flex-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-005-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-flex-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-monolithic-001.html:
  • web-platform-tests/css/css-contain/contain-size-multicol-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-005-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-006-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-005-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-table-caption-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-001.html:
  • web-platform-tests/css/css-contain/contain-strict-002.html:
  • web-platform-tests/css/css-contain/contain-strict-003.html:
  • web-platform-tests/css/css-contain/contain-strict-011.html:
  • web-platform-tests/css/css-contain/contain-style-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-style-counters-001.html:
  • web-platform-tests/css/css-contain/contain-style-counters-002.html:
  • web-platform-tests/css/css-contain/contain-style-counters-003.html:
  • web-platform-tests/css/css-contain/contain-style-counters-004.html:
  • web-platform-tests/css/css-contain/contain-style-counters-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-size.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition.html: Added.
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars.html: Added.
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc.html: Added.
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-computed.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-inheritance.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-computed.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-selection.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-change-chrome-legacy-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-computed.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-containment.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-animation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-basic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-selection.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/display-contents.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-in-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-in-container-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/display-none.html: Added.
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-002-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-003-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/focus-inside-content-visibility-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units.html: Added.
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/get-animations.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-002-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-003-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-multicol-inside-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-with-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-with-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/input-column-group-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/multicol-inside-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/multicol-inside-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query.html: Added.
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative.html: Added.
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/query-content-box.html: Added.
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/query-evaluation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child.html: Added.
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden.html: Added.
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box.html: Added.
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/support/cq-testcommon.js: Added.

(assert_implements_container_queries):

  • web-platform-tests/css/css-contain/container-queries/support/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/container-queries/svg-layout-root-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-002-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-003-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog.html: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars.html: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event.html: Added.
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis.html: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units.html: Added.
  • web-platform-tests/css/css-contain/container-queries/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-focus-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-with-child-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-with-pos-children-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-003-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-004-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-019-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-020-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-021-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-022-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-023-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-024-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-025-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-027-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-032-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-033-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-034-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-042-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-049-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-058-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-064-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-074-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-075-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-076-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-078-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-079-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-with-top-layer-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/inline-container-with-child-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/positioned-container-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/spacer-and-container-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/spacer-and-container-scrolled-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/spacer-with-top-layer-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
  • web-platform-tests/css/css-contain/w3c-import.log:

LayoutTests:

6:08 AM Changeset in webkit [288437] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Fix non-unified build after r288432

Unreviewed non-unified build fix.

No new tests needed.

  • platform/graphics/filters/software/FEImageSoftwareApplier.cpp: Do not use #pragma once

in an implementation file, add missing inclusion of the GraphicsContext.h header.

5:58 AM Changeset in webkit [288436] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Display builders should flip coords for writing mode
https://bugs.webkit.org/show_bug.cgi?id=235498

Reviewed by Antti Koivisto.

Display boxes/lines all have visual geometries. This patch flips their coords when they
are inside a block with vertical writing mode.

This is in preparation for enabling vertical writing mode for IFC.

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

(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode):

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

(WebCore::Layout::InlineDisplayLineBuilder::build const):

4:41 AM Changeset in webkit [288435] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

MediaStream canvas.captureStream() playback to LocalSampleBufferDisplayLayer is flaky
https://bugs.webkit.org/show_bug.cgi?id=230623
<rdar://problem/83668578>

Reviewed by Kimmo Kinnunen.

There are a few issues when creating the video element, setting the srcObject and playing it right away.
The first thing is that we try to render the video element while thinking that it might be video accelerated
(it is always the case for MediaStreamTrack based tracks), but the video element is asynchronously updating whether it is accelerated.
Following what other MediaPlayerPrivate are doing, when MediaPlayerPrivateMediaStreamAVFObjC has set up its video layers,
we schedule a call to renderingModeChanged which will trigger a relayout.

We also ensure, when the layer is fully initialized to set all values (bounds, hide states) as otherwise, this might be lost on GPUProcess
which currently does not register a RemoteSampleBufferDisplayLayer at the time the corresponding IPC message is received.

The additional issue is in the case the MediaStreamTrack source only generates one frame for some time.
In that case, and if the frame is enqueueud while setting up the video layers, we were not rendering this frame.
To fix this, when the video layers are ready, we reenqueue the last video frame as neeeded.

Manually tested.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
3:52 AM Changeset in webkit [288434] by commit-queue@webkit.org
  • 11 edits
    7 adds in trunk

texImage2d fails to set same video frame to multiple textures
https://bugs.webkit.org/show_bug.cgi?id=203148
<rdar://problem/56436745>

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

Source/WebCore:

WebGL optimizes repeated video uploads to same texture, due to this being
usual practice among pages. Reason is that there are no API to know when the
video frame updates.
The algorithm was:

  • If the IOSurface is the same as in the last call
  • If the texture contents has not changed since we last modified this texture then skip the upload.

However, this logic skips errorneously if the "last call" updates some other texture.
Fix and test the above.

There are other issues for the current algorithm. This patch fixes some other theoretical ones:

  • If the texture is deleted and new one gets assigned the same texture id and the content seed would clash
  • Video was uploaded to a different level

The previous implementation was keeping per-texture seed value map in the context
(GraphicsContextGLANGLE) and per-teture seed value map in the texture upload helper
(GraphicsContextGLCVCocoa) and last uploaded IOSurface seed in the upload helper (not per
texture).

The implementation in this patch keeps per-texture known content description in the texture
upload helper and invalidates this when each texture changes. The known content description
is the parameter list of the texture upload call.

Test: webgl/pending/conformance/textures/misc/tex-image-video-repeated.html

  • platform/graphics/GraphicsContextGLState.h:

(WebCore::GraphicsContextGLState::setBoundTexture):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::texImage2D):
(WebCore::GraphicsContextGLANGLE::texSubImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::texStorage2D):
(WebCore::GraphicsContextGLANGLE::texStorage3D):
(WebCore::GraphicsContextGLANGLE::texImage2DDirect):
(WebCore::GraphicsContextGLANGLE::framebufferTexture2D):
(WebCore::GraphicsContextGLANGLE::createTexture):
(WebCore::GraphicsContextGLANGLE::deleteTexture):
(WebCore::GraphicsContextGLANGLE::invalidateKnownTextureContent):
(WebCore::GraphicsContextGLANGLE::textureSeed): Deleted.

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::invalidateKnownTextureContent):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:

(WebCore::GraphicsContextGLCVCocoa::TextureContent::operator== const):
(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):
(WebCore::GraphicsContextGLCVCocoa::invalidateKnownTextureContent):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

LayoutTests:

Add a test for testing the bug in which some video texture uploads
were skipped errorneously.

  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html: Added.
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt: Added.
  • webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Added.
2:59 AM Changeset in webkit [288433] by graouts@webkit.org
  • 37 edits
    1 copy in trunk

[Web Animations] add support for animation-composition CSS property
https://bugs.webkit.org/show_bug.cgi?id=232086
<rdar://problem/84508394>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Mark WPT progressions and import one ::marker WPT test that wasn't imported originally with bug 235443.

  • web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative-expected.txt:
  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties.html:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Add support for the "animation-composition" property from the CSS Animations Level 2 specification.
This property sets the "composite" property on the animation's effect and is overridden by use of
the Web Animations API to set that property.

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

(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
(WebCore::CSSAnimation::setBindingsEffect):
(WebCore::CSSAnimation::effectCompositeOperationWasSetUsingBindings):

  • animation/CSSAnimation.h:
  • animation/CompositeOperation.cpp: Added.

(WebCore::toCompositeOperation):

  • animation/CompositeOperation.h:
  • animation/CompositeOperationOrAuto.h:

(WebCore::toCompositeOperationOrAuto):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getBindingsKeyframes):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::bindingsComposite const):
(WebCore::KeyframeEffect::setBindingsComposite):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForAnimationComposition):
(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationCompositeOperation):

  • css/CSSToStyleMap.h:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationValue):
(WebCore::CSSPropertyParser::parseSingleValue):

  • platform/animation/Animation.cpp:

(WebCore::Animation::Animation):

  • platform/animation/Animation.h:

(WebCore::Animation::clearCompositeOperation):
(WebCore::Animation::fillCompositeOperation):
(WebCore::Animation::isCompositeOperationFilled const):

  • platform/animation/AnimationList.cpp:

(WebCore::AnimationList::fillUnsetProperties):

  • style/PropertyAllowlist.cpp:

(WebCore::Style::isValidMarkerStyleProperty):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::keyframeStylesForAnimation):

LayoutTests:

Update existing tests to account for the new "animation-composition" CSS property.

  • animations/fill-unset-properties-expected.txt:
  • animations/fill-unset-properties.html:
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
12:58 AM Changeset in webkit [288432] by Said Abou-Hallawa
  • 30 edits
    1 copy
    2 moves
    1 add in trunk/Source

[GPU Process] [Filters] Move FEImage to the 'platform' directory
https://bugs.webkit.org/show_bug.cgi?id=234109
rdar://86608573

Reviewed by Darin Adler.

Source/WebCore:

Move FEImageSoftwareApplier to separate source and header files. Make all
the filter applier concrete classes be final and make their overridden
'apply()' method be private and final.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/coreimage/FEColorMatrixCoreImageApplier.h:
  • platform/graphics/coreimage/FEComponentTransferCoreImageApplier.h:
  • platform/graphics/coreimage/SourceGraphicCoreImageApplier.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:
  • platform/graphics/filters/FEImage.cpp: Renamed from Source/WebCore/svg/graphics/filters/SVGFEImage.cpp.

(WebCore::FEImage::create):
(WebCore::FEImage::FEImage):
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImage::createSoftwareApplier const):
(WebCore::FEImage::externalRepresentation const):

  • platform/graphics/filters/FEImage.h: Renamed from Source/WebCore/svg/graphics/filters/SVGFEImage.h.

(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):

  • platform/graphics/filters/software/FEBlendSoftwareApplier.h:
  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h:
  • platform/graphics/filters/software/FECompositeSoftwareApplier.h:
  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.h:

(WebCore::FEDisplacementMapSoftwareApplier::byteOffsetOfPixel): Deleted.

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.h:
  • platform/graphics/filters/software/FEFloodSoftwareApplier.h:
  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
  • platform/graphics/filters/software/FEImageSoftwareApplier.cpp: Added.

(WebCore::FEImageSoftwareApplier::apply const):

  • platform/graphics/filters/software/FEImageSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/coreimage/SourceGraphicCoreImageApplier.h.
  • platform/graphics/filters/software/FELightingSoftwareApplier.h:

(WebCore::FELightingSoftwareApplier::AlphaWindow::topLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::left const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottomLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::top const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::center const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottom const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTop): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setCenter): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottom): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTopRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottomRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shiftRow): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shift): Deleted.

  • platform/graphics/filters/software/FEMergeSoftwareApplier.h:
  • platform/graphics/filters/software/FEMorphologySoftwareApplier.h:

(WebCore::FEMorphologySoftwareApplier::pixelArrayIndex): Deleted.
(WebCore::FEMorphologySoftwareApplier::makePixelValueFromColorComponents): Deleted.
(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue): Deleted.

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.h:
  • platform/graphics/filters/software/FETileSoftwareApplier.h:
  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:

(WebCore::FETurbulenceSoftwareApplier::PaintingData::random): Deleted.
(WebCore::FETurbulenceSoftwareApplier::smoothCurve): Deleted.
(WebCore::FETurbulenceSoftwareApplier::linearInterpolation): Deleted.

  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.h:
  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.h:
  • rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
  • svg/SVGFEImageElement.cpp:
  • svg/SVGFEImageElement.h:

Source/WebKit:

  • Platform/IPC/FilterReference.h:
Note: See TracTimeline for information about the timeline view.