Timeline



Sep 17, 2021:

11:51 PM Changeset in webkit [282722] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix CellTag being set 32 bits even if the base is not a cell
https://bugs.webkit.org/show_bug.cgi?id=230364

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-09-17
Reviewed by Yusuke Suzuki.

Initial patch by Caio Lima.

In 32 bits the tag of the base was not being preserved before calling
the slow path and was instead being always being set to cellTag.

This patch slightly changes the code to instead of setting the cellTag,
it now calls the slow path using only the payload if the base is a cell,
otherwise it uses tag+payload.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

11:03 PM Changeset in webkit [282721] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Replace all the complex math in ScrollAnimationSmooth with a single call into a CubicBezierTimingFunction
https://bugs.webkit.org/show_bug.cgi?id=230436

Reviewed by Tim Horton.

ScrollAnimationSmooth had a lot of math that computed velocities for attack, drift and
release phases, but they resulted in odd-feeling animations for long scrolls. We can replace
it all, and get nice-feeling scrolls, by just using an ease-in-out timing function.

Duration is compusted from distance with a max of 200ms, matching macOS behavior.

  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
(WebCore::ScrollAnimationSmooth::startAnimatedScroll):
(WebCore::ScrollAnimationSmooth::startAnimatedScrollToDestination):
(WebCore::ScrollAnimationSmooth::startOrRetargetAnimation):
(WebCore::ScrollAnimationSmooth::updateScrollExtents):
(WebCore::linearInterpolation):
(WebCore::ScrollAnimationSmooth::animateScroll):
(WebCore::ScrollAnimationSmooth::animationTimerFired):
(WebCore::ScrollAnimationSmooth::initializeAxesData): Deleted.
(WebCore::curveAt): Deleted.
(WebCore::attackCurve): Deleted.
(WebCore::releaseCurve): Deleted.
(WebCore::coastCurve): Deleted.
(WebCore::curveIntegralAt): Deleted.
(WebCore::attackArea): Deleted.
(WebCore::releaseArea): Deleted.
(WebCore::getAnimationParametersForGranularity): Deleted.
(WebCore::ScrollAnimationSmooth::updatePerAxisData): Deleted.

  • platform/ScrollAnimationSmooth.h:
9:24 PM Changeset in webkit [282720] by Simon Fraser
  • 19 edits
    3 copies
    2 moves
    3 adds in trunk

Move scrollbar-related code out of ScrollAnimator and into ScrollbarsController
https://bugs.webkit.org/show_bug.cgi?id=230295

Reviewed by Tim Horton.

As the first step to cleaning up ScrollAnimator/ScrollController, move scrollbar-related code out of
ScrollAnimator and into a new ScrollbarsController class, with platform-specific subclasses.
This makes it much easier to understand the responsibilities of ScrollAnimator.

  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::contentsSizeChanged const):
(WebCore::ScrollAnimator::contentsResized const): Deleted.
(WebCore::ScrollAnimator::willEndLiveResize): Deleted.
(WebCore::ScrollAnimator::didAddVerticalScrollbar): Deleted.
(WebCore::ScrollAnimator::didAddHorizontalScrollbar): Deleted.

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::haveScrolledSincePageLoad const):
(WebCore::ScrollAnimator::setHaveScrolledSincePageLoad):
(WebCore::ScrollAnimator::wheelEventTestMonitor const):
(WebCore::ScrollAnimator::contentAreaWillPaint const): Deleted.
(WebCore::ScrollAnimator::mouseEnteredContentArea): Deleted.
(WebCore::ScrollAnimator::mouseExitedContentArea): Deleted.
(WebCore::ScrollAnimator::mouseMovedInContentArea): Deleted.
(WebCore::ScrollAnimator::mouseEnteredScrollbar const): Deleted.
(WebCore::ScrollAnimator::mouseExitedScrollbar const): Deleted.
(WebCore::ScrollAnimator::mouseIsDownInScrollbar const): Deleted.
(WebCore::ScrollAnimator::willStartLiveResize): Deleted.
(WebCore::ScrollAnimator::contentAreaDidShow): Deleted.
(WebCore::ScrollAnimator::contentAreaDidHide): Deleted.
(WebCore::ScrollAnimator::lockOverlayScrollbarStateToHidden): Deleted.
(WebCore::ScrollAnimator::scrollbarsCanBeActive const): Deleted.
(WebCore::ScrollAnimator::willRemoveVerticalScrollbar): Deleted.
(WebCore::ScrollAnimator::willRemoveHorizontalScrollbar): Deleted.
(WebCore::ScrollAnimator::invalidateScrollbarPartLayers): Deleted.
(WebCore::ScrollAnimator::verticalScrollbarLayerDidChange): Deleted.
(WebCore::ScrollAnimator::horizontalScrollbarLayerDidChange): Deleted.
(WebCore::ScrollAnimator::shouldScrollbarParticipateInHitTesting): Deleted.
(WebCore::ScrollAnimator::notifyContentAreaScrolled): Deleted.
(WebCore::ScrollAnimator::horizontalScrollbarStateForTesting const): Deleted.
(WebCore::ScrollAnimator::verticalScrollbarStateForTesting const): Deleted.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollAnimator const):
(WebCore::ScrollableArea::scrollbarsController const):
(WebCore::ScrollableArea::scrollPositionChanged):
(WebCore::ScrollableArea::willStartLiveResize):
(WebCore::ScrollableArea::willEndLiveResize):
(WebCore::ScrollableArea::contentAreaWillPaint const):
(WebCore::ScrollableArea::mouseEnteredContentArea const):
(WebCore::ScrollableArea::mouseExitedContentArea const):
(WebCore::ScrollableArea::mouseMovedInContentArea const):
(WebCore::ScrollableArea::mouseEnteredScrollbar const):
(WebCore::ScrollableArea::mouseExitedScrollbar const):
(WebCore::ScrollableArea::mouseIsDownInScrollbar const):
(WebCore::ScrollableArea::contentAreaDidShow const):
(WebCore::ScrollableArea::contentAreaDidHide const):
(WebCore::ScrollableArea::lockOverlayScrollbarStateToHidden const):
(WebCore::ScrollableArea::scrollbarsCanBeActive const):
(WebCore::ScrollableArea::didAddScrollbar):
(WebCore::ScrollableArea::willRemoveScrollbar):
(WebCore::ScrollableArea::contentsResized):
(WebCore::ScrollableArea::availableContentSizeChanged):
(WebCore::ScrollableArea::invalidateScrollbars):
(WebCore::ScrollableArea::verticalScrollbarLayerDidChange):
(WebCore::ScrollableArea::horizontalScrollbarLayerDidChange):
(WebCore::ScrollableArea::horizontalScrollbarStateForTesting const):
(WebCore::ScrollableArea::verticalScrollbarStateForTesting const):
(WebCore::ScrollableArea::resnapAfterLayout):

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

(WebCore::Scrollbar::shouldParticipateInHitTesting):

  • platform/ScrollbarsController.cpp: Copied from Source/WebCore/platform/ios/ScrollAnimatorIOS.h.

(WebCore::ScrollbarsController::create):
(WebCore::ScrollbarsController::ScrollbarsController):

  • platform/ScrollbarsController.h: Added.

(WebCore::ScrollbarsController::scrollableArea const):
(WebCore::ScrollbarsController::notifyPositionChanged):
(WebCore::ScrollbarsController::cancelAnimations):
(WebCore::ScrollbarsController::didBeginScrollGesture const):
(WebCore::ScrollbarsController::didEndScrollGesture const):
(WebCore::ScrollbarsController::mayBeginScrollGesture const):
(WebCore::ScrollbarsController::contentAreaWillPaint const):
(WebCore::ScrollbarsController::mouseEnteredContentArea):
(WebCore::ScrollbarsController::mouseExitedContentArea):
(WebCore::ScrollbarsController::mouseMovedInContentArea):
(WebCore::ScrollbarsController::mouseEnteredScrollbar const):
(WebCore::ScrollbarsController::mouseExitedScrollbar const):
(WebCore::ScrollbarsController::mouseIsDownInScrollbar const):
(WebCore::ScrollbarsController::willStartLiveResize):
(WebCore::ScrollbarsController::contentsSizeChanged const):
(WebCore::ScrollbarsController::willEndLiveResize):
(WebCore::ScrollbarsController::contentAreaDidShow):
(WebCore::ScrollbarsController::contentAreaDidHide):
(WebCore::ScrollbarsController::lockOverlayScrollbarStateToHidden):
(WebCore::ScrollbarsController::scrollbarsCanBeActive const):
(WebCore::ScrollbarsController::didAddVerticalScrollbar):
(WebCore::ScrollbarsController::willRemoveVerticalScrollbar):
(WebCore::ScrollbarsController::didAddHorizontalScrollbar):
(WebCore::ScrollbarsController::willRemoveHorizontalScrollbar):
(WebCore::ScrollbarsController::invalidateScrollbarPartLayers):
(WebCore::ScrollbarsController::verticalScrollbarLayerDidChange):
(WebCore::ScrollbarsController::horizontalScrollbarLayerDidChange):
(WebCore::ScrollbarsController::shouldScrollbarParticipateInHitTesting):
(WebCore::ScrollbarsController::notifyContentAreaScrolled):
(WebCore::ScrollbarsController::horizontalScrollbarStateForTesting const):
(WebCore::ScrollbarsController::verticalScrollbarStateForTesting const):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar): Deleted.
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar): Deleted.
(WebCore::ScrollAnimatorGeneric::willRemoveVerticalScrollbar): Deleted.
(WebCore::ScrollAnimatorGeneric::willRemoveHorizontalScrollbar): Deleted.
(WebCore::ScrollAnimatorGeneric::updateOverlayScrollbarsOpacity): Deleted.
(WebCore::easeOutCubic): Deleted.
(WebCore::ScrollAnimatorGeneric::overlayScrollbarAnimationTimerFired): Deleted.
(WebCore::ScrollAnimatorGeneric::showOverlayScrollbars): Deleted.
(WebCore::ScrollAnimatorGeneric::hideOverlayScrollbars): Deleted.
(WebCore::ScrollAnimatorGeneric::mouseEnteredContentArea): Deleted.
(WebCore::ScrollAnimatorGeneric::mouseExitedContentArea): Deleted.
(WebCore::ScrollAnimatorGeneric::mouseMovedInContentArea): Deleted.
(WebCore::ScrollAnimatorGeneric::contentAreaDidShow): Deleted.
(WebCore::ScrollAnimatorGeneric::contentAreaDidHide): Deleted.
(WebCore::ScrollAnimatorGeneric::notifyContentAreaScrolled): Deleted.
(WebCore::ScrollAnimatorGeneric::lockOverlayScrollbarStateToHidden): Deleted.

  • platform/generic/ScrollAnimatorGeneric.h:
  • platform/ios/ScrollAnimatorIOS.h:
  • platform/ios/ScrollAnimatorIOS.mm:

(WebCore::ScrollAnimatorIOS::ScrollAnimatorIOS):

  • platform/mac/ScrollAnimatorMac.h:

(WebCore::ScrollAnimatorMac::haveScrolledSincePageLoad const): Deleted.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::scroll):
(WebCore::ScrollAnimatorMac::notifyPositionChanged):
(WebCore::ScrollAnimatorMac::cancelAnimations):
(WebCore::ScrollAnimatorMac::handleWheelEventPhase):
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::macScrollbarTheme): Deleted.
(WebCore::scrollerImpForScrollbar): Deleted.
(-[WebScrollerImpPairDelegate initWithScrollableArea:]): Deleted.
(-[WebScrollerImpPairDelegate invalidate]): Deleted.
(-[WebScrollerImpPairDelegate contentAreaRectForScrollerImpPair:]): Deleted.
(-[WebScrollerImpPairDelegate inLiveResizeForScrollerImpPair:]): Deleted.
(-[WebScrollerImpPairDelegate mouseLocationInContentAreaForScrollerImpPair:]): Deleted.
(-[WebScrollerImpPairDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]): Deleted.
(-[WebScrollerImpPairDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]): Deleted.
(-[WebScrollerImpPairDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]): Deleted.
(operator<<): Deleted.
(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]): Deleted.
(-[WebScrollbarPartAnimation startAnimation]): Deleted.
(-[WebScrollbarPartAnimation setStartValue:]): Deleted.
(-[WebScrollbarPartAnimation setEndValue:]): Deleted.
(-[WebScrollbarPartAnimation setCurrentProgress:]): Deleted.
(-[WebScrollbarPartAnimation invalidate]): Deleted.
(-[WebScrollbarPartAnimation setDuration:]): Deleted.
(-[WebScrollbarPartAnimation stopAnimation]): Deleted.
(-[WebScrollerImpDelegate initWithScrollbar:]): Deleted.
(-[WebScrollerImpDelegate cancelAnimations]): Deleted.
(-[WebScrollerImpDelegate scrollAnimator]): Deleted.
(-[WebScrollerImpDelegate convertRectToBacking:]): Deleted.
(-[WebScrollerImpDelegate convertRectFromBacking:]): Deleted.
(-[WebScrollerImpDelegate layer]): Deleted.
(-[WebScrollerImpDelegate mouseLocationInScrollerForScrollerImp:]): Deleted.
(-[WebScrollerImpDelegate convertRectToLayer:]): Deleted.
(-[WebScrollerImpDelegate shouldUseLayerPerPartForScrollerImp:]): Deleted.
(-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Deleted.
(-[WebScrollerImpDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]): Deleted.
(-[WebScrollerImpDelegate scrollerImp:animateKnobAlphaTo:duration:]): Deleted.
(-[WebScrollerImpDelegate scrollerImp:animateTrackAlphaTo:duration:]): Deleted.
(-[WebScrollerImpDelegate scrollerImp:animateUIStateTransitionWithDuration:]): Deleted.
(-[WebScrollerImpDelegate scrollerImp:animateExpansionTransitionWithDuration:]): Deleted.
(-[WebScrollerImpDelegate scrollerImp:overlayScrollerStateChangedTo:]): Deleted.
(-[WebScrollerImpDelegate invalidate]): Deleted.
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac): Deleted.
(WebCore::scrollbarState): Deleted.
(WebCore::ScrollAnimatorMac::horizontalScrollbarStateForTesting const): Deleted.
(WebCore::ScrollAnimatorMac::verticalScrollbarStateForTesting const): Deleted.
(WebCore::ScrollAnimatorMac::contentAreaWillPaint const): Deleted.
(WebCore::ScrollAnimatorMac::mouseEnteredContentArea): Deleted.
(WebCore::ScrollAnimatorMac::mouseExitedContentArea): Deleted.
(WebCore::ScrollAnimatorMac::mouseMovedInContentArea): Deleted.
(WebCore::ScrollAnimatorMac::mouseEnteredScrollbar const): Deleted.
(WebCore::ScrollAnimatorMac::mouseExitedScrollbar const): Deleted.
(WebCore::ScrollAnimatorMac::mouseIsDownInScrollbar const): Deleted.
(WebCore::ScrollAnimatorMac::willStartLiveResize): Deleted.
(WebCore::ScrollAnimatorMac::contentsResized const): Deleted.
(WebCore::ScrollAnimatorMac::willEndLiveResize): Deleted.
(WebCore::ScrollAnimatorMac::contentAreaDidShow): Deleted.
(WebCore::ScrollAnimatorMac::contentAreaDidHide): Deleted.
(WebCore::ScrollAnimatorMac::didBeginScrollGesture const): Deleted.
(WebCore::ScrollAnimatorMac::didEndScrollGesture const): Deleted.
(WebCore::ScrollAnimatorMac::mayBeginScrollGesture const): Deleted.
(WebCore::ScrollAnimatorMac::lockOverlayScrollbarStateToHidden): Deleted.
(WebCore::ScrollAnimatorMac::scrollbarsCanBeActive const): Deleted.
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar): Deleted.
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar): Deleted.
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar): Deleted.
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar): Deleted.
(WebCore::ScrollAnimatorMac::invalidateScrollbarPartLayers): Deleted.
(WebCore::ScrollAnimatorMac::verticalScrollbarLayerDidChange): Deleted.
(WebCore::ScrollAnimatorMac::horizontalScrollbarLayerDidChange): Deleted.
(WebCore::ScrollAnimatorMac::shouldScrollbarParticipateInHitTesting): Deleted.
(WebCore::ScrollAnimatorMac::notifyContentAreaScrolled): Deleted.
(WebCore::ScrollAnimatorMac::updateScrollerStyle): Deleted.
(WebCore::ScrollAnimatorMac::startScrollbarPaintTimer): Deleted.
(WebCore::ScrollAnimatorMac::scrollbarPaintTimerIsActive const): Deleted.
(WebCore::ScrollAnimatorMac::stopScrollbarPaintTimer): Deleted.
(WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired): Deleted.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon): Deleted.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolled): Deleted.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired): Deleted.
(WebCore::ScrollAnimatorMac::setVisibleScrollerThumbRect): Deleted.

  • platform/mac/ScrollbarsControllerMac.h: Added.
  • platform/mac/ScrollbarsControllerMac.mm: Copied from Source/WebCore/platform/mac/ScrollAnimatorMac.mm.

(WebCore::macScrollbarTheme):
(WebCore::scrollerImpForScrollbar):
(-[WebScrollerImpPairDelegate initWithScrollableArea:]):
(-[WebScrollerImpPairDelegate invalidate]):
(-[WebScrollerImpPairDelegate contentAreaRectForScrollerImpPair:]):
(-[WebScrollerImpPairDelegate inLiveResizeForScrollerImpPair:]):
(-[WebScrollerImpPairDelegate mouseLocationInContentAreaForScrollerImpPair:]):
(-[WebScrollerImpPairDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
(-[WebScrollerImpPairDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
(-[WebScrollerImpPairDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
(operator<<):
(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setStartValue:]):
(-[WebScrollbarPartAnimation setEndValue:]):
(-[WebScrollbarPartAnimation setCurrentProgress:]):
(-[WebScrollbarPartAnimation invalidate]):
(-[WebScrollbarPartAnimation setDuration:]):
(-[WebScrollbarPartAnimation stopAnimation]):
(-[WebScrollerImpDelegate initWithScrollbar:]):
(-[WebScrollerImpDelegate cancelAnimations]):
(-[WebScrollerImpDelegate scrollbarsController]):
(-[WebScrollerImpDelegate convertRectToBacking:]):
(-[WebScrollerImpDelegate convertRectFromBacking:]):
(-[WebScrollerImpDelegate layer]):
(-[WebScrollerImpDelegate mouseLocationInScrollerForScrollerImp:]):
(-[WebScrollerImpDelegate convertRectToLayer:]):
(-[WebScrollerImpDelegate shouldUseLayerPerPartForScrollerImp:]):
(-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]):
(-[WebScrollerImpDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
(-[WebScrollerImpDelegate scrollerImp:animateKnobAlphaTo:duration:]):
(-[WebScrollerImpDelegate scrollerImp:animateTrackAlphaTo:duration:]):
(-[WebScrollerImpDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
(-[WebScrollerImpDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
(-[WebScrollerImpDelegate scrollerImp:overlayScrollerStateChangedTo:]):
(-[WebScrollerImpDelegate invalidate]):
(WebCore::ScrollbarsController::create):
(WebCore::ScrollbarsControllerMac::ScrollbarsControllerMac):
(WebCore::ScrollbarsControllerMac::~ScrollbarsControllerMac):
(WebCore::ScrollbarsControllerMac::notifyPositionChanged):
(WebCore::ScrollbarsControllerMac::cancelAnimations):
(WebCore::ScrollbarsControllerMac::setVisibleScrollerThumbRect):
(WebCore::ScrollbarsControllerMac::haveScrolledSincePageLoad const):
(WebCore::ScrollbarsControllerMac::contentAreaWillPaint const):
(WebCore::ScrollbarsControllerMac::mouseEnteredContentArea):
(WebCore::ScrollbarsControllerMac::mouseExitedContentArea):
(WebCore::ScrollbarsControllerMac::mouseMovedInContentArea):
(WebCore::ScrollbarsControllerMac::mouseEnteredScrollbar const):
(WebCore::ScrollbarsControllerMac::mouseExitedScrollbar const):
(WebCore::ScrollbarsControllerMac::mouseIsDownInScrollbar const):
(WebCore::ScrollbarsControllerMac::willStartLiveResize):
(WebCore::ScrollbarsControllerMac::contentsSizeChanged const):
(WebCore::ScrollbarsControllerMac::willEndLiveResize):
(WebCore::ScrollbarsControllerMac::contentAreaDidShow):
(WebCore::ScrollbarsControllerMac::contentAreaDidHide):
(WebCore::ScrollbarsControllerMac::didBeginScrollGesture const):
(WebCore::ScrollbarsControllerMac::didEndScrollGesture const):
(WebCore::ScrollbarsControllerMac::mayBeginScrollGesture const):
(WebCore::ScrollbarsControllerMac::lockOverlayScrollbarStateToHidden):
(WebCore::ScrollbarsControllerMac::scrollbarsCanBeActive const):
(WebCore::ScrollbarsControllerMac::didAddVerticalScrollbar):
(WebCore::ScrollbarsControllerMac::willRemoveVerticalScrollbar):
(WebCore::ScrollbarsControllerMac::didAddHorizontalScrollbar):
(WebCore::ScrollbarsControllerMac::willRemoveHorizontalScrollbar):
(WebCore::ScrollbarsControllerMac::invalidateScrollbarPartLayers):
(WebCore::ScrollbarsControllerMac::verticalScrollbarLayerDidChange):
(WebCore::ScrollbarsControllerMac::horizontalScrollbarLayerDidChange):
(WebCore::ScrollbarsControllerMac::shouldScrollbarParticipateInHitTesting):
(WebCore::ScrollbarsControllerMac::notifyContentAreaScrolled):
(WebCore::ScrollbarsControllerMac::updateScrollerStyle):
(WebCore::ScrollbarsControllerMac::startScrollbarPaintTimer):
(WebCore::ScrollbarsControllerMac::scrollbarPaintTimerIsActive const):
(WebCore::ScrollbarsControllerMac::stopScrollbarPaintTimer):
(WebCore::ScrollbarsControllerMac::initialScrollbarPaintTimerFired):
(WebCore::ScrollbarsControllerMac::sendContentAreaScrolledTimerFired):
(WebCore::ScrollbarsControllerMac::sendContentAreaScrolledSoon):
(WebCore::ScrollbarsControllerMac::sendContentAreaScrolled):
(WebCore::scrollbarState):
(WebCore::ScrollbarsControllerMac::horizontalScrollbarStateForTesting const):
(WebCore::ScrollbarsControllerMac::verticalScrollbarStateForTesting const):
(WebCore::ScrollbarsControllerMac::wheelEventTestMonitor const):

  • platform/mock/ScrollAnimatorMock.h: Removed.
  • platform/mock/ScrollbarsControllerMock.cpp: Renamed from Source/WebCore/platform/mock/ScrollAnimatorMock.cpp.

(WebCore::ScrollbarsControllerMock::ScrollbarsControllerMock):
(WebCore::ScrollbarsControllerMock::didAddVerticalScrollbar):
(WebCore::ScrollbarsControllerMock::didAddHorizontalScrollbar):
(WebCore::ScrollbarsControllerMock::willRemoveVerticalScrollbar):
(WebCore::ScrollbarsControllerMock::willRemoveHorizontalScrollbar):
(WebCore::ScrollbarsControllerMock::mouseEnteredContentArea):
(WebCore::ScrollbarsControllerMock::mouseMovedInContentArea):
(WebCore::ScrollbarsControllerMock::mouseExitedContentArea):
(WebCore::ScrollbarsControllerMock::scrollbarPrefix const):
(WebCore::ScrollbarsControllerMock::mouseEnteredScrollbar const):
(WebCore::ScrollbarsControllerMock::mouseExitedScrollbar const):
(WebCore::ScrollbarsControllerMock::mouseIsDownInScrollbar const):

  • platform/mock/ScrollbarsControllerMock.h: Added.
8:27 PM Changeset in webkit [282719] by Chris Dumez
  • 2 edits in trunk/Tools

[ macOS Release ] TestWebKitAPI.NetworkProcess.BroadcastChannelCrashRecovery is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=230430
<rdar://problem/83256307>

Reviewed by Alex Christensen.

I suspect that the flakiness is due to the BroadcastChannel.postMessage() sometimes failing right
after we kill the network process and relaunch it. I believe this could happen because the test
was only making sure that [[WKWebsiteDataStore defaultDataStore] _networkProcessIdentifier]
changed. This meant that the UIProcess was indeed notified that the network process crashed and
that a new one was relaunched. However, this doesn't necessarily indicate that the view's
WebProcesses were notified yet. As a result, when we evaluate JS to post a message on a
BroadcastChannel, the WebProcess could potentially still try to send the IPC via the
IPC::Connection for the old network process.

To try and address this race, I am adding code to wait until cookie synchronization is
working across both web views before I try posting the message. Because cookie synchronization
involves the network process and both WebProcesses, once this happens, we know that both
WebProcesses are properly connected to the new NetworkProcess.

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(waitUntilNetworkProcessIsResponsive):
(TEST):

7:30 PM Changeset in webkit [282718] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] Enable content with synthetic bold for IFC
https://bugs.webkit.org/show_bug.cgi?id=230383

Reviewed by Antti Koivisto.

Synthetic bold prevents us from using the fast text measuring codepath, but IFC does work
with the slow codepath too (FontCascade::widthForSimpleText vs FontCascade::width).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForText):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

5:43 PM Changeset in webkit [282717] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[results.webkit.org] Add ability to access Bugzilla and Radar links from commit messages
https://bugs.webkit.org/show_bug.cgi?id=229160

Patch by Kevin Neal <kevin_neal@apple.com> on 2021-09-17
Reviewed by Jonathan Bedard.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/css/tooltip.css:

(.tooltip-content hr):
(@media (prefers-color-scheme: dark) .tooltip-content hr):

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/commit.js:

(Commit):

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(xAxisFromScale):

5:39 PM Changeset in webkit [282716] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[ Catalina+ Win WK1 ] http/tests/misc/iframe-reparenting-id-collision.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=230423
<rdar://problem/83252545>

Reviewed by Geoffrey Garen.

The test opens 2 identical windows. Each of these windows has an iframe which starts an XHR and then
calls iframeXHRStarted() and end up outputing the following line:
"Started loading iframe XHR request."

When the test fails, we see this line logged a third time, even though there are 2 popup windows.
The reason for this is that iframeXHRStarted() transfers an iframe from one popup to another once
both XHRs have started. When transferring the iframe a new XHR starts. The test calls
testRunner.notifyDone() right away but in some cases, the XHR still has time to start and print
the extra line.

  • http/tests/misc/iframe-reparenting-id-collision.html:
5:28 PM Changeset in webkit [282715] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Reset author time when editing commits (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=230224
<rdar://problem/83065417>

Unreviewed follow-up fix.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.pull): We can't update SVN if the HEAD commit does not have a revision.

5:22 PM Changeset in webkit [282714] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkitscmpy] Refactor PR branch management
https://bugs.webkit.org/show_bug.cgi?id=230432
<rdar://problem/83258413>

Reviewed by Stephanie Lewis.

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

(Branch): Specify that the 'eng' prefix is for pull-requests.
(Branch.normalize_branch_name): Normalized branch names should consider other developement prefixes.
(Branch.editable): Check if a branch is editable. Only includes development branches at the moment,
will include commit-queue in the near future.
(Branch.branch_point): Moved from pull_request.py.
(Branch.main):
(Branch.normalize_issue): Renamed normalize_branch_name.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull.py:

(Pull.main): branch_point is now owned Branch command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): Match DEV_BRANCHES instead of PREFIX, branch_point is now owned Branch command.
(PullRequest.branch_point): Moved to branch.py.

5:16 PM Changeset in webkit [282713] by Simon Fraser
  • 4 edits in trunk/LayoutTests

css/cssom-view/mouseEvent-offsetXY-svg.html passes now
https://bugs.webkit.org/show_bug.cgi?id=230271

Reviewed by Ryan Haddad.
LayoutTests/imported/w3c:

css/cssom-view/mouseEvent-offsetXY-svg.html passes after r282316.

  • web-platform-tests/css/cssom-view/mouseEvent-offsetXY-svg-expected.txt:

LayoutTests:

css/cssom-view/mouseEvent-offsetXY-svg.html passes after r282316.

5:10 PM Changeset in webkit [282712] by achristensen@apple.com
  • 125 edits
    1 add in trunk/Source

Use ObjectIdentifier for ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=230278

Reviewed by Michael Catanzaro.

Source/WebCore:

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::didReceiveResponse):
(WebCore::FetchLoader::didFinishLoading):

  • Modules/fetch/FetchLoader.h:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WorkerModuleScriptLoader.h:
  • dom/Document.cpp:

(WebCore::Document::processMetaHttpEquiv):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::didReceiveResponse):
(WebCore::FileReaderLoader::didFinishLoading):

  • fileapi/FileReaderLoader.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willSendRequestImpl):
(WebCore::InspectorInstrumentation::willSendRequestOfTypeImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
(WebCore::InspectorInstrumentation::didReceiveThreadableLoaderResponseImpl):
(WebCore::InspectorInstrumentation::didReceiveDataImpl):
(WebCore::InspectorInstrumentation::didFinishLoadingImpl):
(WebCore::InspectorInstrumentation::didFailLoadingImpl):
(WebCore::InspectorInstrumentation::scriptImportedImpl):
(WebCore::InspectorInstrumentation::didReceiveScriptResponseImpl):
(WebCore::InspectorInstrumentation::interceptResponseImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willSendRequest):
(WebCore::InspectorInstrumentation::willSendRequestOfType):
(WebCore::InspectorInstrumentation::didReceiveResourceResponse):
(WebCore::InspectorInstrumentation::didReceiveThreadableLoaderResponse):
(WebCore::InspectorInstrumentation::didReceiveData):
(WebCore::InspectorInstrumentation::didFinishLoading):
(WebCore::InspectorInstrumentation::didFailLoading):
(WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
(WebCore::InspectorInstrumentation::continueWithPolicyDownload):
(WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
(WebCore::InspectorInstrumentation::scriptImported):
(WebCore::InspectorInstrumentation::didReceiveScriptResponse):
(WebCore::InspectorInstrumentation::interceptResponse):

  • inspector/InspectorInstrumentationWebKit.cpp:

(WebCore::InspectorInstrumentationWebKit::interceptResponseInternal):

  • inspector/InspectorInstrumentationWebKit.h:

(WebCore::InspectorInstrumentationWebKit::interceptResponse):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::willSendRequestOfType):
(WebCore::InspectorNetworkAgent::didReceiveResponse):
(WebCore::InspectorNetworkAgent::didReceiveData):
(WebCore::InspectorNetworkAgent::didFinishLoading):
(WebCore::InspectorNetworkAgent::didFailLoading):
(WebCore::InspectorNetworkAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorNetworkAgent::setInitialScriptContent):
(WebCore::InspectorNetworkAgent::didReceiveScriptResponse):
(WebCore::InspectorNetworkAgent::didReceiveThreadableLoaderResponse):
(WebCore::InspectorNetworkAgent::interceptRequest):
(WebCore::InspectorNetworkAgent::interceptResponse):

  • inspector/agents/InspectorNetworkAgent.h:
  • inspector/agents/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):

  • inspector/agents/WebConsoleAgent.h:
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
(WebCore::CrossOriginPreflightChecker::doPreflight):

  • loader/CrossOriginPreflightChecker.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::tryLoadingSubstituteData):
(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::disallowDataRequest const):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::loadMainResource):
(WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):

  • loader/DocumentLoader.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightFailure):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::assignIdentifierToInitialRequest):
(WebCore::EmptyFrameLoaderClient::shouldUseCredentialStorage):
(WebCore::EmptyFrameLoaderClient::dispatchWillSendRequest):
(WebCore::EmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
(WebCore::EmptyFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
(WebCore::EmptyFrameLoaderClient::connectionProperties):
(WebCore::EmptyFrameLoaderClient::dispatchDidReceiveResponse):
(WebCore::EmptyFrameLoaderClient::dispatchDidReceiveContentLength):
(WebCore::EmptyFrameLoaderClient::dispatchDidFinishLoading):
(WebCore::EmptyFrameLoaderClient::dispatchDidFailLoading):
(WebCore::EmptyFrameLoaderClient::willCacheResponse const):
(WebCore::EmptyFrameLoaderClient::shouldCacheResponse):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::willLoadMediaElementURL):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/LoaderStrategy.cpp:

(WebCore::LoaderStrategy::responseFromResourceLoadIdentifier):
(WebCore::LoaderStrategy::networkMetricsFromResourceLoadIdentifier):
(WebCore::LoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):

  • loader/LoaderStrategy.h:

(WebCore::LoaderStrategy::ongoingLoads const):
(): Deleted.

  • loader/PingLoader.cpp:

(WebCore::PingLoader::startPingLoad):

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::incrementProgress):
(WebCore::ProgressTracker::completeProgress):
(WebCore::ProgressTracker::createUniqueIdentifier):

  • loader/ProgressTracker.h:
  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoadNotifier::assignIdentifierToInitialRequest):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::dispatchDidFailLoading):
(WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):

  • loader/ResourceLoadNotifier.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::identifier const):

  • loader/ResourceLoaderIdentifier.h: Copied from Source/WebKit/Shared/URLSchemeTaskParameters.h.
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::didCancel):

  • loader/ThreadableLoaderClient.h:

(WebCore::ThreadableLoaderClient::didSendData):
(WebCore::ThreadableLoaderClient::didReceiveResponse):
(WebCore::ThreadableLoaderClient::didReceiveData):
(WebCore::ThreadableLoaderClient::didFinishLoading):
(WebCore::ThreadableLoaderClient::didFail):
(WebCore::ThreadableLoaderClient::didFinishTiming):
(WebCore::ThreadableLoaderClient::notifyIsDone):

  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::didReceiveResponse):
(WebCore::ThreadableLoaderClientWrapper::didFinishLoading):
(WebCore::ThreadableLoaderClientWrapper::didReceiveAuthenticationCancellation):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create):
(WebCore::WorkerThreadableLoader::done const):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::update):
(WebCore::ApplicationCacheGroup::startLoadingEntry):

  • loader/appcache/ApplicationCacheGroup.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::CachedRawResource):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::identifierForLoadWithoutResourceLoader const):

  • page/EventSource.cpp:

(WebCore::EventSource::didReceiveResponse):
(WebCore::EventSource::didFinishLoading):

  • page/EventSource.h:
  • workers/Worker.cpp:

(WebCore::Worker::didReceiveResponse):

  • workers/Worker.h:
  • workers/WorkerFontLoadRequest.cpp:

(WebCore::WorkerFontLoadRequest::didReceiveResponse):
(WebCore::WorkerFontLoadRequest::didFinishLoading):

  • workers/WorkerFontLoadRequest.h:
  • workers/WorkerOrWorkletGlobalScope.h:

(WebCore::WorkerOrWorkletGlobalScope::createUniqueIdentifier): Deleted.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didReceiveResponse):
(WebCore::WorkerScriptLoader::didFinishLoading):

  • workers/WorkerScriptLoader.h:

(WebCore::WorkerScriptLoader::identifier const):

  • workers/WorkerScriptLoaderClient.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::didReceiveResponse):

  • workers/service/ServiceWorkerJob.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didFinishLoading):
(WebCore::XMLHttpRequest::didReceiveResponse):

  • xml/XMLHttpRequest.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
(WebKit::NetworkConnectionToWebProcess::isResourceLoadFinished):
(WebKit::NetworkConnectionToWebProcess::didFinishPreconnection):
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
(WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad):
(WebKit::NetworkConnectionToWebProcess::stopTrackingResourceLoad):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):
(WebKit::NetworkConnectionToWebProcess::prioritizeResourceLoads):
(WebKit::NetworkConnectionToWebProcess::takeNetworkResourceLoader):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::getNetworkLoadInformationResponse):
(WebKit::NetworkConnectionToWebProcess::getNetworkLoadIntermediateInformation):
(WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformation):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics):
(WebKit::NetworkConnectionToWebProcess::removeNetworkLoadInformation):
(WebKit::NetworkConnectionToWebProcess::ResourceNetworkActivityTracker::ResourceNetworkActivityTracker):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::prepareLoadForWebProcessTransfer):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoadMap.cpp:

(WebKit::NetworkResourceLoadMap::add):
(WebKit::NetworkResourceLoadMap::remove):
(WebKit::NetworkResourceLoadMap::take):
(WebKit::NetworkResourceLoadMap::get const):

  • NetworkProcess/NetworkResourceLoadMap.h:

(WebKit::NetworkResourceLoadMap::contains const):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::escapeIDForJSON):
(WebKit::logBlockedCookieInformation):
(WebKit::logCookieInformationInternal):
(WebKit::NetworkResourceLoader::logCookieInformation):

  • NetworkProcess/NetworkResourceLoader.h:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Shared/URLSchemeTaskParameters.cpp:

(WebKit::URLSchemeTaskParameters::decode):

  • Shared/URLSchemeTaskParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::prepareLoadForWebProcessTransfer):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

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

(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::stopURLSchemeTask):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebURLSchemeHandler.cpp:

(WebKit::WebURLSchemeHandler::startTask):
(WebKit::WebURLSchemeHandler::processForTaskIdentifier const):
(WebKit::WebURLSchemeHandler::stopAllTasksForPage):
(WebKit::WebURLSchemeHandler::stopTask):
(WebKit::WebURLSchemeHandler::removeTaskFromPageMap):

  • UIProcess/WebURLSchemeHandler.h:
  • UIProcess/WebURLSchemeTask.h:

(WebKit::WebURLSchemeTask::identifier const):

  • WebProcess/InjectedBundle/API/APIInjectedBundlePageResourceLoadClient.h:

(API::InjectedBundle::ResourceLoadClient::didInitiateLoadForResource):
(API::InjectedBundle::ResourceLoadClient::willSendRequestForFrame):
(API::InjectedBundle::ResourceLoadClient::didReceiveResponseForResource):
(API::InjectedBundle::ResourceLoadClient::didReceiveContentLengthForResource):
(API::InjectedBundle::ResourceLoadClient::didFinishLoadForResource):
(API::InjectedBundle::ResourceLoadClient::didFailLoadForResource):
(API::InjectedBundle::ResourceLoadClient::shouldCacheResponse):
(API::InjectedBundle::ResourceLoadClient::shouldUseCredentialStorage):

  • WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:

(WebKit::InjectedBundlePageResourceLoadClient::didInitiateLoadForResource):
(WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame):
(WebKit::InjectedBundlePageResourceLoadClient::didReceiveResponseForResource):
(WebKit::InjectedBundlePageResourceLoadClient::didReceiveContentLengthForResource):
(WebKit::InjectedBundlePageResourceLoadClient::didFinishLoadForResource):
(WebKit::InjectedBundlePageResourceLoadClient::didFailLoadForResource):
(WebKit::InjectedBundlePageResourceLoadClient::shouldCacheResponse):
(WebKit::InjectedBundlePageResourceLoadClient::shouldUseCredentialStorage):

  • WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didFinishPingLoad):
(WebKit::NetworkProcessConnection::didFinishPreconnection):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::didFinishPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
(WebKit::WebLoaderStrategy::didFinishPreconnection):
(WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::prioritizeResourceLoads):
(WebKit::WebLoaderStrategy::generateLoadIdentifier): Deleted.

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/Network/WebResourceInterceptController.cpp:

(WebKit::WebResourceInterceptController::isIntercepting const):
(WebKit::WebResourceInterceptController::beginInterceptingResponse):
(WebKit::WebResourceInterceptController::continueResponse):
(WebKit::WebResourceInterceptController::interceptedResponse):
(WebKit::WebResourceInterceptController::defer):

  • WebProcess/Network/WebResourceInterceptController.h:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::messageSenderDestinationID const):
(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest):
(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
(WebKit::WebFrameLoaderClient::shouldUseCredentialStorage):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
(WebKit::WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveResponse):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoading):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::willCacheResponse const):
(WebKit::WebFrameLoaderClient::sendH2Ping):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addConsoleMessage):
(WebKit::WebPage::addResourceRequest):
(WebKit::WebPage::removeResourceRequest):
(WebKit::WebPage::urlSchemeTaskWillPerformRedirection):
(WebKit::WebPage::urlSchemeTaskDidPerformRedirection):
(WebKit::WebPage::urlSchemeTaskDidReceiveResponse):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::urlSchemeTaskDidComplete):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::addConsoleMessage):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:

(WebKit::WebURLSchemeHandlerProxy::loadSynchronously):
(WebKit::WebURLSchemeHandlerProxy::taskDidPerformRedirection):
(WebKit::WebURLSchemeHandlerProxy::taskDidReceiveResponse):
(WebKit::WebURLSchemeHandlerProxy::taskDidReceiveData):
(WebKit::WebURLSchemeHandlerProxy::taskDidComplete):
(WebKit::WebURLSchemeHandlerProxy::removeTask):

  • WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
  • WebProcess/WebPage/WebURLSchemeTaskProxy.h:

(WebKit::WebURLSchemeTaskProxy::identifier const):

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::loadResourceSynchronously):

  • WebCoreSupport/WebResourceLoadScheduler.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::assignIdentifierToInitialRequest):
(WebFrameLoaderClient::dispatchWillSendRequest):
(WebFrameLoaderClient::shouldUseCredentialStorage):
(WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
(WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
(WebFrameLoaderClient::connectionProperties):
(WebFrameLoaderClient::dispatchDidReceiveResponse):
(WebFrameLoaderClient::willCacheResponse const):
(WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebFrameLoaderClient::dispatchDidFinishLoading):
(WebFrameLoaderClient::dispatchDidFailLoading):

  • WebView/WebDocumentLoaderMac.h:
  • WebView/WebDocumentLoaderMac.mm:

(WebDocumentLoaderMac::increaseLoadCount):
(WebDocumentLoaderMac::decreaseLoadCount):

  • WebView/WebViewInternal.h:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::assignIdentifierToInitialRequest):
(WebFrameLoaderClient::shouldUseCredentialStorage):
(WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
(WebFrameLoaderClient::dispatchWillSendRequest):
(WebFrameLoaderClient::dispatchDidReceiveResponse):
(WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebFrameLoaderClient::dispatchDidFinishLoading):
(WebFrameLoaderClient::dispatchDidFailLoading):
(WebFrameLoaderClient::shouldCacheResponse):

  • WebCoreSupport/WebFrameLoaderClient.h:
4:46 PM Changeset in webkit [282711] by Kate Cheney
  • 8 edits
    1 delete in trunk

Remove unnecessary ITP memory store code
https://bugs.webkit.org/show_bug.cgi?id=229512
<rdar://problem/82644309>

Reviewed by John Wilander.

Source/WebKit:

No new tests. Confirmed by existing tests.

Remove ITP Memory store. This is the first part of a two part operation,
which removes the ResourceLoadStatisticsMemoryStore class. The next
step will be reducing ResourceLoadStatisticsStore and
ResourceLoadStatisticsDatabaseStore to one single ResourceLoadStatisticsStore class.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: Removed.
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):
Deleted an extra memory store test leftover from when we still had
a functioning memory store. Now it is just a duplicate of the database
test, so we can remove it.

4:45 PM Changeset in webkit [282710] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Xcode build

Unreviewed.

No new tests because there is no behavior change.

  • DerivedSources-output.xcfilelist:
4:40 PM Changeset in webkit [282709] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS ] http/tests/media/track-in-band-hls-metadata.htm is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230435

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:33 PM Changeset in webkit [282708] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS] http/tests/navigation/back-to-slow-frame.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230434.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:17 PM Changeset in webkit [282707] by ysuzuki@apple.com
  • 15 edits
    1 add in trunk

[JSC] Add fast property enumeration mode for JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=230393

Reviewed by Mark Lam.

JSTests:

  • stress/json-stringify-object-modify.js: Added.

(shouldBe):
(throw.new.Error.let.object.hello.get inner):
(throw.new.Error):
(shouldBe.let.object.hello.get inner):

Source/JavaScriptCore:

We collected profiles and found several subtests are using JSON.stringify enough. And generated strings are many serialized leaf objects.

This patch adds fast object property enumeration. When we know that source object meets some conditions, we can say that,
as long as structure is not changed, we can continue using property names and offset collected from the structure.
This way removes non observable Get? operations to accelerate JSON.stringify performance for major object iteration cases.

We also extend MarkedArgumentBuffer: introducing MarkedArgumentBufferWithSize which can take default inline capacity as a template
parameter. This is used in JSON.stringify to increase the buffer because now we also need to record structures in MarkedArgumentBuffer.

This offers 0.4% improvement in Speedometer2 (EmberJS-TodoMVC, Vanilla-XXX, EmberJS-Debug-TodoMVC, they have enough amount of JSON.stringify
time).


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |117.710000 |117.751667 |1.000354 | 0.883246 |
| VueJS-TodoMVC |24.500000 |24.311667 |0.992313 | 0.365130 |
| EmberJS-TodoMVC |126.646667 |125.738333 |0.992828 | 0.002587 (significant) |
| BackboneJS-TodoMVC |47.873333 |47.911667 |1.000801 | 0.762509 |
| Preact-TodoMVC |17.020000 |17.070000 |1.002938 | 0.786799 |
| AngularJS-TodoMVC |129.856667 |129.353333 |0.996124 | 0.177632 |
| Vanilla-ES2015-TodoMVC |61.698333 |61.120000 |0.990626 | 0.000003 (significant) |
| Inferno-TodoMVC |62.840000 |62.496667 |0.994536 | 0.312340 |
| Flight-TodoMVC |77.095000 |76.936667 |0.997946 | 0.702724 |
| Angular2-TypeScript-TodoMVC |39.740000 |39.191667 |0.986202 | 0.053485 |
| VanillaJS-TodoMVC |49.008333 |48.346667 |0.986499 | 0.000638 (significant) |
| jQuery-TodoMVC |216.785000 |217.188333 |1.001861 | 0.270747 |
| EmberJS-Debug-TodoMVC |344.230000 |342.993333 |0.996407 | 0.012262 (significant) |
| React-TodoMVC |85.461667 |85.411667 |0.999415 | 0.758049 |
| React-Redux-TodoMVC |140.681667 |140.640000 |0.999704 | 0.871277 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |59.928333 |59.351667 |0.990377 | 0.000000 (significant) |


a mean = 264.40650
b mean = 265.51533
pValue = 0.0005567357
(Bigger means are better.)
1.004 times better
Results ARE significant

  • heap/Heap.cpp:

(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:
  • heap/HeapInlines.h:
  • runtime/ArgList.cpp:

(JSC::MarkedArgumentBufferBase::addMarkSet):
(JSC::MarkedArgumentBufferBase::markLists):
(JSC::MarkedArgumentBufferBase::slowEnsureCapacity):
(JSC::MarkedArgumentBufferBase::expandCapacity):
(JSC::MarkedArgumentBufferBase::slowAppend):
(JSC::MarkedArgumentBuffer::addMarkSet): Deleted.
(JSC::MarkedArgumentBuffer::markLists): Deleted.
(JSC::MarkedArgumentBuffer::slowEnsureCapacity): Deleted.
(JSC::MarkedArgumentBuffer::expandCapacity): Deleted.
(JSC::MarkedArgumentBuffer::slowAppend): Deleted.

  • runtime/ArgList.h:

(JSC::MarkedArgumentBufferWithSize::MarkedArgumentBufferWithSize):
(JSC::MarkedArgumentBuffer::MarkedArgumentBuffer): Deleted.
(JSC::MarkedArgumentBuffer::~MarkedArgumentBuffer): Deleted.
(JSC::MarkedArgumentBuffer::size const): Deleted.
(JSC::MarkedArgumentBuffer::isEmpty const): Deleted.
(JSC::MarkedArgumentBuffer::at const): Deleted.
(JSC::MarkedArgumentBuffer::clear): Deleted.
(JSC::MarkedArgumentBuffer::appendWithAction): Deleted.
(JSC::MarkedArgumentBuffer::append): Deleted.
(JSC::MarkedArgumentBuffer::appendWithCrashOnOverflow): Deleted.
(JSC::MarkedArgumentBuffer::removeLast): Deleted.
(JSC::MarkedArgumentBuffer::last): Deleted.
(JSC::MarkedArgumentBuffer::takeLast): Deleted.
(JSC::MarkedArgumentBuffer::ensureCapacity): Deleted.
(JSC::MarkedArgumentBuffer::hasOverflowed): Deleted.
(JSC::MarkedArgumentBuffer::overflowCheckNotNeeded): Deleted.
(JSC::MarkedArgumentBuffer::fill): Deleted.
(JSC::MarkedArgumentBuffer::slotFor const): Deleted.
(JSC::MarkedArgumentBuffer::mallocBase): Deleted.
(JSC::MarkedArgumentBuffer::setNeedsOverflowCheck): Deleted.
(JSC::MarkedArgumentBuffer::clearNeedsOverflowCheck): Deleted.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::hasFastObjectProperties const):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::Holder):
(JSC::Stringifier::Holder::appendNextProperty):

  • runtime/ObjectConstructorInlines.h:

(JSC::canPerformFastPropertyEnumerationForJSONStringify):

Source/WebCore:

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::buildJSArguments):

  • Modules/webaudio/AudioWorkletProcessor.h:

Source/WebKitLegacy/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.h:
  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::demarshalValues):

4:15 PM Changeset in webkit [282706] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Add CustomToJSObject wrapper for CSSStyleValueCustom
https://bugs.webkit.org/show_bug.cgi?id=230422

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-17
Reviewed by Alex Christensen.

  • bindings/js/JSCSSStyleValueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • css/typedom/CSSKeywordValue.h:

(isType):

4:13 PM Changeset in webkit [282705] by ddkilzer@apple.com
  • 3 edits in trunk

Remove duplicate ChangeLog entries.

4:08 PM Changeset in webkit [282704] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

Build fix: WebKit::WebProcessPool should use a weak observer with CFNotificationCenter
<https://webkit.org/b/230227>
<rdar://problem/83067708>

  • wtf/spi/cocoa/NSObjCRuntimeSPI.h:
  • Fix internal Catalina builds by including NSObjCRuntime_Private.h, but falling through to define NS_DIRECT and NS_DIRECT_MEMBERS if they weren't defined in the private header.
4:08 PM Changeset in webkit [282703] by ddkilzer@apple.com
  • 3 edits in trunk

WebKit::WebProcessPool should use a weak observer with CFNotificationCenter
<https://webkit.org/b/230227>
<rdar://problem/83067708>

Reviewed by Darin Adler.

Source/WebKit:

To fix the bug, implement an Objective-C class named
WKProcessPoolWeakObserver which contains an instance variable
holding a WeakPtr<WebProcessPool>, and tell CFNotificationCenter
to hold a weak reference to WKProcessPoolWeakObserver.

Since WKProcessPoolWeakObserver is self-contained within the
source file, it uses the NS_DIRECT_MEMBERS attribute since it
does not require the overhead of dynamic Objective-C method
dispatch.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(-[WKProcessPoolWeakObserver initWithWeakPtr:]): Add.
(-[WKProcessPoolWeakObserver pool]): Add.

  • Implement WKProcessPoolWeakObserver class.
  • Note that init methods can never be marked as NS_DIRECT, and @property statements can't use NS_DIRECT in their declaration, so the @property is declared in a category which uses NS_DIRECT_MEMBERS.

(WebKit::extractWebProcessPool): Add.

  • Static helper method for extracting RefPtr<WebProcessPool> from type-punned WKProcessPoolWeakObserver.

(WebKit::WebProcessPool::backlightLevelDidChangeCallback):
(WebKit::WebProcessPool::accessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::colorPreferencesDidChangeCallback):
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):

  • Clean up function parameter list.
  • Use extractWebProcessPool() helper method to get a RefPtr<WebProcessPool> from observer.

(WebKit::WebProcessPool::addCFNotificationObserver): Add.
(WebKit::WebProcessPool::removeCFNotificationObserver): Add.

  • Private helper methods to reduce duplicate code.
  • Use m_weakObserver for CFNotificationCenter observer and include _CFNotificationObserverIsObjC to fix the bug.

(WebKit::WebProcessPool::registerNotificationObservers):

  • Make use of new addCFNotificationObserver() helper method.
  • Fixes use of static_cast<CFStringRef> to make code ready for ARC by using a bridge cast or removing the static_cast when CFSTR() is used.

(WebKit::WebProcessPool::unregisterNotificationObservers):

  • Make use of new removeCFNotificationObserver() helper method.
  • UIProcess/WebProcessPool.h:
  • Add m_weakObserver instance variable to hold the WKProcessPoolWeakObserver object.

(WebKit::WebProcessPool::addCFNotificationObserver): Add.
(WebKit::WebProcessPool::removeCFNotificationObserver): Add.

  • Add declarations for new helper methods.

(WebKit::WebProcessPool::backlightLevelDidChangeCallback):
(WebKit::WebProcessPool::accessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::colorPreferencesDidChangeCallback):
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):

  • Clean up function parameter list.

Source/WTF:

Tests (API):

TestWTF.TypeCastsNS.checked_ns_cast
TestWTF.TypeCastsNS.dynamic_ns_cast
TestWTF.TypeCastsNS.dynamic_ns_cast_RetainPtr

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • Add new header files to the project.
  • wtf/cocoa/TypeCastsNS.h: Add.

(WTF::checked_ns_cast):
(WTF::dynamic_ns_cast):

  • Add casts for NS objects similar to TypeCastsCF.h.
  • wtf/PlatformHave.h:

(HAVE_NS_DIRECT_SUPPORT): Add.

  • Note that clang for macOS 11 Big Sur claims to know about the attributes, but will fail to compile if they are actually used.
  • wtf/spi/cocoa/NSObjCRuntimeSPI.h: Add.

(NS_DIRECT):
(NS_DIRECT_MEMBERS):

  • Define compiler attributes for direct dispatch of Objective-C methods.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add TypeCastsNS.mm to the project.
  • TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm: Add.

(TestWebKitAPI::TEST): Add tests for <wtf/TypeCastsNS.h>.

4:02 PM Changeset in webkit [282702] by achristensen@apple.com
  • 28 edits
    34 adds in trunk

Addition of CSSTransformValue, CSSTransformComponent & subclasses
https://bugs.webkit.org/show_bug.cgi?id=230284

LayoutTests/imported/w3c:

Reviewed by Alex Christensen.

  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/crashtests/cssTransform-Internal-value-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssMatrixComponent.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPerspective.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRotate.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssScale.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkew.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewX.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewY.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTransformComponent-toMatrix-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTransformComponent-toMatrix-relative-units-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTransformValue-toMatrix-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTransformValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTranslate.tentative-expected.txt:

Source/WebCore:

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-17
Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.h:
  • css/typedom/transform/CSSMatrixComponent.cpp: Added.

(WebCore::CSSMatrixComponent::create):
(WebCore::CSSMatrixComponent::CSSMatrixComponent):
(WebCore::CSSMatrixComponent::toString const):
(WebCore::CSSMatrixComponent::toMatrix):

  • css/typedom/transform/CSSMatrixComponent.h: Added.

(WebCore::CSSMatrixComponent::create):
(WebCore::CSSMatrixComponent::matrix):
(WebCore::CSSMatrixComponent::setMatrix):

  • css/typedom/transform/CSSMatrixComponent.idl: Added.
  • css/typedom/transform/CSSMatrixComponentOptions.h: Added.
  • css/typedom/transform/CSSMatrixComponentOptions.idl: Added.
  • css/typedom/transform/CSSPerspective.cpp: Added.

(WebCore::CSSPerspective::create):
(WebCore::CSSPerspective::CSSPerspective):
(WebCore::CSSPerspective::toString const):
(WebCore::CSSPerspective::toMatrix):

  • css/typedom/transform/CSSPerspective.h: Added.

(WebCore::CSSPerspective::length):
(WebCore::CSSPerspective::setLength):

  • css/typedom/transform/CSSPerspective.idl: Added.
  • css/typedom/transform/CSSRotate.cpp: Added.

(WebCore::CSSRotate::create):
(WebCore::CSSRotate::CSSRotate):
(WebCore::CSSRotate::toString const):
(WebCore::CSSRotate::toMatrix):

  • css/typedom/transform/CSSRotate.h: Added.

(WebCore::CSSRotate::x):
(WebCore::CSSRotate::y):
(WebCore::CSSRotate::z):
(WebCore::CSSRotate::angle):
(WebCore::CSSRotate::setX):
(WebCore::CSSRotate::setY):
(WebCore::CSSRotate::setZ):
(WebCore::CSSRotate::setAngle):

  • css/typedom/transform/CSSRotate.idl: Added.
  • css/typedom/transform/CSSScale.cpp: Added.

(WebCore::CSSScale::create):
(WebCore::CSSScale::CSSScale):
(WebCore::CSSScale::toString const):
(WebCore::CSSScale::toMatrix):

  • css/typedom/transform/CSSScale.h: Added.

(WebCore::CSSScale::x):
(WebCore::CSSScale::y):
(WebCore::CSSScale::z):
(WebCore::CSSScale::setX):
(WebCore::CSSScale::setY):
(WebCore::CSSScale::setZ):

  • css/typedom/transform/CSSScale.idl: Added.
  • css/typedom/transform/CSSSkew.cpp: Added.

(WebCore::CSSSkew::create):
(WebCore::CSSSkew::CSSSkew):
(WebCore::CSSSkew::toString const):
(WebCore::CSSSkew::toMatrix):

  • css/typedom/transform/CSSSkew.h: Added.

(WebCore::CSSSkew::ax):
(WebCore::CSSSkew::ay):
(WebCore::CSSSkew::setAx):
(WebCore::CSSSkew::setAy):

  • css/typedom/transform/CSSSkew.idl: Added.
  • css/typedom/transform/CSSSkewX.cpp: Added.

(WebCore::CSSSkewX::create):
(WebCore::CSSSkewX::CSSSkewX):
(WebCore::CSSSkewX::toString const):
(WebCore::CSSSkewX::toMatrix):

  • css/typedom/transform/CSSSkewX.h: Added.

(WebCore::CSSSkewX::ax):
(WebCore::CSSSkewX::setAx):

  • css/typedom/transform/CSSSkewX.idl: Added.
  • css/typedom/transform/CSSSkewY.cpp: Added.

(WebCore::CSSSkewY::create):
(WebCore::CSSSkewY::CSSSkewY):
(WebCore::CSSSkewY::toString const):
(WebCore::CSSSkewY::toMatrix):

  • css/typedom/transform/CSSSkewY.h: Added.

(WebCore::CSSSkewY::ay):
(WebCore::CSSSkewY::setAy):

  • css/typedom/transform/CSSSkewY.idl: Added.
  • css/typedom/transform/CSSTransformComponent.cpp: Added.

(WebCore::CSSTransformComponent::toString const):
(WebCore::CSSTransformComponent::toMatrix):

  • css/typedom/transform/CSSTransformComponent.h: Added.

(WebCore::CSSTransformComponent::is2D const):
(WebCore::CSSTransformComponent::setIs2D):

  • css/typedom/transform/CSSTransformComponent.idl: Added.
  • css/typedom/transform/CSSTransformValue.cpp: Added.

(WebCore::CSSTransformValue::create):
(WebCore::CSSTransformValue::item):
(WebCore::CSSTransformValue::setItem):
(WebCore::CSSTransformValue::is2D const):
(WebCore::CSSTransformValue::setIs2D):
(WebCore::CSSTransformValue::toMatrix):
(WebCore::CSSTransformValue::CSSTransformValue):

  • css/typedom/transform/CSSTransformValue.h: Added.

(WebCore::CSSTransformValue::length const):
(isType):

  • css/typedom/transform/CSSTransformValue.idl: Added.
  • css/typedom/transform/CSSTranslate.cpp: Added.

(WebCore::CSSTranslate::create):
(WebCore::CSSTranslate::CSSTranslate):
(WebCore::CSSTranslate::toString const):
(WebCore::CSSTranslate::toMatrix):

  • css/typedom/transform/CSSTranslate.h: Added.

(WebCore::CSSTranslate::x):
(WebCore::CSSTranslate::y):
(WebCore::CSSTranslate::z):
(WebCore::CSSTranslate::setX):
(WebCore::CSSTranslate::setY):
(WebCore::CSSTranslate::setZ):

  • css/typedom/transform/CSSTranslate.idl: Added.
3:58 PM Changeset in webkit [282701] by Ross Kirsling
  • 9 edits in trunk/Source/JavaScriptCore

Unreviewed fix for JSCOnly build with ENABLE_DFG_JIT off.

  • b3/testb3_1.cpp:
  • wasm/WasmEntryPlan.cpp:
  • wasm/WasmLLIntPlan.cpp:
  • wasm/WasmOperations.cpp:
  • wasm/WasmSignature.cpp:
  • wasm/WasmSignature.h:
  • wasm/generateWasmOpsHeader.py:
  • wasm/js/JSToWasm.h:
3:58 PM Changeset in webkit [282700] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

http/wpt/fetch/fetch-response-body-stop-in-worker.html crashing on EWS in iOS.
https://bugs.webkit.org/show_bug.cgi?id=225528.

Unreviewed test gardening.

  • platform/ios-14-wk2/TestExpectations:
3:39 PM Changeset in webkit [282699] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Enable UseCGDisplayListsForDOMRendering by default where it is available
https://bugs.webkit.org/show_bug.cgi?id=230387

Reviewed by Dean Jackson.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
2:49 PM Changeset in webkit [282698] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:
2:43 PM Changeset in webkit [282697] by Simon Fraser
  • 16 edits in trunk/Source/WebCore

Make ScrollAnimation a little more generic
https://bugs.webkit.org/show_bug.cgi?id=230385

Reviewed by Tim Horton.

Prepare for new ScrollAnimation subclasses by making it a little more generic. Rather
than the function callbacks, use a virtual client class, implemented by ScrollAnimator
and ScrollingTreeScrollingNodeDelegateNicosia. Remove the generic 'scroll' methods
from the base class, since they only apply to ScrollAnimationSmooth (clients need
to keep derived class pointers, and most already do).

Remove ambiguity around the currentPosition by requiring it for every 'start' call.
Remove ambiguity around setCurrentPosition() by removing it. Clients just call stop().
Remove ambiguity around retargeting by making it explicit.

Do per-axis setup when starting animations, not when creating one, so the animation starts
out stateless.

  • Sources.txt: Build platform/ScrollAnimationKinetic.cpp for macOS, mostly to catch

build errors (it's currently unused).

  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::resetCurrentPosition):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::ensureScrollAnimationKinetic):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::ensureScrollAnimationSmooth):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollAnimationDidUpdate):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollAnimationDidEnd):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollExtentsForAnimation):

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h:
  • platform/ScrollAnimation.h:

(WebCore::ScrollAnimation::ScrollAnimation):
(WebCore::ScrollAnimation::updateScrollExtents):
(WebCore::ScrollAnimation::serviceAnimation):
(WebCore::ScrollAnimation::~ScrollAnimation): Deleted.
(WebCore::ScrollAnimation::scroll): Deleted.
(WebCore::ScrollAnimation::updateVisibleLengths): Deleted.
(WebCore::ScrollAnimation::setCurrentPosition): Deleted.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationKinetic::animationTimerFired):
(WebCore::ScrollAnimationKinetic::start): Deleted.

  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
(WebCore::ScrollAnimationSmooth::startAnimatedScroll):
(WebCore::ScrollAnimationSmooth::startAnimatedScrollToDestination):
(WebCore::ScrollAnimationSmooth::stop):
(WebCore::ScrollAnimationSmooth::updateScrollExtents):
(WebCore::ScrollAnimationSmooth::initializeAxesData):
(WebCore::ScrollAnimationSmooth::animationTimerFired):
(WebCore::ScrollAnimationSmooth::PerAxisData::PerAxisData): Deleted.
(WebCore::ScrollAnimationSmooth::scroll): Deleted.
(WebCore::ScrollAnimationSmooth::updateVisibleLengths): Deleted.
(WebCore::ScrollAnimationSmooth::setCurrentPosition): Deleted.

  • platform/ScrollAnimationSmooth.h: Rename some "time" variables to "duration" for clarity
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator):
(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation):
(WebCore::ScrollAnimator::scrollToPositionWithAnimation):
(WebCore::ScrollAnimator::retargetRunningAnimation):
(WebCore::ScrollAnimator::contentsResized const):
(WebCore::ScrollAnimator::willEndLiveResize):
(WebCore::ScrollAnimator::didAddVerticalScrollbar):
(WebCore::ScrollAnimator::didAddHorizontalScrollbar):
(WebCore::ScrollAnimator::scrollAnimationDidUpdate):
(WebCore::ScrollAnimator::scrollAnimationDidEnd):
(WebCore::ScrollAnimator::scrollExtentsForAnimation):
(): Deleted.
(WebCore::m_keyboardScrollingAnimator): Deleted.

  • platform/ScrollAnimator.h:
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::updatePosition):
(WebCore::ScrollAnimatorGeneric::scrollAnimationDidUpdate):

  • platform/generic/ScrollAnimatorGeneric.h:
2:42 PM Changeset in webkit [282696] by Cameron McCormack
  • 21 edits
    12 adds in trunk

Preserve color space when creating ImageBuffers for ImageBitmaps
https://bugs.webkit.org/show_bug.cgi?id=229022
<rdar://problem/81828459>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image.html: Added.

Source/WebCore:

ImageBitmaps can be created with various sources of image data.
Currently, they always create an sRGB ImageBuffer to copy the
image data into. This patch tries to preserve the color space
of the source image data. Because ImageBuffer only works with 8 bit
RGBA data, other color space models (such as CMYK) get converted
to Display P3 if available, or sRGB otherwise. The rationale for
this is that ImageBitmaps are designed to be drawn into canvases,
and we currently only support sRGB and Display P3 for canvas backing
stores.

It's not ideal that we do the color space conversion, since it would
be better to delay the conversion until it's needed when drawing onto
the canvas. It's also not ideal that we can't preserve the pixel
format of the image data, which might be 16 bit color or floats. We
could support these only if ImageBuffer were extended to support them.
A different design for ImageBitmap where it can hold on to the image
data source directly (and support for structured cloning and worker
thread transferrance added) could also work. For now, we don't worry,
and accept the loss of color fidelity when downsampling or converting
from non-RGB color space models.

Support for structured cloning of ImageBitmaps with non-sRGB data
isn't added, but a test for this is. (This will need a way to
serialize the DestinationColorSpace.)

Tests: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob.html

imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap.html
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData.html
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas.html
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned.html
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneDeserializer::readImageBitmap):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::create):
(WebCore::ImageBitmap::createImageBuffer):
(WebCore::ImageBitmap::resolveWithBlankImageBuffer):
(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):

  • html/ImageBitmap.h:
  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::transferToImageBitmap):
(WebCore::OffscreenCanvas::createImageBuffer const):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::colorSpace):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/DestinationColorSpace.cpp:

(WebCore::DestinationColorSpace::asRGB const): New function that
abstracts out the behavior "tell me whether the color space is
appropriate for use with an 8 bit RGB buffer", which is common
to ImageBitmap and ShareableBitmapCG.

  • platform/graphics/DestinationColorSpace.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::colorSpace):

  • platform/graphics/Image.h:

Source/WebKit:

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::validateConfiguration): Factor out some
loging into DestinationColorSpace::asRGB.

Source/WTF:

  • wtf/PlatformHave.h:

LayoutTests:

  • TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
2:26 PM Changeset in webkit [282695] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for js/dfg-int32array-overflow-values.html.
https://bugs.webkit.org/show_bug.cgi?id=229594.

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:24 PM Changeset in webkit [282694] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ BigSur iOS14 ] http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html (layout-test) is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=225668

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:19 PM Changeset in webkit [282693] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r282011.

This causes GPUProcess main thread hangs on memory pressure

Reverted changeset:

"Fix race in
RemoteRenderingBackend::allowsExitUnderMemoryPressure()"
https://bugs.webkit.org/show_bug.cgi?id=229870
https://commits.webkit.org/r282011

2:12 PM Changeset in webkit [282692] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS MacOS ] http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html is a flakey failure/timeout.
https://bugs.webkit.org/show_bug.cgi?id=230428

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:09 PM Changeset in webkit [282691] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[Mac wk1, Win] http/tests/misc/iframe-reparenting-id-collision.html is a flaky image failure.

https://bugs.webkit.org/show_bug.cgi?id=230427.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
1:39 PM Changeset in webkit [282690] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[MacOS Debug] http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html is a flakey failure.
https://bugs.webkit.org/show_bug.cgi?id=222748

Unreviewed test gardening.

  • platform/mac/TestExpectations: Removed test expectation
1:22 PM Changeset in webkit [282689] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] printing/allowed-breaks.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230425

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:15 PM Changeset in webkit [282688] by Russell Epstein
  • 1 copy in tags/Safari-613.1.2.1

Tag Safari-613.1.2.1.

1:10 PM Changeset in webkit [282687] by Russell Epstein
  • 8 edits in branches/safari-613.1.2-branch/Source

Versioning.

WebKit-7613.1.2.1

1:07 PM Changeset in webkit [282686] by Simon Fraser
  • 26 edits in trunk

Convert usesMockScrollAnimator from a DeprecatedGlobalSettings to a WebPreference
https://bugs.webkit.org/show_bug.cgi?id=230371

Reviewed by Tim Horton.
Source/WebCore:

There were ordering problems that resulted from timing of a test calling
internals.setUsesMockScrollAnimator(true) and the first access of the scrollAnimator(),
which resulted in fast/scrolling/scroll-animator-select-list-events.html failing
when run twice in a row.

Fix by making usesMockScrollAnimator a WebPreference, which means that tests
can use <!-- webkit-test-runner --> options to enable it, which avoids the
ordering dependency.

  • page/DeprecatedGlobalSettings.cpp:

(WebCore::DeprecatedGlobalSettings::setUsesMockScrollAnimator): Deleted.
(WebCore::DeprecatedGlobalSettings::usesMockScrollAnimator): Deleted.

  • page/DeprecatedGlobalSettings.h:
  • page/FrameView.cpp:

(WebCore::FrameView::mockScrollAnimatorEnabled const):
(WebCore::FrameView::usesMockScrollAnimator const): Deleted.

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

(WebCore::ScrollableArea::scrollAnimator const):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::mockScrollAnimatorEnabled const):
(WebCore::ScrollableArea::usesMockScrollAnimator const): Deleted.

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::mockScrollAnimatorEnabled const):
(WebCore::RenderLayerScrollableArea::usesMockScrollAnimator const): Deleted.

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

(WebCore::RenderListBox::mockScrollAnimatorEnabled const):
(WebCore::RenderListBox::usesMockScrollAnimator const): Deleted.

  • rendering/RenderListBox.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUsesMockScrollAnimator): Deleted.

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

Source/WebKitLegacy/win:

Add Windows preferences.

  • WebPreferences.cpp:

(WebPreferences::mockScrollAnimatorEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

Add a MockScrollAnimatorEnabled setting.

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

Convert to use the <!-- webkit-test-runner --> format for specifying MockScrollAnimatorEnabled.

  • fast/scrolling/scroll-animator-basic-events.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html:
  • fast/scrolling/scroll-animator-select-list-events.html:
1:03 PM Changeset in webkit [282685] by Angelos Oikonomopoulos
  • 4 edits in trunk

Unbreak GCC_OFFLINEASM_SOURCE_MAP when LTO is in use
https://bugs.webkit.org/show_bug.cgi?id=230061
<rdar://problem/83166173>

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsCommon.cmake:

Re-enable GCC_OFFLINEASM_SOURCE_MAP.

Source/JavaScriptCore:

Our ASM postprocessing hack is incompatible with
LTO. Unconditionally disable LTO for LowLevelInterpreter.cxx when
GCC_OFFLINEASM_SOURCE_MAP is in use.

  • CMakeLists.txt:
12:28 PM Changeset in webkit [282684] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Add InlineInvalidation::horizontalConstraintChanged
https://bugs.webkit.org/show_bug.cgi?id=230290

Reviewed by Antti Koivisto.

Add the "resize" invalidation codepath. It notifies formatting context about the available horizontal space change.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::invalidateFormattingState):

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

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

  • layout/formattingContexts/inline/invalidation/InlineInvalidation.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::updateFormattingRootGeometry):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):

  • layout/integration/LayoutIntegrationLineLayout.h:
12:08 PM Changeset in webkit [282683] by Russell Epstein
  • 1 edit in branches/safari-612-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp

Unreviewed build fix. rdar://83183884

12:03 PM Changeset in webkit [282682] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/webaudio/the-audio-api/the-audioworklet-interface/context-already-rendering.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=230421

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
12:01 PM Changeset in webkit [282681] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS wk2 iPad] platform/ipad/media/modern-media-controls/media-documents/media-document-video-ios-sizing.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=230419.

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
11:57 AM Changeset in webkit [282680] by commit-queue@webkit.org
  • 4 edits in trunk

REGRESSION(r282220): [GCC] Several flaky crashes on media/track/cue tests
https://bugs.webkit.org/show_bug.cgi?id=230318

Patch by Philippe Normand <pnormand@igalia.com> on 2021-09-17
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The crashes were happening because the text track(s) managed by the media element still had
their client set to the media element being destroyed, so the TextTrack destructor was
looping back to its client, the media element being destroyed. This is particularly an issue
in GCC/Release builds, most likely undefined behavior. The proposed solution is to
explicitely break the link between the media element and the tracks it manages when
destroying the media element. This matches existing code as well in the same destructor
(CDMClient, audio session).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):

LayoutTests:

  • platform/glib/TestExpectations: Unflag tests no longer flaky.
11:57 AM Changeset in webkit [282679] by Russell Epstein
  • 1 edit in branches/safari-612-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp

Unreviewed build fix. rdar://83183884

11:56 AM Changeset in webkit [282678] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION: [ iOS ] 5 TestWebKitAPI.WebpagePreferences.* api tests are flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=229094

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-17
Reviewed by Chris Dumez.

Disable the tests on iOS until we can fix the problem.
This will help EWS be much faster and more reliable.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

11:50 AM Changeset in webkit [282677] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

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

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

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
11:48 AM Changeset in webkit [282676] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/fetch/data-urls/base64.any.worker.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=230418

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:22 AM Changeset in webkit [282675] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Debug & Mac wk2 ] media/video-seek-with-negative-playback.html is a flaky failure..
https://bugs.webkit.org/show_bug.cgi?id=228087

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:15 AM Changeset in webkit [282674] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Speed up run-jsc-stress-tests with parallel processing
https://bugs.webkit.org/show_bug.cgi?id=230251

Patch by Geza Lore <gezalore@gmail.com> on 2021-09-17
Reviewed by Yusuke Suzuki.

Around 2/3 of the time spent in the initial serial processing phase of
run-jsc-stress-tests is simply writing out the many test runner
scripts to disk, which is trivially parallelizable. The change in this
patch forks sub-processes to emit the test runner scripts which makes
the serial startup phase overall about 2.5x faster on my test machine
(47 sec -> 19 sec).

  • Scripts/run-jsc-stress-tests:
11:07 AM Changeset in webkit [282673] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Debug & macOS wk2 ] fast/canvas/canvas-drawImage-detached-leak.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230413

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:03 AM Changeset in webkit [282672] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing after rebaselining.
https://bugs.webkit.org/show_bug.cgi?id=230407

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:53 AM Changeset in webkit [282671] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[Mac iOS] imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230412.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:44 AM Changeset in webkit [282670] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS ] http/tests/media/hls/video-controller-getStartDate.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=230411

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:36 AM Changeset in webkit [282669] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[GPUP] Update AX settings on preference updates
https://bugs.webkit.org/show_bug.cgi?id=230409

Reviewed by Chris Fleizach.

We should update AX settings in the GPUP process on preference updates, like we do in the WebContent process. To address this,
move associated code from the WebProcess class to the AuxiliaryProcess class.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/cocoa/GPUProcessCocoa.mm:

(WebKit::GPUProcess::notifyPreferencesChanged):
(WebKit::GPUProcess::dispatchSimulatedNotificationsForPreferenceChange):

  • Shared/AuxiliaryProcess.h:

(WebKit::AuxiliaryProcess::dispatchSimulatedNotificationsForPreferenceChange):

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::preferenceDidUpdate):
(WebKit::AuxiliaryProcess::handlePreferenceChange):

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

(WebKit::WebProcess::dispatchSimulatedNotificationsForPreferenceChange):
(WebKit::WebProcess::handlePreferenceChange):
(WebKit::WebProcess::notifyPreferencesChanged):
(WebKit::dispatchSimulatedNotificationsForPreferenceChange): Deleted.
(WebKit::handlePreferenceChange): Deleted.

10:27 AM Changeset in webkit [282668] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001.html to include wk1.
https://bugs.webkit.org/show_bug.cgi?id=230327.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:18 AM Changeset in webkit [282667] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Add MIME type and URL to WebCore::Model to allow processing different model types
https://bugs.webkit.org/show_bug.cgi?id=230384

Reviewed by Darin Adler.

Adds MIME type and URL to WebCore::Model to allow processing different model types.
This change does not take advantave of them (and we still only support one type)
but this will allow us to add additional types going forward.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::notifyFinished):

  • platform/graphics/Model.cpp:

(WebCore::Model::create):
(WebCore::Model::Model):
(WebCore::operator<<):

  • platform/graphics/Model.h:

(WebCore::Model::encode const):
(WebCore::Model::decode):

10:15 AM Changeset in webkit [282666] by Chris Dumez
  • 4 edits in trunk

Crash under RemoteMediaPlayerManager::getSupportedTypes()
https://bugs.webkit.org/show_bug.cgi?id=230410

Reviewed by Eric Carlson.

The code would do a null dereference of m_supportedTypesCache if the IPC to the GPUProcess
failed, which could happen in the event of the GPUProcess crash or jetsam.

  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp:

(WebKit::RemoteMediaPlayerMIMETypeCache::addSupportedTypes):
(WebKit::RemoteMediaPlayerMIMETypeCache::isEmpty const):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportedTypes):

  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.h:
10:13 AM Changeset in webkit [282665] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[Mac Catalyst] Fix build issue
https://bugs.webkit.org/show_bug.cgi?id=230373

Reviewed by Darin Adler.

There's an issue with the Mac Catalyst build where LSSessionID is being redefined. Address this by removing the second definition,
and moving the related function into the open source section.

  • pal/spi/cocoa/LaunchServicesSPI.h:
8:58 AM Changeset in webkit [282664] by Justin Michaud
  • 11 edits in trunk/Source/JavaScriptCore

Improve access case printing and show inline capacity for structures
https://bugs.webkit.org/show_bug.cgi?id=230357

Reviewed by Saam Barati.

This just makes the printing of access cases slightly more readable.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::dump const):

  • bytecode/AccessCase.h:

(JSC::AccessCase::dumpImpl const):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::dumpImpl const):

  • bytecode/GetterSetterAccessCase.h:
  • bytecode/InstanceOfAccessCase.cpp:

(JSC::InstanceOfAccessCase::dumpImpl const):

  • bytecode/InstanceOfAccessCase.h:
  • bytecode/ProxyableAccessCase.cpp:

(JSC::ProxyableAccessCase::dumpImpl const):

  • bytecode/ProxyableAccessCase.h:
  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure const):

  • runtime/Structure.cpp:

(JSC::Structure::dump const):

8:56 AM Changeset in webkit [282663] by Justin Michaud
  • 2 edits
    2 adds in trunk

PutByVal and PutPrivateName ICs should emit a write barrier if a butterfly might be allocated
https://bugs.webkit.org/show_bug.cgi?id=230378

Reviewed by Yusuke Suzuki.

Right now, PutByVal and PutPrivateName check the value type to determine
if a write barrier is needed. For example, putting a primitive is considered
to not require a write barrier. This makes sense, except for the case when we
might allocate or re-allocate a butterfly in the IC. This does not emit a write
barrier, and so the GC might miss the new butterfly. That is somewhat undesirable.
This is a temporary conservative fix. If we don't write to the butterfly pointer,
then we still don't need a write barrier; this work is captured by
https://bugs.webkit.org/show_bug.cgi?id=230377

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
8:03 AM Changeset in webkit [282662] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC][Integration] Start using InlineInvalidation to clean runs and lines
https://bugs.webkit.org/show_bug.cgi?id=229294
<rdar://problem/82395169>

Reviewed by Antti Koivisto.

This patch is in preparation for supporting partial line layout.
No change in functionality yet.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::invalidateFormattingState):

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::clearInlineItems):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateStyle):
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):
(WebCore::LayoutIntegration::LineLayout::ensureLineDamage):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange): The initial styleDidChange (when oldStyle is nullptr) does not go through the integration codepath.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

8:01 AM Changeset in webkit [282661] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] Add some useful functions to iterators
https://bugs.webkit.org/show_bug.cgi?id=230398

Reviewed by Alan Bujtas.

For future use.

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::LineIterator::closestRunForLogicalLeftPosition):
(WebCore::LayoutIntegration::PathLine::selectionTopAdjustedForPrecedingBlock const):
(WebCore::LayoutIntegration::PathLine::selectionHeightAdjustedForPrecedingBlock const):
(WebCore::LayoutIntegration::PathLine::firstSelectedBox const):
(WebCore::LayoutIntegration::PathLine::lastSelectedBox const):

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::contentLogicalWidth const):

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:
  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::legacyInlineBox const):
(WebCore::LayoutIntegration::PathRun::legacyInlineBox const):
(WebCore::LayoutIntegration::PathRun::inlineBox const):
(WebCore::LayoutIntegration::PathTextRun::createTextRun const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::createTextRun const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):
(WebCore::LayoutIntegration::RunIteratorModernPath::run const):
(WebCore::LayoutIntegration::RunIteratorModernPath::runs const):
(WebCore::LayoutIntegration::RunIteratorModernPath::legacyInlineBox const): Deleted.

  • rendering/LegacyInlineTextBox.h:
6:41 AM Changeset in webkit [282660] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.32.4

WPE WebKit 2.32.4

6:40 AM Changeset in webkit [282659] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source

wip

6:24 AM Changeset in webkit [282658] by Antti Koivisto
  • 19 edits in trunk/Source/WebCore

[LFC][Integration] Move non-traversal functions from iterator to the dereferenced type
https://bugs.webkit.org/show_bug.cgi?id=230396

Reviewed by Alan Bujtas.

Improve the logic of the iterator interface so the code does not end up as a mixture of . and -> access.
This also makes the dereferenced box/line type more useful in itself.

For example to get a new iterator pointing to the next line:

auto nextLine = line->next();

but to mutate the iterator so it points to the next line:

line.traverseNext();

  • dom/Position.cpp:

(WebCore::Position::upstream const):
(WebCore::Position::downstream const):
(WebCore::Position::rendersInDifferentPosition const):
(WebCore::Position::inlineRunAndOffset const):

  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
(WebCore::RenderedPosition::leftBoundaryOfBidiRun):
(WebCore::RenderedPosition::rightBoundaryOfBidiRun):

  • editing/RenderedPosition.h:

(WebCore::RenderedPosition::line const):

  • editing/VisiblePosition.cpp:

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

  • editing/VisibleUnits.cpp:

(WebCore::startTextOrLineBreakRun):
(WebCore::endTextOrLineBreakRun):
(WebCore::logicallyPreviousRun):
(WebCore::logicallyNextRun):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::LineIterator::LineIterator):
(WebCore::LayoutIntegration::firstLineFor):
(WebCore::LayoutIntegration::lastLineFor):
(WebCore::LayoutIntegration::PathLine::next const):
(WebCore::LayoutIntegration::PathLine::previous const):
(WebCore::LayoutIntegration::PathLine::firstRun const):
(WebCore::LayoutIntegration::PathLine::lastRun const):
(WebCore::LayoutIntegration::PathLine::logicalStartRun const):
(WebCore::LayoutIntegration::PathLine::logicalEndRun const):
(WebCore::LayoutIntegration::PathLine::logicalStartRunWithNode const):
(WebCore::LayoutIntegration::PathLine::logicalEndRunWithNode const):
(WebCore::LayoutIntegration::PathLine::closestRunForPoint const):
(WebCore::LayoutIntegration::PathLine::closestRunForLogicalLeftPosition const):
(WebCore::LayoutIntegration::LineIterator::next const): Deleted.
(WebCore::LayoutIntegration::LineIterator::previous const): Deleted.
(WebCore::LayoutIntegration::LineIterator::firstRun const): Deleted.
(WebCore::LayoutIntegration::LineIterator::lastRun const): Deleted.
(WebCore::LayoutIntegration::LineIterator::logicalStartRun const): Deleted.
(WebCore::LayoutIntegration::LineIterator::logicalEndRun const): Deleted.
(WebCore::LayoutIntegration::LineIterator::logicalStartRunWithNode const): Deleted.
(WebCore::LayoutIntegration::LineIterator::logicalEndRunWithNode const): Deleted.
(WebCore::LayoutIntegration::LineIterator::closestRunForPoint): Deleted.
(WebCore::LayoutIntegration::LineIterator::closestRunForLogicalLeftPosition): Deleted.

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::isFirst const):
(WebCore::LayoutIntegration::LineIterator::isFirst const): Deleted.

  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::RunIterator::RunIterator):
(WebCore::LayoutIntegration::PathRun::nextOnLine const):
(WebCore::LayoutIntegration::PathRun::previousOnLine const):
(WebCore::LayoutIntegration::PathRun::nextOnLineIgnoringLineBreak const):
(WebCore::LayoutIntegration::PathRun::previousOnLineIgnoringLineBreak const):
(WebCore::LayoutIntegration::PathRun::style const):
(WebCore::LayoutIntegration::PathTextRun::nextTextRun const):
(WebCore::LayoutIntegration::PathTextRun::nextTextRunInTextOrder const):
(WebCore::LayoutIntegration::TextRunIterator::TextRunIterator):
(WebCore::LayoutIntegration::RunIterator::nextOnLine const): Deleted.
(WebCore::LayoutIntegration::RunIterator::previousOnLine const): Deleted.
(WebCore::LayoutIntegration::RunIterator::nextOnLineIgnoringLineBreak const): Deleted.
(WebCore::LayoutIntegration::RunIterator::previousOnLineIgnoringLineBreak const): Deleted.
(WebCore::LayoutIntegration::RunIterator::line const): Deleted.

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::TextRunIterator::nextTextRun const): Deleted.
(WebCore::LayoutIntegration::TextRunIterator::nextTextRunInTextOrder const): Deleted.

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForText):
(WebCore::computeCaretRectForLineBreak):
(WebCore::computeCaretRectForBox):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getLeadingCorner const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionGeometries):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionGeometries):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::positionForPoint):

  • rendering/RenderText.cpp:

(WebCore::RenderText::collectSelectionGeometries):
(WebCore::lineDirectionPointFitsInBox):
(WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi):
(WebCore::RenderText::positionForPoint):

  • style/InlineTextBoxStyle.cpp:

(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
(WebCore::computeUnderlineOffset):

5:30 AM Changeset in webkit [282657] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. [GTK] Bump version numbers

  • Source/cmake/OptionsGTK.cmake:
5:21 AM Changeset in webkit [282656] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.33.91

WebKitGTK 2.33.91

5:20 AM Changeset in webkit [282655] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.33.91 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.33.91.
4:02 AM Changeset in webkit [282654] by Lauro Moura
  • 5 edits in trunk/Tools

REGRESSION(r275267) [GLIB] API test /webkit/WebKitWebsiteData/configuration is failing
https://bugs.webkit.org/show_bug.cgi?id=224175

Reviewed by Carlos Garcia Campos.

Some WebsiteData tests rely on checking whether some specific files
are created in the background. Currently, this is done through
waitUntilFileChanged(), which first g_file_query() whether the file
exists before entering a main loop which uses GFileMonitor. While this
worked most of the time, some tests were flaky due to likely the file
being created between the query call and the monitoring starting,
especially after revisions like r275267.

This commit replaces the waitUntilFileChanged calls with an explicit
check loop, like was done for the applicationCache file in the
configuration test.

Also, for the ITP test, there's no need to check for the file to be
deleted, as the ResourceLoadStatistics just clears the database and
recreates the schema, reusing the existing file.

Covered by existing tests.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataConfiguration):
(testWebsiteDataITP):
(testWebsiteDataDOMCache):

  • TestWebKitAPI/glib/TestExpectations.json:
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::assertFileIsCreated):
(WebViewTest::assertJavaScriptBecomesTrue):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
3:33 AM Changeset in webkit [282653] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r281933 - Fix IndexedDoubleStore InlineAccess for 32 bits
https://bugs.webkit.org/show_bug.cgi?id=229772

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-09-02
Reviewed by Caio Araujo Neponoceno de Lima.

In IndexedDoubleStore inline access, the path if the value is NaN
is only being handled in 64 bits, thus introducing some wrong
results in 32 bits. This patch fixes:

stress/double-add-sub-mul-can-produce-nan.js
stress/pow-stable-results.js
stress/math-pow-stable-results.js

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

3:33 AM Changeset in webkit [282652] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r282540 - Fix crash in 32 bits due to not enough scratch registers available
https://bugs.webkit.org/show_bug.cgi?id=230241

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-09-16
Reviewed by Filip Pizlo.

Since patch 229229 (Polymorphic PutByVal) landed, jsc is now reaching
the case Transition in AccessCase::generateImpl which needs three
scratch registers when reallocating, but in ARMv7/MIPS, there are only
two registers available.

So in this patch, AccessCase::createTransition is changed to actually
check if there are enough registers available before creating the
AccessCase object.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

3:33 AM Changeset in webkit [282651] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r282385 - [JSC] ASSERT failed in stress/for-in-tests.js (32bit)
https://bugs.webkit.org/show_bug.cgi?id=229543

Patch by Xan López <Xan Lopez> on 2021-09-14
Reviewed by Yusuke Suzuki.

Since r280760 DFG::SpeculativeJIT::compileEnumeratorGetByVal uses
too many registers for 32bit. Revert to the slow path as a
temporary measure to avoid crashes, we'll try to reenable the
optimizations later on (see bug #230189).

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION): define a generic call
operation for compileEnumeratorGetByVal.

  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp: move the current version of

compileEnumeratorGetByVal to 64bit, since it won't work on 32bit.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): call the generic call op always.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): use the previous version here.

  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH): refactor a bit the slow path
for enumeratorGetByVal so it can be called from DFG as a call
operation.

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::opEnumeratorGetByVal):

3:33 AM Changeset in webkit [282650] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r282336 - [JSC][32bit] in-by-val fails inside for-in loop after delete
https://bugs.webkit.org/show_bug.cgi?id=230150

Patch by Xan López <Xan Lopez> on 2021-09-13
Reviewed by Carlos Garcia Campos.

The order of payload and tag was reversed when constructing the
base value for compileEnumeratorHasProperty.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

3:13 AM Changeset in webkit [282649] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32.4

WebKitGTK 2.32.4

3:12 AM Changeset in webkit [282648] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.4 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.32.4
2:58 AM Changeset in webkit [282647] by Martin Robinson
  • 2 edits in trunk

Add Martin Robinson as a reviewer
https://bugs.webkit.org/show_bug.cgi?id=230392

Unreviewed.

  • metadata/contributors.json: Add myself as a reviewer and update my specializations.
2:15 AM Changeset in webkit [282646] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34

Merge r282065 - [CMake] Prefer python3 over python2
https://bugs.webkit.org/show_bug.cgi?id=229969

Reviewed by Michael Catanzaro.

Use the CMake module FindPython instead of FindPythonInterp.
FindPython looks preferably for version 3 of Python. If not found, then it looks for version 2.

  • Source/cmake/WebKitCommon.cmake:
2:15 AM WebKitGTK/2.34.x edited by Carlos Garcia Campos
(diff)
2:13 AM Changeset in webkit [282645] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/LayoutTests

Unreviewed fix to remove stray conflict markers after r276759

  • platform/glib/TestExpectations: Remove stray conflict markers.
1:41 AM Changeset in webkit [282644] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r282490 - [GTK][WPE] test animations/steps-transform-rendering-updates.html fails
https://bugs.webkit.org/show_bug.cgi?id=230307

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-09-16
Reviewed by Carlos Alberto Lopez Perez.

ThreadedDisplayRefreshMonitor is not setting isScheduled back to false when it's fired. That causes
hasBeenRescheduled to be true and handleDisplayRefreshMonitorUpdate() is called with force repaint option, so we
end up flushing layers on every display refresh update.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:

(WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback):

1:41 AM Changeset in webkit [282643] by Carlos Garcia Campos
  • 59 edits
    5 copies
    6 adds in trunk

[GTK][a11y] Add a build option to enable ATSPI
https://bugs.webkit.org/show_bug.cgi?id=230254

Reviewed by Adrian Perez de Castro.

.:

Add USE_ATSPI build option that disables ATK and enables isolated tree.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Add stubs for ATSPI implementation.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:
  • accessibility/atk/AccessibilityObjectAtk.cpp:
  • accessibility/atk/WebKitAccessible.cpp:
  • accessibility/atk/WebKitAccessible.h:
  • accessibility/atk/WebKitAccessibleHyperlink.cpp:
  • accessibility/atk/WebKitAccessibleHyperlink.h:
  • accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceAction.h:
  • accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceComponent.h:
  • accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceDocument.h:
  • accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
  • accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
  • accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceHypertext.h:
  • accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceImage.h:
  • accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceSelection.h:
  • accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceTable.h:
  • accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceTableCell.h:
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceText.h:
  • accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
  • accessibility/atk/WebKitAccessibleInterfaceValue.h:
  • accessibility/atk/WebKitAccessibleUtil.cpp:
  • accessibility/atk/WebKitAccessibleUtil.h:
  • accessibility/atspi/AXObjectCacheAtspi.cpp: Added.

(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):
(WebCore::AXObjectCache::handleScrolledToAnchor):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::create):
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi):
(WebCore::AccessibilityObject::detachPlatformWrapper):
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment const):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

  • accessibility/atspi/AccessibilityObjectAtspi.h: Added.
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::children):

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/isolatedtree/atspi/AXIsolatedObjectAtspi.cpp: Added.

(WebCore::AXIsolatedObject::initializePlatformProperties):
(WebCore::AXIsolatedObject::attachPlatformWrapper):
(WebCore::AXIsolatedObject::detachPlatformWrapper):

  • editing/FrameSelection.h:
  • editing/atk/FrameSelectionAtk.cpp:
  • editing/atspi/FrameSelectionAtspi.cpp: Added.

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • page/Settings.yaml:

Source/WebKit:

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize): Add ATK ifdef.

  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMain): Disable ATK/GTK accessibility support in the WebProcess when using ATSPI.

Source/WTF:

Enable isolated tree when building with ATSPI.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

Add stubs for WTR accessibility implementation.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isIsolatedObject const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:

(WTR::AccessibilityUIElement::platformUIElement):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp: Added.

(WTR::AccessibilityController::resetToConsistentState):
(WTR::AccessibilityController::accessibleElementById):
(WTR::AccessibilityController::platformName):
(WTR::AccessibilityController::injectAccessibilityPreference):
(WTR::AccessibilityController::rootElement):
(WTR::AccessibilityController::focusedElement):
(WTR::AccessibilityController::addNotificationListener):
(WTR::AccessibilityController::removeNotificationListener):
(WTR::AccessibilityController::updateIsolatedTreeMode):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp: Added.

(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::~AccessibilityUIElement):
(WTR::AccessibilityUIElement::isEqual):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):
(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::AccessibilityUIElement::linkedUIElementAtIndex):
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsElementAtIndex):
(WTR::AccessibilityUIElement::disclosedRowAtIndex):
(WTR::AccessibilityUIElement::rowAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::selectedRowAtIndex):
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::disclosedByRow):
(WTR::AccessibilityUIElement::attributesOfLinkedUIElements):
(WTR::AccessibilityUIElement::attributesOfDocumentLinks):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::uiElementArrayAttributeValue const):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::parameterizedAttributeNames):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::subrole):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::insertionPointLineNumber):
(WTR::AccessibilityUIElement::isPressActionSupported):
(WTR::AccessibilityUIElement::isIncrementActionSupported):
(WTR::AccessibilityUIElement::isDecrementActionSupported):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isSelectedOptionActive const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::isChecked const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::lineForIndex):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::rangeForPosition):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled):
(WTR::AccessibilityUIElement::uiElementCountForSearchPredicate):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):
(WTR::AccessibilityUIElement::selectTextWithCriteria):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfColumns):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):
(WTR::AccessibilityUIElement::indexInTable):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::horizontalScrollbar const):
(WTR::AccessibilityUIElement::verticalScrollbar const):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::showMenu):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChild const):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::clearSelectedChildren const):
(WTR::AccessibilityUIElement::accessibilityValue const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::addNotificationListener):
(WTR::AccessibilityUIElement::removeNotificationListener):
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isVisible const):
(WTR::AccessibilityUIElement::isOffScreen const):
(WTR::AccessibilityUIElement::isCollapsed const):
(WTR::AccessibilityUIElement::isIgnored const):
(WTR::AccessibilityUIElement::isSingleLine const):
(WTR::AccessibilityUIElement::isMultiLine const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::takeFocus):
(WTR::AccessibilityUIElement::takeSelection):
(WTR::AccessibilityUIElement::addSelection):
(WTR::AccessibilityUIElement::removeSelection):
(WTR::AccessibilityUIElement::lineTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::textMarkerRangeForElement):
(WTR::AccessibilityUIElement::textMarkerRangeLength):
(WTR::AccessibilityUIElement::previousTextMarker):
(WTR::AccessibilityUIElement::nextTextMarker):
(WTR::AccessibilityUIElement::stringForTextMarkerRange):
(WTR::AccessibilityUIElement::rectsForTextMarkerRange):
(WTR::AccessibilityUIElement::textMarkerRangeForMarkers):
(WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange):
(WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange):
(WTR::AccessibilityUIElement::endTextMarkerForBounds):
(WTR::AccessibilityUIElement::startTextMarkerForBounds):
(WTR::AccessibilityUIElement::textMarkerForPoint):
(WTR::AccessibilityUIElement::accessibilityElementForTextMarker):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute):
(WTR::AccessibilityUIElement::indexForTextMarker):
(WTR::AccessibilityUIElement::isTextMarkerValid):
(WTR::AccessibilityUIElement::textMarkerForIndex):
(WTR::AccessibilityUIElement::startTextMarker):
(WTR::AccessibilityUIElement::endTextMarker):
(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::AccessibilityUIElement::scrollToMakeVisibleWithSubFocus):
(WTR::AccessibilityUIElement::supportedActions const):
(WTR::AccessibilityUIElement::pathDescription const):
(WTR::AccessibilityUIElement::mathPostscriptsDescription const):
(WTR::AccessibilityUIElement::mathPrescriptsDescription const):
(WTR::AccessibilityUIElement::classList const):
(WTR::AccessibilityUIElement::characterAtOffset):
(WTR::AccessibilityUIElement::wordAtOffset):
(WTR::AccessibilityUIElement::lineAtOffset):
(WTR::AccessibilityUIElement::sentenceAtOffset):
(WTR::AccessibilityUIElement::replaceTextInRange):
(WTR::AccessibilityUIElement::insertText):
(WTR::AccessibilityUIElement::popupValue const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::updateIsolatedTreeMode):

  • WebKitTestRunner/PlatformGTK.cmake:
  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

1:29 AM Changeset in webkit [282642] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r281813 - REGRESSION (r272900): wpt.fyi loading performance is very slow (regressed, and slower than other browsers)
https://bugs.webkit.org/show_bug.cgi?id=229680
<rdar://problem/82541045>

Reviewed by Darin Adler.

The page is inserting new children to shadow host and on each insertion we are traversing the composed
tree to tear down renderers, even though there are none.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):

If the host doesn't have a renderer or 'display:contents' there can't be any renderers left in the subtree.

1:29 AM Changeset in webkit [282641] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r281128 - REGRESSION (r275756): Accelerated animations freeze when invalidating layout with shadow dom
https://bugs.webkit.org/show_bug.cgi?id=228954
<rdar://problem/81750217>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: animations/shadow-host-child-change.html

Tearing down the host renderer after slot assignments change cancels animations on it.

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::didChangeSlot):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderersAfterSlotChange):

Add a version that keeps the animations going on the teardown root.

(WebCore::RenderTreeUpdater::tearDownRenderers):

  • rendering/updating/RenderTreeUpdater.h:

LayoutTests:

Original test by Liam DeBeasi

  • animations/shadow-host-child-change-expected.html: Added.
  • animations/shadow-host-child-change.html: Added.
1:28 AM Changeset in webkit [282640] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r279721 - Shadow host stops rendering after removing a slot, updating style, then its assigned node
https://bugs.webkit.org/show_bug.cgi?id=227652

Reviewed by Alan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/remove-slot-and-host-child.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::didChangeSlot):

When we tear down the render tree we also need to request its rebuild unconditionally.

LayoutTests:

  • fast/shadow-dom/remove-slot-and-host-child-expected.html: Added.
  • fast/shadow-dom/remove-slot-and-host-child.html: Added.
12:46 AM Changeset in webkit [282639] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Replaying WKCGCommandsContext results in a doubly-scaled backing store
https://bugs.webkit.org/show_bug.cgi?id=230386

Reviewed by Wenson Hsieh.

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::create):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):
WKCGCommandsContextCreate() expects the bounds in logical coordinates, so
we don't need to use calculateBackendSize().
This also means that the workaround no longer needs to work around the
missing scale; only the flip is missing.

12:07 AM Changeset in webkit [282638] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Make sure to use event queue when settling RTCPeerConnection.addIceCandidate promise
https://bugs.webkit.org/show_bug.cgi?id=230346

Reviewed by Eric Carlson.

Before the patch, we were resolving the promise in a callOnMainThread lambda.
We now do like for other methods: hop to main thread, then queue a task in event loop to resolve the promise.
Covered by existing tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addIceCandidate):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addIceCandidate):

12:02 AM Changeset in webkit [282637] by youenn@apple.com
  • 7 edits in trunk

Compute RTCPeerConnection.connectionState as per https://w3c.github.io/webrtc-pc/#rtcpeerconnectionstate-enum
https://bugs.webkit.org/show_bug.cgi?id=230341

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:

Source/WebCore:

We should compute connection states according ICE and DTLS transport state, as per spec.
Given we compute the state from ICE and DTLS states, we now make sure to update connection state whenever DTLS state changes.
Make also sure to not fire events in case peer connection is closed, as per spec.

Covered by existing and rebased tests.

  • Modules/mediastream/RTCDtlsTransport.cpp:

(WebCore::RTCDtlsTransport::onStateChanged):

  • Modules/mediastream/RTCIceTransport.h:

(WebCore::RTCIceTransport::connection const):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::computeConnectionState):
(WebCore::RTCPeerConnection::processIceTransportStateChange):

  • Modules/mediastream/RTCPeerConnection.h:

Sep 16, 2021:

11:46 PM Changeset in webkit [282636] by youenn@apple.com
  • 7 edits in trunk/LayoutTests

WPT webrtc RTCPeerConnection-setLocalDescription-offer.html and RTCPeerConnection-setLocalDescription-answer.html are flaky due to always changing failing assertion
https://bugs.webkit.org/show_bug.cgi?id=230302

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Update the test to just check for exception name so that, when failing, the error message stays stable.

  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html:

LayoutTests:

Unflake tests.

11:31 PM Changeset in webkit [282635] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

Make WebProcess use a RefPtr of LibWebRTCNetwork
https://bugs.webkit.org/show_bug.cgi?id=230342

Reviewed by Eric Carlson.

No change of behavior, ref counted object should use RefPtr<>, not unique_ptr.

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::create):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::networksChanged):
(WebKit::WebRTCMonitor::sendOnMainThread): Deleted.

  • WebProcess/Network/webrtc/WebRTCMonitor.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::libWebRTCNetwork):

  • WebProcess/WebProcess.h:
10:32 PM Changeset in webkit [282634] by Cameron McCormack
  • 11 edits
    1 copy
    1 add in trunk

Preserve canvas color space when producing JPEGs from toDataURL/toBlob
https://bugs.webkit.org/show_bug.cgi?id=230209
<rdar://82948457>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.jpeg.p3.canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.jpeg.p3.canvas.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas-expected.txt:
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html:
  • web-platform-tests/html/canvas/tools/yaml/element/color_space.yaml:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.jpeg.p3.canvas.html

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::colorSpaceForBitmap): Return an appropriate color space for
performing any graphics operations on ImageBuffers (such as scaling or
cropping, or compositing on top of solid colors) becore encoding.
(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::copyCGImageForEncoding const):

LayoutTests:

  • TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:15 PM Changeset in webkit [282633] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for Ubuntu LTS/Debian after r282597

  • layout/integration/LayoutIntegrationRunIterator.cpp:
9:18 PM Changeset in webkit [282632] by ddkilzer@apple.com
  • 9 edits
    3 adds in trunk

WebKit::WebProcessPool should use a weak observer with CFNotificationCenter
<https://webkit.org/b/230227>
<rdar://problem/83067708>

Reviewed by Darin Adler.

Source/WebKit:

To fix the bug, implement an Objective-C class named
WKProcessPoolWeakObserver which contains an instance variable
holding a WeakPtr<WebProcessPool>, and tell CFNotificationCenter
to hold a weak reference to WKProcessPoolWeakObserver.

Since WKProcessPoolWeakObserver is self-contained within the
source file, it uses the NS_DIRECT_MEMBERS attribute since it
does not require the overhead of dynamic Objective-C method
dispatch.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(-[WKProcessPoolWeakObserver initWithWeakPtr:]): Add.
(-[WKProcessPoolWeakObserver pool]): Add.

  • Implement WKProcessPoolWeakObserver class.
  • Note that init methods can never be marked as NS_DIRECT, and @property statements can't use NS_DIRECT in their declaration, so the @property is declared in a category which uses NS_DIRECT_MEMBERS.

(WebKit::extractWebProcessPool): Add.

  • Static helper method for extracting RefPtr<WebProcessPool> from type-punned WKProcessPoolWeakObserver.

(WebKit::WebProcessPool::backlightLevelDidChangeCallback):
(WebKit::WebProcessPool::accessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::colorPreferencesDidChangeCallback):
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):

  • Clean up function parameter list.
  • Use extractWebProcessPool() helper method to get a RefPtr<WebProcessPool> from observer.

(WebKit::WebProcessPool::addCFNotificationObserver): Add.
(WebKit::WebProcessPool::removeCFNotificationObserver): Add.

  • Private helper methods to reduce duplicate code.
  • Use m_weakObserver for CFNotificationCenter observer and include _CFNotificationObserverIsObjC to fix the bug.

(WebKit::WebProcessPool::registerNotificationObservers):

  • Make use of new addCFNotificationObserver() helper method.
  • Fixes use of static_cast<CFStringRef> to make code ready for ARC by using a bridge cast or removing the static_cast when CFSTR() is used.

(WebKit::WebProcessPool::unregisterNotificationObservers):

  • Make use of new removeCFNotificationObserver() helper method.
  • UIProcess/WebProcessPool.h:
  • Add m_weakObserver instance variable to hold the WKProcessPoolWeakObserver object.

(WebKit::WebProcessPool::addCFNotificationObserver): Add.
(WebKit::WebProcessPool::removeCFNotificationObserver): Add.

  • Add declarations for new helper methods.

(WebKit::WebProcessPool::backlightLevelDidChangeCallback):
(WebKit::WebProcessPool::accessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::colorPreferencesDidChangeCallback):
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):

  • Clean up function parameter list.

Source/WTF:

Tests (API):

TestWTF.TypeCastsNS.checked_ns_cast
TestWTF.TypeCastsNS.dynamic_ns_cast
TestWTF.TypeCastsNS.dynamic_ns_cast_RetainPtr

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • Add new header files to the project.
  • wtf/cocoa/TypeCastsNS.h: Add.

(WTF::checked_ns_cast):
(WTF::dynamic_ns_cast):

  • Add casts for NS objects similar to TypeCastsCF.h.
  • wtf/PlatformHave.h:

(HAVE_NS_DIRECT_SUPPORT): Add.

  • Note that clang for macOS 11 Big Sur claims to know about the attributes, but will fail to compile if they are actually used.
  • wtf/spi/cocoa/NSObjCRuntimeSPI.h: Add.

(NS_DIRECT):
(NS_DIRECT_MEMBERS):

  • Define compiler attributes for direct dispatch of Objective-C methods.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add TypeCastsNS.mm to the project.
  • TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm: Add.

(TestWebKitAPI::TEST): Add tests for <wtf/TypeCastsNS.h>.

8:12 PM Changeset in webkit [282631] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Regression (r282484): [ Catalina ] 2 imported/w3c/web-platform-tests/content-security-policy/ tests are failing
https://bugs.webkit.org/show_bug.cgi?id=230353

  • platform/mac/TestExpectations:

r282613 was too optimistic. It made bots red. This makes them green again.

7:54 PM Changeset in webkit [282630] by Cameron McCormack
  • 9 edits
    4 adds in trunk

Support patterns with a wide gamut source painting into a display-p3 canvas
https://bugs.webkit.org/show_bug.cgi?id=229023
<rdar://problem/81828466>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Add tests for wide gamut <img> and <canvas> sources for patterns.

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html:
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js:

Source/WebKit:

Patterns are sent to the GPU process using ShareableBitmaps created
from ImageBuffers. Ensure we pass along the pattern source color space
to ShareableBitmap::create.

Tests: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html

imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer):

7:33 PM Changeset in webkit [282629] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Fix some issues with the code paths that call into ScrollAnimator::contentAreaWillPaint()
https://bugs.webkit.org/show_bug.cgi?id=230372

Reviewed by Tim Horton.

ScrollAnimator::contentAreaWillPaint() is a hook used to flash overlay scrollbars in some
situations (e.g. a view becomes newly visible). AppKit wants [m_scrollerImpPair contentAreaWillDraw]
to be called at the equivalent of "viewWillDraw" time, which in WebCore terminology is
the end of the Page rendering update stage.

However, existing WebKitLegacy-only code called notifyPageThatContentAreaWillPaint()
from repaint code paths, including updateControlTints(), which was wrong, and caused
ordering issues in tests between the calls to setUsesMockScrollAnimator(true) and
accessing the scroll animator (see also webkit.org/b/230371).

Fix by calling FrameView::notifyAllFramesThatContentAreaWillPaint() near the end
of Page::doAfterUpdateRendering(), and having it do a correct Frame tree traversal.

  • page/FrameView.cpp:

(WebCore::FrameView::notifyAllFramesThatContentAreaWillPaint const):
(WebCore::FrameView::notifyScrollableAreasThatContentAreaWillPaint const):
(WebCore::FrameView::notifyPageThatContentAreaWillPaint const): Deleted.

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::doAfterUpdateRendering):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::repaintContentRectangle):
(WebCore::ScrollView::paint):
(WebCore::ScrollView::notifyPageThatContentAreaWillPaint const): Deleted.

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

(WebCore::ScrollableArea::contentAreaWillPaint const):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::contentAreaWillPaint const):

7:29 PM Changeset in webkit [282628] by commit-queue@webkit.org
  • 35 edits in trunk

Fixes for build-webkit --minimal
https://bugs.webkit.org/show_bug.cgi?id=229780

Patch by Philip Chimento <pchimento@igalia.com> on 2021-09-16
Reviewed by Fujii Hironori.

.:

Remove ENABLE_RESIZE_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

Covered by existing tests.

Remove ENABLE_RESIZE_OBSERVER build-time option. This option is quite
broken if you try to disable it.

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

(WebCore::Element::~Element):

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

(WebCore::ElementRareData::setResizeObserverData):
(WebCore::ElementRareData::useTypes const):

  • page/Page.cpp:

(WebCore::Page::updateRendering):
(WebCore::operator<<):

  • page/Page.h:
  • page/ResizeObservation.cpp:
  • page/ResizeObservation.h:
  • page/ResizeObserver.cpp:
  • page/ResizeObserver.h:
  • page/ResizeObserver.idl:
  • page/ResizeObserverCallback.h:
  • page/ResizeObserverCallback.idl:
  • page/ResizeObserverEntry.h:
  • page/ResizeObserverEntry.idl:
  • testing/Internals.cpp:

(WebCore::Internals::numberOfResizeObservers const):

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

Source/WTF:

Remove ENABLE_RESIZE_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnableCocoa.h:

Tools:

Remove ENABLE_RESIZE_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • Scripts/webkitperl/FeatureList.pm:
6:59 PM Changeset in webkit [282627] by Kyle Piddington
  • 4 edits in trunk

webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html fails on Intel+AMD Metal
https://bugs.webkit.org/show_bug.cgi?id=229941

Zero-initialize compressed textures explicitly, as they aren't implicitly initalized in Metal.
Reviewed by Kenneth Russell <kbr@chromium.org>.

Source/ThirdParty/ANGLE:

  • src/libANGLE/renderer/metal/mtl_utils.h:
  • src/libANGLE/renderer/metal/mtl_utils.mm:

(rx::mtl::GetCompressedBufferForTextureWithFormat):
(rx::mtl::InitializeCompressedTextureContents):
(rx::mtl::InitializeTextureContents):

LayoutTests:

6:57 PM WebKitGTK/Debugging edited by clopez@igalia.com
(diff)
6:54 PM Changeset in webkit [282626] by Cameron McCormack
  • 19 edits
    31 adds in trunk

Support drawImage with a wide gamut image painting into a display-p3 canvas
https://bugs.webkit.org/show_bug.cgi?id=229021
<rdar://problem/81828450>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Adding a new WPT for drawImage() using images with various embedded
color profiles.

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js: Added.

(pixelsApproximatelyEqual):

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Generic-CMYK-BE000000.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Generic-CMYK-FF000000.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt:

Results changing for an existing test. It's designed to test canvas
with a float16 backing store, which is (at the moment) non-standard,
and unsupported by us. The sub-tests changing from PASS to FAIL are
notable; they are drawing semi-transparent 16 bit wide gamut images
and comparing the results to drawing 8 bit equivalent images. Might
be accuracy issues due to pre-multiplied alpha?

Source/WebCore:

Expose the color space of a NativeImage.

Tests: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html

imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html

  • platform/graphics/NativeImage.h:
  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::NativeImage::colorSpace const):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::NativeImage::colorSpace const):

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::NativeImage::colorSpace const):

Source/WebKit:

ShareableBitmap is used to share image data used by drawImage() calls,
from the Web process to the GPU process. This change makes
ShareableBitmap create a CGBitmap with a color space matching the
source NativeImage, if that is an RGB-based color space, or extended
sRGB otherwise. This allows us to pass Adobe RGB, Display P3, etc.
images to the GPU process without needing to convert color space,
while still allowing for example CMYK JPEGs to be drawn correctly.

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::create):
(WebKit::ShareableBitmap::createShareable):

  • Shared/ShareableBitmap.h:
  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::validateConfiguration):

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::validateConfiguration): Map the requested
color space into one appropriate for the CGBitmap.
(WebKit::colorSpace):

  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::validateConfiguration):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::createShareableBitmapFromNativeImage): Pass in the color
space of the NativeImage.

LayoutTests:

  • TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
6:16 PM Changeset in webkit [282625] by Jonathan Bedard
  • 2 edits in trunk/Tools

Exception in run-webkit-tests: Bad file descriptor (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=229994
<rdar://problem/82826083>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess):
(SimulatorProcess._start): Retry app start if OSError is caught when constructing stdout/stdin/stderr.

6:04 PM Changeset in webkit [282624] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Don't throw an exception in the middle of linking a CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=230367

Reviewed by Yusuke Suzuki.

It's cleaner, and probably more correct, to wait until we're done linking
the instruction stream before throwing any exceptions from CodeBlock::finishCreation.
This guarantees, for example, that all metadata structs are initialized.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::initializeTemplateObjects):

  • bytecode/CodeBlock.h:
  • runtime/JSScope.cpp:

(JSC::abstractAccess):
(JSC::JSScope::abstractResolve):

5:53 PM Changeset in webkit [282623] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.1.6

Tag Safari-613.1.1.6.

5:11 PM Changeset in webkit [282622] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] mark webgl/1.0.x/conformance/extensions/oes-vertex-array-object.html as failing
https://bugs.webkit.org/show_bug.cgi?id=230379

Unreviewed test gardening.

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

  • platform/glib/TestExpectations:
5:11 PM Changeset in webkit [282621] by sbarati@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

Move some profiling to UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=230078
<rdar://problem/82947571>

Reviewed by Yusuke Suzuki.

This patch adds UnlinkedValueProfile and UnlinkedArrayProfile to
UnlinkedCodeBlock. These profiles serialize the data in ValueProfile
and ArrayProfile. Each time a CodeBlock updates value profiles,
it mixes in up to date information from the unlinked profiles, and
also writes back data to the unlinked profiles, so the data is shared
between CodeBlocks of the same UnlinkedCodeBlock.

This patch also fixes a pre-existing bug where we would sometimes think
we had more metadata table entries than we really had in practice. This is
because MetadataTable::forEach used the next opcode's start pointer. That
pointer was aligned to that opcode's metadata alignment. So that might make
the previous opcode think it had an extra 1-7 entries (depending on size,
alignment, etc). This patch fixes that by having the next opcode's start
offset in the table always be the end offset of the previous opcode, and we
align the start pointer when using it.

This was measured as a ~0.5% speedup on Speedometer2.

  • bytecode/ArrayProfile.h:

(JSC::UnlinkedArrayProfile::update):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::updateAllValueProfilePredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllArrayProfilePredictions):
(JSC::CodeBlock::updateAllArrayPredictions):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::metadata):

  • bytecode/CodeBlockInlines.h:

(JSC::CodeBlock::forEachArrayProfile): Deleted.

  • bytecode/MetadataTable.cpp:

(JSC::DeallocTable::withOpcodeType):

  • bytecode/MetadataTable.h:

(JSC::MetadataTable::get):
(JSC::MetadataTable::forEach):
(JSC::MetadataTable::getWithoutAligning):
(JSC::MetadataTable::getImpl): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::allocateSharedProfiles):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::unlinkedValueProfile):
(JSC::UnlinkedCodeBlock::unlinkedArrayProfile):

  • bytecode/UnlinkedCodeBlockGenerator.cpp:

(JSC::UnlinkedCodeBlockGenerator::finalize):

  • bytecode/UnlinkedMetadataTable.cpp:

(JSC::UnlinkedMetadataTable::finalize):

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::isFinalized):
(JSC::UnlinkedMetadataTable::hasMetadata):

  • bytecode/UnlinkedMetadataTableInlines.h:

(JSC::UnlinkedMetadataTable::numEntries):

  • bytecode/ValueProfile.h:

(JSC::UnlinkedValueProfile::update):

  • bytecompiler/BytecodeGenerator.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/CachedTypes.cpp:

(JSC::CachedCodeBlock::numValueProfiles const):
(JSC::CachedCodeBlock::numArrayProfiles const):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedCodeBlock<CodeBlockType>::encode):

5:09 PM Changeset in webkit [282620] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Regression (r282484): [ iOS macOS ] imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=230354

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-16
Reviewed by Chris Dumez.

This test started failing on iOS, and this updates the expectations to make it pass again.
The test is flaky on WK2, but it is already marked as such, to be fixed in webkit.org/b/182341

  • platform/ios-wk2/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
4:42 PM Changeset in webkit [282619] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS EWS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=229831

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
4:38 PM Changeset in webkit [282618] by Ayumi Kojima
  • 4 edits in trunk/LayoutTests

Unreviewed, reverting r282592.

Rebaselined wrong on macOS

Reverted changeset:

"[ MacOS EWS ] imported/w3c/web-platform-
tests/html/dom/idlharness.https.html is flaky failing."
https://bugs.webkit.org/show_bug.cgi?id=229831
https://commits.webkit.org/r282592

4:29 PM Changeset in webkit [282617] by Alan Coon
  • 8 edits in branches/safari-613.1.1-branch/Source

Versioning.

WebKit-7613.1.1.6

4:05 PM Changeset in webkit [282616] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression(r279613) Audit result scope toggles are missing
https://bugs.webkit.org/show_bug.cgi?id=230322

Reviewed by Devin Rousso.

The sizing calculations modified in r279613 were erroneously applied to both the minimum space calculation as
well as the navigation item hiding calculations, despite hiding navigation items never being done for non-sidebar
navigation bars. The logic in WI.NavigationBar.prototype._calculateMinimumWidth remains unchanged, as we still
need sidebars to provide a minimum width that can accommodate all items in a flex layout in order to avoid
flowing navigation items on to another row. The navigation bar in a sidebar is unique in this respect, as other
navigation bars will gracefully hide components if they truly don't have enough space, but a sidebar relies on
getting a minimum size that can actually accommodate all items in a single row.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype.layout.calculateVisibleItemWidth):
(WI.NavigationBar.prototype.layout):

4:05 PM Changeset in webkit [282615] by Wenson Hsieh
  • 5 edits in trunk/Source/WebCore

Throttle a couple of editing-related timers in cases where the user has not interacted with subframes
https://bugs.webkit.org/show_bug.cgi?id=230326

Reviewed by Tim Horton.

This patch (1) delays the firing of a WebCore::Timer that is responsible for notifying the injected bundle about
newly inserted form controls, and (2) limits spellchecking and automatic text replacement to editing contexts in
documents that are either the main document, or have had user interaction or editing.

This gives us a small but measurable performance boost on Speedometer, where the DOM manipulations that occur
during the synchronous script execution phase currently schedule zero-delay WebCore::Timers via these two
codepaths, which then fire right after we begin counting time in the subsequent asynchronous phase, but before
that asynchronous phase has ended. This means that we're effectively penalized during the second async phase,
for timers that are scheduled during the first sync phase.

While most timers that are scheduled simply trigger work that we would've performed anyways when ensuring layout
near the end of the async phase (e.g. zero-delay style recalc timers and layout timers), these two timers -
Editor::m_editorUIUpdateTimer and Document::m_didAssociateFormControlsTimer - cause us to occasionally do
nontrivial work (that we would otherwise not have done) before ending the async phase.

Since these two timers are only used for AutoFill and text checking (respectively), it's likely that we can just
defer and avoid this work in these (relatively) narrow scenarios.

  • dom/Document.cpp:

(WebCore::Document::commonTeardown):

When tearing down the document, additionally avoid triggering the associated form control timer by stopping the
timer and clearing out all the elements in the weak set.

(WebCore::Document::didAssociateFormControl):
(WebCore::Document::didAssociateFormControlsTimerFired):

Extend the delay to a second in the case of non-top-level documents that have not had any form of user
interaction.

  • dom/Document.h:
  • editing/Editor.cpp:

(WebCore::Editor::willApplyEditing):

Right before we're about to apply any edit command, set a bit indicating that the Editor has handled editing.
The editor UI update timer then consults this bit below, when determining whether or not it should schedule any
work.

(WebCore::Editor::respondToChangedSelection):

Additionally avoid repeatedly stopping and restarting m_telephoneNumberDetectionUpdateTimer when the DOM
selection changes, by making it a DeferrableOneShotTimer instead; this allows us to just set a bit on the timer
to reschedule it, instead of having to stop and restart every time.

(WebCore::Editor::willApplyEditing const): Deleted.

  • editing/Editor.h:
4:04 PM Changeset in webkit [282614] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for js/dfg-uint8array.html.
https://bugs.webkit.org/show_bug.cgi?id=229594.

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:01 PM Changeset in webkit [282613] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/LayoutTests

Regression (r282484): [ Catalina ] 2 imported/w3c/web-platform-tests/content-security-policy/ tests are failing
https://bugs.webkit.org/show_bug.cgi?id=230353

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-16
Reviewed by Chris Dumez.

A change unrelated to CSP made some tests fail on some bots. This makes them pass on those bots.

connect-src-eventsource-allowed.sub.html switched from failing everywhere except Catalina to failing only on Catalina because I updated the test expectations.
It also needs iOS test expectations.

form-action-src-blocked.sub.html needs iOS test expectations.

  • platform/ios/imported/w3c/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/content-security-policy/form-action/form-action-src-blocked.sub-expected.txt: Added.
  • platform/mac/TestExpectations:
3:47 PM Changeset in webkit [282612] by Russell Epstein
  • 1 edit in branches/safari-612-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp

Unreviewed build fix. rdar://83183884

3:46 PM Changeset in webkit [282611] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Stringify process termination reason in dispatchProcessDidTerminate logging
https://bugs.webkit.org/show_bug.cgi?id=230361

Reviewed by Geoffrey Garen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::processTerminationReasonToString):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

3:35 PM Changeset in webkit [282610] by Patrick Angle
  • 12 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't maintain a back-forward stack for ContentBrowser/ContentViewContainer when not necessary
https://bugs.webkit.org/show_bug.cgi?id=230286

Reviewed by Devin Rousso.

We currently maintain a back/forward stack for all ContentViewContainers, even if other history entries won't be
used. Instead, subclasses of ContentBrowserTabContentView should be able to disable the history stack, which
helps us ensure that outdated content views are not kept around for these subclasses and their views.

This does not line up one-to-one with views that hide the back/forward buttons, as the back/forward stack is
used in some places to provide a memory of selection across different views, like in the Graphics tab.

  • UserInterface/Views/AuditTabContentView.js:

(WI.AuditTabContentView):

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView):

  • UserInterface/Views/ContentBrowser.js:
  • UserInterface/Views/ContentBrowserTabContentView.js:
  • UserInterface/Views/ContentViewContainer.js:

(WI.ContentViewContainer.prototype.showContentView):
(WI.ContentViewContainer.prototype.replaceContentView):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):

  • UserInterface/Views/GraphicsTabContentView.js:

(WI.GraphicsTabContentView):

  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView):

  • UserInterface/Views/NetworkDetailView.js:

(WI.NetworkDetailView.prototype.initialLayout):

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):

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

ASSERTION FAILED: nsData under DataURLResourceMediaLoader::DataURLResourceMediaLoader()
https://bugs.webkit.org/show_bug.cgi?id=230355
<rdar://82980375>

Reviewed by Eric Carlson.

Port DataURLResourceMediaLoader to use WebKit's DataURLDecoder instead of relying on
NSData to do so. Also, add data url decoding failure handling instead of crashing in
debug with an assertion.

No new tests, covered by existing tests.

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

(WebCore::DataURLResourceMediaLoader::DataURLResourceMediaLoader):

3:28 PM Changeset in webkit [282608] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.2

Tag Safari-613.1.2.

3:23 PM Changeset in webkit [282607] by Patrick Angle
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: FrameDOMTreeContentView may update after it has closed called, causing hangs on some webpages on reload
https://bugs.webkit.org/show_bug.cgi?id=230186

Reviewed by Devin Rousso.

FrameDOMTreeContentView may be closed between a call to _requestRootDOMNode and the response being
provided to _rootDOMNodeAvailable. This can result in an attempt to select a DOM node in an old and detached
DOM tree. To combat this, add a flag to ContentView to mark a closed ContentView as such, and then return
early from _rootDOMNodeAvailable if the ContentView is already closed.

  • UserInterface/Views/ContentView.js:

(WI.ContentView):
(WI.ContentView.prototype.closed):
(WI.ContentView.prototype.get isClosed):

  • UserInterface/Views/FrameDOMTreeContentView.js:

(WI.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):

3:20 PM Changeset in webkit [282606] by Chris Dumez
  • 22 edits in trunk

[ MacOS & iOS ] imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=228089
<rdar://problem/80801807>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline test that is now consistently passing.

  • web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener-expected.txt:

Source/WebCore:

As per the HTML specification, window.close() should schedule a task on the event loop to actually
close the window:

We were failing to do so and this was causing flakiness because event ordering was inconsistent.

This was discussed on upstream WPT here:

No new tests, unskipped existing test.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:10 PM Changeset in webkit [282605] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=230376

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:58 PM Changeset in webkit [282604] by Chris Dumez
  • 23 edits
    1 add
    1 delete in trunk

Add violations reporting support for Cross-Origin-Embedder-Policy
https://bugs.webkit.org/show_bug.cgi?id=230269

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/destination/fetch-destination-iframe.https-expected.txt:

Rebaseline test that is passing now that we support Fetch destination="iframe".

  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https-expected.txt:

Rebaseline test that is passing now that we support reporting for COEP violations.

  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html.sub.headers:

Merge fix from https://github.com/web-platform-tests/wpt/pull/30785 so that the test can run within
the WebKit test infrastructure.

Source/WebCore:

Add support for COEP inheritance violation reporting:

Add support for COEP CORP violation reporting:

Add support for Fetch destination="iframe" because the COEP test relied on it:

No new tests, rebaselined existing tests.

  • Modules/fetch/FetchRequest.idl:
  • loader/CrossOriginEmbedderPolicy.cpp:

(WebCore::contextURLForReport):
(WebCore::sendCOEPPolicyInheritenceViolation):
(WebCore::sendCOEPCORPViolation):

  • loader/CrossOriginEmbedderPolicy.h:
  • loader/CrossOriginOpenerPolicy.cpp:

(WebCore::sendViolationReportWhenNavigatingToCOOPResponse):
(WebCore::sendViolationReportWhenNavigatingAwayFromCOOPResponse):

  • loader/FetchOptions.h:

(WebCore::isNonSubresourceRequest):

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sanitizeURLForReport):
(WebCore::PingLoader::sendReportToEndpoint):

  • loader/PingLoader.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::destinationForType):
(WebCore::CachedResourceLoader::requestResource):

Source/WebKit:

Add support for COEP inheritance violation reporting:

Add support for COEP CORP violation reporting:

Add support for Fetch destination="iframe" because the COEP test relied on it:

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::performCORPCheck):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::resourceLoadInfo):
(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):

  • NetworkProcess/NetworkResourceLoader.h:
  • Scripts/webkit/messages.py:

(headers_for_type):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendCOEPPolicyInheritenceViolation):
(WebKit::WebPage::sendCOEPCORPViolation):

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

LayoutTests:

Unskip test that is now passing.

  • http/wpt/service-workers/no-cors-css-worker.js:

(async doFetch):
Fix existing test now that I added support for Fetch destination="iframe".

2:55 PM Changeset in webkit [282603] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001.html.
https://bugs.webkit.org/show_bug.cgi?id=230327.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:46 PM Changeset in webkit [282602] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/skipFetchEvent.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230374

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:35 PM Changeset in webkit [282601] by Megan Gardner
  • 2 edits in trunk/Tools

Fix TestWebKitAPI.WebKit.AppHighlightsInImageOverlays to work with changing menu states.
https://bugs.webkit.org/show_bug.cgi?id=230363
rdar://82099562

Reviewed by Wenson Hsieh.

The tests assumes that both menu items would be available, but that was changed to be based on the visibility
of the quick note window, so update the test accordingly.

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:

(TEST):

2:07 PM Changeset in webkit [282600] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ BigSur wk2 Release ] 2 fast/canvas/ tests are flaky failing (230366).
<rdar://83207621>

Unreviewed test gardening.

  • platform/ios-15/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:36 PM Changeset in webkit [282599] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 Release ] 2 fast/canvas/ tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=230366

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:49 PM Changeset in webkit [282598] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

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

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

  • platform/glib/fast/table/border-collapsing/cached-change-row-border-width-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-properties-on-the-math-root-expected.txt:
  • platform/gtk/editing/deleting/delete-first-list-item-expected.txt:
  • platform/gtk/editing/inserting/insert-div-022-expected.txt:
  • platform/gtk/editing/pasteboard/3976872-expected.txt:
  • platform/gtk/editing/pasteboard/paste-match-style-001-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
12:19 PM Changeset in webkit [282597] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Move selection gap adjustment code form LegacyRootInlineBox to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=230352

Reviewed by Alan Bujtas.

Move the code out of legacy lineboxes and make it use inline iterators.
Also add selectionState() to the iterators.

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::LineIterator::firstRun const):
(WebCore::LayoutIntegration::LineIterator::lastRun const):
(WebCore::LayoutIntegration::PathLine::firstRun const):
(WebCore::LayoutIntegration::PathLine::lastRun const):
(WebCore::LayoutIntegration::PathLine::selectionState const):

  • layout/integration/LayoutIntegrationLineIterator.h:
  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::PathRun::selectionState const):

  • layout/integration/LayoutIntegrationRunIterator.h:
  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::selectionTopAdjustedForPrecedingBlock const):
(WebCore::blockBeforeWithinSelectionRoot): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustSelectionTopForPrecedingBlock const):

  • rendering/RenderBlockFlow.h:
12:12 PM Changeset in webkit [282596] by Russell Epstein
  • 22 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282239. rdar://problem/83183776

[JSC] Optimize op_get_property_enumerator further
https://bugs.webkit.org/show_bug.cgi?id=230086

Reviewed by Saam Barati.

JSTests:

  • stress/for-in-cell-other.js: Added. (shouldBe): (forIn):
  • stress/for-in-null-undefined.js: Added. (shouldBe): (forIn):

Source/JavaScriptCore:

  1. This patch adds fast path of op_get_property_enumerator to LLInt and Baseline. Previously, we only had this fast path in DFG and FTL.
  2. From the profiled data, Speedometer2/React-Redux-TodoMVC has GetPropertyEnumerator(CellOrOther). However, DFG and FTL only optimized GetPropertyEnumerator(Cell). We add CellOrOther and Other cases: if the argument is Other, then we can constant fold it to the empty enumerator. If the argument is CellOrOther, we can check first, and return empty enumerator for Other case.
  3. This patch also cleans up StructureRareData lookup by introducing StructureType to JSType.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |117.388333 |117.680000 |1.002485 | 0.269607 |
| VueJS-TodoMVC |24.918333 |24.651667 |0.989298 | 0.157665 |
| EmberJS-TodoMVC |126.430000 |126.296667 |0.998945 | 0.673803 |
| BackboneJS-TodoMVC |48.695000 |48.411667 |0.994181 | 0.019164 |
| Preact-TodoMVC |17.268333 |17.511667 |1.014091 | 0.199775 |
| AngularJS-TodoMVC |130.246667 |129.850000 |0.996954 | 0.261543 |
| Vanilla-ES2015-TodoMVC |63.626667 |63.611667 |0.999764 | 0.912112 |
| Inferno-TodoMVC |63.881667 |63.600000 |0.995591 | 0.385440 |
| Flight-TodoMVC |78.158333 |78.606667 |1.005736 | 0.284177 |
| Angular2-TypeScript-TodoMVC |39.448333 |39.411667 |0.999071 | 0.890825 |
| VanillaJS-TodoMVC |50.858333 |51.130000 |1.005342 | 0.195409 |
| jQuery-TodoMVC |225.318333 |226.256667 |1.004164 | 0.011190 |
| EmberJS-Debug-TodoMVC |340.150000 |338.450000 |0.995002 | 0.000063 (significant) |
| React-TodoMVC |85.703333 |85.606667 |0.998872 | 0.549298 |
| React-Redux-TodoMVC |141.985000 |140.418333 |0.988966 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.505000 |61.705000 |1.003252 | 0.079817 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 260.98021
b mean = 261.16020
pValue = 0.4985041089
(Bigger means are better.)
1.001 times better
Results ARE NOT significant

  • bytecode/SpeculatedType.cpp: (JSC::dumpSpeculation):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator): (JSC::DFG::SpeculativeJIT::compileObjectKeysOrObjectGetOwnPropertyNames):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileObjectKeysOrObjectGetOwnPropertyNames): (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::branchIfStructure): (JSC::AssemblyHelpers::branchIfNotStructure):
  • jit/JIT.cpp: (JSC::JIT::privateCompileMainPass):
  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_property_enumerator):
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_property_enumerator):
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/BrandedStructure.cpp: (JSC::BrandedStructure::create):
  • runtime/JSType.cpp: (WTF::printInternal):
  • runtime/JSType.h:
  • runtime/Structure.cpp: (JSC::Structure::Structure): (JSC::Structure::create):
  • runtime/Structure.h: (JSC::Structure::isRareData): (JSC::Structure::isRareData const): Deleted.
  • runtime/StructureInlines.h: (JSC::Structure::create): (JSC::Structure::createStructure):
  • runtime/StructureRareData.h:
  • runtime/VM.cpp: (JSC::VM::VM):

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

12:12 PM Changeset in webkit [282595] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281565. rdar://problem/83207590

Add for-in OwnStructureMode optimizations to LLInt
https://bugs.webkit.org/show_bug.cgi?id=229038

Reviewed by Saam Barati.

This patch adds the optimizations we have for OwnStructureMode in
the Baseline to the LLInt. The patch also adds redundant self move
(i.e. move a, a) elimination to arm64. Finally, a bunch of the
property offset functions are now marked constexpr and return
intptr_t rather than size_t as the values can be negative.

There's also a minor fix to disable MSVC's signed to unsigned
cast warning for LLIntOffsetsExtractor as we don't care about
signedness for extracting constants.

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_enumerator_get_by_val):
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/generate_offset_extractor.rb:
  • runtime/Butterfly.h: (JSC::Butterfly::indexOfPropertyStorage):
  • runtime/JSObject.h: (JSC::offsetInButterfly):
  • runtime/PropertyOffset.h: (JSC::checkOffset): (JSC::validateOffset): (JSC::isValidOffset): (JSC::isInlineOffset): (JSC::isOutOfLineOffset): (JSC::offsetInInlineStorage): (JSC::offsetInOutOfLineStorage): (JSC::offsetInRespectiveStorage): (JSC::numberOfOutOfLineSlotsForMaxOffset): (JSC::numberOfSlotsForMaxOffset): (JSC::offsetForPropertyNumber):

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

12:12 PM Changeset in webkit [282594] by Russell Epstein
  • 12 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281523. rdar://problem/83207590

Add for-in OwnStructureMode optimizations to LLInt
https://bugs.webkit.org/show_bug.cgi?id=229038

Reviewed by Saam Barati.

This patch adds the optimizations we have for OwnStructureMode in
the Baseline to the LLInt. The patch also adds redundant self move
(i.e. move a, a) elimination to arm64. Finally, a bunch of the
property offset functions are now marked constexpr and return
intptr_t rather than size_t as the values can be negative.

There's also a minor fix to disable MSVC's signed to unsigned
cast warning for LLIntOffsetsExtractor as we don't care about
signedness for extracting constants.

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_enumerator_get_by_val):
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/generate_offset_extractor.rb:
  • runtime/Butterfly.h: (JSC::Butterfly::indexOfPropertyStorage):
  • runtime/JSObject.h: (JSC::offsetInButterfly):
  • runtime/PropertyOffset.h: (JSC::checkOffset): (JSC::validateOffset): (JSC::isValidOffset): (JSC::isInlineOffset): (JSC::isOutOfLineOffset): (JSC::offsetInInlineStorage): (JSC::offsetInOutOfLineStorage): (JSC::offsetInRespectiveStorage): (JSC::numberOfOutOfLineSlotsForMaxOffset): (JSC::numberOfSlotsForMaxOffset): (JSC::offsetForPropertyNumber):

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

12:10 PM Changeset in webkit [282593] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/css-custom-paint/out-of-memory-while-adding-worklet-module.html.
https://bugs.webkit.org/show_bug.cgi?id=227273.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:51 AM Changeset in webkit [282592] by Ayumi Kojima
  • 4 edits in trunk/LayoutTests

[ MacOS EWS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229831

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Rebaselined
  • platform/mac-wk2/TestExpectations: Removed expectations
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Rebaselined
11:49 AM Changeset in webkit [282591] by Russell Epstein
  • 10 edits in branches/safari-612-branch/Source

Cherry-pick r282419. rdar://problem/83183884

[macOS] Avoid computing post-layout EditorState data unless necessary
https://bugs.webkit.org/show_bug.cgi?id=230204
<rdar://problem/83078713>

Reviewed by Devin Rousso.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • page/Page.h: (WebCore::Page::isEditable const): Mark this getter const. (WebCore::Page::isEditable): Deleted.

Source/WebKit:

Add a new codepath on macOS that allows us to entirely avoid post-layout EditorState computation in the case
where it's not needed for anything; in particular, unless the text touch bar may be presented or the UI delegate
implements the -webView:didChangeFontAttributes: method, the post-layout portion of EditorState is not needed
at all.

See below for more details.

  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • Shared/WebPageCreationParameters.h:

Plumb a bit indicating whether user interaction is required in order to show the text touch bar. See
WebPage::shouldAvoidComputingPostLayoutDataForEditorState below for more details.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::editorState const): (WebKit::WebPage::updateEditorStateAfterLayoutIfEditabilityChanged):

When computing EditorState.isContentEditable, use VisibleSelection's hasEditableStyle method instead of
isContentEditable. Unlike the latter, the former does not trigger style resolution.

(WebKit::WebPage::didStartPageTransition):

Make a slight adjustment to only set the m_hasEverFocusedElementDueToUserInteractionSincePageTransition bit if
the user is actually interacting with text form control or editable element. This allows us to still avoid
computing post-layout editor state data in cases where the user has clicked on non-editable elements on the
page, such that text editing controls in the touch bar are still not being shown.

(WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition):
(WebKit::WebPage::sendEditorStateUpdate):

Don't bother scheduling another post-layout EditorState in the case where post-layout data is missing, but we're
avoiding post-layout data computation altogether due to shouldAvoidComputingPostLayoutDataForEditorState
returning true.

  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::requiresPostLayoutDataForEditorState const): (WebKit::WebPage::shouldAvoidComputingPostLayoutDataForEditorState const): (WebKit::WebPage::platformNeedsLayoutForEditorState const): Deleted.

Rename this to requiresPostLayoutDataForEditorState, to avoid some confusion with the new method,
shouldAvoidComputingPostLayoutDataForEditorState. The former is a way for platforms to indicate that post-
layout data *must* be included, even if layout is not up to date yet upon computing the EditorState. The latter
is a way for platforms to indicate that we can completely avoid all post-layout editor state computation,
regardless of whether or not layout is up to date.

By default, if both of the above methods return false, we compute and include post-layout data only if layout
is up-to-date when computing the EditorState, and schedule a subsequent "full" EditorState update after the
next rendering update in the case where layout was *not* up-to-date already (indicated by the EditorState's
isMissingPostLayoutData flag).

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::requiresPostLayoutDataForEditorState const): (WebKit::WebPage::platformNeedsLayoutForEditorState const): Deleted.
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::shouldAvoidComputingPostLayoutDataForEditorState const):

Only return true here if the user interaction requirements for showing text editing controls on the touch bar
have not been met, and the UI delegate method for observing font attributes is also not implemented by the
client.

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

11:49 AM Changeset in webkit [282590] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r282262. rdar://problem/83183871

The document.fonts accessor should not update style
https://bugs.webkit.org/show_bug.cgi?id=229850

Reviewed by Antti Koivisto.

For example, when content says "document.fonts.has(...)", the ".has(...)" part
needs to update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.has(...) ... <=== This needs to reflect the style changes.

The child bugs of this bug migrate the updateStyle() calls into the specific
operations on the FontFaceSet, so now it's okay stop updating style in the
accessor.

Test: PerformanceTests/CSS/FontFaceSetUpdateStyle.html

  • dom/Document.cpp: (WebCore::Document::fonts):

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

11:49 AM Changeset in webkit [282589] by Russell Epstein
  • 4 edits in branches/safari-612-branch/LayoutTests

Cherry-pick r282163. rdar://problem/83184019

fast/text/FontFaceSet-status-after-style-update.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=229975

Unreviewed.

internals.clearMemoryCache() only works for fonts if you put it before the @font-face block.

  • TestExpectations:
  • fast/text/FontFaceSet-check-after-style-update.html:
  • fast/text/FontFaceSet-status-after-style-update.html:

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

11:49 AM Changeset in webkit [282588] by Russell Epstein
  • 3 edits in branches/safari-612-branch/LayoutTests

Cherry-pick r282071. rdar://problem/83184019

[GTK][WPE] Gardening of two flaky tests and timeout.

Unreviewed test gardening.

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

11:49 AM Changeset in webkit [282587] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r282049. rdar://problem/83183765

Remove unnecessary uses of Ref protect = m_backing from FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=229911

Reviewed by Anders Carlsson.

The only callers of these are from JS. So, JS will maintain a ref to
the FontFaceSet, and the FontFaceSet will maintain a ref to its
CSSFontFaceSet. So it doesn't need to be protected.

No new tests because there is no behavior change.

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::size): (WebCore::FontFaceSet::check): (WebCore::FontFaceSet::status const):

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

11:49 AM Changeset in webkit [282586] by Russell Epstein
  • 4 edits
    3 adds in branches/safari-612-branch

Cherry-pick r282017. rdar://problem/83183644

@font-face rules accessed over file: urls to a file which does not exist are not visible to document.fonts
https://bugs.webkit.org/show_bug.cgi?id=229639

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/nonexistent-file-url-expected.txt:

Source/WebCore:

Because all the sources were failed, we were marking the whole CSSFontFace as failed, and then
not adding it to the CSSFontFaceSource. Unfortunately, this optimization is observable, so we
can't do it.

Tests: fast/text/font-file-failed.html

imported/w3c/web-platform-tests/css/css-font-loading/nonexistent-file-url.html

  • css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::addFontFaceRule):

LayoutTests:

Keep a local copy of these tests, because WPT tests don't run from file: URLs, but layout tests do.
The behavior is different depending on the scheme of the main page.

  • fast/text/font-file-failed-expected.txt: Added.
  • fast/text/font-file-failed.html: Added.

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

11:49 AM Changeset in webkit [282585] by Russell Epstein
  • 4 edits
    1 add in branches/safari-612-branch

Cherry-pick r281975. rdar://problem/83183224

The CSS Font Loading API shouldn't be able to delete a CSS-connected font
https://bugs.webkit.org/show_bug.cgi?id=229640

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-delete
"1. If font is CSS-connected, return false and exit this algorithm immediately."

Tests: web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected.html

web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-2.html

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::remove):

LayoutTests:

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

11:49 AM Changeset in webkit [282584] by Russell Epstein
  • 7 edits
    1 add in branches/safari-612-branch

Cherry-pick r281951. rdar://problem/83183268

FontFaceSet.add() needs to throw when called on a CSS-connected font
https://bugs.webkit.org/show_bug.cgi?id=229641

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-add
"2. If font is CSS-connected, throw an InvalidModificationError exception and exit this algorithm immediately."

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected.html

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::add): Deleted.
  • css/FontFaceSet.h:

LayoutTests:

  • fast/text/font-face-set-document-expected.txt:
  • fast/text/font-face-set-document.html:

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

11:49 AM Changeset in webkit [282583] by Russell Epstein
  • 11 edits
    1 add in branches/safari-612-branch

Cherry-pick r281845. rdar://problem/83183887

document.fonts.size needs to update style so it doesn't return stale values
https://bugs.webkit.org/show_bug.cgi?id=229644

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change-expected.txt:

Source/WebCore:

Currently, we only update style inside the document::fonts() call.
This isn't correct because content can save the results of document.fonts,
do some work, then ask for its size.

Test: web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change.html

  • css/CSSFontFace.cpp: (WebCore::CSSFontFace::updateStyleIfNeeded):
  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp: (WebCore::CSSFontFaceSet::updateStyleIfNeeded):
  • css/CSSFontFaceSet.h:
  • css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::updateStyleIfNeeded): (WebCore::CSSFontSelector::fontStyleUpdateNeeded): Deleted.
  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::size): (WebCore::FontFaceSet::size const): Deleted.
  • css/FontFaceSet.h:
  • dom/Document.cpp: (WebCore::Document::fonts):

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

11:48 AM Changeset in webkit [282582] by Russell Epstein
  • 5 edits
    1 add in branches/safari-612-branch

Cherry-pick r281842. rdar://problem/83183953

CSSFontFaceSet.clear() should not clear CSS-connected members
https://bugs.webkit.org/show_bug.cgi?id=229643

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt:

Source/WebCore:

The spec https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-clear says:

Remove all non-CSS-connected items

  • css/CSSFontFaceSet.h:
  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::clear):

LayoutTests:

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

11:48 AM Changeset in webkit [282581] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282468. rdar://problem/83183967

[JSC] Optimize leaf object creation in JSON.parse
https://bugs.webkit.org/show_bug.cgi?id=230298

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/json-parse-leaf-object.js: Added.

Source/JavaScriptCore:

This patch optimizes JSON.parse.

  1. Use table in isJSONWhiteSpace.
  2. Extract primitive value creation as parsePrimitiveValue function to use it in different place.
  3. Add leaf-object creation fast path. Previously, when creating a leaf-object from JSON.parse we are too generic and jumping around the code. Instead we add a fast path that does not perform unnecessary operations and code gets tight.

It offers 3-4% improvement in microbenchmarks.

ToT Patched

vanilla-es2015-babel-webpack-todomvc-json-parse

104.7169+-0.1113 101.4836+-0.2168 definitely 1.0319x faster

flight-todomvc-json-parse 53.9074+-0.0957 52.1347+-0.0802 definitely 1.0340x faster
vanilla-es2015-todomvc-json-parse 104.9373+-0.1631 101.4978+-0.1073 definitely 1.0339x faster
vanilla-todomvc-json-parse 79.1330+-0.0963 76.7568+-0.1606 definitely 1.0310x faster

This offers 0.2% improvement in Speedometer2.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |116.860000 |116.825000 |0.999700 | 0.901070 |
| VueJS-TodoMVC |24.658333 |24.763333 |1.004258 | 0.571728 |
| EmberJS-TodoMVC |126.666667 |126.335000 |0.997382 | 0.289517 |
| BackboneJS-TodoMVC |48.435000 |48.523333 |1.001824 | 0.455638 |
| Preact-TodoMVC |17.585000 |17.368333 |0.987679 | 0.247658 |
| AngularJS-TodoMVC |129.576667 |129.398333 |0.998624 | 0.625634 |
| Vanilla-ES2015-TodoMVC |62.746667 |62.241667 |0.991952 | 0.000019 (significant) |
| Inferno-TodoMVC |63.741667 |63.495000 |0.996130 | 0.448861 |
| Flight-TodoMVC |78.021667 |77.306667 |0.990836 | 0.087137 |
| Angular2-TypeScript-TodoMVC |39.823333 |39.923333 |1.002511 | 0.736279 |
| VanillaJS-TodoMVC |50.073333 |49.791667 |0.994375 | 0.136495 |
| jQuery-TodoMVC |221.300000 |221.586667 |1.001295 | 0.418008 |
| EmberJS-Debug-TodoMVC |340.145000 |339.965000 |0.999471 | 0.691490 |
| React-TodoMVC |85.698333 |85.650000 |0.999436 | 0.761586 |
| React-Redux-TodoMVC |140.510000 |140.785000 |1.001957 | 0.285922 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |60.928333 |60.500000 |0.992970 | 0.000069 (significant) |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 262.15844
b mean = 262.72261
pValue = 0.0428052487
(Bigger means are better.)
1.002 times better
Results ARE significant

  • runtime/LiteralParser.cpp: (JSC::LiteralParser<CharType>::makeIdentifier): (JSC::isJSONWhiteSpace): (JSC::LiteralParser<CharType>::Lexer::lex): (JSC::LiteralParser<CharType>::parsePrimitiveValue): (JSC::LiteralParser<CharType>::parse):
  • runtime/LiteralParser.h:

LayoutTests:

  • js/dom/JSON-parse-expected.txt:

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

11:48 AM Changeset in webkit [282580] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r282390. rdar://problem/83183334

Don't schedule text rendering updates for a non-rendered Document
https://bugs.webkit.org/show_bug.cgi?id=230246
rdar://81905586

Reviewed by Anders Carlsson.

Memory use could grow without limit as these updates would not get cleared until
the document was destroyed.

No test, hard to make a reasonable regression test as the memory growth is not extreme.

  • dom/Document.cpp: (WebCore::Document::updateTextRenderer):

Bail out if the Document has no render tree.

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

11:48 AM Changeset in webkit [282579] by Russell Epstein
  • 9 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r282375. rdar://problem/83183884

Refactor -[WKWebViewConfiguration _setRequiresUserActionForEditingControlsManager:] to use API::PageConfiguration
https://bugs.webkit.org/show_bug.cgi?id=230238
rdar://83078713

Reviewed by Tim Horton.

Move the _requiresUserActionForEditingControlsManager bit out of WebViewImpl and into API::PageConfiguration.
This makes it easier to introduce state in WebPage that keeps track of whether or not user action is required
for showing text editing controls on the touch bar, since we can fetch the (unchanging) state off of
API::PageConfiguration, and propagate it to the web process via WebPageCreationParameters.

No change in behavior.

  • UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::copy const):
  • UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::requiresUserActionForEditingControlsManager const): (API::PageConfiguration::setRequiresUserActionForEditingControlsManager):
  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]):
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _requiresUserActionForEditingControlsManager]): (-[WKWebViewConfiguration _setRequiresUserActionForEditingControlsManager:]):

Call into API::PageConfiguration instead.

  • UIProcess/API/mac/WKView.mm: (-[WKView _requiresUserActionForEditingControlsManager]): Deleted. (-[WKView _setRequiresUserActionForEditingControlsManager:]): Deleted.

Additionally delete this private method on WKView, which was only used by Safari on macOS, back before Safari
used WKWebView. There are currently no internal clients of this SPI method.

  • UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::setRequiresUserActionForEditingControlsManager): Deleted. (WebKit::WebViewImpl::requiresUserActionForEditingControlsManager const): Deleted.
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::requiresUserActionForEditingControlsManager const):

Turn this into a helper method that just asks the API::PageConfiguration.

(WebKit::WebViewImpl::updateTouchBar):

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

11:48 AM Changeset in webkit [282578] by Russell Epstein
  • 12 edits in branches/safari-612-branch

Cherry-pick r282370. rdar://problem/83183884

[macOS] -toggleAutomaticSpellingCorrection: menu item validation shouldn't require post-layout editor state
https://bugs.webkit.org/show_bug.cgi?id=230205

Reviewed by Darin Adler.

Source/WebCore:

See WebKit ChangeLog for more details.

  • editing/AlternativeTextController.cpp: (WebCore::AlternativeTextController::canEnableAutomaticSpellingCorrection const):

Slightly improve the performance of this method in the case where we're focusing a text field, by only
consulting the host form control element, rather than both the form control and the contenteditable shadow root
element.

Source/WebKit:

In preparation for https://webkit.org/b/230204, refactor code on macOS that determines whether or not the
"Correct Spelling Automatically" menu bar item should be enabled, such that it doesn't require post-layout
editor state data. This is requisite to avoiding post-layout editor state computation altogether on macOS, when
the touch bar is either unavailable, or hasn't ever been shown in the context of text editing. See below for
more details.

We also take this opportunity to remove support for the unused _WKSelectionAttributeAtStartOfSentence SPI value
in _WKSelectionAttributes, which was originally intended for use in Mail compose in WebKit2 but seems to have
been obviated by the ability to swipe horizontally on the custom input accessory view in Mail compose to switch
between text candidates and the text formatting options.

  • Shared/EditorState.cpp: (WebKit::EditorState::encode const): (WebKit::EditorState::decode): (WebKit::EditorState::PostLayoutData::encode const): (WebKit::EditorState::PostLayoutData::decode): (WebKit::operator<<):

Remove the atStartOfSentence bit on EditorState's post-layout data that was only used to implement the
_WKSelectionAttributeAtStartOfSentence SPI flag value, and also move the canEnableAutomaticSpellingCorrection
bit out of post-layout data, and into the EditorState struct. Importantly, computing this bit does not require
or trigger layout, and this refactoring will allow us to completely forgo post-layout data on configurations
that do not require it (i.e. when the text touch bar is not active).

  • Shared/EditorState.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (selectionAttributes):
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Remove an unused value, _WKSelectionAttributeAtStartOfSentence, in the _WKSelectionAttributes SPI flag.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::validateUserInterfaceItem):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPlatformEditorState const):
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getPlatformEditorState const):

Tools:

See WebKit ChangeLog for more details.

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

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

11:48 AM Changeset in webkit [282577] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r282349. rdar://problem/83183743

Followup to r282320 - avoid a potential memory leak
https://bugs.webkit.org/show_bug.cgi?id=230187
<rdar://problem/81436658>

Patch by Wenson Hsieh <Wenson Hsieh> on 2021-09-13
Reviewed by Myles C. Maxfield.

Use adoptCF to prevent leaking the last resort font descriptor.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: (IPC::createCTFont):

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

11:48 AM Changeset in webkit [282576] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282320. rdar://problem/83183743

[Cocoa] Drawing the rounded system ui font into canvas causes a crash
https://bugs.webkit.org/show_bug.cgi?id=230187
<rdar://problem/81436658>

Reviewed by Wenson Hsieh.

Source/WebKit:

It turns out that r281792 didn't do the right thing. It was trying to differentiate between
system fonts and installed fonts by looking at various values in the font's attribute dictionary.
However, the right way to do this is to treat the dictionary as opaque, and let
kCTFontOptionsSystemUIFont do the heavy lifting to make sure the font round-trips properly.

Test: fast/text/canvas-fonts.html

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: (IPC::createCTFont): (IPC::findFontDescriptor):

LayoutTests:

  • fast/text/canvas-fonts-expected.txt: Added.
  • fast/text/canvas-fonts.html: Added.

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

11:48 AM Changeset in webkit [282575] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282261. rdar://problem/83183323

FontFaceSet.load() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=230132

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This test is being upstreamed in https://github.com/web-platform-tests/wpt/pull/30491

  • web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html: Added.

Source/WebCore:

If content does something like
let fonts = document.fonts;
... modify style sheets ...
fonts.load(...)

The load() function needs to see the result of hte style sheet modification.

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::load):

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

11:48 AM Changeset in webkit [282574] by Russell Epstein
  • 7 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r282252. rdar://problem/83184010

Preconnected socket is sometimes not used for initial request
https://bugs.webkit.org/show_bug.cgi?id=229686

Reviewed by Alex Christensen.

In the previous release, we preconnected to the main resource origin early in page load from
UIProcess to save ~10-15 ms per page load (https://bugs.webkit.org/show_bug.cgi?id=204992).
The savings comes from the fact that there's some latency in initiating the request in
WebProcess and waiting for the nav delegate reply in UIProcess. We hide that latency by
having the eventual main resource request reuse the early preconnected socket.

However, this optimization doesn't work for connections to known HTTP/1.1 origins due to
CFNetwork's in-memory cache of known HTTP/1.1 origins. If an origin is in this cache, and
a preconnect is still in flight, then the network stack will go wide immediately and issue
the main resource request on a new socket rather than trying to wait for the preconnect to
finish and reuse the preconnected socket. Thus the preconneted socket just goes to waste.
This can also cause issues with single-threaded web servers that serve only one request at
a time, as the main resource request can get head-of-line blocked by the preconnect that
is wasted.

To work around this, this patch tracks a small number of known HTTP/1.1 origins in memory.
If there is a pending preconnect to an HTTP/1.1 origin and a main resource request to that
origin comes in, then we block the request from going out until the preconnect finishes.
This allows the main resource request to utilize the preconnected socket.

This is worth ~1.25%-2.5% on PLT5 depending on device.

  • NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didCompleteWithError):
  • NetworkProcess/NetworkLoadScheduler.cpp: (WebKit::NetworkLoadScheduler::schedule): (WebKit::NetworkLoadScheduler::unschedule): (WebKit::NetworkLoadScheduler::scheduleLoad): (WebKit::NetworkLoadScheduler::unscheduleLoad): (WebKit::NetworkLoadScheduler::scheduleMainResourceLoad): (WebKit::NetworkLoadScheduler::unscheduleMainResourceLoad): (WebKit::NetworkLoadScheduler::startedPreconnectForMainResource): (WebKit::NetworkLoadScheduler::finishedPreconnectForMainResource): (WebKit::NetworkLoadScheduler::maybePrunePreconnectInfo): (WebKit::NetworkLoadScheduler::isOriginHTTP1X): (WebKit::NetworkLoadScheduler::updateOriginProtocolInfo):
  • NetworkProcess/NetworkLoadScheduler.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::preconnectTo):
  • NetworkProcess/PreconnectTask.cpp: (WebKit::PreconnectTask::PreconnectTask): (WebKit::PreconnectTask::setTimeout): (WebKit::PreconnectTask::start):
  • NetworkProcess/PreconnectTask.h:

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

11:48 AM Changeset in webkit [282573] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282204. rdar://problem/83183703

FontFaceSet.has() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229848

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This test was landed upstream in https://github.com/web-platform-tests/wpt/pull/30322

  • web-platform-tests/css/css-font-loading/fontfaceset-has-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-has.html: Added.

Source/WebCore:

When content says "document.fonts.has(...)", the ".has(...)" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.has(...) ... <=== This needs to reflect the style changes.

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-has.html

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::has const):

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

11:48 AM Changeset in webkit [282572] by Russell Epstein
  • 1 edit
    1 add in branches/safari-612-branch/PerformanceTests

Cherry-pick r282111. rdar://problem/83183795

Add a PerformanceTest for some common FontFaceSet style update operations
https://bugs.webkit.org/show_bug.cgi?id=229913

Reviewed by Stephanie Lewis.

This is similar to some of the operations we've seen in the wild.
We want to make sure we can do these fast.

  • CSS/FontFaceSetUpdateStyle.html: Added.

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

11:48 AM Changeset in webkit [282571] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282016. rdar://problem/83183608

FontFaceSet.check() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229844

Reviewed by Sam Weinig.

Source/WebCore:

When content says "document.fonts.check(...)", the ".check(...)" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.check(...) ... <=== This needs to reflect the style changes.

Test: fast/text/FontFaceSet-check-after-style-update.html

  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • css/CSSFontFaceSet.cpp: (WebCore::CSSFontFaceSet::check):
  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::check):

LayoutTests:

This can't be a WPT test because it requires internals.invalidateFontCache().

  • fast/text/FontFaceSet-check-after-style-update-expected.txt: Added.
  • fast/text/FontFaceSet-check-after-style-update.html: Added.

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

11:48 AM Changeset in webkit [282570] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r282015. rdar://problem/83183864

FontFaceSet.status needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229839

Reviewed by Sam Weinig.

Source/WebCore:

When content says "document.fonts.status", the ".status" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.status ... <=== This needs to reflect the style changes.

Test: fast/text/FontFaceSet-status-after-style-update.html

  • css/FontFaceSet.cpp: (WebCore::FontFaceSet::status const):

LayoutTests:

This is not a WPT test because it requires internals.invalidateFontCache().

  • fast/text/FontFaceSet-status-after-style-update-expected.txt: Added.
  • fast/text/FontFaceSet-status-after-style-update.html: Added.

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

11:48 AM Changeset in webkit [282569] by Russell Epstein
  • 9 edits in branches/safari-612-branch/Source

Cherry-pick r281544. rdar://problem/83183832

Refactor ENABLE(JIT_OPERATION_VALIDATION) code to emit no code when disabled.
https://bugs.webkit.org/show_bug.cgi?id=229482
rdar://82318317

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/JITOperationList.cpp: (JSC::addPointers): (JSC::JITOperationList::populatePointersInJavaScriptCore): (JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt): (JSC::JITOperationList::populatePointersInEmbedder):
  • assembler/JITOperationList.h: (JSC::JITOperationList::map const): (JSC::JITOperationList::assertIsJITOperation): (JSC::JITOperationList::initialize): (JSC::JITOperationList::populatePointersInJavaScriptCore): (JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
  • runtime/JSCPtrTag.h: (JSC::tagJSCCodePtrImpl): (JSC::untagJSCCodePtrImpl):

Source/WebCore:

  • bindings/js/WebCoreJITOperations.cpp: (WebCore::populateJITOperations):
  • bindings/js/WebCoreJITOperations.h: (WebCore::populateJITOperations):
  • testing/js/WebCoreTestSupport.cpp: (WebCoreTestSupport::populateJITOperations):
  • testing/js/WebCoreTestSupport.h: (WebCoreTestSupport::populateJITOperations):

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

11:48 AM Changeset in webkit [282568] by Russell Epstein
  • 5 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r281541. rdar://problem/83183498

[Re-landing] Add some offlineasm enhancements.
https://bugs.webkit.org/show_bug.cgi?id=229332
rdar://82163923

Reviewed by Keith Miller.

  1. Enhance "include" offlineasm Instruction to always attempt to include an asm file from <build-products>/usr/local/include/WebKitAdditions/ first. If the specified file is not available there, then it will attempt to include the file from the same directory as the current source file (which in practice, means Source/JavaScriptCore/llint/).
  1. Enhance "include" offlineasm Instruction to allow an optional file to be included if it exists. For example, the following offlineasm code:

include? LowLevelInterpreterAdditions

... will attempt to include a file LowLevelInterpreterAdditions.asm. If the
file does not exist, this will be a no-op. Note: the "?" after the "include"
means the include is optional.

  1. Enhanced "emit" offlineasm Instruction to be able to take more than one operand.

"emit" used to just copy the string operand that follows into the generated
LLIntAssembly.h. Now, "emit" can take multiple comma separated operands, and
will concatenate all the operands.

Additionally, "emit" can now take a LocalLabelReference as an operand. For
example, this offline asm code:

emit "b ", .done
...

.done:

... will generate this inline asm code in LLIntAssembly.h:

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

  1. Also fixed LLInt code alignment for ARM_THUMB2 and ARM64.

Previously, it was aligned using ".align 4" which means aligned on a 4
instruction boundary. Note: the interpretation of .align varies for different
target CPU architectures.

Now, we do the alignment using ".balign 4" which means align on a 4 byte
boundary. This is the intended alignment because ARM64 instruction size is
4 bytes, and ARM_THUMB2 instruction size is either 2 bytes or 4 bytes.
Using .align before was potentially wasting some code space.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • offlineasm/ast.rb:
  • offlineasm/parser.rb:

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

11:47 AM Changeset in webkit [282567] by timothy_horton@apple.com
  • 41 edits in trunk/Source

Adjust ARKIT_INLINE_PREVIEW* compile time flags
https://bugs.webkit.org/show_bug.cgi?id=230332

Reviewed by Sam Weinig.

Source/WebCore:

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::~HTMLModelElement):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::notifyFinished):
(WebCore::HTMLModelElement::enterFullscreen):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElementCocoa.mm:
  • loader/EmptyClients.cpp:
  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):
Adopt the new name.

Source/WebCore/PAL:

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

Adopt the new name.

Source/WebKit:

  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/ModelElementController.cpp:
  • UIProcess/ModelElementController.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
  • UIProcess/ios/WKModelInteractionGestureRecognizer.h:
  • UIProcess/ios/WKModelInteractionGestureRecognizer.mm:
  • UIProcess/ios/WKModelView.h:
  • UIProcess/ios/WKModelView.mm:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):
Adopt the new name.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Make these ENABLE()s instead of HAVE()s (as they control a WebKit feature).
Also, disable the ASVInlinePreview version if WKSeparatedModelView is enabled,
we don't need both, and we currently always make a WKSeparatedModelView
in that case anyway.

  • wtf/PlatformHave.h:

Stop using has_include in favor of version checks, now that
the header has been around for a while.

11:35 AM Changeset in webkit [282566] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r281981): [iOS, BigSur+] webrtc/datachannel/getStats-no-prflx-remote-candidate.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229877
<rdar://problem/82728080>

Unreviewed.

  • platform/mac-wk1/TestExpectations:

Test is no longer flaky.

11:14 AM Changeset in webkit [282565] by commit-queue@webkit.org
  • 47 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r282478.
https://bugs.webkit.org/show_bug.cgi?id=230358

Reverted changeset:

"Move some profiling to UnlinkedCodeBlock"
https://bugs.webkit.org/show_bug.cgi?id=230078
https://commits.webkit.org/r282478

11:12 AM Changeset in webkit [282564] by youenn@apple.com
  • 2 edits in trunk/Tools

Add an option to disable linter in WPT test exporter
https://bugs.webkit.org/show_bug.cgi?id=230345

Reviewed by Jonathan Bedard.

Some existings WPT tests are failing the linter.
While we should probably try to restrict linter to test files actually modified, let's add an option to disable linter for now.

  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter.do_export):
(parse_args):

11:12 AM Changeset in webkit [282563] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix some WEBCORE_EXPORTS on FrameView
https://bugs.webkit.org/show_bug.cgi?id=230330

Reviewed by Wenson Hsieh.

scrollToPositionWithAnimation() and effectiveFrameFlattening() do not need to be exported.

Instead of exporting traverseForPaintInvalidation() which is never referenced outside of
WebCore, make the two functions that wrap it non-inline, and export the one used by
Internals. traverseForPaintInvalidation() can be private.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToPositionWithAnimation):
(WebCore::FrameView::invalidateControlTints):
(WebCore::FrameView::invalidateImagesWithAsyncDecodes):

  • page/FrameView.h:
11:08 AM Changeset in webkit [282562] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Allow use of --git-index and --git-commit at the same time when using with --only-files
https://bugs.webkit.org/show_bug.cgi?id=230328

Patch by Hoa Dinh <dvh@apple.com> on 2021-09-16
Reviewed by Jonathan Bedard.

When specifying --git-index and --git-commit, it will compute the diff between the parent commit of the specified commit
and HEAD, including the current staged changes.

  • Scripts/prepare-ChangeLog:

(main):
(diffFromToString):

11:07 AM Changeset in webkit [282561] by fpizlo@apple.com
  • 2 edits in trunk/Source/bmalloc

Stub out the footprint() API when libpas is in use
https://bugs.webkit.org/show_bug.cgi?id=230362

Reviewed by Yusuke Suzuki.

The Gigacage's footprint API is called from some test-only code in JSC, evidently to no
meaningful effect. It's possible for libpas to support such an API but it currently
doesn't. So, stub it out. To my knowledge we don't actually use this API for anything
other than tests, and even tests seem to use it only in the sense that they expect to be
able to call it without crashing.

  • bmalloc/Gigacage.cpp:

(Gigacage::footprint):

10:32 AM Changeset in webkit [282560] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur+ wk2 Debug] webrtc/video-mute-vp8.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230359.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:29 AM Changeset in webkit [282559] by Chris Dumez
  • 6 edits in trunk/LayoutTests

[ iOS Mac Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230268
<rdar://problem/83104971>

Unreviewed, move console logging to stderr to address flakiness.

LayoutTests/imported/w3c:

  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt:

LayoutTests:

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
9:50 AM Changeset in webkit [282558] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html.
https://bugs.webkit.org/show_bug.cgi?id=214682.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:31 AM Changeset in webkit [282557] by Eric Hutchison
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline imported/w3c/web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001.html.
https://bugs.webkit.org/show_bug.cgi?id=230327.

Unreviewed rebaseline.

  • web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001-expected.txt:
6:49 AM Changeset in webkit [282556] by fpizlo@apple.com
  • 176 edits
    16 adds
    37 deletes in trunk/Source/bmalloc

[libpas] Update to 38b9b0b92ccc9628627c742523de6200acc08211 and fully enable on AS
https://bugs.webkit.org/show_bug.cgi?id=230124

Reviewed by Yusuke Suzuki.

This updates libpas to the latest version and enables it completely on AS (not just for
jit_heap as before).

The main changes are:

  • Replace biasing and magazines with per-thread view caches. A view cache is a bounded-size queue of exclusive_views (i.e. pages) that is local to a thread. Each thread has a view cache for every segregated_size_directory that it talks to and that has view caching enabled. The size directories can control view cache size somewhat dynamically (different directories can have different size view caches). Views get enqueued when a thread frees the first object in the page. Views get dequeued whenever a thread would have asked the directory for a view but the view cache was non-empty.

This change increases the efficiency of local_allocator_refill, since pages have a longer
time to "cook" before anyone allocates from them (since the view cache is a queue). As
well, view caches' thread-locality means that there is no locking or contention when
accessing them. The scavenger has clever tricks for clearing out view caches, similarly to
how it clears out local allocators (it uses thread_suspend).

  • Fix hash collisions in the page header table. Previously, I was using an unacceptably trivial hash function and it _sometimes_ caused perf pathologies.
  • Get rid of intrinsic_allocation_result, since this was annoyingly redundant with allocation_result.
  • Refactor some allocation fast paths so that they have fewer callee-saves.
  • Make scavenging a whole lot more precise. Scavenging is now based on time since when a page become empty. If enough time passes (currently 300ms) then such a page is decommitted. Previously the heuristic was not nearly so clear. This improves memory usage without really hurting performance (it shifts the time-memory curve closer to the origin, and this also changes tuning parameters so that it's a slight speed-up and a slight memory improvement, but it could have been a bigger memory improvement with no speed-up, or an even bigger memory improvement with a slow-down).
  • Make the gigacage work more like bmalloc's; in particular, this makes large free objects reusable for small/medium/marge objects. This fixes LayoutTests/storage/indexeddb/IDBKey-create-array-buffer-view-oom.html.
  • Modify libpas.xcodeproj to have more warnings and fix those warnings. This includes fixes to warnings that WebKit doesn't compile with and some of those fixes smelled like they could possibly fix real issues or prevent them by making the code much more clear (especially about numerical types and when they are converted).
  • Add better libpas tests for gigacage and for large allocations in general. This caught some issues. They were the kinds of issues that probably would not have affected WebKit, but I fixed them anyway.

1.3% faster on Speedometer2. Neutral on JetStream2. 3.7% less memory on RAMification. Last
I tested it, it was a big win on PLUM and membuster as well.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BPlatform.h:
  • libpas/export.sh: Added.
  • libpas/libpas.xcodeproj/project.pbxproj:
  • libpas/src/libpas/bmalloc_heap.c:

(bmalloc_allocate_slow):

  • libpas/src/libpas/bmalloc_heap_config.c:
  • libpas/src/libpas/bmalloc_heap_config.h:
  • libpas/src/libpas/bmalloc_heap_inlines.h:

(bmalloc_try_allocate_inline):
(bmalloc_try_allocate_with_alignment_inline):
(bmalloc_try_allocate_zeroed_inline):
(bmalloc_allocate_inline):
(bmalloc_allocate_with_alignment_inline):
(bmalloc_allocate_zeroed_inline):
(bmalloc_try_reallocate_inline):
(bmalloc_reallocate_inline):
(bmalloc_try_allocate_auxiliary_inline):
(bmalloc_allocate_auxiliary_inline):
(bmalloc_try_allocate_auxiliary_zeroed_inline):
(bmalloc_allocate_auxiliary_zeroed_inline):
(bmalloc_try_allocate_auxiliary_with_alignment_inline):
(bmalloc_allocate_auxiliary_with_alignment_inline):
(bmalloc_try_reallocate_auxiliary_inline):
(bmalloc_reallocate_auxiliary_inline):

  • libpas/src/libpas/hotbit_heap_config.c:
  • libpas/src/libpas/hotbit_heap_config.h:
  • libpas/src/libpas/hotbit_heap_inlines.h:

(hotbit_try_allocate_inline):
(hotbit_try_allocate_with_alignment_inline):
(hotbit_try_reallocate_inline):

  • libpas/src/libpas/iso_heap_config.c:
  • libpas/src/libpas/iso_heap_config.h:
  • libpas/src/libpas/iso_heap_inlines.h:

(iso_try_allocate_common_primitive_inline):
(iso_try_allocate_common_primitive_with_alignment_inline):
(iso_try_allocate_common_primitive_zeroed_inline):
(iso_allocate_common_primitive_inline):
(iso_allocate_common_primitive_with_alignment_inline):
(iso_allocate_common_primitive_zeroed_inline):
(iso_try_reallocate_common_primitive_inline):
(iso_reallocate_common_primitive_inline):
(iso_try_allocate_primitive_inline):
(iso_allocate_primitive_inline):
(iso_try_allocate_primitive_zeroed_inline):
(iso_allocate_primitive_zeroed_inline):
(iso_try_allocate_primitive_with_alignment_inline):
(iso_allocate_primitive_with_alignment_inline):
(iso_try_reallocate_primitive_inline):
(iso_reallocate_primitive_inline):
(iso_try_allocate_for_objc_inline):

  • libpas/src/libpas/iso_test_heap.c:

(iso_test_allocate_common_primitive):

  • libpas/src/libpas/iso_test_heap_config.c:
  • libpas/src/libpas/iso_test_heap_config.h:
  • libpas/src/libpas/jit_heap.c:

(jit_heap_try_allocate):

  • libpas/src/libpas/jit_heap_config.c:
  • libpas/src/libpas/minalign32_heap.c:

(minalign32_allocate_common_primitive):

  • libpas/src/libpas/minalign32_heap_config.c:
  • libpas/src/libpas/minalign32_heap_config.h:
  • libpas/src/libpas/pagesize64k_heap.c:

(pagesize64k_allocate_common_primitive):

  • libpas/src/libpas/pagesize64k_heap_config.c:
  • libpas/src/libpas/pagesize64k_heap_config.h:
  • libpas/src/libpas/pas_all_biasing_directories.c: Removed.
  • libpas/src/libpas/pas_all_biasing_directories.h: Removed.
  • libpas/src/libpas/pas_all_heaps.c:

(for_each_segregated_directory_size_directory_callback):
(for_each_segregated_directory_segregated_heap_callback):
(dump_directory_nicely):
(compute_total_non_utility_segregated_summary_directory_callback):
(for_each_segregated_directory_global_size_directory_callback): Deleted.

  • libpas/src/libpas/pas_all_magazines.c: Removed.
  • libpas/src/libpas/pas_all_magazines.h: Removed.
  • libpas/src/libpas/pas_allocation_result.c: Removed.
  • libpas/src/libpas/pas_allocation_result.h:

(pas_allocation_result_identity):
(pas_allocation_result_zero):
(pas_allocation_result_set_errno):
(pas_allocation_result_crash_on_error):

  • libpas/src/libpas/pas_baseline_allocator.c:

(pas_baseline_allocator_attach_directory):
(pas_baseline_allocator_detach_directory):

  • libpas/src/libpas/pas_baseline_allocator.h:
  • libpas/src/libpas/pas_biasing_directory.c: Removed.
  • libpas/src/libpas/pas_biasing_directory.h: Removed.
  • libpas/src/libpas/pas_biasing_directory_inlines.h: Removed.
  • libpas/src/libpas/pas_bitfit_allocator.c:

(pas_bitfit_allocator_commit_view):
(pas_bitfit_allocator_finish_failing):

  • libpas/src/libpas/pas_bitfit_allocator.h:
  • libpas/src/libpas/pas_bitfit_allocator_inlines.h:

(pas_bitfit_allocator_reset):
(pas_bitfit_allocator_assert_reset):
(pas_bitfit_allocator_try_allocate):

  • libpas/src/libpas/pas_bitfit_biasing_directory.c: Removed.
  • libpas/src/libpas/pas_bitfit_biasing_directory.h: Removed.
  • libpas/src/libpas/pas_bitfit_directory.c:

(pas_bitfit_directory_construct):
(pas_bitfit_directory_max_free_did_become_unprocessed):
(pas_bitfit_directory_max_free_did_become_unprocessed_unchecked):
(pas_bitfit_directory_max_free_did_become_empty):
(pas_bitfit_directory_get_first_free_view):
(pas_bitfit_directory_does_sharing):
(pas_bitfit_directory_get_use_epoch):
(pas_bitfit_directory_get_empty_bit_at_index):
(pas_bitfit_directory_set_empty_bit_at_index):
(pas_bitfit_directory_view_did_become_empty_at_index):
(pas_bitfit_directory_view_did_become_empty):
(pas_bitfit_directory_take_last_empty):
(pas_bitfit_directory_dump_reference):
(pas_bitfit_directory_dump_for_spectrum):
(pas_bitfit_directory_update_biasing_eligibility): Deleted.
(pas_bitfit_directory_max_free_did_become_empty_without_biasing_update): Deleted.

  • libpas/src/libpas/pas_bitfit_directory.h:
  • libpas/src/libpas/pas_bitfit_directory_and_index.h: Removed.
  • libpas/src/libpas/pas_bitfit_directory_inlines.h:

(pas_bitfit_directory_get_global): Deleted.

  • libpas/src/libpas/pas_bitfit_directory_kind.h: Removed.
  • libpas/src/libpas/pas_bitfit_global_directory.c: Removed.
  • libpas/src/libpas/pas_bitfit_global_directory.h: Removed.
  • libpas/src/libpas/pas_bitfit_global_size_class.c: Removed.
  • libpas/src/libpas/pas_bitfit_global_size_class.h: Removed.
  • libpas/src/libpas/pas_bitfit_heap.c:

(pas_bitfit_heap_create):
(pas_bitfit_heap_ensure_size_class):
(pas_bitfit_heap_compute_summary):
(pas_bitfit_heap_for_each_live_object):
(pas_bitfit_heap_ensure_global_size_class): Deleted.

  • libpas/src/libpas/pas_bitfit_heap.h:

(pas_bitfit_heap_get_directory):

  • libpas/src/libpas/pas_bitfit_page.c:

(pas_bitfit_page_get_config):
(pas_bitfit_page_for_each_live_object):

  • libpas/src/libpas/pas_bitfit_page_config.h:

(pas_bitfit_page_config_uses_subpages): Deleted.

  • libpas/src/libpas/pas_bitfit_page_inlines.h:

(pas_bitfit_page_deallocate_with_page_impl):

  • libpas/src/libpas/pas_bitfit_size_class.c:

(pas_bitfit_size_class_create):
(pas_bitfit_size_class_get_first_free_view):

  • libpas/src/libpas/pas_bitfit_size_class.h:
  • libpas/src/libpas/pas_bitfit_view.c:

(pas_bitfit_view_create):
(pas_bitfit_view_note_nonemptiness):
(did_become_empty_for_bits):
(pas_bitfit_view_note_full_emptiness):
(pas_bitfit_view_note_max_free):
(compute_summary):
(for_each_live_object):
(pas_bitfit_view_lock_ownership_lock_slow): Deleted.

  • libpas/src/libpas/pas_bitfit_view.h:

(pas_bitfit_view_lock_ownership_lock): Deleted.

  • libpas/src/libpas/pas_bitfit_view_inlines.h:

(pas_bitfit_view_current_directory_and_index): Deleted.
(pas_bitfit_view_current_directory): Deleted.
(pas_bitfit_view_index_in_current): Deleted.

  • libpas/src/libpas/pas_compact_atomic_bitfit_global_size_class_ptr.h:
  • libpas/src/libpas/pas_compact_atomic_segregated_global_size_directory_ptr.h: Removed.
  • libpas/src/libpas/pas_compact_atomic_segregated_size_directory_ptr.h: Added.
  • libpas/src/libpas/pas_compact_segregated_exclusive_view_ptr.h: Added.
  • libpas/src/libpas/pas_compact_segregated_global_size_directory_ptr.h: Removed.
  • libpas/src/libpas/pas_compact_segregated_size_directory_ptr.h: Added.
  • libpas/src/libpas/pas_compact_subpage_map_entry_ptr.h: Removed.
  • libpas/src/libpas/pas_deallocate.c:

(deallocate_segregated):

  • libpas/src/libpas/pas_deallocator_scavenge_action.h:

(pas_deallocator_scavenge_action_get_string):

  • libpas/src/libpas/pas_designated_intrinsic_heap.c:

(set_up_range):
(pas_designated_intrinsic_heap_initialize):

  • libpas/src/libpas/pas_designated_intrinsic_heap_inlines.h:

(pas_designated_intrinsic_heap_num_allocator_indices):
(pas_designated_intrinsic_heap_num_designated_indices_for_small_config):
(pas_designated_intrinsic_heap_designated_index_for_small_config):
(pas_designated_intrinsic_heap_num_designated_indices):
(pas_designated_intrinsic_heap_designated_index):

  • libpas/src/libpas/pas_enumerate_bitfit_heaps.c:

(view_callback):
(enumerate_bitfit_directory):

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(record_page_objects):
(enumerate_exclusive_view):
(enumerate_partial_view):
(enumerate_segregated_heap_callback):
(pas_enumerate_segregated_heaps):

  • libpas/src/libpas/pas_exclusive_view_template_memo_table.h:
  • libpas/src/libpas/pas_full_alloc_bits_inlines.h:

(pas_full_alloc_bits_create_for_exclusive):
(pas_full_alloc_bits_create_for_view_and_directory):
(pas_full_alloc_bits_create_for_view):

  • libpas/src/libpas/pas_get_heap.h:

(pas_get_heap):

  • libpas/src/libpas/pas_heap.c:

(pas_heap_ensure_size_directory_for_count_slow):

  • libpas/src/libpas/pas_heap.h:
  • libpas/src/libpas/pas_heap_config.h:
  • libpas/src/libpas/pas_heap_config_inlines.h:
  • libpas/src/libpas/pas_heap_config_utils.h:
  • libpas/src/libpas/pas_heap_config_utils_inlines.h:
  • libpas/src/libpas/pas_heap_inlines.h:

(pas_heap_ensure_size_directory_for_count):

  • libpas/src/libpas/pas_heap_runtime_config.c: Added.

(pas_heap_runtime_config_view_cache_capacity_for_object_size):
(pas_heap_runtime_config_zero_view_cache_capacity):
(pas_heap_runtime_config_aggressive_view_cache_capacity):

  • libpas/src/libpas/pas_heap_runtime_config.h:
  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_intrinsic_allocation_result.h: Removed.
  • libpas/src/libpas/pas_intrinsic_heap_support.h:
  • libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.c:

(large_aligned_allocator):

  • libpas/src/libpas/pas_local_allocator.c:

(pas_local_allocator_construct):
(pas_local_allocator_reset):
(pas_local_allocator_move):
(pas_local_allocator_finish_refill_with_bitfit):
(stop_impl):
(pas_local_allocator_stop):
(pas_local_allocator_scavenge):
(pas_local_allocator_destruct): Deleted.

  • libpas/src/libpas/pas_local_allocator.h:
  • libpas/src/libpas/pas_local_allocator_inlines.h:

(pas_local_allocator_reset_impl):
(pas_local_allocator_set_up_bump):
(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_set_up_free_bits):
(pas_local_allocator_prepare_to_allocate):
(pas_local_allocator_start_allocating_in_primordial_partial_view):
(pas_local_allocator_refill_with_known_config):
(pas_local_allocator_return_memory_to_page_set_bit_callback):
(pas_local_allocator_return_memory_to_page):
(pas_local_allocator_try_allocate_with_free_bits):
(pas_local_allocator_try_allocate_inline_cases):
(pas_local_allocator_try_allocate_small_segregated_slow):
(pas_local_allocator_try_allocate_slow):
(pas_local_allocator_try_allocate_inline_only):
(pas_local_allocator_try_allocate):

  • libpas/src/libpas/pas_local_allocator_kind.h: Added.

(pas_local_allocator_kind_get_string):

  • libpas/src/libpas/pas_local_allocator_line.h: Removed.
  • libpas/src/libpas/pas_local_allocator_result.h:

(pas_local_allocator_result_create_success):

  • libpas/src/libpas/pas_local_allocator_scavenger_data.c: Added.

(pas_local_allocator_scavenger_data_is_active):
(pas_local_allocator_scavenger_data_stop):

  • libpas/src/libpas/pas_local_allocator_scavenger_data.h: Added.

(pas_local_allocator_scavenger_data_construct):
(pas_local_allocator_scavenger_data_did_use_for_allocation):

  • libpas/src/libpas/pas_local_view_cache.c: Added.

(pas_local_view_cache_construct):
(pas_local_view_cache_move):
(stop_impl):
(pas_local_view_cache_stop):

  • libpas/src/libpas/pas_local_view_cache.h: Added.

(pas_local_view_cache_is_empty):
(pas_local_view_cache_pop):
(pas_local_view_cache_is_full):
(pas_local_view_cache_push):

  • libpas/src/libpas/pas_local_view_cache_node.c: Added.

(pas_local_view_cache_node_create):

  • libpas/src/libpas/pas_local_view_cache_node.h: Added.
  • libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c:
  • libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.h:

(pas_lock_free_read_ptr_ptr_hashtable_find):

  • libpas/src/libpas/pas_magazine.c: Removed.
  • libpas/src/libpas/pas_magazine.h: Removed.
  • libpas/src/libpas/pas_page_base_config_utils.h:
  • libpas/src/libpas/pas_page_header_table.h:

(pas_page_header_table_hash):

  • libpas/src/libpas/pas_page_sharing_participant.c:

(pas_page_sharing_participant_get_payload):
(pas_page_sharing_participant_get_use_epoch):
(pas_page_sharing_participant_get_parent_pool):
(pas_page_sharing_participant_is_eligible):
(pas_page_sharing_participant_take_least_recently_used):

  • libpas/src/libpas/pas_page_sharing_participant.h:
  • libpas/src/libpas/pas_page_sharing_participant_kind.h:

(pas_page_sharing_participant_kind_select_for_segregated_directory):
(pas_page_sharing_participant_kind_get_string):

  • libpas/src/libpas/pas_page_sharing_pool.c:

(pas_physical_page_sharing_pool_scavenge):
(pas_bias_page_sharing_pool_take): Deleted.

  • libpas/src/libpas/pas_page_sharing_pool.h:
  • libpas/src/libpas/pas_page_sharing_pool_scavenge_result.h: Added.

(pas_page_sharing_pool_scavenge_result_create):

  • libpas/src/libpas/pas_redundant_local_allocator_node.c:

(pas_redundant_local_allocator_node_create):

  • libpas/src/libpas/pas_redundant_local_allocator_node.h:
  • libpas/src/libpas/pas_scavenger.c:

(scavenger_thread_main):
(pas_scavenger_clear_all_caches_except_remote_tlcs):
(pas_scavenger_decommit_free_memory):

  • libpas/src/libpas/pas_scavenger.h:
  • libpas/src/libpas/pas_segregated_biasing_directory.c: Removed.
  • libpas/src/libpas/pas_segregated_biasing_directory.h: Removed.
  • libpas/src/libpas/pas_segregated_biasing_view.c: Removed.
  • libpas/src/libpas/pas_segregated_biasing_view.h: Removed.
  • libpas/src/libpas/pas_segregated_deallocation_mode.h: Added.

(pas_segregated_deallocation_mode_get_string):

  • libpas/src/libpas/pas_segregated_directory.c:

(pas_segregated_directory_get_data_slow):
(pas_segregated_directory_minimize_first_eligible):
(pas_segregated_directory_update_first_eligible_after_search):
(pas_segregated_directory_view_did_become_eligible_at_index):
(pas_segregated_directory_append):
(pas_segregated_directory_view_did_become_eligible_at_index_without_biasing_update): Deleted.
(pas_segregated_directory_view_did_become_eligible_without_biasing_update): Deleted.

  • libpas/src/libpas/pas_segregated_directory.h:

(pas_segregated_directory_spoof_inline_segment):
(pas_segregated_directory_get_first_eligible_impl):
(pas_segregated_directory_get_first_eligible):
(pas_segregated_directory_get_first_eligible_torn):
(pas_segregated_directory_watch_first_eligible):
(pas_segregated_directory_data_get_first_eligible_ptr): Deleted.
(pas_segregated_directory_is_tabled): Deleted.

  • libpas/src/libpas/pas_segregated_directory_bit_reference.h:
  • libpas/src/libpas/pas_segregated_directory_inlines.h:

(pas_segregated_directory_iterate_forward_to_take_first_eligible):

  • libpas/src/libpas/pas_segregated_directory_kind.h:

(pas_segregated_directory_kind_get_string):

  • libpas/src/libpas/pas_segregated_exclusive_view.c:

(pas_segregated_exclusive_view_create):
(pas_segregated_exclusive_view_note_emptiness):
(compute_summary_impl):
(pas_segregated_exclusive_view_compute_summary):
(pas_segregated_exclusive_view_install_full_use_counts):
(pas_segregated_exclusive_view_is_eligible):
(pas_segregated_exclusive_view_is_empty):
(pas_segregated_exclusive_view_should_table): Deleted.
(pas_segregated_exclusive_ish_view_note_eligibility_impl): Deleted.
(pas_segregated_exclusive_view_note_eligibility): Deleted.
(pas_segregated_exclusive_ish_view_compute_summary_impl): Deleted.

  • libpas/src/libpas/pas_segregated_exclusive_view.h:
  • libpas/src/libpas/pas_segregated_exclusive_view_inlines.h:

(pas_segregated_exclusive_view_did_start_allocating):
(pas_segregated_exclusive_view_did_stop_allocating):
(pas_segregated_exclusive_view_note_eligibility):
(pas_segregated_exclusive_ish_view_did_start_allocating): Deleted.

  • libpas/src/libpas/pas_segregated_exclusive_view_ownership_kind.h: Removed.
  • libpas/src/libpas/pas_segregated_global_size_directory.c: Removed.
  • libpas/src/libpas/pas_segregated_global_size_directory.h: Removed.
  • libpas/src/libpas/pas_segregated_global_size_directory_inlines.h: Removed.
  • libpas/src/libpas/pas_segregated_heap.c:

(pas_segregated_heap_construct):
(pas_segregated_heap_medium_size_directory_for_index):
(ensure_count_lookup):
(pas_segregated_heap_ensure_allocator_index):
(pas_segregated_heap_ensure_size_directory_for_count):
(pas_segregated_heap_for_each_size_directory):
(for_each_committed_size_directory_callback):
(pas_segregated_heap_for_each_committed_view):
(for_each_view_index_directory_callback):
(pas_segregated_heap_for_each_view_index):
(for_each_live_object_object_callback):
(for_each_live_object_directory_callback):
(pas_segregated_heap_for_each_live_object):
(num_committed_views_directory_callback):
(pas_segregated_heap_num_committed_views):
(num_empty_views_directory_callback):
(pas_segregated_heap_num_empty_views):
(num_empty_granules_directory_callback):
(pas_segregated_heap_num_empty_granules):
(num_views_directory_callback):
(pas_segregated_heap_num_views):
(compute_summary_directory_callback):
(pas_segregated_heap_compute_summary):
(pas_segregated_heap_for_each_global_size_directory): Deleted.

  • libpas/src/libpas/pas_segregated_heap.h:
  • libpas/src/libpas/pas_segregated_heap_inlines.h:

(pas_segregated_heap_size_directory_for_index):

  • libpas/src/libpas/pas_segregated_page.c:

(pas_segregated_page_switch_lock_and_rebias_while_ineligible_impl):
(pas_segregated_page_construct):
(pas_segregated_page_commit_fully):
(pas_segregated_page_switch_lock_and_rebias_to_magazine_while_ineligible_impl): Deleted.

  • libpas/src/libpas/pas_segregated_page.h:

(pas_segregated_page_qualifies_for_decommit):

  • libpas/src/libpas/pas_segregated_page_config.h:
  • libpas/src/libpas/pas_segregated_page_config_inlines.h:
  • libpas/src/libpas/pas_segregated_page_config_utils.h:
  • libpas/src/libpas/pas_segregated_page_config_utils_inlines.h:
  • libpas/src/libpas/pas_segregated_page_inlines.h:

(pas_segregated_page_offset_from_page_boundary_to_first_object):
(pas_segregated_page_initialize_full_use_counts):
(pas_segregated_page_switch_lock_impl):
(pas_segregated_page_switch_lock_with_mode):
(pas_segregated_page_switch_lock_and_rebias_while_ineligible):
(pas_segregated_page_deallocate_with_page):
(pas_segregated_page_deallocate):
(pas_segregated_page_get_directory_for_address_in_page):
(pas_segregated_page_get_object_size_for_address_in_page):
(pas_segregated_page_switch_lock_and_rebias_to_magazine_while_ineligible): Deleted.
(pas_segregated_page_qualifies_for_decommit): Deleted.

  • libpas/src/libpas/pas_segregated_partial_view.c:

(pas_segregated_partial_view_create):
(pas_segregated_partial_view_note_eligibility):
(compute_summary):
(pas_segregated_partial_view_is_eligible):

  • libpas/src/libpas/pas_segregated_partial_view.h:
  • libpas/src/libpas/pas_segregated_shared_page_directory.c:

(pas_segregated_shared_page_directory_find_first_eligible):
(take_last_empty_consider_view):

  • libpas/src/libpas/pas_segregated_shared_page_directory.h:
  • libpas/src/libpas/pas_segregated_size_directory.c:

(pas_segregated_size_directory_create):
(pas_segregated_size_directory_finish_creation):
(pas_segregated_size_directory_ensure_data):
(pas_segregated_size_directory_get_extended_data):
(pas_segregated_size_directory_create_tlc_allocator):
(pas_segregated_size_directory_create_tlc_view_cache):
(pas_segregated_size_directory_enable_exclusive_views):
(pas_segregated_size_directory_select_allocator_slow):
(take_first_eligible_direct_create_new_view_callback):
(pas_segregated_size_directory_take_first_eligible):
(take_last_empty_should_consider_view_parallel):
(take_last_empty_consider_view):
(pas_segregated_size_directory_take_last_empty):
(pas_segregated_size_directory_for_object):
(pas_segregated_size_directory_get_allocator_from_tlc):
(pas_segregated_size_directory_compute_summary_for_unowned_exclusive):
(for_each_live_object_object_callback):
(pas_segregated_size_directory_for_each_live_object):
(pas_segregated_size_directory_view_cache_capacity):
(pas_segregated_size_directory_local_allocator_size):
(pas_segregated_size_directory_num_allocator_indices):
(pas_segregated_size_directory_dump_reference):
(pas_segregated_size_directory_dump_for_spectrum):
(pas_segregated_size_directory_construct): Deleted.

  • libpas/src/libpas/pas_segregated_size_directory.h:

(pas_segregated_size_directory_as_view):
(pas_segregated_size_directory_alignment):
(pas_segregated_size_directory_did_try_to_create_view_cache):
(pas_segregated_size_directory_set_did_try_to_create_view_cache):
(pas_segregated_size_directory_has_tlc_allocator):
(pas_segregated_size_directory_are_exclusive_views_enabled):

  • libpas/src/libpas/pas_segregated_size_directory_creation_mode.h: Added.

(pas_segregated_size_directory_creation_mode_get_string):

  • libpas/src/libpas/pas_segregated_size_directory_inlines.h:

(pas_segregated_size_directory_select_allocator):
(pas_segregated_size_directory_local_allocator_size_for_null_config):
(pas_segregated_size_directory_local_allocator_size_for_config):
(pas_segregated_size_directory_num_allocator_indices_for_allocator_size):
(pas_segregated_size_directory_num_allocator_indices_for_config):
(pas_segregated_size_directory_take_first_eligible_impl_should_consider_view_parallel):
(pas_segregated_size_directory_take_first_eligible_impl):
(pas_segregated_size_directory_take_first_eligible_impl_should_consider_view_not_tabled_parallel): Deleted.
(pas_segregated_size_directory_take_first_eligible_impl_should_consider_view_tabled_parallel): Deleted.
(pas_segregated_size_directory_get_global): Deleted.

  • libpas/src/libpas/pas_segregated_view.c:

(pas_segregated_view_get_size_directory_slow):
(pas_segregated_view_get_page_config_kind):
(pas_segregated_view_get_index):
(pas_segregated_view_get_page_boundary):
(pas_segregated_view_get_commit_lock):
(pas_segregated_view_get_ownership_lock):
(pas_segregated_view_is_owned):
(pas_segregated_view_lock_ownership_lock):
(pas_segregated_view_lock_ownership_lock_conditionally):
(pas_segregated_view_lock_ownership_lock_if_owned_conditionally):
(pas_segregated_view_note_emptiness):
(for_each_live_object):
(pas_segregated_view_for_each_live_object):
(should_be_eligible):
(pas_segregated_view_should_be_eligible):
(pas_segregated_view_for_object):
(pas_segregated_view_compute_summary):
(pas_segregated_view_is_eligible):
(pas_segregated_view_is_empty):
(pas_segregated_view_get_global_size_directory_slow): Deleted.
(pas_segregated_view_should_restart): Deleted.
(pas_segregated_view_could_bump): Deleted.
(pas_segregated_view_should_table): Deleted.
(pas_segregated_view_is_biased_exclusive): Deleted.
(pas_segregated_view_note_eligibility): Deleted.
(pas_segregated_view_is_eligible_or_biased): Deleted.
(pas_segregated_view_is_empty_or_biased): Deleted.

  • libpas/src/libpas/pas_segregated_view.h:

(pas_segregated_view_is_some_exclusive):
(pas_segregated_view_as_ineligible):
(pas_segregated_view_as_eligible):
(pas_segregated_view_get_exclusive):
(pas_segregated_view_is_size_directory):
(pas_segregated_view_get_size_directory):
(pas_segregated_view_is_exclusive_ish): Deleted.
(pas_segregated_view_is_biasing): Deleted.
(pas_segregated_view_is_ineligible_biasing): Deleted.
(pas_segregated_view_is_some_biasing): Deleted.
(pas_segregated_view_get_biasing): Deleted.
(pas_segregated_view_is_eligible_kind): Deleted.
(pas_segregated_view_is_ineligible_kind): Deleted.
(pas_segregated_view_is_global_size_directory): Deleted.
(pas_segregated_view_get_global_size_directory): Deleted.

  • libpas/src/libpas/pas_segregated_view_allocator_inlines.h:

(pas_segregated_view_will_start_allocating):
(pas_segregated_view_did_stop_allocating):

  • libpas/src/libpas/pas_segregated_view_inlines.h: Removed.
  • libpas/src/libpas/pas_segregated_view_kind.h:

(pas_segregated_view_kind_get_character_code):
(pas_segregated_view_kind_get_string):
(pas_segregated_view_kind_is_some_exclusive):
(pas_segregated_view_kind_can_become_empty):
(pas_segregated_view_kind_is_eligible): Deleted.
(pas_segregated_view_kind_is_exclusive_ish): Deleted.
(pas_segregated_view_kind_is_ineligible): Deleted.

  • libpas/src/libpas/pas_status_reporter.c:

(report_bitfit_directory_contents):
(pas_status_reporter_dump_bitfit_directory):
(report_segregated_directory_contents):
(pas_status_reporter_dump_segregated_size_directory):
(dump_segregated_heap_directory_callback):
(pas_status_reporter_dump_bitfit_heap):
(pas_status_reporter_dump_segregated_heap):
(total_fragmentation_size_directory_callback):
(total_fragmentation_heap_callback):
(pas_status_reporter_dump_total_fragmentation):
(tier_up_rate_size_directory_callback):
(tier_up_rate_heap_callback):
(pas_status_reporter_dump_baseline_allocators):
(pas_status_reporter_dump_thread_local_caches):
(pas_status_reporter_dump_bitfit_biasing_directory): Deleted.
(pas_status_reporter_dump_bitfit_global_directory): Deleted.
(pas_status_reporter_dump_segregated_biasing_directory): Deleted.
(pas_status_reporter_dump_segregated_global_size_directory): Deleted.
(total_fragmentation_global_size_directory_callback): Deleted.
(tier_up_rate_global_size_directory_callback): Deleted.

  • libpas/src/libpas/pas_status_reporter.h:
  • libpas/src/libpas/pas_subpage_map.c: Removed.
  • libpas/src/libpas/pas_subpage_map.h: Removed.
  • libpas/src/libpas/pas_subpage_map_entry.c: Removed.
  • libpas/src/libpas/pas_subpage_map_entry.h: Removed.
  • libpas/src/libpas/pas_thread_local_cache.c:

(deallocate):
(pas_thread_local_cache_create):
(pas_thread_local_cache_get_local_allocator_slow):
(pas_thread_local_cache_stop_local_allocators):
(stop_local_allocators_if_necessary_set_bit_callback):
(process_deallocation_log_with_config):
(flush_deallocation_log):
(flush_deallocation_log_for_scavenger):
(pas_thread_local_cache_flush_deallocation_log):
(resume):
(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_thread_local_cache.h:

(pas_thread_local_cache_get_local_allocator_impl):
(pas_thread_local_cache_get_local_allocator):

  • libpas/src/libpas/pas_thread_local_cache_layout.c:

(pas_thread_local_cache_layout_add_node):
(pas_thread_local_cache_layout_add):
(pas_thread_local_cache_layout_duplicate):
(pas_thread_local_cache_layout_add_view_cache):

  • libpas/src/libpas/pas_thread_local_cache_layout.h:
  • libpas/src/libpas/pas_thread_local_cache_layout_node.c:

(pas_thread_local_cache_layout_node_get_directory):
(pas_thread_local_cache_layout_num_allocator_indices):
(allocator_index_ptr):
(pas_thread_local_cache_layout_node_get_allocator_index_generic):
(pas_thread_local_cache_layout_node_get_allocator_index_for_allocator):
(pas_thread_local_cache_layout_node_get_allocator_index_for_view_cache):
(next_ptr):
(pas_thread_local_cache_layout_node_set_next):
(pas_thread_local_cache_layout_node_construct):
(pas_thread_local_cache_layout_node_move):
(pas_thread_local_cache_layout_node_stop):
(pas_thread_local_cache_layout_node_get_allocator_index): Deleted.

  • libpas/src/libpas/pas_thread_local_cache_layout_node.h:

(pas_thread_local_cache_layout_node_get_ptr):
(pas_thread_local_cache_layout_node_get_kind):
(pas_thread_local_cache_layout_node_create):
(pas_wrap_segregated_size_directory):
(pas_wrap_redundant_local_allocator_node):
(pas_wrap_local_view_cache_node):
(pas_is_wrapped_segregated_size_directory):
(pas_is_wrapped_redundant_local_allocator_node):
(pas_is_wrapped_local_view_cache_node):
(pas_unwrap_segregated_size_directory):
(pas_unwrap_redundant_local_allocator_node):
(pas_unwrap_local_view_cache_node):
(pas_thread_local_cache_layout_node_represents_allocator):
(pas_thread_local_cache_layout_node_represents_view_cache):
(pas_wrap_segregated_global_size_directory): Deleted.
(pas_is_wrapped_segregated_global_size_directory): Deleted.
(pas_unwrap_segregated_global_size_directory): Deleted.

  • libpas/src/libpas/pas_thread_local_cache_layout_node_kind.h: Added.

(pas_thread_local_cache_layout_node_kind_get_string):

  • libpas/src/libpas/pas_thread_local_cache_node.c:

(pas_thread_local_cache_node_allocate):

  • libpas/src/libpas/pas_thread_local_cache_node.h:
  • libpas/src/libpas/pas_try_allocate.h:

(pas_try_allocate_impl):

  • libpas/src/libpas/pas_try_allocate_array.h:

(pas_try_allocate_array_impl):

  • libpas/src/libpas/pas_try_allocate_common.h:

(pas_try_allocate_common_impl_fast_inline_only):
(pas_try_allocate_common_impl_fast):
(pas_try_allocate_common_impl_slow):
(pas_try_allocate_common_impl):

  • libpas/src/libpas/pas_try_allocate_intrinsic_primitive.h:

(pas_try_allocate_intrinsic_primitive_impl_medium_slow_case):
(pas_try_allocate_intrinsic_primitive_impl_inline_only):
(pas_try_allocate_intrinsic_primitive_impl): Deleted.

  • libpas/src/libpas/pas_try_allocate_primitive.h:

(pas_try_allocate_primitive_impl):

  • libpas/src/libpas/pas_try_reallocate.h:

(pas_try_allocate_for_reallocate_and_copy):
(pas_try_reallocate_table_segregated_case):
(pas_try_reallocate_table_bitfit_case):
(pas_try_reallocate):
(pas_try_reallocate_primitive_allocate_callback):

  • libpas/src/libpas/pas_typed_allocation_result.h:

(pas_typed_allocation_result_as_intrinsic_allocation_result):
(pas_typed_allocation_result_create_with_intrinsic_allocation_result):
(pas_typed_allocation_result_zero):
(pas_typed_allocation_result_set_errno):
(pas_typed_allocation_result_crash_on_error):

  • libpas/src/libpas/pas_utility_heap.c:

(pas_utility_heap_deallocate):

  • libpas/src/libpas/pas_utility_heap.h:
  • libpas/src/libpas/pas_utility_heap_config.h:

(pas_utility_heap_shared_page_directory_selector):

  • libpas/src/libpas/pas_utility_heap_support.h:
  • libpas/src/libpas/pas_utils.h:

(pas_round_up_to_next_power_of_2):

  • libpas/src/libpas/thingy_heap.c:

(thingy_try_allocate_primitive):
(thingy_try_allocate_primitive_zeroed):
(thingy_try_allocate_primitive_with_alignment):
(thingy_try_reallocate_primitive):
(thingy_utility_heap_allocate):

  • libpas/src/libpas/thingy_heap_config.c:
  • libpas/src/libpas/thingy_heap_config.h:
  • libpas/src/test/IsoHeapChaosTests.cpp:

(std::testAllocationChaos):
(std::addTheTests):
(std::addSpotTests):
(addIsoHeapChaosTests):

  • libpas/src/test/IsoHeapPageSharingTests.cpp:

(std::testTakePages):
(std::testTakePagesFromCorrectHeap):
(std::allocateThingiesImpl):
(addIsoHeapPageSharingTests):

  • libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:

(std::testSimplePartialAllocations):
(std::testMultiplePartialsFromDifferentThreadsPerShared):
(std::addScavengerDependentTests):

  • libpas/src/test/IsoHeapTablingTests.cpp: Removed.
  • libpas/src/test/RaceTests.cpp:

(std::testLocalAllocatorStopRace):
(std::testLocalAllocatorStopRaceAgainstScavenge):

  • libpas/src/test/TestHarness.cpp:

(main):
(DisableExplosion::DisableExplosion): Deleted.
(ForceExplosion::ForceExplosion): Deleted.
(ForceOneMagazine::ForceOneMagazine): Deleted.

  • libpas/src/test/TestHarness.h:
  • libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp:

(std::sizeClassFor):
(std::forEachCommittedViewAdapter):
(std::verifyHeapEmpty):
(std::testInternalScavengeFromCorrectDirectory):
(std::testSizeClassCreationImpl):
(std::testSpuriousEligibility):
(std::testComplexLargeAllocationImpl):
(std::addAllTests):
(addThingyAndUtilityHeapAllocationTests):

4:42 AM Changeset in webkit [282555] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.32

Merge r280174 - nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=223974

Patch by Frédéric Wang <fwang@igalia.com> on 2021-07-22
Reviewed by Darin Adler.

Source/WebCore:

WebCore::documentOrder does not handle well elements like <summary> that contains a
shadow substree. This is causing assertion failures in debug build when setting start/end
selection and nullptr crashes in release build when trying to browse selection between these
start and end nodes. This patch fixes that issue by switching to shadow including tree order
for these particular cases. It introduces a generic treeOrder<TreeType>(a, b) function that
can be used for TreeType = ShadowIncludingTree as well as by WebCore::documentOrder.

  • dom/Node.cpp: Explicitly instantiate commonInclusiveAncestor<ShadowIncludingTree> so that it can be used

by WebCore::treeOrder.

  • dom/Position.cpp: Explicitly instantiate templates.

(WebCore::treeOrder): Convert documentOrder to a template parametrized by TreeType.
(WebCore::documentOrder): Implement it with treeOrder<ComposedTree>.

  • dom/Position.h: Delcare new template.
  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::updateStartEnd): Use treeOrder<ShadowIncludingTree>.
(WebCore::ApplyStyleCommand::removeInlineStyle): Ditto.

  • editing/VisiblePosition.cpp:

(WebCore::documentOrder): Use treeOrder<ShadowIncludingTree>.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents): Use treeOrder<ShadowIncludingTree>.
(WebCore::VisibleSelection::setWithoutValidation): Ditto.

Tools:

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Update FIXME.
4:42 AM Changeset in webkit [282554] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r280130 - Missing layouts when using simplified layout with OOF positioned elements
https://bugs.webkit.org/show_bug.cgi?id=226008

Reviewed by Alan Bujtas.

There are some situations that allow us to do simplified layouts like when there is a positioned child
that needs to be laid out and neither the parent nor any other normal children needs it. In those cases
we just pick the list of positioned objects and invoke layoutPositionedObjects(). However that list
might not be properly updated since it's only done during the layout in RenderBlock::layoutBlockChildren().

This is causing that we miss layouts in cases where a renderer has the posChildNeedsLayout() bit set
(due to some style change for example) but no descendants in the positionedDescendantsMap() because
it has not been laid out yet. In those cases we simply bail out the simplified layout and proceed as in
the normal layout process.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::simplifiedLayout):

4:42 AM Changeset in webkit [282553] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r280099 - Use WeakHashSet for Page::m_activityStateChangeObservers
https://bugs.webkit.org/show_bug.cgi?id=228065

Reviewed by Chris Dumez.

  • page/ActivityStateChangeObserver.h: Inherit CanMakeWeakPtr.
  • page/Page.cpp:

(WebCore::Page::addActivityStateChangeObserver):
(WebCore::Page::removeActivityStateChangeObserver):
(WebCore::Page::setActivityState):

  • page/Page.h:
4:42 AM Changeset in webkit [282552] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r280089 - Make SVGPropertyAnimator::computeCSSPropertyValue() take a reference to SVGElement
https://bugs.webkit.org/show_bug.cgi?id=228093
<rdar://80789262>

Reviewed by Simon Fraser.

The assumption is the pointer 'targetElement' can't be nullptr. So make
it a reference instead.

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::computeCSSPropertyValue): Deleted.
(WebCore::inheritsFromProperty): Deleted.
(WebCore::SVGAnimationElement::determinePropertyValueTypes): Deleted.

  • svg/SVGAnimationElement.h:

Delete unused methods from SVGAnimationElement.

  • svg/properties/SVGPrimitivePropertyAnimator.h:
  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::computeCSSPropertyValue const):
(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):

  • svg/properties/SVGValuePropertyAnimatorImpl.h:
  • svg/properties/SVGValuePropertyListAnimatorImpl.h:
4:42 AM Changeset in webkit [282551] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r280005 - FetchBodySource/FetchBodyOwner cleanup
<rdar://80318044> and https://bugs.webkit.org/show_bug.cgi?id=228035

Reviewed by Geoffrey Garen.

FetchBodyOwner should have a WeakPtr factory, and FetchBodySource should use it.

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchBodySource.cpp:

(WebCore::FetchBodySource::FetchBodySource):
(WebCore::FetchBodySource::doCancel):
(WebCore::FetchBodySource::close):

  • Modules/fetch/FetchBodySource.h:
  • Modules/fetch/FetchResponse.h:
4:14 AM Changeset in webkit [282550] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r279960 - Use WeakPtr with UniqueIDBDatabaseConnection
<rdar://79447808> and https://bugs.webkit.org/show_bug.cgi?id=227969

Reviewed by Geoff Garen.

No new tests possible.

Noticed this raw ptr which was raw to break a ref cycle.
WeakPtr works better.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abortWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didActivateInBackingStore):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection): Deleted.

4:12 AM Changeset in webkit [282549] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r279956 - MemoryIDBBackingStore cleanup.
<rdar://79497380> and https://bugs.webkit.org/show_bug.cgi?id=227993

Reviewed by Geoffrey Garen.

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
4:12 AM Changeset in webkit [282548] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r279792 - SVGInlineTextBox::acquirePaintingResource() should return false if the resource can't be applied
https://bugs.webkit.org/show_bug.cgi?id=227826
<rdar://79662757>

Reviewed by Simon Fraser.

Ensure RenderSVGResource::postApplyResource() is called only if the
corresponding RenderSVGResource::applyResource() succeeds. Otherwise
the GraphicsContext stack state will be unbalanced.

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::acquirePaintingResource):

4:03 AM Changeset in webkit [282547] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r279661 - Deploy smart pointers in DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=227584

Reviewed by David Kilzer.

Deployed Ref/RefPtr in more places in DOMWindow.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::performance const):
(WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
(WebCore::DOMWindow::postMessage):
(WebCore::DOMWindow::frameElement const):
(WebCore::DOMWindow::focus):
(WebCore::DOMWindow::blur):
(WebCore::DOMWindow::close):
(WebCore::DOMWindow::print):
(WebCore::DOMWindow::stop):
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::outerHeight const):
(WebCore::DOMWindow::outerWidth const):
(WebCore::DOMWindow::innerHeight const):
(WebCore::DOMWindow::innerWidth const):
(WebCore::DOMWindow::screenX const):
(WebCore::DOMWindow::screenY const):
(WebCore::DOMWindow::scrollX const):
(WebCore::DOMWindow::scrollY const):
(WebCore::DOMWindow::closed const):
(WebCore::DOMWindow::name const):
(WebCore::DOMWindow::setName):
(WebCore::DOMWindow::setStatus):
(WebCore::DOMWindow::setDefaultStatus):
(WebCore::DOMWindow::opener const):
(WebCore::DOMWindow::disownOpener):
(WebCore::DOMWindow::parent const):
(WebCore::DOMWindow::top const):
(WebCore::DOMWindow::consumeTransientActivation):
(WebCore::DOMWindow::notifyActivated):
(WebCore::DOMWindow::getMatchedCSSRules const):
(WebCore::DOMWindow::scrollBy const):
(WebCore::DOMWindow::allowedToChangeWindowGeometry const):
(WebCore::DOMWindow::setTimeout):
(WebCore::DOMWindow::clearTimeout):
(WebCore::DOMWindow::setInterval):
(WebCore::DOMWindow::requestAnimationFrame):
(WebCore::DOMWindow::cancelAnimationFrame):
(WebCore::DOMWindow::createImageBitmap):
(WebCore::DOMWindow::isSecureContext const):
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary):
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary):
(WebCore::DOMWindow::incrementScrollEventListenersCount):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::dispatchLoadEvent):
(WebCore::DOMWindow::removeAllEventListeners):
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):

3:59 AM Changeset in webkit [282546] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r279626 - Deploy smart pointers in EventHandler and UserInputBridge
https://bugs.webkit.org/show_bug.cgi?id=227481
<rdar://problem/79906757>

Reviewed by Wenson Hsieh and Chris Dumez.

Source/WebCore:

Deployed Ref/RefPtr in various places in EventHandler and UserInputBridge.

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectClosestWordFromHitTestResult):
(WebCore::EventHandler::selectClosestContextualWordFromMouseEvent):
(WebCore::EventHandler::selectClosestContextualWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::selectionExtentRespectingEditingBoundary):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::eventMayStartDrag const):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::hitTestResultAtPoint const):
(WebCore::EventHandler::scrollOverflow):
(WebCore::EventHandler::logicalScrollOverflow):
(WebCore::EventHandler::scrollRecursively):
(WebCore::EventHandler::logicalScrollRecursively):
(WebCore::EventHandler::updateCursor):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::contentFrameForNode): Renamed from targetIsFrame and made it return the node.
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::cancelDragAndDrop):
(WebCore::EventHandler::performDragAndDrop):
(WebCore::hierarchyHasCapturingEventListeners):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::notifyScrollableAreasOfMouseEvents):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::isInsideScrollbar const):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::handleAccessKey):
(WebCore::EventHandler::isKeyEventAllowedInFullScreen const):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::internalKeyEvent):
(WebCore::setInitialKeyboardSelection):
(WebCore::removeDraggedContentDocumentMarkersFromAllFramesInPage):
(WebCore::EventHandler::handleKeyboardScrolling):
(WebCore::EventHandler::handleTouchEvent):
(WebCore::EventHandler::passWheelEventToWidget):

  • replay/UserInputBridge.cpp:

(WebCore::UserInputBridge::handleMousePressEvent):
(WebCore::UserInputBridge::handleMouseReleaseEvent):
(WebCore::UserInputBridge::handleMouseMoveEvent):
(WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
(WebCore::UserInputBridge::handleMouseForceEvent):
(WebCore::UserInputBridge::handleKeyEvent):
(WebCore::UserInputBridge::handleAccessKeyEvent):
(WebCore::UserInputBridge::handleWheelEvent):
(WebCore::UserInputBridge::scrollRecursively):
(WebCore::UserInputBridge::logicalScrollRecursively):
(WebCore::UserInputBridge::loadRequest):
(WebCore::UserInputBridge::tryClosePage):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::handleContextMenuEvent):

3:55 AM Changeset in webkit [282545] by mmaxfield@apple.com
  • 90 edits in trunk

font-weight should always serialize as a number
https://bugs.webkit.org/show_bug.cgi?id=214230
<rdar://problem/65623540>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/inheritance-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-weight-computed-expected.txt:
  • web-platform-tests/css/css-fonts/variations/font-shorthand-expected.txt:
  • web-platform-tests/css/css-fonts/variations/font-weight-interpolation-expected.txt:
  • web-platform-tests/css/css-fonts/variations/font-weight-lighter-bolder-expected.txt:
  • web-platform-tests/css/css-variables/variable-presentation-attribute-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Per spec (https://www.w3.org/TR/2018/REC-css-fonts-3-20180920/#propdef-font-weight),
the computed value of font-weight has been changed to always be a
number, rather than also sometimes being a keyword in the case of
weights 400 ('normal') and 700 ('bold').

Changes covered by existing tests which have been updated to
reflect this new behavior.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontNonKeywordWeightFromStyle):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::fontWeightFromStyle): Deleted.

  • editing/EditingStyle.cpp:

(WebCore::identifierForStyleProperty):
(WebCore::fontWeightIsBold):
(WebCore::HTMLFontWeightEquivalent::HTMLFontWeightEquivalent):
(WebCore::HTMLFontWeightEquivalent::valueIsPresentInStyle const):

  • editing/EditingStyle.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

LayoutTests:

  • css3/font-weight-expected.txt:
  • css3/font-weight-multiple-selectors-expected.txt:
  • css3/font-weight-multiple-selectors.html:
  • css3/font-weight.html:
  • editing/pasteboard/paste-and-sanitize-expected.txt:
  • editing/pasteboard/paste-and-sanitize.html:
  • editing/pasteboard/paste-text-with-style-4-expected.txt:
  • fast/css/child-selector-implicit-tbody.html:
  • fast/css/css-properties-case-insensitive.html:
  • fast/css/font-shorthand-from-longhands-expected.txt:
  • fast/css/font-shorthand-from-longhands.html:
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/events/before-input-events-prevent-drag-and-drop-expected.txt:
  • fast/html/article-element-expected.txt:
  • fast/html/article-element.html:
  • fast/html/aside-element-expected.txt:
  • fast/html/aside-element.html:
  • fast/html/figcaption-element-expected.txt:
  • fast/html/figcaption-element.html:
  • fast/html/figure-element-expected.txt:
  • fast/html/figure-element.html:
  • fast/html/footer-element-expected.txt:
  • fast/html/footer-element.html:
  • fast/html/header-element-expected.txt:
  • fast/html/header-element.html:
  • fast/html/hgroup-element-expected.txt:
  • fast/html/hgroup-element.html:
  • fast/html/main-element-expected.txt:
  • fast/html/main-element.html:
  • fast/html/mark-element-expected.txt:
  • fast/html/mark-element.html:
  • fast/html/section-element-expected.txt:
  • fast/html/section-element.html:
  • fast/text/accessibility-bold-system-font-expected.txt:
  • fast/text/accessibility-bold-system-font.html:
  • fast/text/font-weight-1-1000-expected.txt:
  • fast/text/font-weight-parse-expected.txt:
  • fast/text/font-weight-parse.html:
  • fast/text/variations/out-of-bounds-selection-properties-expected.txt:
  • fast/text/variations/out-of-bounds-selection-properties.html:
  • mathml/presentation/mstyle-css-attributes-expected.html:
  • platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/glib/svg/css/getComputedStyle-basic-expected.txt:
  • platform/gtk/editing/deleting/delete-first-list-item-expected.png:
  • platform/gtk/editing/deleting/delete-first-list-item-expected.txt:
  • platform/gtk/editing/inserting/insert-div-022-expected.txt:
  • platform/gtk/editing/pasteboard/3976872-expected.png:
  • platform/gtk/editing/pasteboard/3976872-expected.txt:
  • platform/gtk/editing/pasteboard/paste-match-style-001-expected.png:
  • platform/gtk/editing/pasteboard/paste-match-style-001-expected.txt:
  • platform/gtk/fast/text/font-weight-parse-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-properties-on-the-math-root-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/fast/text/font-weight-parse-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-properties-on-the-math-root-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-properties-on-the-math-root-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/fast/events/ondrop-text-html-expected.txt:
  • platform/mac/fast/text/font-weight-parse-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • platform/wpe/fast/text/font-weight-parse-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
3:43 AM Changeset in webkit [282544] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r279284 - Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=226821

Reviewed by Ryosuke Niwa.

Source/WebCore:

r276394 fixed an issue in serialization when transversing the nodes. It added a new condition
to the ASSERT that was checking that its OK not to have a next pointer when there is a valid
pastEnd in the case of pastEnd being a descendant of the pointer traversing the node tree.

However that descendant check was not including the shadow DOM. This is precisely the case
detected by the test case this patch is adding.

Test: editing/selection/setSelection-shadow-dom-crash.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

LayoutTests:

  • editing/selection/setSelection-shadow-dom-crash-expected.txt: Added.
  • editing/selection/setSelection-shadow-dom-crash.html: Added.
3:43 AM Changeset in webkit [282543] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r279254 - Crash in WebFrameLoaderClient::dispatchDidStartProvisionalLoad after provisionalLoader is gone.
https://bugs.webkit.org/show_bug.cgi?id=226979

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-06-24
Reviewed by Ryosuke Niwa.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

3:43 AM Changeset in webkit [282542] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r279118 - Make rendererIsEverNeeded check less strict
https://bugs.webkit.org/show_bug.cgi?id=226791

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-22
Reviewed by Antti Koivisto.

Make rendererIsEverNeeded check less strict
in TreeResolver::resolveElement.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

3:43 AM Changeset in webkit [282541] by Adrian Perez de Castro
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.32

Merge r279076 - Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount)::<lambda()>
https://bugs.webkit.org/show_bug.cgi?id=227180

Reviewed by Keith Miller.

JSTests:

  • stress/shared-wasm-memory-with-zero-byte.js: Added.

Source/JavaScriptCore:

When Wasm.Memory is shared, we should allocate bound growable memory even if initial size is 0 bytes,
since this range can be later extended by mprotect. If maximum size is also 0 byte, we already have
a path that does not allocate anything.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::tryCreate):

3:39 AM Changeset in webkit [282540] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Fix crash in 32 bits due to not enough scratch registers available
https://bugs.webkit.org/show_bug.cgi?id=230241

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-09-16
Reviewed by Filip Pizlo.

Since patch 229229 (Polymorphic PutByVal) landed, jsc is now reaching
the case Transition in AccessCase::generateImpl which needs three
scratch registers when reallocating, but in ARMv7/MIPS, there are only
two registers available.

So in this patch, AccessCase::createTransition is changed to actually
check if there are enough registers available before creating the
AccessCase object.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

3:37 AM Changeset in webkit [282539] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r278729 - Fix incorrect check in AudioNode.disconnect()
https://bugs.webkit.org/show_bug.cgi?id=226818
<rdar://problem/79076999>

Reviewed by Eric Carlson.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::disconnect):

3:36 AM Changeset in webkit [282538] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r278397 - Make EndTransparancyLayer a potential no-op
https://bugs.webkit.org/show_bug.cgi?id=226523

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-02
Reviewed by Simon Fraser.

Make EndTransparancyLayer a no-op if there is no
current transparency layer in place.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::EndTransparencyLayer::apply const):

3:36 AM Changeset in webkit [282537] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/ThirdParty/ANGLE

Merge r278296 - Cherry-pick ANGLE: Add array bounds checks for WebGL shaders
https://bugs.webkit.org/show_bug.cgi?id=226397

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-31
Reviewed by Dean Jackson.

Cherry-pick ANGLE commit b0d39ba2aba218402ff2f32f6e16f18cf4975ff4
At the moment does not affect any WebKit client.
Makes the code consistent with OpenGL.
Makes it easier to understand same change in Metal backend.

Upstream description:
Add array bounds checks for WebGL shaders
WebGL shaders may contain OOB array accesses which in turn
cause undefined behavior, which may result in security
issues. This was detected as an UNKNOWN READ by UBSAN while
testing with SwANGLE.

  • src/libANGLE/renderer/vulkan/ShaderVk.cpp:

(rx::ShaderVk::compile):

3:36 AM Changeset in webkit [282536] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32

Merge r278236 - Punycode encode U+0BE6 when not in context of other Tamil characters
https://bugs.webkit.org/show_bug.cgi?id=226409
<rdar://78160926>

Reviewed by Tim Horton.

Source/WTF:

It has quite legitimate use, so we don't want to always punycode encode it,
but when used in the context of non-Tamil characters we want to punycode encode it.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_ARMENIAN>):
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_TAMIL>):
(WTF::URLHelpers::isOfScriptType):
(WTF::URLHelpers::isLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeCharacter): Deleted.
(WTF::URLHelpers::isArmenianScriptCharacter): Deleted.
(WTF::URLHelpers::isArmenianLookalikeSequence): Deleted.

Tools:

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

(TestWebKitAPI::TEST):

3:36 AM Changeset in webkit [282535] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32

Merge r278236 - Punycode encode U+0BE6 when not in context of other Tamil characters
https://bugs.webkit.org/show_bug.cgi?id=226409
<rdar://78160926>

Reviewed by Tim Horton.

Source/WTF:

It has quite legitimate use, so we don't want to always punycode encode it,
but when used in the context of non-Tamil characters we want to punycode encode it.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_ARMENIAN>):
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_TAMIL>):
(WTF::URLHelpers::isOfScriptType):
(WTF::URLHelpers::isLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeCharacter): Deleted.
(WTF::URLHelpers::isArmenianScriptCharacter): Deleted.
(WTF::URLHelpers::isArmenianLookalikeSequence): Deleted.

Tools:

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

(TestWebKitAPI::TEST):

3:36 AM Changeset in webkit [282534] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r278207 - Buffer computations should use correct type
https://bugs.webkit.org/show_bug.cgi?id=226352
<rdar://problem/78116213>

Reviewed by Ryosuke Niwa.

The implementation of utf8Buffer holds the buffer size in an 'int', even though our buffer
APIs take size_t arguments. Let's make this consistent.

  • platform/SharedBuffer.cpp:

(WebCore::utf8Buffer):

3:36 AM Changeset in webkit [282533] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.32

Merge r278177 - Increase NumberToStringBuffer to account for negative number
https://bugs.webkit.org/show_bug.cgi?id=226014

Patch by Mikhail R. Gadelha <mikhail.ramalho@gmail.com> on 2021-05-27
Reviewed by Robin Morisset.

In r250389, NumberToStringBuffer length was increased from 96 to 123 because:

<21 digits> + decimal point + <100 digits> + null char = 123.

however,

a = -100000000000000000000
a.toFixed(100)

is a valid conversion and it is 124 chars long, because of the "-" sign.

So this patch increases the length of NumberToStringBuffer to 124 and adds new
test cases.

Source/WTF:

Reviewed by Ryosuke Niwa.

  • wtf/dtoa.h:

LayoutTests:

  • js/dom/number-tofixed-expected.txt:
  • js/dom/script-tests/number-tofixed.js:
  • js/kde/Number-expected.txt:
  • js/kde/script-tests/Number.js:
3:36 AM Changeset in webkit [282532] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r278161 - [GPU Process] Add validation when reading DisplayListSharedMemoryHeader::waitingStatus in DisplayListReaderHandle
https://bugs.webkit.org/show_bug.cgi?id=226306
rdar://78118900

Reviewed by Chris Dumez.

Store this waiting status (an enum class with three valid states) as a raw uint8_t in shared memory, rather
than an enum class. This allows us to verify that this value indicates a valid waiting status (using
isValidEnum) upon reading this flag in the GPU process, and perform a MESSAGE_CHECK in the case where it is
invalid.

  • GPUProcess/graphics/DisplayListReaderHandle.h:

(WebKit::DisplayListReaderHandle::startWaiting):
(WebKit::DisplayListReaderHandle::stopWaiting):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):

  • Shared/SessionState.cpp:

(WebKit::PageState::decode):

  • Shared/SessionState.h:

Drive-by fix: remove a non-templated declaration of isValidEnum(). This is necessary in order to use
WTF::isValidEnum without the explicit WTF namespace prefix inside DisplayListReaderHandle, since WTF's
declaration of isValidEnum clashes with this declaration.

Instead of using this separate method for validating the enum, simply encode and decode the
shouldOpenExternalURLsPolicy enum using << and >> operators, respectively; this ensures that the decoded value
of shouldOpenExternalURLsPolicy is either valid, or the result will be WTF::nullopt if decoding fails or
results in an invalid enum.

  • Shared/SharedDisplayListHandle.h:
  • WebProcess/GPU/graphics/DisplayListWriterHandle.h:

(WebKit::DisplayListWriterHandle::tryToResume):

3:36 AM Changeset in webkit [282531] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WTF

Merge r278132 - [Hardening] Have the Ref<> destructor null out its pointer
https://bugs.webkit.org/show_bug.cgi?id=226293
<rdar://problem/78532149>

Reviewed by Geoffrey Garen.

  • wtf/Ref.h:

(WTF::Ref::~Ref):

3:32 AM Changeset in webkit [282530] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Use std::optional for truncation
https://bugs.webkit.org/show_bug.cgi?id=230311

Reviewed by Myles Maxfield.

Replace the constants.
Use 0 truncation value for "full" truncation.

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::selectionState const):

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::placeEllipsisBox):
(WebCore::LegacyInlineTextBox::nodeAtPoint):
(WebCore::LegacyInlineTextBox::paint):
(WebCore::LegacyInlineTextBox::selectableRange const):

  • rendering/LegacyInlineTextBox.h:

(WebCore::LegacyInlineTextBox::truncation const):

  • rendering/RenderText.cpp:

(WebCore::ellipsisRectForTextRun):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForegroundAndDecorations):
(WebCore::TextBoxPainter::paintDecoration):

Remove various full truncation checks. Zero truncation value will make them not paint without needing extra checks.

(WebCore::TextBoxPainter::paintCompositionUnderlines):
(WebCore::TextBoxPainter::paintCompositionUnderline):
(WebCore::TextBoxPainter::paintPlatformDocumentMarker):
(WebCore::TextBoxPainter::computePaintRect):

  • rendering/TextBoxSelectableRange.h:

(WebCore::TextBoxSelectableRange::clamp const):

Maintain the behavior where fully truncated text is selectable so fast/text/scroll-text-overflow-ellipsis.html keeps passing.

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):

3:09 AM Changeset in webkit [282529] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r278000 - Only create MediaElementSession when necessary
https://bugs.webkit.org/show_bug.cgi?id=226132

Patch by Ian Gilbert <iang@apple.com> on 2021-05-25
Reviewed by Eric Carlson.

Some methods had an unexpected side effect of creating a MediaElementSession.
Modified these to not create one if one does not already exist.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::mediaState const):

3:09 AM Changeset in webkit [282528] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277915 - Detect invalid InlinePathData in StrokeInlinePath
https://bugs.webkit.org/show_bug.cgi?id=225691

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

Detect invalid InlinePathData in StrokeInlinePath.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath):
(WebCore::DisplayList::StrokeInlinePath::path const): Deleted.

3:09 AM Changeset in webkit [282527] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277854 - Detect invalid InlinePathData in FillInlinePath
https://bugs.webkit.org/show_bug.cgi?id=225693

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

Detect invalid InlinePathData in FillInlinePath.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::InlinePathDataStorage::InlinePathDataStorage):
(WebCore::DisplayList::InlinePathDataStorage::isValid const):
(WebCore::DisplayList::FillInlinePath::FillInlinePath):
(WebCore::DisplayList::FillInlinePath::path const): Deleted.

3:09 AM Changeset in webkit [282526] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277821 - WebAudioBufferList::setSampleCount() should early return if computeBufferSizes() fails
https://bugs.webkit.org/show_bug.cgi?id=226028
rdar://78222414

Reviewed by Eric Carlson.

If computeBufferSizes() fails (returns WTF::nullopt), we now early return on release
builds, without modifying the WebAudioBufferList's internal state in any way. In
Debug, we would still hit the assertion.

  • platform/audio/cocoa/WebAudioBufferList.cpp:

(WebCore::WebAudioBufferList::setSampleCount):

3:01 AM Changeset in webkit [282525] by youenn@apple.com
  • 19 edits
    2 adds in trunk

Support RTCPeerConnection lastCreatedOffer/lastCreatedAnswer
https://bugs.webkit.org/show_bug.cgi?id=230260

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-parameterless.https-expected.txt:

Source/WebCore:

Update WebIDL to handle optional RTCLocalSessionDescriptionInit.type value.
In case type is missing, compute its value in setLocalDescription as per
https://w3c.github.io/webrtc-pc/#dom-peerconnection-setlocaldescription step 4.1.
If sdp is empty, use local offer/answer as per steps 4.2 and 4.3.
Store local offer and answer as per spec.
Refactor code to let PeerConnectionBackend createOffer and createAnswer take a callback instead of a promise
to store the last offer/answer.

Covered by existing and rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOffer):
(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswer):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::stop):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCLocalSessionDescriptionInit.h: Added.
  • Modules/mediastream/RTCLocalSessionDescriptionInit.idl: Added.
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::typeForSetLocalDescription):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::updateDescriptions):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
3:00 AM Changeset in webkit [282524] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277698 - The containing block for a fixed renderer has to be a type of RenderBlock
https://bugs.webkit.org/show_bug.cgi?id=225924
<rdar://77968716>

Reviewed by Simon Fraser.

While an atomic inline level box with layout containment can certainly be the containing block for fixed (and absolute) boxes,
the current render tree logic requires a containing block to be the type of RenderBlock.

  • rendering/RenderElement.cpp:

(WebCore::nearestNonAnonymousContainingBlockIncludingSelf): make this function static so that we can call it from containingBlockForFixedPosition()
(WebCore::RenderElement::containingBlockForFixedPosition const):
(WebCore::RenderElement::containingBlockForAbsolutePosition const):

2:55 AM Changeset in webkit [282523] by youenn@apple.com
  • 15 edits in trunk

Enable RTCRtpScriptTransform by default
https://bugs.webkit.org/show_bug.cgi?id=230220
Source/WebCore:

Reviewed by Eric Carlson.

No change of behavior, renaming WebRTCInsertableStreamsEnabled to WebRTCEncodedTransformEnabled
and WebRTCSFrameTransformEnabled.

  • Modules/mediastream/RTCEncodedAudioFrame.idl:
  • Modules/mediastream/RTCEncodedVideoFrame.idl:
  • Modules/mediastream/RTCRtpReceiver+Transform.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformErrorEvent.idl:
  • Modules/mediastream/RTCRtpScriptTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSender+Transform.idl:
  • Modules/mediastream/RTCTransformEvent.idl:
  • workers/DedicatedWorkerGlobalScope.idl:

Source/WTF:

Reviewed by Eric Carlson.

Splitting WebRTCInsertableStreamsEnabled to WebRTCEncodedTransformEnabled and WebRTCSFrameTransformEnabled.
Keeping WebRTCSFrameTransformEnabled as off by default until SFrame solidifies and mark WebRTCEncodedTransformEnabled as on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

<rdar://problem/83090247>

Reviewed by Eric Carlson.

  • http/wpt/webrtc/no-webrtc-transform.html:

Migrate to new internal setting.

2:52 AM Changeset in webkit [282522] by Adrian Perez de Castro
  • 8 edits in releases/WebKitGTK/webkit-2.32

Merge r277631 - [GPU Process] Object identifiers with the deleted value should cause MESSAGE_CHECKs
https://bugs.webkit.org/show_bug.cgi?id=225886
rdar://78114708

Reviewed by Chris Dumez.

Source/WebCore:

Implement some stricter validation around object identifiers in when decoding display list items in the GPU
Process. Currently, we only check for the empty value (i.e. raw identifier value of 0) when iterating over these
items, but treat an identifier with the deleted value as valid; instead, we should be treating items with either
empty or deleted identifiers as invalid.

To address this, we introduce a new helper method, ObjectIdentifier::isValid, and turn existing checks for
!!identifier into identifier.isValid().

Test: DisplayListTests.InlineItemValidationFailure

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::ClipToImageBuffer::isValid const):
(WebCore::DisplayList::DrawImageBuffer::isValid const):
(WebCore::DisplayList::DrawNativeImage::isValid const):
(WebCore::DisplayList::DrawPattern::isValid const):
(WebCore::DisplayList::PaintFrameForMedia::isValid const):
(WebCore::DisplayList::FlushContext::isValid const):
(WebCore::DisplayList::MetaCommandChangeItemBuffer::isValid const):
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::isValid const):

Source/WebKit:

See WebCore/ChangeLog for more details. Use ObjectIdentifier::isValid() instead of just checking for the empty
value, when determining whether an object identifier should trigger a message check to the web process.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):

Source/WTF:

See WebCore/ChangeLog for more details. Add a helper method on ObjectIdentifier that returns true only if it
is the empty value or deleted value.

  • wtf/ObjectIdentifier.h:

(WTF::ObjectIdentifier::isValid const):

Tools:

Adjust an existing API test to verify that the deleted object identifier value triggers an inline item decoding
failure.

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):

2:52 AM Changeset in webkit [282521] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277602 - [GPU Process] Validate DocumentMarkerLineStyle::Mode when decoding DrawDotsForDocumentMarker
https://bugs.webkit.org/show_bug.cgi?id=225874
rdar://77885775

Reviewed by Simon Fraser.

Add validation around the style mode enum in DrawDotsForDocumentMarker's DocumentMarkerLineStyle. To ensure
that these enum values are safely decoded when deserializing DrawDotsForDocumentMarker items from arbitrary
data, we store and read the style mode as DocumentMarkerLineStyle::Mode's underlying type: a uint8_t. Upon
item validation, we'll then return false from isValid() in the case where the underlying value is not a
valid DocumentMarkerLineStyle::Mode.

This is necessary because copying invalid enum class types triggers undefined behavior in C++, so we need to
avoid copying the enum value as a DocumentMarkerLineStyle::Mode prior to validation.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::DrawDotsForDocumentMarker::isValid const):

  • platform/graphics/displaylists/DisplayListItems.h:
2:52 AM Changeset in webkit [282520] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277600 - REGRESSION(r277425): Crash in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225795

Patch by Frederic Wang <fwang@igalia.com> on 2021-05-17
Reviewed by Ryosuke Niwa.

r277425 claimed that in FrameSelection::setSelectionWithoutUpdatingAppearance,
!m_document->frame() was equivalent to !selectionEndpointsBelongToMultipleDocuments &&
!selectionIsInAnotherDocument && selectionIsInDetachedDocument, but it misses the case when
newSelection.document() is null. So this patch adds back this particular case to the
original "if" block. This patch also adds an ASSERT on m_document->frame().

No new tests.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Add back the case
!m_document->frame() && !newSelection.document() to the first sanity check and ASSERT on
m_document->frame() after the second sanity check.

2:40 AM Changeset in webkit [282519] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277532 - Provide custom SetInlineFillGradient copy ctor
https://bugs.webkit.org/show_bug.cgi?id=225688

Patch by Rob Buis <rbuis@igalia.com> on 2021-05-14
Reviewed by Wenson Hsieh.

Provide custom SetInlineFillGradient copy ctor
to deal with invalid SetInlineFillGradient source.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetInlineFillGradient::isValid const):

2:40 AM Changeset in webkit [282518] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277425 - RELEASE_ASSERT(m_selection->isNone()) fails in Document::removedLastRef
https://bugs.webkit.org/show_bug.cgi?id=225434

Patch by Frederic Wang <fwang@igalia.com> on 2021-05-12
Reviewed by Ryosuke Niwa.

Document::removedLastRef asserts that the document's selection is not set. However, setting
that selection is possible in FrameSelection::setSelectionWithoutUpdatingAppearance when the
document has not been destroyed yet but is already detached from its frame. This patch
instead clears the selection in that case.

No new tests.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Clears the selection when
newSelection is in a detached document. Given the other conditions, this is actually
checking equivalent to !m_document->frame().

2:30 AM Changeset in webkit [282517] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r277375 - Crash in WebPageProxy::endColorPicker()
https://bugs.webkit.org/show_bug.cgi?id=225679

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-12
Reviewed by Ryosuke Niwa.

Make sure that endColorPicker() and didEndColorPicker()
do not both attempt to null-out m_colorPicker.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::endColorPicker):
(WebKit::WebPageProxy::didEndColorPicker):

2:27 AM Changeset in webkit [282516] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276748 - Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082

Unreviewed. Address the review comments by Chris & Darin.

  • dom/Document.cpp:

(WebCore::Document::forEachMediaElement):

2:07 AM Changeset in webkit [282515] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276696 - Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082

Patch by Ian Gilbert <iang@apple.com> on 2021-04-28
Reviewed by Ryosuke Niwa.

Refactoring to use weak pointer instead of raw pointer.
No observable change of behavior.

  • dom/Document.cpp:

(WebCore::Document::registerMediaElement):
(WebCore::Document::unregisterMediaElement):
(WebCore::Document::forEachMediaElement):

  • dom/Document.h:
2:07 AM Changeset in webkit [282514] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r276651 - [IPC Hardening] Make sure IPC::Decoder constructors consistently call markInvalid() when decoding fails
https://bugs.webkit.org/show_bug.cgi?id=225110
<rdar://76547775>

Reviewed by Darin Adler.

One of the IPC::Decoder constructors was failing to call markInvalid() after failing to
decoder the message name.

  • Platform/IPC/Decoder.cpp:

(IPC::m_destinationID):

1:56 AM Changeset in webkit [282513] by Cameron McCormack
  • 14 edits
    4 deletes in trunk

Disable display-p3 canvas and ImageData on platforms other than Monterey+ and iOS 15+
https://bugs.webkit.org/show_bug.cgi?id=230139
<rdar://81828819>

Reviewed by Sam Weinig.

Source/WebCore:

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):

  • html/canvas/PredefinedColorSpace.cpp:

(WebCore::toDestinationColorSpace):
(WebCore::toPredefinedColorSpace):

  • html/canvas/PredefinedColorSpace.h:
  • html/canvas/PredefinedColorSpace.idl:

Source/WTF:

Add HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035) to represent whether
CoreAnimation has a fix for a bug that prevents Display P3 canvas
rendering operations from behaving correctly.

Add ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3) to represent whether the
"display-p3" values of the PredefinedColorSpace IDL enum is enabled.
This in turn controls whether Display P3 canvases and ImageData objects
can be created. We turn this on only for platforms where
ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3), since that is what the
canvas and ImageData backing stores use, and only if
HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035). The result is that these
features are only enabled on macOS Monterey+ and iOS 15+.

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

LayoutTests:

  • TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
  • platform/mac-catalina/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
  • platform/mac/TestExpectations:
1:51 AM Changeset in webkit [282512] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r276630 - [MathML] Assertion failure in RenderTreeNeedsLayoutChecker
https://bugs.webkit.org/show_bug.cgi?id=224903

Patch by Frédéric Wang <fwang@igalia.com> on 2021-04-27
Reviewed by Alan Bujtas.

Source/WebCore:

After r226180, RenderMathMLRow no longer performs layout of its "embellished operator"
children only its core <mo> descendant, which is causing dirty layout.

Test: mathml/vertical-embellished-op-dirty-layout.html

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::stretchVerticalOperatorsAndLayoutChildren): always layout the
"embellished operator" child, after its core <mo>.

LayoutTests:

Add regression test with all vertical embellished operators (other than <mo>) supported
by WebKit.

  • mathml/vertical-embellished-op-dirty-layout-expected.txt: Added.
  • mathml/vertical-embellished-op-dirty-layout.html: Added.
1:51 AM Changeset in webkit [282511] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r276623 - Add more eager OOB checks when creating DisplayListReaderHandle & DisplayListWriterHandle.
https://bugs.webkit.org/show_bug.cgi?id=225055
<rdar://71896663>

Patch by Tim Nguyen <ntim@apple.com> on 2021-04-26
Reviewed by Wenson Hsieh.

There were already some OOB checks for both classes, this revision adds checks at creation-time.
Also add a comment on top of SharedDisplayListHandle.h to mention that only subclasses use it.

  • GPUProcess/graphics/DisplayListReaderHandle.h:

(WebKit::DisplayListReaderHandle::create):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):

  • Shared/SharedDisplayListHandle.h:

(WebKit::SharedDisplayListHandle::SharedDisplayListHandle):

  • WebProcess/GPU/graphics/DisplayListWriterHandle.h:

(WebKit::DisplayListWriterHandle::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

1:40 AM Changeset in webkit [282510] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276546 - Crash in IndentOutdentCommand::outdentParagraph attempting to move a paragraph
https://bugs.webkit.org/show_bug.cgi?id=224909

Patch by Ian Gilbert <iang@apple.com> on 2021-04-23
Reviewed by Ryosuke Niwa.

Added check inside IndentOutdentCommand::outdentParagraph to ensure that inserting a
HTMLBRElement was successful before attempting to move a paragraph to that node.

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

1:40 AM Changeset in webkit [282509] by Adrian Perez de Castro
  • 10 edits in releases/WebKitGTK/webkit-2.32

Merge r276262 - Nullptr crash in CSSCalcValue::category() via HTMLConverterCaches::floatPropertyValueForNode
https://bugs.webkit.org/show_bug.cgi?id=221392

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt:

Updated to reflect 8 tests passing that were failing before.

Source/WebCore:

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcOperationNode::createCalcExpression const): Pass in a destination category
when creating a CalcExpressionOperation.
(WebCore::createCSS): Pass the destination category from the CalcExpressionOperation when
creating a CSSCalcOperationNode.

  • css/CSSCalculationValue.h: Moved the CalculationCategory enumeration from here to

CalculationValue.h.

  • platform/CalculationValue.cpp:

(WebCore::operator==): Include destination category when comparing.

  • platform/CalculationValue.h: Moved CalculationCategory here. Added a destination

category constructor argument, data members, and getter function to the
CalcExpressionOperation class.

LayoutTests:

  • fast/css/calc-parsing-expected.txt: Updated for change below.
  • fast/css/calc-parsing.html: Added more test cases so this covers the affected cases of computed

style for calc expressions that mix percentages and numbers. Alternatively, we could remove this
entire test case because the web platform tests also cover this pretty well.

1:31 AM Changeset in webkit [282508] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276110 - Assertion failure in SVGAnimationElement::currentValuesForValuesAnimation
https://bugs.webkit.org/show_bug.cgi?id=222715

Reviewed by Ryosuke Niwa.

Replaced ASSERT_WITH_SECURITY_IMPLICATION by ASSERT. It was added by mistake as part of
r157341 long time ago. There is no security implication because just after the assert
there would be a division by 0 followed by a crash.

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):

1:31 AM Changeset in webkit [282507] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276015 - Empty value is added in codePointsFromString in CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts
https://bugs.webkit.org/show_bug.cgi?id=223857

Reviewed by Darin Adler.

Use UnsignedWithZeroKeyHashTraits in codePointsFromString() to avoid it.

  • css/CSSFontFaceSet.cpp:

(WebCore::codePointsFromString):

1:31 AM Changeset in webkit [282506] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276014 - [RenderTreeBuilder] Cleanup the inline tree when moving subtrees
https://bugs.webkit.org/show_bug.cgi?id=224342
<rdar://76349279>

Reviewed by Antti Koivisto.

When an inline box is moved over to a different BFC (<span>), any inline level descendant (<span><img></span>) should be invalidated. The safest way to do this is
to destroy the inline tree (the "subtree moving" will eventually be replaced by "destroy followed by construct" activity).

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::move):

1:26 AM Changeset in webkit [282505] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r276010 - REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=222720

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-15
Reviewed by Ryosuke Niwa.

This patch reverts r274064 to apply a different fix. Instead of null-checking the nodes returned by
SlotAssignment::assignedNodesForSlot(), assigned nodes are removed from the list when they are about to be
removed from the parent. That ensures we never return nullptr nodes nor nodes with a nullptr parent from the
assigned nodes vector.

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::traverseNextInShadowTree):
(WebCore::ComposedTreeIterator::advanceInSlot):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeBetween):

  • dom/Node.h:

(WebCore::Node::hasShadowRootContainingSlots const):
(WebCore::Node::setHasShadowRootContainingSlots):

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

(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::removeSlotElementByName):
(WebCore::SlotAssignment::willRemoveAssignedNode):

  • dom/SlotAssignment.h:

(WebCore::ShadowRoot::willRemoveAssignedNode):

1:14 AM Changeset in webkit [282504] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275994 - Crash in in ReplaceSelectionCommand::mergeEndIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=222941

Unreviewed. Address Darin's post-commit comment that we don't need to explicitly call copyRef here.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded):

1:14 AM Changeset in webkit [282503] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275972 - Crash in ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds()
https://bugs.webkit.org/show_bug.cgi?id=224520

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-04-14
Reviewed by Ryosuke Niwa.

Adopt RefPtr<Node> instead of using plain Node* here to avoid a crash.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):

1:12 AM Changeset in webkit [282502] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275938 - Do not reset computed style for element children with display contents style
https://bugs.webkit.org/show_bug.cgi?id=223794

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-14
Reviewed by Antti Koivisto.

We were checking hasDisplayContents() was false before calling resetComputedStyle() on the parent, but we don't
check it when iterating the children.

  • dom/Element.cpp:

(WebCore::Element::resetComputedStyle):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveComposedTree):

1:09 AM Changeset in webkit [282501] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275876 - Skip style update
https://bugs.webkit.org/show_bug.cgi?id=223365

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

Skip style update for getting the SVG bounding box
since boundingClientRect already updated style.

  • dom/Element.cpp:

(WebCore::Element::boundingAbsoluteRectWithoutLayout):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::getBoundingBox):

1:00 AM Changeset in webkit [282500] by Adrian Perez de Castro
  • 12 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r275845 - Modernize uses of ConsoleClient
https://bugs.webkit.org/show_bug.cgi?id=224398

Reviewed by David Kilzer.

ConsoleClient acts like a delegate, so its callers
should be using weak references to it.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::consoleClient const):

  • inspector/JSGlobalObjectInspectorController.h:
  • runtime/ConsoleClient.h:
  • runtime/ConsoleObject.cpp:

(JSC::consoleLogWithLevel):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::setConsoleClient):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::consoleClient const):
(JSC::JSGlobalObject::setConsoleClient): Deleted.

Source/WebCore:

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::restore):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initScriptForWindowProxy):

  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::setDOMWindow):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):

1:00 AM Changeset in webkit [282499] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275807 - Store InputType in a Ref before calling setValueAsDecimal
https://bugs.webkit.org/show_bug.cgi?id=223535

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

Store InputType in a Ref before calling setValueAsDecimal.

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

1:00 AM Changeset in webkit [282498] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275756 - Teardown shadow root renderers on SlotAssignment::didChangeSlot
https://bugs.webkit.org/show_bug.cgi?id=221386

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-09
Reviewed by Ryosuke Niwa.

This reverts r272900 to move the call to RenderTreeUpdater::tearDownRenderers() from hostChildElementDidChange()
to didChangeSlot(). This ensures the renderers are also cleared for other shadow root trees not using details
element.

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):

  • dom/SlotAssignment.h:

(WebCore::ShadowRoot::hostChildElementDidChange):

1:00 AM Changeset in webkit [282497] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32

Merge r275554 - Add U+0581 and U+0585 to list of Armenian characters that look like Latin characters
https://bugs.webkit.org/show_bug.cgi?id=224219
Source/WTF:

<rdar://75896365>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-06
Reviewed by Brent Fulgham.

These code points are allowed in the context of other Armenian code points and punctuation, but not other script code points.
This was already implemented for the others, but I consolidated the list to one location to avoid having two locations for the list.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isArmenianLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-06
Reviewed by Brent Fulgham.

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

(TestWebKitAPI::TEST):

1:00 AM Changeset in webkit [282496] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r275549 - Delay the end of printing while PrintContext is in use.
https://bugs.webkit.org/show_bug.cgi?id=224229

Reviewed by Antti Koivisto.

Added a new RAII object, PrintContextAccessScope, to delay the call to endPrinting
and deployed in various IPC messages used during printing.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::beginPrinting): Deployed PrintContextAccessScope.
(WebKit::WebPage::endPrinting): Exit early without ending printing if there is an active
PrintContextAccessScope in the stack.
(WebKit::WebPage::endPrintingImmediately): Extracted from endPrintingImmediately.
(WebKit::WebPage::computePagesForPrinting): Deployed PrintContextAccessScope.
(WebKit::WebPage::computePagesForPrintingImpl): Ditto.
(WebKit::WebPage::drawRectToImage): Ditto.
(WebKit::WebPage::drawPagesToPDF): Ditto.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::PrintContextAccessScope): Added.
(WebKit::WebPage::PrintContextAccessScope::PrintContextAccessScope): Added.
(WebKit::WebPage::PrintContextAccessScope::~PrintContextAccessScope): Added.

1:00 AM Changeset in webkit [282495] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275495 - [css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
https://bugs.webkit.org/show_bug.cgi?id=222852

Reviewed by Antti Koivisto.

We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever
applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's
but under some circumstances it might be the same. For those cases we wouldn't like to end up with
obsolete data from a previous style resolution.

The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call
to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all.

In order to have a single place with all the style properties affecting columns and rows, all the set
calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows}
methods. This would allow us to prevent eventual out-of-sync issues like this one.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):

12:41 AM Changeset in webkit [282494] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Use libwebrtc OnStandardizedIceConnectionChange callback instead of OnIceConnectionChange
https://bugs.webkit.org/show_bug.cgi?id=230314

Reviewed by Eric Carlson.

Migrate to standardized variant.
Covered by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnStandardizedIceConnectionChange):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
12:38 AM Changeset in webkit [282493] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275450 - PendingImageBitmap gets created on a stopped script execution context.
https://bugs.webkit.org/show_bug.cgi?id=223971

Reviewed by Youenn Fablet.

Don't create a PendingImageBitmap in PendingImageBitmap::fetch
if the associated script execution context had already been stoppped.

The new behavior matches of Chrome although it's technically incorrect.

Correcting it to match the spec & Firefox will refactor a larger fix around
how script execution context is used by the threaded loader.

  • html/ImageBitmap.cpp:

(WebCore::PendingImageBitmap::fetch):

12:35 AM Changeset in webkit [282492] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r275320 - Null pointer access crash in WebCore::makeBoundaryPoint(..)
https://bugs.webkit.org/show_bug.cgi?id=223977

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-31
Reviewed by Darin Adler.

Source/WebCore:

In makeBoundaryPoint, position.containerNode() can be nullptr even if position.isNull() was false

Test: LayoutTests/editing/inserting/crash-make-boundary-point.html

  • dom/Position.cpp:

(WebCore::makeBoundaryPoint):

LayoutTests:

Adding a refression test case.

  • editing/inserting/crash-make-boundary-point-expected.txt: Added.
  • editing/inserting/crash-make-boundary-point.html: Added.
12:34 AM Changeset in webkit [282491] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r281384 - IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:
12:33 AM Changeset in webkit [282490] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] test animations/steps-transform-rendering-updates.html fails
https://bugs.webkit.org/show_bug.cgi?id=230307

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-09-16
Reviewed by Carlos Alberto Lopez Perez.

ThreadedDisplayRefreshMonitor is not setting isScheduled back to false when it's fired. That causes
hasBeenRescheduled to be true and handleDisplayRefreshMonitorUpdate() is called with force repaint option, so we
end up flushing layers on every display refresh update.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:

(WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback):

12:22 AM Changeset in webkit [282489] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275241 - Occasional debug assert in GenericTaskQueue::~GenericTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=223913

Reviewed by Eric Carlson.

Eagerly initialize WeakPtrImpl so that we don't hit debug assertions.

Also made Performance object use EventLoop.

No new tests since there is no test case that reliably reproduces this issue.

  • dom/TaskSource.h:

(TaskSource): Added PerformanceTimeline.

  • page/Performance.cpp:

(WebCore::Performance::Performance):
(WebCore::Performance::contextDestroyed):
(WebCore::Performance::queueEntry): Use EventLoopTaskGroup instead of GenericTaskQueue to deliver entries.

  • page/Performance.h:
  • platform/GenericTaskQueue.h:

(WebCore::GenericTaskQueue::GenericTaskQueue): Eagerly initialize WeakPtrImpl.
Also assert that we're creating this object in the main thread.

Sep 15, 2021:

10:48 PM Changeset in webkit [282488] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.7

9:39 PM Changeset in webkit [282487] by commit-queue@webkit.org
  • 29 edits in trunk

Fixes for build-webkit --minimal
https://bugs.webkit.org/show_bug.cgi?id=229780

Patch by Philip Chimento <pchimento@igalia.com> on 2021-09-15
Reviewed by Fujii Hironori.

.:

Remove ENABLE_INTERSECTION_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

Covered by existing tests.

Remove ENABLE_INTERSECTION_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore::Document::intersectionObserversInitialUpdateTimerFired):
(WebCore::Document::scheduleRenderingUpdate):

  • dom/Document.h:

(WebCore::Document::intersectionObserverDataIfExists):

  • dom/Element.cpp:

(WebCore::Element::~Element):
(WebCore::Element::didMoveToNewDocument):

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

(WebCore::ElementRareData::setIntersectionObserverData):

  • page/IntersectionObserver.cpp:
  • page/IntersectionObserver.h:
  • page/IntersectionObserver.idl:
  • page/IntersectionObserverCallback.h:
  • page/IntersectionObserverCallback.idl:
  • page/IntersectionObserverEntry.cpp:
  • page/IntersectionObserverEntry.h:
  • page/IntersectionObserverEntry.idl:
  • page/Page.cpp:

(WebCore::Page::updateRendering):
(WebCore::operator<<):

  • page/Page.h:
  • testing/Internals.cpp:

(WebCore::Internals::numberOfIntersectionObservers const):

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

Source/WTF:

Remove ENABLE_INTERSECTION_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnableCocoa.h:

Tools:

Remove ENABLE_INTERSECTION_OBSERVER build-time option. This option is
quite broken if you try to disable it.

  • Scripts/webkitperl/FeatureList.pm: Remove intersection-observer option
8:06 PM Changeset in webkit [282486] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Fix Xcode build

Unreviewed.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
6:40 PM Changeset in webkit [282485] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fixes for build-webkit --minimal
https://bugs.webkit.org/show_bug.cgi?id=229780

Patch by Philip Chimento <pchimento@igalia.com> on 2021-09-15
Reviewed by Fujii Hironori.

Remove the fast-jit-permissions, legacy-css-vendor-prefixes,
webassembly-streaming-api, and webgpu options. These don't seem to exist
anymore within the codebase and print an error if they are used.

  • Scripts/webkitperl/FeatureList.pm:
6:08 PM Changeset in webkit [282484] by commit-queue@webkit.org
  • 282 edits
    2 copies
    12 adds in trunk

Add IDL skeleton for SharedWorker
https://bugs.webkit.org/show_bug.cgi?id=230293

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-15
Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub-expected.txt:
  • web-platform-tests/content-security-policy/form-action/form-action-src-blocked.sub-expected.txt:
  • web-platform-tests/content-security-policy/frame-src/frame-src-same-document.sub-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-classic.https-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/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/script-tag.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-classic.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/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/script-tag.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/worklet-audio-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/script-tag.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-classic.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/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worklet-audio-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/script-tag.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-classic.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/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worklet-audio-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-classic.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/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/script-tag.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-classic.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/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/script-tag.https-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-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import.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/worklet-audio-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/script-tag.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-classic.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/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worklet-audio-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/script-tag.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/script-tag.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/worklet-audio-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/worklet-audio.https-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/sharedworker-connect-src.sub-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/sharedworker-report-only.sub-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/sharedworker-script-src.sub-expected.txt:
  • web-platform-tests/content-security-policy/reporting-api/reporting-api-works-on-frame-ancestors.https.sub-expected.txt:
  • web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt:
  • web-platform-tests/content-security-policy/sandbox/shared-worker-sandbox-expected.txt:
  • web-platform-tests/content-security-policy/script-src/worker-data-set-timeout.sub-expected.txt:
  • web-platform-tests/content-security-policy/script-src/worker-importscripts.sub-expected.txt:
  • web-platform-tests/content-security-policy/script-src/worker-set-timeout.sub-expected.txt:
  • web-platform-tests/fetch/api/cors/data-url-shared-worker-expected.txt:
  • web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https-expected.txt:
  • web-platform-tests/fetch/metadata/sharedworker.https.sub-expected.txt:
  • web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
  • web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.https-expected.txt:
  • web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.tentative.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.tentative.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-subresource-corp.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/worker-inheritance.sub.https-expected.txt:
  • web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https-expected.txt:
  • web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https-expected.txt:
  • web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/utf-8-expected.txt:
  • web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/evaluation-order-1-nothrow-sharedworker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/evaluation-order-1-sharedworker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-nothrow-sharedworker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-sharedworker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-2-import-sharedworker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-3-dynamic-sharedworker-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.sharedworker-expected.txt:
  • web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-insecure.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http-expected.txt:
  • web-platform-tests/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get-client-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:
  • web-platform-tests/wasm/serialization/module/broadcastchannel-success-and-failure-expected.txt:
  • web-platform-tests/wasm/serialization/module/window-sharedworker-failure-expected.txt:
  • web-platform-tests/webmessaging/broadcastchannel/workers-expected.txt:
  • web-platform-tests/workers/SharedWorker-constructor-expected.txt:
  • web-platform-tests/workers/SharedWorker-detach-frame-in-error-event-expected.txt:
  • web-platform-tests/workers/SharedWorker-exception-expected.txt:
  • web-platform-tests/workers/SharedWorker-exception-propagation-expected.txt:
  • web-platform-tests/workers/SharedWorker-script-error-expected.txt:
  • web-platform-tests/workers/SharedWorker-simple-expected.txt:
  • web-platform-tests/workers/SharedWorkerPerformanceNow-expected.txt:
  • web-platform-tests/workers/SharedWorker_blobUrl-expected.txt:
  • web-platform-tests/workers/SharedWorker_dataUrl-expected.txt:
  • web-platform-tests/workers/abrupt-completion-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/connect-event-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/dummy-name-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/empty-name-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/global-members-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/interface-objects-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/name-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/no-arguments-ctor-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/null-arguments-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/number-arguments-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/port-onmessage-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/port-properties-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/port-readonly-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/same-origin-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/setting-port-members-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/undefined-arguments-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties-expected.txt:
  • web-platform-tests/workers/constructors/SharedWorker/unresolvable-url-expected.txt:
  • web-platform-tests/workers/data-url-shared-expected.txt:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting-expected.txt:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting-expected.txt:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-blob-url.window-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-csp-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-data-url-cross-origin-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-data-url.window-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-failure-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-meta-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-referrer-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import.window-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-options-credentials-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-options-type-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-parse-error-failure-expected.txt:
  • web-platform-tests/workers/name-property-expected.txt:
  • web-platform-tests/workers/semantics/encodings/002-expected.txt:
  • web-platform-tests/workers/semantics/encodings/004-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/001-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/004-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/008-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/exposure.any-expected.txt:
  • web-platform-tests/workers/semantics/reporting-errors/001-expected.txt:
  • web-platform-tests/workers/semantics/reporting-errors/002-expected.txt:
  • web-platform-tests/workers/semantics/reporting-errors/003-expected.txt:
  • web-platform-tests/workers/semantics/reporting-errors/004-expected.txt:
  • web-platform-tests/workers/semantics/run-a-worker/002-expected.txt:
  • web-platform-tests/workers/semantics/run-a-worker/003-expected.txt:
  • web-platform-tests/workers/semantics/structured-clone/shared-expected.txt:
  • web-platform-tests/workers/semantics/xhr/003-expected.txt:
  • web-platform-tests/workers/semantics/xhr/004-expected.txt:
  • web-platform-tests/workers/semantics/xhr/006-expected.txt:
  • web-platform-tests/workers/shared-worker-from-blob-url.window-expected.txt:
  • web-platform-tests/workers/shared-worker-name-via-options-expected.txt:
  • web-platform-tests/workers/shared-worker-options-mismatch-expected.txt:
  • web-platform-tests/workers/shared-worker-parse-error-failure-expected.txt:
  • web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt:

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/js/WebCoreJSClientData.h:
  • bindings/scripts/preprocess-idls.pl:
  • dom/EventTargetFactory.in:
  • workers/SharedWorker.cpp: Added.

(WebCore::SharedWorker::SharedWorker):
(WebCore::SharedWorker::port const):
(WebCore::SharedWorker::scriptExecutionContext const):
(WebCore::SharedWorker::eventTargetInterface const):

  • workers/SharedWorker.h: Added.
  • workers/SharedWorker.idl: Added.
  • workers/SharedWorkerGlobalScope.cpp: Added.

(WebCore::SharedWorkerGlobalScope::name const):
(WebCore::SharedWorkerGlobalScope::close):

  • workers/SharedWorkerGlobalScope.h: Added.

(isType):

  • workers/SharedWorkerGlobalScope.idl: Added.
  • workers/Worker.cpp:

(WebCore::Worker::Worker):
(WebCore::Worker::create):

  • workers/Worker.h:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::isSharedWorkerGlobalScope const):

  • workers/WorkerOptions.h: Copied from Source/WebCore/workers/Worker.idl.
  • workers/WorkerOptions.idl: Copied from Source/WebCore/workers/Worker.idl.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
6:02 PM Changeset in webkit [282483] by Chris Dumez
  • 6 edits in trunk

Implement network process crash recovery for BroadcastChannel
https://bugs.webkit.org/show_bug.cgi?id=230236

Reviewed by Alex Christensen.

Source/WebKit:

Have the WebBroadcastChannelRegistry register its BroadcastChannels with the network
process after a network process crash. This is useful so that cross-WebProcess
communication can keep happening via existing BroadcastChannel after a network process
crash.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

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

5:26 PM Changeset in webkit [282482] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Remove the "core.webKitBranchBuild" prompt from setup-git-clone
https://bugs.webkit.org/show_bug.cgi?id=230323

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone.execute):
"core.webKitBranchBuild" is an advanced feature and also doesn't work
at all for Apple folks (leading to a myriad of bizarro build problems).
Folks who want it can use the documentation (UsingGitWithWebKit on the Wiki),
but in general, until it's well supported, it's best if we don't encourage it.

5:03 PM Changeset in webkit [282481] by Eric Hutchison
  • 2 edits in trunk/LayoutTests/imported/w3c

[Catalina Release] imported/w3c/web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230327.

Unreviewed re-baseline.

  • web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001-expected.txt:
4:50 PM Changeset in webkit [282480] by Simon Fraser
  • 13 edits
    3 moves in trunk/Source/WebCore

Rename ScrollController to ScollingEffectsController
https://bugs.webkit.org/show_bug.cgi?id=230312

Reviewed by Tim Horton.

ScrollController is about rubberbanding, momentum etc, which are scrolling "effects",
so rename to ScrollingEffectsController.

ScrollController is the name I want to ultimately use for ScrollAnimator.

  • PlatformMac.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/EventHandler.cpp:

(WebCore::EventHandler::scrollableAreaCanHandleEvent):

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

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

  • platform/KeyboardScrollingAnimator.cpp:

(WebCore::KeyboardScrollingAnimator::KeyboardScrollingAnimator):

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

(WebCore::ScrollAnimator::startAnimationCallback):
(WebCore::ScrollAnimator::stopAnimationCallback):

  • platform/ScrollAnimator.h:
  • platform/ScrollingEffectsController.cpp: Renamed from Source/WebCore/platform/ScrollController.cpp.

(WebCore::ScrollingEffectsController::ScrollingEffectsController):
(WebCore::ScrollingEffectsController::animationCallback):
(WebCore::ScrollingEffectsController::startOrStopAnimationCallbacks):
(WebCore::ScrollingEffectsController::beginKeyboardScrolling):
(WebCore::ScrollingEffectsController::stopKeyboardScrolling):
(WebCore::ScrollingEffectsController::setIsAnimatingRubberBand):
(WebCore::ScrollingEffectsController::setIsAnimatingScrollSnap):
(WebCore::ScrollingEffectsController::setIsAnimatingKeyboardScrolling):
(WebCore::ScrollingEffectsController::usesScrollSnap const):
(WebCore::ScrollingEffectsController::setSnapOffsetsInfo):
(WebCore::ScrollingEffectsController::snapOffsetsInfo const):
(WebCore::ScrollingEffectsController::activeScrollSnapIndexForAxis const):
(WebCore::ScrollingEffectsController::setActiveScrollSnapIndexForAxis):
(WebCore::ScrollingEffectsController::setNearestScrollSnapIndexForAxisAndOffset):
(WebCore::ScrollingEffectsController::adjustScrollDestination):
(WebCore::ScrollingEffectsController::updateActiveScrollSnapIndexForClientOffset):
(WebCore::ScrollingEffectsController::resnapAfterLayout):
(WebCore::ScrollingEffectsController::updateKeyboardScrollingAnimatingState):
(WebCore::ScrollingEffectsController::~ScrollingEffectsController):
(WebCore::ScrollingEffectsController::stopAllTimers):
(WebCore::ScrollingEffectsController::scrollPositionChanged):
(WebCore::ScrollingEffectsController::updateScrollSnapAnimatingState):
(WebCore::ScrollingEffectsController::updateRubberBandAnimatingState):

  • platform/ScrollingEffectsController.h: Renamed from Source/WebCore/platform/ScrollController.h.
  • platform/mac/ScrollingEffectsController.mm: Renamed from Source/WebCore/platform/mac/ScrollController.mm.

(WebCore::ScrollingEffectsController::~ScrollingEffectsController):
(WebCore::ScrollingEffectsController::stopAllTimers):
(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::wheelDeltaBiasingTowardsVertical):
(WebCore::ScrollingEffectsController::directionFromEvent):
(WebCore::ScrollingEffectsController::updateRubberBandAnimatingState):
(WebCore::ScrollingEffectsController::scrollPositionChanged):
(WebCore::ScrollingEffectsController::isUserScrollInProgress const):
(WebCore::ScrollingEffectsController::isRubberBandInProgress const):
(WebCore::ScrollingEffectsController::isScrollSnapInProgress const):
(WebCore::ScrollingEffectsController::stopRubberbanding):
(WebCore::ScrollingEffectsController::startRubberbandAnimation):
(WebCore::ScrollingEffectsController::stopSnapRubberbandAnimation):
(WebCore::ScrollingEffectsController::snapRubberBand):
(WebCore::ScrollingEffectsController::shouldRubberBandInHorizontalDirection const):
(WebCore::ScrollingEffectsController::shouldRubberBandInDirection const):
(WebCore::ScrollingEffectsController::isRubberBandInProgressInternal const):
(WebCore::ScrollingEffectsController::updateRubberBandingState):
(WebCore::ScrollingEffectsController::updateRubberBandingEdges):
(WebCore::ScrollingEffectsController::shouldOverrideMomentumScrolling const):
(WebCore::ScrollingEffectsController::scheduleStatelessScrollSnap):
(WebCore::ScrollingEffectsController::statelessSnapTransitionTimerFired):
(WebCore::ScrollingEffectsController::startDeferringWheelEventTestCompletionDueToScrollSnapping):
(WebCore::ScrollingEffectsController::stopDeferringWheelEventTestCompletionDueToScrollSnapping):
(WebCore::ScrollingEffectsController::processWheelEventForScrollSnap):
(WebCore::ScrollingEffectsController::updateGestureInProgressState):
(WebCore::ScrollingEffectsController::startScrollSnapAnimation):
(WebCore::ScrollingEffectsController::stopScrollSnapAnimation):
(WebCore::ScrollingEffectsController::updateScrollSnapAnimatingState):

4:13 PM Changeset in webkit [282479] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html.
https://bugs.webkit.org/show_bug.cgi?id=229505.

Unreviewed test gardening .

3:18 PM Changeset in webkit [282478] by sbarati@apple.com
  • 47 edits in trunk/Source/JavaScriptCore

Move some profiling to UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=230078
<rdar://problem/82947571>

Reviewed by Yusuke Suzuki.

This patch moves ValueProfiles and ArrayProfiles for non-call opcodes into
UnlinkedCodeBlock. This way, the data is shared between the linked CodeBlocks
of the same UnlinkedCodeBlock. The profiling bet here is that when the same code
runs in a different global object, it largely runs in the same way. We've made
this same bet in other ways with our profiling, and it largely makes sense
to do for ValueProfile and ArrayProfile since they both hold global object
independent data.

Because ArrayProfiles are now shared between CodeBlocks, the existing m_usesOriginalArrayStructures
bit is slightly harder to track now, since the ArrayProfile may see inputs from a different
global object, an array may be an original array in one lexical global object,
but not another. So we now track when an ArrayProfile sees a different global
object than the lexical global object, and when we observe exits in the DFG,
we propagate that bit to the m_usesOriginalArrayStructures bit.

This patch also makes it so we no longer hold the CodeBlock lock when
processing ValueProfiles and ArrayProfiles. We now allow multiple compiler
threads to race against each other when updating these profiles. This is fine.
It may end up with incomplete data in the profiles, but it won't corrupt them.

This patch also makes it so we finalized visited UnlinkedCodeBlocks to finalize
their value profiles. We no longer do that work inside CodeBlock for the
ValueProfiles that UnlinkedCodeBlock owns. This also means that we have to
WriteBarrier UnlinkedCodeBlock when executing in the LLInt, Baseline, and
other areas, such as OSR exit, and in the GC when a CodeBlock was executing.
That way we're guaranteed to visit the UnlinkedCodeBlock, add it to the
visited set, and then finalize it at the end of GC.

This patch also makes it so that inside CodeBlock::finishCreation, we finish
linking before we do anything that can throw an exception. It's not valid to
finalize a CodeBlock that isn't linked.

This was measured as a 0.5-1% speedup on Speedometer2.

  • bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::computeUpdatedPrediction):
(JSC::ArrayProfile::briefDescription):
(JSC::ArrayProfile::briefDescriptionWithoutUpdating):

  • bytecode/ArrayProfile.h:

(JSC::ArrayProfile::ArrayProfile):
(JSC::ArrayProfile::observedArrayModes const):
(JSC::ArrayProfile::mayInterceptIndexedAccesses const):
(JSC::ArrayProfile::mayStoreToHole const):
(JSC::ArrayProfile::outOfBounds const):
(JSC::ArrayProfile::usesOriginalArrayStructures const):
(JSC::ArrayProfile::setDoesNotUseOriginalArrayStructures):
(JSC::ArrayProfile::observedDifferentGlobalObject const):

  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeOperandsForCheckpoint.h:

(JSC::valueProfileForImpl):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::initializeTemplateObjects):
(JSC::CodeBlock::setNumParameters):
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::getArrayProfile):
(JSC::CodeBlock::updateAllValueProfilePredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllArrayPredictions):
(JSC::CodeBlock::tryGetValueProfileForBytecodeIndex):
(JSC::CodeBlock::valueProfilePredictionForBytecodeIndex):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::offsetOfUnlinkedCodeBlock):
(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):
(JSC::CodeBlock::metadata):

  • bytecode/CodeBlockInlines.h:

(JSC::CodeBlock::forEachValueProfile):
(JSC::CodeBlock::forEachArrayProfile):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::hasAnyExitsAt const):

  • bytecode/DFGExitProfile.h:
  • bytecode/GetByIdMetadata.h:

(JSC::GetByIdModeMetadata::setArrayLengthMode):

  • bytecode/LazyOperandValueProfile.cpp:

(JSC::CompressedLazyOperandValueProfileHolder::computeUpdatedPredictions):
(JSC::LazyOperandValueProfileParser::prediction const):

  • bytecode/MetadataTable.cpp:

(JSC::DeallocTable::withOpcodeType):

  • bytecode/MetadataTable.h:

(JSC::MetadataTable::get):
(JSC::MetadataTable::forEach):
(JSC::MetadataTable::getWithoutAligning):
(JSC::MetadataTable::getImpl): Deleted.

  • bytecode/Opcode.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::visitChildrenImpl):
(JSC::UnlinkedCodeBlock::allocateSharedProfiles):
(JSC::UnlinkedCodeBlock::finalizeUnconditionally):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::hasAnyExitsAt const):
(JSC::UnlinkedCodeBlock::hasAnyExitsAt):
(JSC::UnlinkedCodeBlock::valueProfile):
(JSC::UnlinkedCodeBlock::arrayProfile):
(JSC::UnlinkedCodeBlock::numValueProfiles const):
(JSC::UnlinkedCodeBlock::numArrayProfiles const):

  • bytecode/UnlinkedCodeBlockGenerator.cpp:

(JSC::UnlinkedCodeBlockGenerator::finalize):

  • bytecode/UnlinkedMetadataTable.cpp:

(JSC::UnlinkedMetadataTable::finalize):

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::isFinalized):
(JSC::UnlinkedMetadataTable::hasMetadata):

  • bytecode/UnlinkedMetadataTableInlines.h:

(JSC::UnlinkedMetadataTable::numEntries):

  • bytecode/ValueProfile.h:

(JSC::ValueProfileBase::ValueProfileBase):
(JSC::ValueProfileBase::clearBuckets):
(JSC::ValueProfileBase::briefDescription):
(JSC::ValueProfileBase::computeUpdatedPrediction):
(JSC::ValueProfile::offsetOfFirstBucket):
(JSC::ValueProfileBase::classInfo const): Deleted.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::fromObserved):

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::withSpeculationFromProfile const):
(JSC::DFG::ArrayMode::withProfile const):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::handleVarargsInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::attemptToMakeGetArrayLength):

  • dfg/DFGGraph.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGPredictionInjectionPhase.cpp:

(JSC::DFG::PredictionInjectionPhase::run):

  • heap/CodeBlockSetInlines.h:

(JSC::CodeBlockSet::iterateViaSubspaces):

  • heap/Heap.cpp:

(JSC::Heap::finalizeMarkedUnconditionalFinalizers):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::runEndPhase):
(JSC::Heap::addCoreConstraints):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitValueProfilingSiteIfProfiledOpcode):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_handlerGenerator):

  • jit/JITOperations.cpp:

(JSC::putByValOptimize):
(JSC::directPutByValOptimize):
(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::generateGetByValSlowCase):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::emit_op_enumerator_get_by_val):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::performLLIntGetByID):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::getByVal):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • profiler/ProfilerBytecodeSequence.cpp:

(JSC::Profiler::BytecodeSequence::BytecodeSequence):

  • runtime/CachedTypes.cpp:

(JSC::CachedCodeBlock::numValueProfiles const):
(JSC::CachedCodeBlock::numArrayProfiles const):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedCodeBlock<CodeBlockType>::encode):

  • runtime/CommonSlowPaths.cpp:

(JSC::iteratorNextTryFastImpl):
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • runtime/JSScope.cpp:

(JSC::abstractAccess):
(JSC::JSScope::abstractResolve):

  • runtime/VM.cpp:
  • runtime/VM.h:

(JSC::VM::forEachUnlinkedCodeBlockSpace):
(JSC::VM::forEachCodeBlockSpace): Deleted.

3:12 PM Changeset in webkit [282477] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TreeOutline should return early when failing to find an ancestor while populating the tree
https://bugs.webkit.org/show_bug.cgi?id=230287

Reviewed by Devin Rousso.

When an ancestor can not be found, we should return to prevent additional work (which will fail) from being done.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.findTreeElement):

2:51 PM Changeset in webkit [282476] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Mac Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230268

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Removed [ Debug ]
  • platform/mac-wk2/TestExpectations: Updated bug number
2:49 PM Changeset in webkit [282475] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: DOMTreeUpdater doesn't complete deferred updating/clear updated lists when a node isn't found in the tree
https://bugs.webkit.org/show_bug.cgi?id=230289

Reviewed by Devin Rousso.

Instead of an early return when a tree element can't be found, we should continue on to the next updated node
and finish out by clearing the collections of updated nodes, otherwise a node that will never be findable again
will cause extra work to be done on every update.

  • UserInterface/Views/DOMTreeUpdater.js:

(WI.DOMTreeUpdater.prototype._updateModifiedNodes):

2:43 PM Changeset in webkit [282474] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Monterey wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/import-scripts-cross-origin.https.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=228200

Unreviewed test gardening. Removing no longer needed test expectation.

  • platform/mac-wk2/TestExpectations:
2:41 PM Changeset in webkit [282473] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur ] fast/canvas/canvas-draw-canvas-on-canvas-flushing-order.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=230313

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:02 PM Changeset in webkit [282472] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Unreviewed, build fix after r282464

  • Modules/applepay/ApplePayDetailsUpdateData.h:

(WebCore::ApplePayDetailsUpdateData::encode const):
(WebCore::ApplePayDetailsUpdateData::decodeData):

1:59 PM Changeset in webkit [282471] by clopez@igalia.com
  • 36 edits
    13 adds
    2 deletes in trunk/LayoutTests

[GTK][WPE] Gardening of tests: report new failures and rebaseline tests.

Unreviewed test gardening.

Mark some expected new failures and also rebaseline several tests.

rebaseline after r282356

imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle.html
imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em.html
imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em.html

rebaseline after r282341

imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-empty-inline.html
imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-shy.html
imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline.html
imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline.html

rebaseline after r282143

imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html

rebaseline after r282357

imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html

rebaseline after r282441

imported/w3c/web-platform-tests/resize-observer/svg.html

rebaseline after r282306

tables/mozilla/bugs/bug39209.html
tables/mozilla/bugs/bug44505.html
tables/mozilla/marvin/x_col_valign_baseline.xml
tables/mozilla/marvin/x_colgroup_valign_baseline.xml
tables/mozilla_expected_failures/bugs/bug1725.html
fast/forms/file/file-input-direction.html
fast/multicol/span/span-as-immediate-child-property-removal.html
fast/replaced/width100percent-button.html
fast/table/mozilla-bug10296-vertical-align-1.html
fast/table/mozilla-bug10296-vertical-align-2.html
fast/table/rowspan-paint-order-vertical.html

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-shy-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/file/file-input-direction-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/gtk/fast/replaced/width100percent-button-expected.txt:
  • platform/gtk/fast/table/mozilla-bug10296-vertical-align-1-expected.txt:
  • platform/gtk/fast/table/mozilla-bug10296-vertical-align-2-expected.txt:
  • platform/gtk/fast/table/rowspan-paint-order-vertical-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-empty-inline-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt: Removed.
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_col_valign_baseline-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_colgroup_valign_baseline-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/wpe/fast/forms/file/file-input-direction-expected.txt: Added.
  • platform/wpe/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/wpe/fast/replaced/width100percent-button-expected.txt:
  • platform/wpe/fast/table/mozilla-bug10296-vertical-align-1-expected.txt:
  • platform/wpe/fast/table/mozilla-bug10296-vertical-align-2-expected.txt:
  • platform/wpe/fast/table/rowspan-paint-order-vertical-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt: Removed.
  • platform/wpe/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/wpe/tables/mozilla/marvin/x_col_valign_baseline-expected.txt:
  • platform/wpe/tables/mozilla/marvin/x_colgroup_valign_baseline-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
1:43 PM Changeset in webkit [282470] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, build failure on Big Sur

Whether encoder / decoder are used is relying on the Internal code expanded by the macro.

  • Modules/applepay/ApplePayDetailsUpdateData.h:

(WebCore::ApplePayDetailsUpdateData::encode const):
(WebCore::ApplePayDetailsUpdateData::decodeData):

1:18 PM Changeset in webkit [282469] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Avoid GCC warnings introduced in r282125
https://bugs.webkit.org/show_bug.cgi?id=230154

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-15
Reviewed by Fujii Hironori.

Yusuke suggested casting to UChar to avoid -Wswitch-out-of-range. This works!

Also, avoid -Wredundant-move by removing one unnecessary WTFMove.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::parseTimeZoneBracketedAnnotation):
(JSC::ISO8601::canBeTimeZone):
(JSC::ISO8601::parseTimeZone):

1:17 PM Changeset in webkit [282468] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Optimize leaf object creation in JSON.parse
https://bugs.webkit.org/show_bug.cgi?id=230298

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/json-parse-leaf-object.js: Added.

Source/JavaScriptCore:

This patch optimizes JSON.parse.

  1. Use table in isJSONWhiteSpace.
  2. Extract primitive value creation as parsePrimitiveValue function to use it in different place.
  3. Add leaf-object creation fast path. Previously, when creating a leaf-object from JSON.parse we are too generic and jumping around the code. Instead we add a fast path that does not perform unnecessary operations and code gets tight.

It offers 3-4% improvement in microbenchmarks.

ToT Patched

vanilla-es2015-babel-webpack-todomvc-json-parse

104.7169+-0.1113 101.4836+-0.2168 definitely 1.0319x faster

flight-todomvc-json-parse 53.9074+-0.0957 52.1347+-0.0802 definitely 1.0340x faster
vanilla-es2015-todomvc-json-parse 104.9373+-0.1631 101.4978+-0.1073 definitely 1.0339x faster
vanilla-todomvc-json-parse 79.1330+-0.0963 76.7568+-0.1606 definitely 1.0310x faster

This offers 0.2% improvement in Speedometer2.


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |116.860000 |116.825000 |0.999700 | 0.901070 |
| VueJS-TodoMVC |24.658333 |24.763333 |1.004258 | 0.571728 |
| EmberJS-TodoMVC |126.666667 |126.335000 |0.997382 | 0.289517 |
| BackboneJS-TodoMVC |48.435000 |48.523333 |1.001824 | 0.455638 |
| Preact-TodoMVC |17.585000 |17.368333 |0.987679 | 0.247658 |
| AngularJS-TodoMVC |129.576667 |129.398333 |0.998624 | 0.625634 |
| Vanilla-ES2015-TodoMVC |62.746667 |62.241667 |0.991952 | 0.000019 (significant) |
| Inferno-TodoMVC |63.741667 |63.495000 |0.996130 | 0.448861 |
| Flight-TodoMVC |78.021667 |77.306667 |0.990836 | 0.087137 |
| Angular2-TypeScript-TodoMVC |39.823333 |39.923333 |1.002511 | 0.736279 |
| VanillaJS-TodoMVC |50.073333 |49.791667 |0.994375 | 0.136495 |
| jQuery-TodoMVC |221.300000 |221.586667 |1.001295 | 0.418008 |
| EmberJS-Debug-TodoMVC |340.145000 |339.965000 |0.999471 | 0.691490 |
| React-TodoMVC |85.698333 |85.650000 |0.999436 | 0.761586 |
| React-Redux-TodoMVC |140.510000 |140.785000 |1.001957 | 0.285922 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |60.928333 |60.500000 |0.992970 | 0.000069 (significant) |


a mean = 262.15844
b mean = 262.72261
pValue = 0.0428052487
(Bigger means are better.)
1.002 times better
Results ARE significant

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::makeIdentifier):
(JSC::isJSONWhiteSpace):
(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::LiteralParser<CharType>::parsePrimitiveValue):
(JSC::LiteralParser<CharType>::parse):

  • runtime/LiteralParser.h:

LayoutTests:

  • js/dom/JSON-parse-expected.txt:
1:06 PM Changeset in webkit [282467] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip a layout worklet test as it is not supported.

1:02 PM Changeset in webkit [282466] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip a couple of SharedWorker tests.

These tests are flaky and we do not support SharedWorkers at the moment.

12:52 PM Changeset in webkit [282465] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Cache resource paths in run-jsc-stress-tests for speedup
https://bugs.webkit.org/show_bug.cgi?id=230263

Patch by Geza Lore <gezalore@gmail.com> on 2021-09-15
Reviewed by Adrian Perez de Castro.

A large portion of the serial startup time of run-jsc-stress-tests is
just re-computing file system paths of bundle resources over and over
again. Cache results for a 40% speedup of the test enumeration phase.

  • Scripts/run-jsc-stress-tests:
11:37 AM Changeset in webkit [282464] by Devin Rousso
  • 14 edits in trunk/Source

[Payment Request] Clean up some WKA hooks
https://bugs.webkit.org/show_bug.cgi?id=230182
<rdar://problem/78824639>

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::merge):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::convertAndValidate):

  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
(WebCore::MockPaymentCoordinator::completeShippingContactSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
(WebCore::MockPaymentCoordinator::completeCouponCodeChange):
(WebCore::MockPaymentCoordinator::merge):
Instead of using #define, create actual functions so that the code in WKA is cleaner.

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

(WebCore::convertAndValidate):
Remove unnecessary WKA hooks.

  • Modules/applepay/PaymentSummaryItems.h:
  • Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:

(WebCore::platformRecurringSummaryItem): Added.
(WebCore::platformDeferredSummaryItem): Added.
(WebCore::platformSummaryItem): Added.
(WebCore::toPKPaymentSummaryItem): Deleted.
Expose functions that convert ApplePayLineItem to PKPaymentSummaryItem (and subclasses).

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::merge):
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::merge):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
Instead of using #define, create actual functions so that the code in WKA is cleaner.

11:06 AM Changeset in webkit [282463] by Ziran Sun
  • 7 edits in trunk

[css-grid] Overflow should be computed with the actual logical bottom
https://bugs.webkit.org/show_bug.cgi?id=226981

Reviewed by Javier Fernandez.

When computing the overflow area in the grid container, we need to obtain the result of ClientLogicalBottom
function. This value should be retrieved after computing the actual logical height rather than before.

For grid, width/height of the overflow rect should be the width/height of the grid area of the items rather than
the width/height of the container block. As per https://github.com/w3c/csswg-drafts/issues/3653, child's margins
along with padding should contribute to the scrollable overflow area.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-content-alignment-overflow-002.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::clientLogicalBottomAfterRepositioning):
(WebCore::RenderBlock::computeOverflow):

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::logicalLeftForChild const):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::clientLogicalBottomAfterRepositioning): Deleted.

  • rendering/RenderFlexibleBox.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

11:05 AM Changeset in webkit [282462] by Alan Coon
  • 1 copy in tags/Safari-613.1.1.5

Tag Safari-613.1.1.5.

10:57 AM Changeset in webkit [282461] by Alan Coon
  • 8 edits in branches/safari-613.1.1-branch/Source

Versioning.

WebKit-7613.1.1.5

10:52 AM Changeset in webkit [282460] by Alan Coon
  • 1 copy in tags/Safari-613.1.1.4

Tag Safari-613.1.1.4.

10:07 AM Changeset in webkit [282459] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html is failing after https://trac.webkit.org/changeset/282445/webkit
https://bugs.webkit.org/show_bug.cgi?id=230308

Reviewed by Eric Carlson.

Covered by no longer failing test.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):
We need to create the data channel object at the time we fire the event,
so that JS can transfer it synchronously in the same event loop.
This got regressed as we were creating the data channel, enqueuing a task to fire the data channel event.

9:55 AM Changeset in webkit [282458] by Russell Epstein
  • 8 edits in branches/safari-613.1.1-branch/Source

Versioning.

WebKit-7613.1.1.4

9:08 AM Changeset in webkit [282457] by Martin Robinson
  • 5 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html depends on scrollbar placement and width
https://bugs.webkit.org/show_bug.cgi?id=230305

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Modify this test so that scrollbars are not shown, which should make it independent
of scrollbar size and placement.

  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-expected.html:
  • web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html:

LayoutTests:

8:23 AM Changeset in webkit [282456] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Silence -Wswitch warning enumeration value ‘ExceededProcessCountLimit’ not handled in switch
https://bugs.webkit.org/show_bug.cgi?id=230280

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-15
Reviewed by Darin Adler.

  • UIProcess/API/glib/WebKitNavigationClient.cpp:
7:57 AM Changeset in webkit [282455] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

AX: Move platform specific code for isolated tree mode to the platform files
https://bugs.webkit.org/show_bug.cgi?id=230301
<rdar://problem/83138024>

Unreviewed follow up after r282450.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData): Remove PreventKeyboardDOMEventDispatch property set that
I forgot in r282450, since it's now done in initializePlatformProperties().

7:53 AM Changeset in webkit [282454] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r282453 - Fix size calculation in ImageBufferCairoImageSurfaceBackend::create()
https://bugs.webkit.org/show_bug.cgi?id=229365

Reviewed by Don Olmstead.

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::calculateSafeBackendSize): Check the result of
cairo_format_stride_for_width() and the multiplication doesn't overflow.
(WebCore::ImageBufferCairoImageSurfaceBackend::create): Use tryFastCalloc() instead of tryFastZeroedMalloc().

7:52 AM Changeset in webkit [282453] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Fix size calculation in ImageBufferCairoImageSurfaceBackend::create()
https://bugs.webkit.org/show_bug.cgi?id=229365

Reviewed by Don Olmstead.

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::calculateSafeBackendSize): Check the result of
cairo_format_stride_for_width() and the multiplication doesn't overflow.
(WebCore::ImageBufferCairoImageSurfaceBackend::create): Use tryFastCalloc() instead of tryFastZeroedMalloc().

7:21 AM Changeset in webkit [282452] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] TextBoxSelectableRange::additionalLengthAtEnd miscomputed
https://bugs.webkit.org/show_bug.cgi?id=230306

Reviewed by Alan Bujtas.

It should be non-zero only if the run contains a hyphen. This doesn't yet affect
anything, but it will.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::selectableRange const):

6:46 AM Changeset in webkit [282451] by Aditya Keerthi
  • 5 edits
    2 adds in trunk

[iOS] Search inputs with '-webkit-appearance: textfield' should have a textfield background color
https://bugs.webkit.org/show_bug.cgi?id=229883
rdar://82146288

Reviewed by Tim Horton.

Source/WebCore:

In iOS 15, search inputs have a gray background color by default.
Some sites, such as booking.com, request that the input appear like
a textfield, by specifying '-webkit-appearance: textfield', over the
default 'searchfield'. This request was previously ignored, but there
was no observable difference since search inputs and text inputs had
the same default styling before iOS 15.

Now that the default styling is different, the appearance should be
honored, so that sites get the background color they expect.

Test: fast/forms/ios/form-control-refresh/search/textfield-appearance-background.html

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustTextFieldStyle const):

Exclude any elements that have a textfield appearance by default from
the background color adjustment, so that their background color can be
customized.

LayoutTests:

  • fast/forms/ios/form-control-refresh/search/textfield-appearance-background-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/search/textfield-appearance-background.html: Added.
  • platform/ios/fast/css/input-search-padding-expected.txt: Rebaseline.
6:44 AM Changeset in webkit [282450] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

AX: Move platform specific code for isolated tree mode to the platform files
https://bugs.webkit.org/show_bug.cgi?id=230301
<rdar://problem/83138024>

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-09-15
Reviewed by Adrian Perez de Castro.

Add missing ifdefs in the headers and move the mac specific code to mac files.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isolatedTreeRootObject):
(WebCore::AXObjectCache::clientSupportsIsolatedTree): Deleted.
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Deleted.
(WebCore::AXObjectCache::initializeSecondaryAXThread): Deleted.
(WebCore::AXObjectCache::usedOnAXThread): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::children):
(WebCore::AXIsolatedObject::preventKeyboardDOMEventDispatch const): Deleted.
(WebCore::AXIsolatedObject::setPreventKeyboardDOMEventDispatch): Deleted.
(WebCore::AXIsolatedObject::convertRectToPlatformSpace const): Deleted.

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

(WebCore::AXIsolatedObject::initializePlatformProperties):
(WebCore::AXIsolatedObject::convertRectToPlatformSpace const):
(WebCore::AXIsolatedObject::preventKeyboardDOMEventDispatch const):
(WebCore::AXIsolatedObject::setPreventKeyboardDOMEventDispatch):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):
(WebCore::AXObjectCache::isIsolatedTreeEnabled):
(WebCore::AXObjectCache::initializeSecondaryAXThread):
(WebCore::AXObjectCache::usedOnAXThread):

6:33 AM Changeset in webkit [282449] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

[Layout][Integration] Remove unnecessary Run typedef
https://bugs.webkit.org/show_bug.cgi?id=230303

Reviewed by Alan Bujtas.

Use Layout::Run directly instead of LayoutIntegration::Run.

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration:: const):
(WebCore::LayoutIntegration::InlineContent::indexForRun const):
(WebCore::LayoutIntegration::InlineContent::firstRunForLayoutBox const):

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::lineForRun const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::textRunFor):

  • layout/integration/LayoutIntegrationRunIterator.h:
  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::run const):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::clearGlyphDisplayLists):

5:20 AM Changeset in webkit [282448] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

AX: Remove AXCoreObject::containsText
https://bugs.webkit.org/show_bug.cgi?id=230299
<rdar://problem/83134668>

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-09-15
Reviewed by Adrian Perez de Castro.

It's only used by isAccessibilityTextSearchMatch() in AccessibilityObject.cpp. We can move the implementation
there and avoid to include TextIterator.h in AccessibilityObjectInterface.h.

  • accessibility/AccessibilityObject.cpp:

(WebCore::Accessibility::isAccessibilityTextSearchMatch):

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::containsText const): Deleted.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
  • page/mac/ServicesOverlayController.mm:
5:09 AM Changeset in webkit [282447] by Martin Robinson
  • 9 edits in trunk

offsetLeft on display:inline element in vertical-rl parent can return a negative number
https://bugs.webkit.org/show_bug.cgi?id=230217

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:

Source/WebCore:

No new tests. This is covered by imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-inline.html.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::firstInlineBoxTopLeft const): When calculating offsetLeft and offsetTop instead
of using topLeft unconditionally, use LegacyInlineBox::locationIncludingFlipping which takes into
account writing mode.

LayoutTests:

  • TestExpectations: Unskip a newly passing test.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
2:53 AM Changeset in webkit [282446] by timothy_horton@apple.com
  • 2 edits
    1 delete in trunk/Source/WebKit

Remove the "Replace WebKitAdditions in Framework Headers" build phase
https://bugs.webkit.org/show_bug.cgi?id=230300

Reviewed by Wenson Hsieh.

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

As Wenson pointed out in bug 230198, this build phase is currently unused.
It's also wasting a quarter of the WebKit-only null build time, so let's
just remove it and hope we never need it again (but if we do, it's in the history!).
This gets us down to 11 seconds on the same benchmark mentioned in r282367.

2:11 AM Changeset in webkit [282445] by youenn@apple.com
  • 25 edits in trunk

Use event queue to fire RTCPeerConnection events
https://bugs.webkit.org/show_bug.cgi?id=229944
<rdar://problem/83045723>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-createOffer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-explicit-rollback-iceGatheringState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/no-media-call-expected.txt:

Source/WebCore:

Instead of using a dedicated task queue in peer connection to handle the suspend cases,
we now rely on queueTask to do this.
We do this for both promise resolution and dispatching events.

This allows to better order some promise resolutions and some event dispatching as well.
Previously, we were sometimes resolving a promise, then scheduling a task to fire an event.
The promise resolution callbacks in that case are expected to run first, in the same event loop,
then the event listeners are supposed to be executed.
It was not happening since we were not in the event loop, so the event was fired then the promise resolution callbacks executed.

Drive-by fix to reject createOffer/createAnswer in case signaling state is not correct as per
https://w3c.github.io/webrtc-pc/#dfn-creating-an-offer and https://w3c.github.io/webrtc-pc/#dfn-creating-an-answer.
Drive-by fix to not fire open event when data channel is closing as per https://w3c.github.io/webrtc-pc/#announcing-a-data-channel-as-open.

Update mock backend to correctly report signaling state.

Covered by updated tests.
Some tests are still flaky which might mean we still have some races that need to be investigated.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::iceGatheringStateChanged):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::didChangeReadyState):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::resume):
(WebCore::RTCPeerConnection::setSignalingState):
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
(WebCore::RTCPeerConnection::updateConnectionState):
(WebCore::RTCPeerConnection::processIceTransportStateChange):
(WebCore::RTCPeerConnection::updateNegotiationNeededFlag):
(WebCore::RTCPeerConnection::scheduleEvent):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):
(WebCore::toRTCIceGatheringState):
(WebCore::LibWebRTCMediaEndpoint::OnIceGatheringChange):

  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnection::signaling_state):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-media-setup-single-dialog-expected.txt:
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • webrtc/peerconnection-page-cache-long.html:

The peer connection object might not be in disconnected state synchronously in
pageshow event handler. In that case, we should wait for disconnected state.

1:19 AM Changeset in webkit [282444] by youenn@apple.com
  • 9 edits in trunk/Source

Migrate to libwebrtc non-racy setRemoteDescription/setLocalDescription variants
https://bugs.webkit.org/show_bug.cgi?id=230262

Reviewed by Darin Adler.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

We were using the old versions of libwebrtc SetLocalDescription/SetRemoteDescription.
As per the header file, these versions are potentially racy.
This patch migrates to new versions of the same API which in addition take more modern parameters instead of raw pointers.
We also modernize a bit the code by using methods manipulating unique_ptr instead of raw pointers.
Drive-by fix: Add support for getting back to new for ICE gathering state. This was missing and without it,
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-explicit-rollback-iceGatheringState.html would time out.
Update mock to implement the new method versions.

Covered by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::sessionDescriptionType):
(WebCore::LibWebRTCMediaEndpoint::doSetLocalDescription):
(WebCore::LibWebRTCMediaEndpoint::doSetRemoteDescription):
(WebCore::LibWebRTCMediaEndpoint::OnIceGatheringChange):

  • Modules/mediastream/libwebrtc/LibWebRTCObservers.h:
  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnection::SetLocalDescription):
(WebCore::MockLibWebRTCPeerConnection::SetRemoteDescription):

  • testing/MockLibWebRTCPeerConnection.h:
12:26 AM Changeset in webkit [282443] by Said Abou-Hallawa
  • 3 edits
    2 adds in trunk

Linear gradient sometimes is drawn incorrectly and sometimes hangs
https://bugs.webkit.org/show_bug.cgi?id=230145
<rdar://82428383>

Reviewed by Simon Fraser.

Source/WebCore:

Gradient::paint() has a few flaws:

1) We have to use atan2() instead of acos() to get the angle of the vector

(p0, p1) in the correct quadrant. acos() returns an angle between [0, pi].

2) The order in the case of 'repeat' and 'reflect' should be the following:

-- Move the points forward towards the bounding box.
-- Draw gradient and move the points forward till they are not

intersecting the bounding box.

-- Move the points backward towards the bounding box.
-- Draw gradient and move the points backward till they are not

intersecting the bounding box.

Tests: svg/gradients/gradient-flipped-start-end-points-expected.svg

svg/gradients/gradient-flipped-start-end-points.svg

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::paint):

LayoutTests:

  • svg/gradients/gradient-flipped-start-end-points-expected.svg: Added.
  • svg/gradients/gradient-flipped-start-end-points.svg: Added.
12:19 AM Changeset in webkit [282442] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

CSSFontFaceSrcValue.cssText should be quoted consistently with other browsers
https://bugs.webkit.org/show_bug.cgi?id=230273

Reviewed by Darin Adler.

Addressing post-review comments.

  • fast/css/font-face-src-parsing-expected.txt:
  • fast/css/font-face-src-parsing.html:

Sep 14, 2021:

11:16 PM Changeset in webkit [282441] by Simon Fraser
  • 23 edits
    4 copies
    4 adds
    1 delete in trunk

Implement the borderBoxSize/contentBoxSize parts of ResizeObserver
https://bugs.webkit.org/show_bug.cgi?id=230242

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

New results. WebKit seems to fire the "resize loop error" more than
other browsers, which seems to be an issue with the spec[1].

[1] https://github.com/w3c/csswg-drafts/issues/6610

  • web-platform-tests/resize-observer/idlharness.window-expected.txt:
  • web-platform-tests/resize-observer/observe-expected.txt:
  • web-platform-tests/resize-observer/svg-expected.txt:

Source/WebCore:

The Resize Observer spec has been updated to allow authors to observe
"content-box", "border-box" and "device-pixel-content-box". Add support
for the first two, adding ResizeObserverSize, ResizeObserverBoxOptions and
ResizeObserverOptions per spec.

ResizeObserverEntry also contains borderBoxSize and contentBoxSize now,
so support that.

Add some helpers to make it easier to get box logical sizes.

"device-pixel-content-box" is not yet supported because it's expensive to compute[2].

[1] https://drafts.csswg.org/resize-observer
[2] https://github.com/w3c/csswg-drafts/issues/6608

Tested by WPT.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/ResizeObservation.cpp:

(WebCore::ResizeObservation::create):
(WebCore::ResizeObservation::ResizeObservation):
(WebCore::ResizeObservation::updateObservationSize):
(WebCore::ResizeObservation::computeObservedSizes const):
(WebCore::ResizeObservation::computeContentRect const):
(WebCore::ResizeObservation::borderBoxSize const):
(WebCore::ResizeObservation::contentBoxSize const):
(WebCore::ResizeObservation::snappedContentBoxSize const):
(WebCore::ResizeObservation::elementSizeChanged const):
(WebCore::ResizeObservation::~ResizeObservation): Deleted.
(WebCore::ResizeObservation::computeObservedSize const): Deleted.

  • page/ResizeObservation.h:

(WebCore::ResizeObservation::observedBox const):

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::observe):
(WebCore::ResizeObserver::gatherObservations):
(WebCore::ResizeObserver::deliverObservations):

  • page/ResizeObserver.h:
  • page/ResizeObserver.idl:
  • page/ResizeObserverBoxOptions.h: Added.
  • page/ResizeObserverBoxOptions.idl: Copied from Source/WebCore/page/ResizeObserverEntry.idl.
  • page/ResizeObserverEntry.h:

(WebCore::ResizeObserverEntry::create):
(WebCore::ResizeObserverEntry::contentRect const):
(WebCore::ResizeObserverEntry::borderBoxSize const):
(WebCore::ResizeObserverEntry::contentBoxSize const):
(WebCore::ResizeObserverEntry::ResizeObserverEntry):
(WebCore::ResizeObserverEntry::m_contentBoxSizes):

  • page/ResizeObserverEntry.idl:
  • page/ResizeObserverOptions.h: Added.
  • page/ResizeObserverOptions.idl: Copied from Source/WebCore/page/ResizeObserverEntry.idl.
  • page/ResizeObserverSize.h: Added.

(WebCore::ResizeObserverSize::create):
(WebCore::ResizeObserverSize::inlineSize const):
(WebCore::ResizeObserverSize::blockSize const):
(WebCore::ResizeObserverSize::ResizeObserverSize):

  • page/ResizeObserverSize.idl: Copied from Source/WebCore/page/ResizeObserverEntry.idl.
  • rendering/RenderBox.h:

(WebCore::RenderBox::logicalSize const):
(WebCore::RenderBox::borderBoxLogicalSize const):
(WebCore::RenderBox::contentLogicalSize const):

  • rendering/RenderElement.h:

(WebCore::adjustLayoutSizeForAbsoluteZoom):

  • rendering/style/RenderStyle.h:

(WebCore::adjustLayoutSizeForAbsoluteZoom):

LayoutTests:

Give macOS a platform expectation for this test since its results seem to be the odd one out.

  • platform/ios/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt.
11:14 PM Changeset in webkit [282440] by commit-queue@webkit.org
  • 4 edits in trunk

Fix button-min-width.html
https://bugs.webkit.org/show_bug.cgi?id=229984

Patch by Rob Buis <rbuis@igalia.com> on 2021-09-14
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-sizing/button-min-width-expected.txt:

Source/WebCore:

Do not use theme min-width/min-height values unless
it is bigger than the actual CSS property values.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):

11:01 PM Changeset in webkit [282439] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] Accomodate cbcs as cipher-mode instead of mime
https://bugs.webkit.org/show_bug.cgi?id=230265

Reviewed by Philippe Normand.

In https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1013
it was decided that there should not be x-cbcs as mime type but
rather x-cenc with cbcs as cipher-mode.

Fly-by change, we will return GST_FLOW_NOT_SUPPORTED when we get
skip and crypt cbcs encryption scheme.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformInPlace):

10:38 PM Changeset in webkit [282438] by commit-queue@webkit.org
  • 4 edits in trunk

imported/w3c/web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change* tests fail
https://bugs.webkit.org/show_bug.cgi?id=203508

Patch by Rob Buis <rbuis@igalia.com> on 2021-09-14
Reviewed by Simon Fraser.

Source/WebCore:

For replaced elements like images, non specified min/max logical widths are a
reason for re-layout after intrinsic size change (for example min-width: min-content).

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::setNeedsLayoutIfNeededAfterIntrinsicSizeChange):

LayoutTests:

10:09 PM Changeset in webkit [282437] by Russell Epstein
  • 1 copy in tags/Safari-612.2.4.1.2

Tag Safari-612.2.4.1.2.

10:08 PM Changeset in webkit [282436] by Russell Epstein
  • 1 copy in tags/Safari-612.2.4.0.1

Tag Safari-612.2.4.0.1.

10:01 PM Changeset in webkit [282435] by Russell Epstein
  • 8 edits in branches/safari-612.2.4.0-branch/Source

Versioning.

WebKit-7612.2.4.0.1

9:57 PM Changeset in webkit [282434] by Russell Epstein
  • 1 copy in tags/Safari-612.2.6

Tag Safari-612.2.6.

9:24 PM Changeset in webkit [282433] by Kocsen Chung
  • 8 edits in branches/safari-612.2.4.1-branch/Source

Versioning.

WebKit-7612.2.4.1.2

9:21 PM Changeset in webkit [282432] by Russell Epstein
  • 1 copy in branches/safari-612.2.4.0-branch

New branch.

8:39 PM Changeset in webkit [282431] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

Rename RESOURCE_LOAD_STATISTICS to INTELLIGENT_TRACKING_PREVENTION
https://bugs.webkit.org/show_bug.cgi?id=230279
<rdar://problem/83118683>

Reviewed by John Wilander.

Followup renaming the variables in FeatureList.pm.

  • Scripts/webkitperl/FeatureList.pm:
7:28 PM Changeset in webkit [282430] by don.olmstead@sony.com
  • 18 edits in trunk/Source

Non-unified build fixes, mid September 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=230110

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • runtime/TemporalPlainTimeConstructor.cpp:
  • runtime/TemporalPlainTimePrototype.cpp:

Source/WebCore:

  • css/calc/CSSCalcOperationNode.cpp:
  • css/calc/CSSCalcPrimitiveValueNode.cpp:
  • layout/formattingContexts/FormattingQuirks.cpp:
  • layout/formattingContexts/inline/invalidation/InlineDamage.h:
  • layout/formattingContexts/inline/invalidation/InlineInvalidation.h:
  • loader/CrossOriginOpenerPolicy.cpp:
  • loader/DocumentWriter.cpp:
  • rendering/TextBoxPainter.cpp:

Source/WebKit:

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:

(WebKit::PCM::NetworkLoader::start):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:
  • NetworkProcess/storage/OriginStorageManager.h:
6:13 PM Changeset in webkit [282429] by wilander@apple.com
  • 106 edits in trunk

Rename RESOURCE_LOAD_STATISTICS to INTELLIGENT_TRACKING_PREVENTION
https://bugs.webkit.org/show_bug.cgi?id=230279
<rdar://problem/83118683>

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • dom/BroadcastChannel.cpp:

(WebCore::shouldPartitionOrigin):

  • dom/Document+StorageAccess.idl:
  • dom/Document.cpp:

(WebCore::Document::referrer):

  • dom/Document.h:
  • dom/DocumentStorageAccess.cpp:
  • dom/DocumentStorageAccess.h:
  • history/CachedPage.cpp:

(WebCore::CachedPage::CachedPage):
(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear):

  • history/CachedPage.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

  • loader/EmptyClients.cpp:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/ChromeClient.h:
  • page/CrossSiteNavigationDataTransfer.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/Quirks.cpp:

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

  • page/Quirks.h:
  • platform/network/NetworkStorageSession.cpp:
  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::cookiesForURL const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):

  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::updateClientSideCookiesAgeCap):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::clearPageSpecificData):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::restrictRequestReferrerToOriginIfNeeded):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntryInternal):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::validateCacheEntryForMaxAgeCapValidation):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::invalidateAndCancel):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::storeRedirect):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:
  • NetworkProcess/cache/NetworkCacheEntry.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):

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

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::blockCookies):
(WebKit::NetworkDataTaskCurl::unblockCookies):
(WebKit::NetworkDataTaskCurl::shouldBlockCookies):

  • NetworkProcess/curl/NetworkSessionCurl.cpp:

(WebKit::NetworkSessionCurl::NetworkSessionCurl):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest):

  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::encode const):
(WebKit::WebsiteData::decode):
(WebKit::WebsiteData::isolatedCopy const):

  • Shared/WebsiteData/WebsiteData.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadedSubresourceDomains):
(WKPageClearLoadedSubresourceDomains):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveITPDataForDomain):
(WKWebsiteDataStoreDoesStatisticsDomainIDExistInDatabase):
(WKWebsiteDataStoreSetResourceLoadStatisticsEnabled):
(WKWebsiteDataStoreIsStatisticsEphemeral):
(WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler):
(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsMergeStatistic):
(WKWebsiteDataStoreSetStatisticsExpiredStatistic):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreDumpResourceLoadStatistics):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsOnlyInDatabaseOnce):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration):
(WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction):
(WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords):
(WKWebsiteDataStoreStatisticsUpdateCookieBlocking):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WKWebsiteDataStoreSetStatisticsIsRunningTest):
(WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsGrandfatheringTime):
(WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries):
(WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKWebsiteDataStoreStatisticsDeleteCookiesForTesting):
(WKWebsiteDataStoreStatisticsHasLocalStorage):
(WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap):
(WKWebsiteDataStoreStatisticsHasIsolatedSession):
(WKWebsiteDataStoreSetResourceLoadStatisticsShouldDowngradeReferrerForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsToSameSiteStrictCookiesForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
(WKWebsiteDataStoreGetAllStorageAccessEntries):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _seedResourceLoadStatisticsForTestingWithFirstParty:thirdParty:shouldScheduleNotification:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]):
(-[WKWebsiteDataStore _loadedSubresourceDomainsFor:completionHandler:]):
(-[WKWebsiteDataStore _clearLoadedSubresourceDomainsFor:]):
(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):
(-[WKWebsiteDataStore _scheduleCookieBlockingUpdate:]):
(-[WKWebsiteDataStore _logUserInteraction:completionHandler:]):
(-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _getIsPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _clearPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _clearResourceLoadStatistics:]):
(-[WKWebsiteDataStore _getResourceLoadStatisticsDataSummary:]):
(-[WKWebsiteDataStore _isRelationshipOnlyInDatabaseOnce:thirdParty:completionHandler:]):
(-[WKWebsiteDataStore _isRegisteredAsSubresourceUnderFirstParty:thirdParty:completionHandler:]):
(-[WKWebsiteDataStore _statisticsDatabaseHasAllTables:]):
(-[WKWebsiteDataStore _processStatisticsAndDataRecords:]):
(-[WKWebsiteDataStore _setThirdPartyCookieBlockingMode:onlyOnSitesWithoutUserInteraction:completionHandler:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

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

(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::isolatedCopy const):

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resourceLoadStatisticsEnabled const):
(WebKit::WebsiteDataStore::resourceLoadStatisticsDebugMode const):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebsiteDataStore::isResourceLoadStatisticsEphemeral const):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::WebCookieJar::cookies const):
(WebKit::WebCookieJar::setCookies):
(WebKit::WebCookieJar::cookiesEnabled const):
(WebKit::WebCookieJar::cookieRequestHeaderFieldValue const):
(WebKit::WebCookieJar::getRawCookies const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):

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

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setWebsiteDataStoreParameters):
(WebKit::WebProcess::setResourceLoadStatisticsEnabled):
(WebKit::WebProcess::clearResourceLoadStatistics):
(WebKit::WebProcess::flushResourceLoadStatistics):
(WebKit::WebProcess::seedResourceLoadStatisticsForTesting):

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

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
5:31 PM Changeset in webkit [282428] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Remove test expectations for imported/w3c/web-platform-tests/resource-timing/status-codes-create-entry.html.
https://bugs.webkit.org/show_bug.cgi?id=229516.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:16 PM Changeset in webkit [282427] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Remove test expectations for imported/w3c/web-platform-tests/css/css-fonts/downloadable-font-in-iframe-print.html.
https://bugs.webkit.org/show_bug.cgi?id=229506.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:14 PM Changeset in webkit [282426] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Enable BroadcastChannel for modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=230235

Reviewed by Geoffrey Garen.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
5:08 PM Changeset in webkit [282425] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[MacOS wk2 & iOS] 2 fast/canvas tests are flaky timeouts.
https://bugs.webkit.org/show_bug.cgi?id=228082

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:58 PM Changeset in webkit [282424] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[builtins-generator-tests] Invoke with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229879

Patch by Kevin Neal <kevin_neal@apple.com> on 2021-09-14
Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(RunBuiltinsTests):

  • Scripts/run-builtins-generator-tests:

(main): Deleted.

4:56 PM Changeset in webkit [282423] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

REGRESSION: http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html is timing out on some bots.
https://bugs.webkit.org/show_bug.cgi?id=227973

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:52 PM Changeset in webkit [282422] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Remove test expectations for 3 iOS tests.
https://bugs.webkit.org/show_bug.cgi?id=229573.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
4:47 PM Changeset in webkit [282421] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Fix -Wredundant-move warnings
https://bugs.webkit.org/show_bug.cgi?id=230282

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-14
Reviewed by Alex Christensen.

  • Platform/IPC/ArgumentCoders.cpp:

(IPC::ArgumentCoder<CString>::decode):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<CertificateInfo>::decode):

3:57 PM Changeset in webkit [282420] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk/LayoutTests

[GLIB] Update platform test expectations and baselines after WPT import in r282287
https://bugs.webkit.org/show_bug.cgi?id=230281

Unreviewed test gardening.

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

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/css-transform-inherit-rotate-expected.png: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/css-transform-inherit-rotate-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:42 PM Changeset in webkit [282419] by Wenson Hsieh
  • 10 edits in trunk/Source

[macOS] Avoid computing post-layout EditorState data unless necessary
https://bugs.webkit.org/show_bug.cgi?id=230204
<rdar://problem/83078713>

Reviewed by Devin Rousso.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • page/Page.h:

(WebCore::Page::isEditable const): Mark this getter const.
(WebCore::Page::isEditable): Deleted.

Source/WebKit:

Add a new codepath on macOS that allows us to entirely avoid post-layout EditorState computation in the case
where it's not needed for anything; in particular, unless the text touch bar may be presented or the UI delegate
implements the -webView:didChangeFontAttributes: method, the post-layout portion of EditorState is not needed
at all.

See below for more details.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

Plumb a bit indicating whether user interaction is required in order to show the text touch bar. See
WebPage::shouldAvoidComputingPostLayoutDataForEditorState below for more details.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const):
(WebKit::WebPage::updateEditorStateAfterLayoutIfEditabilityChanged):

When computing EditorState.isContentEditable, use VisibleSelection's hasEditableStyle method instead of
isContentEditable. Unlike the latter, the former does not trigger style resolution.

(WebKit::WebPage::didStartPageTransition):

Make a slight adjustment to only set the m_hasEverFocusedElementDueToUserInteractionSincePageTransition bit if
the user is actually interacting with text form control or editable element. This allows us to still avoid
computing post-layout editor state data in cases where the user has clicked on non-editable elements on the
page, such that text editing controls in the touch bar are still not being shown.

(WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition):
(WebKit::WebPage::sendEditorStateUpdate):

Don't bother scheduling another post-layout EditorState in the case where post-layout data is missing, but we're
avoiding post-layout data computation altogether due to shouldAvoidComputingPostLayoutDataForEditorState
returning true.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::requiresPostLayoutDataForEditorState const):
(WebKit::WebPage::shouldAvoidComputingPostLayoutDataForEditorState const):
(WebKit::WebPage::platformNeedsLayoutForEditorState const): Deleted.

Rename this to requiresPostLayoutDataForEditorState, to avoid some confusion with the new method,
shouldAvoidComputingPostLayoutDataForEditorState. The former is a way for platforms to indicate that post-
layout data *must* be included, even if layout is not up to date yet upon computing the EditorState. The latter
is a way for platforms to indicate that we can completely avoid all post-layout editor state computation,
regardless of whether or not layout is up to date.

By default, if both of the above methods return false, we compute and include post-layout data only if layout
is up-to-date when computing the EditorState, and schedule a subsequent "full" EditorState update after the
next rendering update in the case where layout was *not* up-to-date already (indicated by the EditorState's
isMissingPostLayoutData flag).

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requiresPostLayoutDataForEditorState const):
(WebKit::WebPage::platformNeedsLayoutForEditorState const): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::shouldAvoidComputingPostLayoutDataForEditorState const):

Only return true here if the user interaction requirements for showing text editing controls on the touch bar
have not been met, and the UI delegate method for observing font attributes is also not implemented by the
client.

3:41 PM Changeset in webkit [282418] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina EWS ] http/tests/media/hls/range-request.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229424

Unreviewed test gardening.

  • platform/mac/TestExpectations: Removed expectation
3:28 PM Changeset in webkit [282417] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Remove test expectations for pointerevents/mouse/compatibility-mouse-events-prevention-mouse-released.html.
https://bugs.webkit.org/show_bug.cgi?id=229522.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:25 PM Changeset in webkit [282416] by Ryan Haddad
  • 15 edits in trunk

Unreviewed, reverting r282408.

Breaks internal builds.

Reverted changeset:

"Enable RTCRtpScriptTransform by default"
https://bugs.webkit.org/show_bug.cgi?id=230220
https://commits.webkit.org/r282408

3:19 PM Changeset in webkit [282415] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

CSSFontFaceSrcValue.cssText should be quoted consistently with other browsers
https://bugs.webkit.org/show_bug.cgi?id=230273
<rdar://problem/79644124>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

This is being upstreamed in https://github.com/web-platform-tests/wpt/pull/30784.

  • web-platform-tests/css/css-fonts/font-family-src-quoted-expected.txt: Added.
  • web-platform-tests/css/css-fonts/font-family-src-quoted.html: Added.
  • web-platform-tests/css/cssom/cssom-fontfacerule-expected.txt:

Source/WebCore:

In a src: line like "src: local(foobar)", Firefox and Chrome will both quote
"foobar" when reading out of the OM. Same thing with "src: url(foobar)".
We should match them.

Test: imported/w3c/web-platform-tests/css/css-fonts/font-family-src-quoted.html

  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::customCSSText const):

  • css/CSSMarkup.cpp:

(WebCore::serializeIdentifier):
(WebCore::serializeString):

Source/WTF:

  • wtf/unicode/CharacterNames.h:

LayoutTests:

  • fast/css/font-face-src-parsing-expected.txt:
3:11 PM Changeset in webkit [282414] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Run tests in fast/forms/ios by default in EWS.
https://bugs.webkit.org/show_bug.cgi?id=229656

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
3:09 PM Changeset in webkit [282413] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

[Win] JSRemoteInspector.h missing stdint include
https://bugs.webkit.org/show_bug.cgi?id=230275

Reviewed by Don Olmstead.

  • API/JSRemoteInspector.h:

Include stdint for uint8_t definition on Windows.

2:52 PM Changeset in webkit [282412] by commit-queue@webkit.org
  • 2 edits in trunk

Add dvh@apple.com to the list of contributors.
https://bugs.webkit.org/show_bug.cgi?id=230276

Patch by Hoa Dinh <dvh@apple.com> on 2021-09-14
Reviewed by Jonathan Bedard.

  • metadata/contributors.json:
2:29 PM Changeset in webkit [282411] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.41.4

Tag Safari-612.1.29.41.4.

2:27 PM Changeset in webkit [282410] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.41-branch/Source

Versioning.

WebKit-7612.1.29.41.4

2:14 PM Changeset in webkit [282409] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Reset author time when editing commits (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=230224
<rdar://problem/83065417>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.pull): Force-update ref of pulled branch, reset author time of all rebased commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Add update-ref mock.
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

(TestDoPullRequest):

1:21 PM Changeset in webkit [282408] by youenn@apple.com
  • 15 edits in trunk

Enable RTCRtpScriptTransform by default
https://bugs.webkit.org/show_bug.cgi?id=230220
Source/WebCore:

Reviewed by Eric Carlson.

No change of behavior, renaming WebRTCInsertableStreamsEnabled to WebRTCEncodedTransformEnabled
and WebRTCSFrameTransformEnabled.

  • Modules/mediastream/RTCEncodedAudioFrame.idl:
  • Modules/mediastream/RTCEncodedVideoFrame.idl:
  • Modules/mediastream/RTCRtpReceiver+Transform.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformErrorEvent.idl:
  • Modules/mediastream/RTCRtpScriptTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSender+Transform.idl:
  • Modules/mediastream/RTCTransformEvent.idl:
  • workers/DedicatedWorkerGlobalScope.idl:

Source/WTF:

Reviewed by Eric Carlson.

Splitting WebRTCInsertableStreamsEnabled to WebRTCEncodedTransformEnabled and WebRTCSFrameTransformEnabled.
Keeping WebRTCSFrameTransformEnabled as off by default until SFrame solidifies and mark WebRTCEncodedTransformEnabled as on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

<rdar://problem/83090247>

Reviewed by Eric Carlson.

  • http/wpt/webrtc/no-webrtc-transform.html:

Migrate to new internal setting.

1:18 PM Changeset in webkit [282407] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Mac Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230268

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:14 PM Changeset in webkit [282406] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Enable IPCMessages debug logging for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=230081
<rdar://problem/82939596>

Reviewed by Don Olmstead.

  • Platform/IPC/MessageArgumentDescriptions.h: Added some #if to

align with the generated MessageArgumentDescriptions.cpp.

1:09 PM Changeset in webkit [282405] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

StackTrace outputs a garbage prefix because WTF::StackTrace::m_prefix is filled with the stack content
https://bugs.webkit.org/show_bug.cgi?id=230207

Reviewed by Yusuke Suzuki.

r278474 (Bug 226390) added a new member m_prefix to StackTrace at
the bottom of the structure. However, StackTrace isn't a normal
structure. The members are filled with the stack content.

  • wtf/StackTrace.h: Moved the m_prefix to the top of the members.
1:06 PM Changeset in webkit [282404] by Jonathan Bedard
  • 3 edits in trunk/Tools

[git-webkit] Reset author time when editing commits (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=230224
<rdar://problem/83065417>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Capture 'git commit date=now'.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.create_commit): Always reset commit date.

12:59 PM Changeset in webkit [282403] by Darin Adler
  • 12 edits in trunk

URLs in CSS variables must be resolved against the base URL of the stylesheet, not the document
https://bugs.webkit.org/show_bug.cgi?id=230243

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/css/variables/url-with-variable-is-sheet-relative.html

  • css/CSSPendingSubstitutionValue.h: Removed baseURL, since CSSVariableReferenceValue now

contains an appropriate parsing context, which includes the base URL.

  • css/CSSVariableReferenceValue.cpp:

(WebCore::CSSVariableReferenceValue::CSSVariableReferenceValue): Store a CSSParserContext.
(WebCore::CSSVariableReferenceValue::create): Ditto.

  • css/CSSVariableReferenceValue.h: Updated for the above.
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences): Use the context from the
variable reference, not the current one in the parser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseValueStart): Pass a parser context when creating a
CSSVariableReferenceValue.

  • css/parser/CSSVariableParser.cpp:

(WebCore::CSSVariableParser::parseDeclarationValue): Ditto.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::resolvedVariableValue): Remove the special case for
CSSPendingSubstitutionValue since CSSParser::parseValueWithVariableReferences
now takes care of this.

LayoutTests:

  • fast/css/variables/support/styles/url-with-variable-is-sheet-relative.css: Added 10 more test cases.
  • fast/css/variables/url-with-variable-is-sheet-relative-expected.html: Ditto.
  • fast/css/variables/url-with-variable-is-sheet-relative.html: Ditto.
12:53 PM Changeset in webkit [282402] by commit-queue@webkit.org
  • 2 edits
    6 adds in trunk/LayoutTests/imported/w3c

Add wpts for sin,cos,tan
https://bugs.webkit.org/show_bug.cgi?id=230129

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-09-14
Reviewed by Simon Fraser.

  • web-platform-tests/css/support/numeric-testcommon.js:

(test_math_used):
Added helper function for testing approximate equals.

12:31 PM Changeset in webkit [282401] by Alan Bujtas
  • 4 edits
    4 adds in trunk/Source/WebCore

[LFC][IFC] Introduce InlineInvalidation/InlineDamage
https://bugs.webkit.org/show_bug.cgi?id=229225
<rdar://problem/82324227>

Reviewed by Antti Koivisto.

This is in preparation for supporting partial inline layout.

The initial implementation is going to only support a single type of damage (content changed, style changed etc) on a single line.
Anything more involved either

  1. folds into a full damage type of layout (i.e. no range support) e.g changing multiple images on different lines triggers vertical alignment on all the lines
  2. triggers the lowest level type of layout e.g. changing content on the first line while resizing the containing block folds into NeedsContentUpdateAndLineLayout.
  • CMakeLists.txt:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/invalidation/InlineDamage.h: Added.

(WebCore::Layout::InlineDamage::type const):
(WebCore::Layout::InlineDamage::line const):
(WebCore::Layout::InlineDamage::setDamageType):
(WebCore::Layout::InlineDamage::setDamagedLine):

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

(WebCore::Layout::InlineInvalidation::InlineInvalidation):
(WebCore::Layout::InlineInvalidation::styleChanged):
(WebCore::Layout::InlineInvalidation::textInserted):
(WebCore::Layout::InlineInvalidation::textWillBeRemoved):
(WebCore::Layout::InlineInvalidation::inlineLevelBoxInserted):
(WebCore::Layout::InlineInvalidation::inlineLevelBoxWillBeRemoved):

  • layout/formattingContexts/inline/invalidation/InlineInvalidation.h: Added.
12:26 PM Changeset in webkit [282400] by commit-queue@webkit.org
  • 1 edit
    21 adds in trunk/LayoutTests

[GLIB] Create platform specific baselines for new web platform tests imported in r282287
https://bugs.webkit.org/show_bug.cgi?id=230272

Unreviewed test gardening.

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

  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/crashtests/large-scaley-001-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/crashtests/preserve3d-scene-001-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/crashtests/w-negative-001-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/crashtests/w-negative-002-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/crashtests/w-negative-003-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/large-matrix-crash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/text-perspective-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-transforms/crashtests/preserve3d-scene-002-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-transforms/rotate-180-degrees-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-transforms/rotate-270-degrees-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-transforms/rotate-90-degrees-001-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transforms/crashtests/preserve3d-scene-002-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transforms/rotate-180-degrees-001-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transforms/rotate-270-degrees-001-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transforms/rotate-90-degrees-001-expected.txt: Added.
11:51 AM Changeset in webkit [282399] by Kate Cheney
  • 2 edits in trunk/Source/WTF

Followup to https://bugs.webkit.org/show_bug.cgi?id=217784

Reviewed by Wenson Hsieh.

Update platform name for watchOS.

  • Scripts/Preferences/WebPreferences.yaml:
11:42 AM Changeset in webkit [282398] by mmaxfield@apple.com
  • 6 edits in trunk/Source

[Cocoa] Migrate to CTFontHasTable() from CTFontCopyAvailableTables()
https://bugs.webkit.org/show_bug.cgi?id=230248

Reviewed by Anders Carlsson.

Source/WebCore:

CTFontHasTable() has been around for a while, but it's only actually
faster than CTFontCopyAvailableTables() on certain operating systems.

No new tests because there is no behavior change.

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::fontHasTable):
(WebCore::fontHasEitherTable):

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WTF:

  • wtf/PlatformUse.h:
11:38 AM Changeset in webkit [282397] by mmaxfield@apple.com
  • 35 edits in trunk

Implement text-decoration-skip-ink
https://bugs.webkit.org/show_bug.cgi?id=230244

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • 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-in-animation-expected.txt:
  • web-platform-tests/css/css-text-decor/inheritance-expected.txt:
  • web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-computed-expected.txt:
  • web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-valid-expected.txt:
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

First, there was "text-decoration-skip: ink", and that was what we implemented in WebKit. That had a
problem, though, which was that you couldn't add a value into the set without resetting the entire
property, so the CSSWG split it up into a bunch of constituent properties:

  • text-decoration-skip-self
  • text-decoration-skip-box
  • text-decoration-skip-inset
  • text-decoration-skip-spaces
  • text-decoration-skip-ink

text-decoration-skip was turned into a shorthand for all of these constituent properties.

Chrome and Firefox, however, implemented text-decoration-skip-ink rather than text-decoration-skip.
From what I understand, Firefox isn't interested in implementing the shorthand until they implement
all the longhands. Therefore, because WebKit implements only the shorthand and Firefox implements only
the longhand, authors have to write two different properties in their style for the two different
browsers. That's unfortunate, so this patch makes WebKit follow the CSSWG, and turns
text-decoration-skip into a shorthand, and adds support for text-decoration-skip-ink. Therefore,
there's no new behavior here; it's just a new way of accessing the same functionality we already have.

The spec actually removed the "ink" value from the text-decoration-skip shorthand, but we have to
maintain it because of compat. So, this patch maps "text-decoration-skip: ink" to
"text-decoration-skip-ink: auto". There's an issue in the spec about this:
https://drafts.csswg.org/css-text-decor-4/#issue-070668ae

Back when we implemented text-decoration-skip: ink, we only implemented the "ink" value, and none of
the other values. This patch also doesn't implement the other values.

Also, previously, we used to parse "text-decoration-skip: objects" but we didn't do anything with it.
This patch removes parsing support for that, so @supports works properly.

Covered by existing tests.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationSkipToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::renderTextDecorationSkipFlagsToCSSValue): Deleted.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextDecorationSkipInk const):

  • css/CSSProperties.json:
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::textDecorationSkipValue const):

  • css/StyleProperties.h:
  • css/html.css:

(ins, del):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTextDecorationSkip):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
(WebCore::consumeTextDecorationSkip): Deleted.

  • css/parser/CSSPropertyParser.h:
  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::textDecorationSkipInk const):
(WebCore::RenderStyle::setTextDecorationSkipInk):
(WebCore::RenderStyle::initialTextDecorationSkipInk):
(WebCore::RenderStyle::textDecorationSkip const): Deleted.
(WebCore::RenderStyle::setTextDecorationSkip): Deleted.
(WebCore::RenderStyle::initialTextDecorationSkip): Deleted.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/InlineTextBoxStyle.cpp:

(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):

  • style/PropertyCascade.cpp:

(WebCore::Style::shouldApplyPropertyInParseOrder):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::valueToDecorationSkip): Deleted.
(WebCore::Style::BuilderConverter::convertTextDecorationSkip): Deleted.

LayoutTests:

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt:
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
10:08 AM Changeset in webkit [282396] by Sam Sneddon
  • 22 edits in trunk

Support the x resolution unit
https://bugs.webkit.org/show_bug.cgi?id=229777

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline for more passing tests.

  • web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:

Source/WebCore:

Covered by existing (progressing) tests.

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):

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

(WebCore::unitCategory):
(WebCore::operator<<):

  • css/CSSUnits.h:
  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const):

  • css/calc/CSSCalcCategoryMapping.cpp:

(WebCore::hasDoubleValue):

  • css/parser/CSSParserToken.cpp:

(WebCore::cssPrimitiveValueUnitFromTrie):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension):
(WebCore::CSSPropertyParserHelpers::consumeResolution):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::consumeResolution):
Remove the optional allowX argument now it's part of the normal syntax.

LayoutTests:

Update tests so that they expect the x unit to serialize as the x unit
(and not magically change to the dppx unit).

  • fast/css/cursor-parsing-image-set-expected.txt:
  • fast/css/cursor-parsing-image-set.html:
  • fast/css/image-set-parsing-expected.txt:
  • fast/css/image-set-parsing-generated-expected.txt:
  • fast/css/image-set-parsing-generated.html:
  • fast/css/image-set-parsing.html:
  • fast/css/image-set-setting-expected.txt:
  • fast/css/image-set-setting.html:
  • fast/css/image-set-unprefixed.html:
10:02 AM Changeset in webkit [282395] by youenn@apple.com
  • 9 edits in trunk/Source/WebCore

Refactor WritableStream to better integrate https://streams.spec.whatwg.org/#create-writable-stream
https://bugs.webkit.org/show_bug.cgi?id=230219

Reviewed by Sihui Liu.

Previously to create a WritableStream as https://streams.spec.whatwg.org/#create-writable-stream,
we were still going through the WritableStream constructor taking an underlying sink.
We refactor code to stop doing that, which will make it easy to introduce https://streams.spec.whatwg.org/#writablestream-set-up
which is now used in other web specifications.

To do so, we introduce a createFromUnderlyingSink built-in function that creates a WritableStream from an InternalWritableStream.
Covered by existing tests.

  • Modules/streams/StreamInternals.js:

(extractHighWaterMark): Make sure extractHighWaterMark returns a number as WebIDL defines HWM as a double.

  • Modules/streams/WritableStream.cpp:

(WebCore::WritableStream::create):

  • Modules/streams/WritableStream.h:
  • Modules/streams/WritableStreamInternals.js:

(createWritableStream):
(createInternalWritableStreamFromUnderlyingSink):

  • bindings/js/InternalWritableStream.cpp:

(WebCore::InternalWritableStream::createFromUnderlyingSink):
(WebCore::InternalWritableStream::fromObject):
(WebCore::InternalWritableStream::create): Deleted.

  • bindings/js/InternalWritableStream.h:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/WebCoreBuiltinNames.h:
9:48 AM Changeset in webkit [282394] by Ayumi Kojima
  • 4 edits in trunk/LayoutTests

REGRESSION (r281981): [iOS, BigSur+] webrtc/datachannel/getStats-no-prflx-remote-candidate.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229877

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
9:21 AM Changeset in webkit [282393] by Chris Dumez
  • 21 edits in trunk/Source

[Hardening] Validate IDBValue's blob paths in WebIDBServer::putOrAdd()
https://bugs.webkit.org/show_bug.cgi?id=230233
<rdar://79562514>

Reviewed by Brady Eidson.

Source/WebCore:

Rename writeBlobsToTemporaryFiles() to writeBlobsToTemporaryFilesForIndexedDB() for clarity
since it is currently only used for IndexedDB and we wouldn't want to expand usage to
other things.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFilesForIndexedDB):

  • platform/network/BlobRegistryImpl.h:

Source/WebKit:

When the SerializedScriptValue contains BlobURLs, IDBTransaction::putOrAddOnServer()
calls SerializedScriptValue::writeBlobsToDiskForIndexedDB() before sending the
WebIDBServer::PutOrAdd IPC to the network process. writeBlobsToDiskForIndexedDB()
sends a NetworkProcessConnection::writeBlobsToTemporaryFilesForIndexedDB IPC to the
network process and the network process will write the blobs to temporary files and
then return the file paths to those temporary files to the WebProcess. The file paths
are then stored inside the IDBValue object that gets sent in the WebIDBServer::PutOrAdd
IPC.

This patch hardens our IPC by validating in WebIDBServer::PutOrAdd() that the IDBValue's
Blob file paths were indeed file paths previously created by the network process on behalf
of the WebProcess sending the IPC. If it is not, we ignore the IPC.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::putOrAdd):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::registerTemporaryBlobFilePaths):

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFilesForIndexedDB):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFilesForIndexedDB):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFilesForIndexedDB):

  • WebProcess/Network/NetworkProcessConnection.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:
9:11 AM Changeset in webkit [282392] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Update test baselines after r282307
https://bugs.webkit.org/show_bug.cgi?id=230267

Unreviewed test gardening.

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

  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:
8:56 AM Changeset in webkit [282391] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Provide a way to update the commit message with an updated list of changed files/functions
https://bugs.webkit.org/show_bug.cgi?id=230195

Patch by Hoa Dinh <dvh@apple.com> on 2021-09-14
Reviewed by Jonathan Bedard.

Add a new parameter --only-files to request generation of only the part of the changed files/functions.

  • Scripts/prepare-ChangeLog:

(main):
(generateNewChangeLogs):

8:53 AM Changeset in webkit [282390] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Don't schedule text rendering updates for a non-rendered Document
https://bugs.webkit.org/show_bug.cgi?id=230246
rdar://81905586

Reviewed by Anders Carlsson.

Memory use could grow without limit as these updates would not get cleared until
the document was destroyed.

No test, hard to make a reasonable regression test as the memory growth is not extreme.

  • dom/Document.cpp:

(WebCore::Document::updateTextRenderer):

Bail out if the Document has no render tree.

8:45 AM Changeset in webkit [282389] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ Mac wk2 iOS ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-explicit-rollback-iceGatheringState.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=230266

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
8:18 AM Changeset in webkit [282388] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ MacOS & iOS ] imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=228089

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
6:49 AM Changeset in webkit [282387] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove unnecessary exception checks in DFGOperations
https://bugs.webkit.org/show_bug.cgi?id=230247

Patch by Xan Lopez <Xan Lopez> on 2021-09-14
Reviewed by Caio Araujo Neponoceno de Lima.

JSValue::decode cannot throw an exception, remove a couple of
unnecessary RETURN_IF_EXCEPTION() calls.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

6:19 AM Changeset in webkit [282386] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] InlineDisplayContentBuilder should not operate on the global inline run list
https://bugs.webkit.org/show_bug.cgi?id=230232

Reviewed by Antti Koivisto.

InlineDisplayContentBuilder builds one line worth of runs. It should not have access to the global (all runs in the formatting context) run list.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):
(WebCore::Layout::InlineDisplayContentBuilder::collectInkOverflowForInlineBoxRuns):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::addRuns):
(WebCore::Layout::InlineFormattingState::addRun): Deleted.

  • layout/formattingContexts/inline/InlineLineRun.h:
3:13 AM Changeset in webkit [282385] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] ASSERT failed in stress/for-in-tests.js (32bit)
https://bugs.webkit.org/show_bug.cgi?id=229543

Patch by Xan López <Xan Lopez> on 2021-09-14
Reviewed by Yusuke Suzuki.

Since r280760 DFG::SpeculativeJIT::compileEnumeratorGetByVal uses
too many registers for 32bit. Revert to the slow path as a
temporary measure to avoid crashes, we'll try to reenable the
optimizations later on (see bug #230189).

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION): define a generic call
operation for compileEnumeratorGetByVal.

  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp: move the current version of

compileEnumeratorGetByVal to 64bit, since it won't work on 32bit.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): call the generic call op always.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): use the previous version here.

  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH): refactor a bit the slow path
for enumeratorGetByVal so it can be called from DFG as a call
operation.

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::opEnumeratorGetByVal):

2:36 AM Changeset in webkit [282384] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r282383 - REGRESSION(r274929): [CoordinatedGraphics] DrawingAreaCoordinatedGraphics::createDisplayRefreshMonitor is no longer used
https://bugs.webkit.org/show_bug.cgi?id=230214

Reviewed by Adrian Perez de Castro.

That means we use the right display refresh monitor in the threaded compositor but a different one for rendering
update scheduler.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::displayRefreshMonitorFactory const): Remove platform ifdef, DrawingArea
unconditionally inherits from DisplayRefreshMonitorFactory and the default implementation of
createDisplayRefreshMonitor() returns nullptr.

2:32 AM Changeset in webkit [282383] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r274929): [CoordinatedGraphics] DrawingAreaCoordinatedGraphics::createDisplayRefreshMonitor is no longer used
https://bugs.webkit.org/show_bug.cgi?id=230214

Reviewed by Adrian Perez de Castro.

That means we use the right display refresh monitor in the threaded compositor but a different one for rendering
update scheduler.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::displayRefreshMonitorFactory const): Remove platform ifdef, DrawingArea
unconditionally inherits from DisplayRefreshMonitorFactory and the default implementation of
createDisplayRefreshMonitor() returns nullptr.

12:46 AM Changeset in webkit [282382] by calvaris@igalia.com
  • 3 edits
    4 adds in trunk

[GStreamer] Enable H265 codec
https://bugs.webkit.org/show_bug.cgi?id=229920

Reviewed by Philippe Normand.

Source/WebCore:

Check for H265 decoder and parser and add the corresponding
variants.

Test: media/media-can-play-h265-video.html

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initializeDecoders):

LayoutTests:

  • media/media-can-play-h265-video-expected.txt: Added.
  • media/media-can-play-h265-video.html: Added.
  • platform/ios/media/media-can-play-h265-video-expected.txt: Added.
  • platform/mac/media/media-can-play-h265-video-expected.txt: Added.
12:40 AM Changeset in webkit [282381] by youenn@apple.com
  • 15 edits in trunk/LayoutTests/imported/w3c

Migrate some WPT WebRTC tests our of legacy offerToReceive parameters
https://bugs.webkit.org/show_bug.cgi?id=230000

Reviewed by Eric Carlson.

offerToReceive options are legacy options tested in WPT webrtc-legacy folder.
Move to addTransceiver instead.

  • web-platform-tests/webrtc/RTCPeerConnection-explicit-rollback-iceGatheringState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-explicit-rollback-iceGatheringState.html:
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-rollback.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html:
  • web-platform-tests/webrtc/RTCPeerConnection-transceivers.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html:
  • web-platform-tests/webrtc/protocol/RTCPeerConnection-payloadTypes.html:
12:18 AM Changeset in webkit [282380] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix bug in calc functions sin/cos/tan
https://bugs.webkit.org/show_bug.cgi?id=230133

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-09-14
Reviewed by Myles Maxfield.

WPTs added in seperate patch: https://bugs.webkit.org/show_bug.cgi?id=230129.

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::CSSCalcOperationNode::simplifyNode):
Fix bug where sin,cos,tan functions are applied twice when root.

Sep 13, 2021:

9:42 PM Changeset in webkit [282379] by Simon Fraser
  • 10 edits in trunk

Fix computed style for transform-origin on SVG boxes
https://bugs.webkit.org/show_bug.cgi?id=230172

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/transform-origin-014-expected.txt:

Source/WebCore:

When getting the computed value for transform-origin on SVG boxes, we need to get
the appropriate "reference box" from the renderer. Do minor refactoring to share
code between rendering and computed style for SVG and non-SVG boxes.

Tested by imported/w3c/web-platform-tests/css/css-transforms/transform-origin-014.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::transformReferenceBox):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • rendering/RenderLayer.cpp:

(WebCore::transformBoxToCSSBoxType): Deleted.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::transformBoxToCSSBoxType):

  • rendering/style/RenderStyleConstants.h:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::transformReferenceBox):

  • rendering/svg/SVGRenderSupport.h:
  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

9:16 PM Changeset in webkit [282378] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ Mac iOS ] 2 imported/w3c/web-platform-tests/css/cssom-view/ (layout-tests) are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=230237

Unreviewed test gardening.

9:15 PM Changeset in webkit [282377] by Chris Dumez
  • 12 edits in trunk

[WK2] Reduce amount of IPC needed by BroadcastChannel
https://bugs.webkit.org/show_bug.cgi?id=230181

Reviewed by Alex Christensen.

Source/WebCore:

Introduce ScriptExecutionContext::ensureOnContextThread() which is similar to
ScriptExecutionContext::postTaskTo() but doesn't call postTask() if we're already
on the ScriptExecutionContext's context thread. Use it in BroadcastChannel::dispatchMessageTo()
to avoid unnecessary thread hopping when the BroadcastChannel belongs to a Window
environment.

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::dispatchMessageTo):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ensureOnContextThread):

  • dom/ScriptExecutionContext.h:

Source/WebKit:

Reduce amount of IPC needed by BroadcastChannel for both registration / unregistration
and communication. Each WebBroadcastChannelRegistry in the WebProcess now maintains
a map of BroadcastChannels within the WebProcess. As a result, we are able to dispatch
messages to other BroadcastChannels within the same process without going via the
NetworkProcess.

Also, the NetworkBroadcastChannelRegistry on the NetworkProcess side no longer needs
to store individual BroadcastChannelIdentifiers. It merely needs to know which
WebProcesses have one or more BroadcastChannels for a given ClientOrigin / name.
When NetworkBroadcastChannelRegistry::postMessage() is called, we no longer send
IPC to the source process in case there are other BroadcastChannels than the source
with the given ClientOrigin / name in that process. Also, if there is more than
one BroadcastChannel for the given ClientOrigin / name within a given destination
WebProcess, we now send a single IPC message instead of sending one per BroadcastChannel.

  • NetworkProcess/NetworkBroadcastChannelRegistry.cpp:

(WebKit::NetworkBroadcastChannelRegistry::registerChannel):
(WebKit::NetworkBroadcastChannelRegistry::unregisterChannel):
(WebKit::NetworkBroadcastChannelRegistry::postMessage):
(WebKit::NetworkBroadcastChannelRegistry::removeConnection):

  • NetworkProcess/NetworkBroadcastChannelRegistry.h:
  • NetworkProcess/NetworkBroadcastChannelRegistry.messages.in:
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebKit::WebBroadcastChannelRegistry::registerChannel):
(WebKit::WebBroadcastChannelRegistry::unregisterChannel):
(WebKit::WebBroadcastChannelRegistry::postMessage):
(WebKit::WebBroadcastChannelRegistry::postMessageLocally):
(WebKit::WebBroadcastChannelRegistry::postMessageToRemote):

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.messages.in:
8:55 PM Changeset in webkit [282376] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
8:11 PM Changeset in webkit [282375] by Wenson Hsieh
  • 9 edits in trunk/Source/WebKit

Refactor -[WKWebViewConfiguration _setRequiresUserActionForEditingControlsManager:] to use API::PageConfiguration
https://bugs.webkit.org/show_bug.cgi?id=230238
rdar://83078713

Reviewed by Tim Horton.

Move the _requiresUserActionForEditingControlsManager bit out of WebViewImpl and into API::PageConfiguration.
This makes it easier to introduce state in WebPage that keeps track of whether or not user action is required
for showing text editing controls on the touch bar, since we can fetch the (unchanging) state off of
API::PageConfiguration, and propagate it to the web process via WebPageCreationParameters.

No change in behavior.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::requiresUserActionForEditingControlsManager const):
(API::PageConfiguration::setRequiresUserActionForEditingControlsManager):

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _requiresUserActionForEditingControlsManager]):
(-[WKWebViewConfiguration _setRequiresUserActionForEditingControlsManager:]):

Call into API::PageConfiguration instead.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _requiresUserActionForEditingControlsManager]): Deleted.
(-[WKView _setRequiresUserActionForEditingControlsManager:]): Deleted.

Additionally delete this private method on WKView, which was only used by Safari on macOS, back before Safari
used WKWebView. There are currently no internal clients of this SPI method.

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::setRequiresUserActionForEditingControlsManager): Deleted.
(WebKit::WebViewImpl::requiresUserActionForEditingControlsManager const): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requiresUserActionForEditingControlsManager const):

Turn this into a helper method that just asks the API::PageConfiguration.

(WebKit::WebViewImpl::updateTouchBar):

6:17 PM Changeset in webkit [282374] by Jean-Yves Avenard
  • 3 edits in trunk/Source/WebCore

Playback stops although the progress bar moves
https://bugs.webkit.org/show_bug.cgi?id=230210
rdar://81123838

Reviewed by Eric Carlson.

When playback has stalled due to insufficient data being buffered, the effective rate
should be 0 as time is no longer progressing.
While the GPU process would indicate that the rate has changed once the player has
stalled, the effective rate reported would remain the same causing the current time
position to continue moving as it's estimated based on the effective rate.
This is also workaround rdar://83048005 which can report that the buffer is both
full and empty at the same time.

Fly-By fix: set the new rate in HTMLMediaElement if previously the requested rate
is different.

The buffering is handled by the AVPlayer and is dependent on network conditions making
it difficult to test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlaybackRate):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::effectiveRate const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::timeControlStatusDidChange):

5:18 PM Changeset in webkit [282373] by ysuzuki@apple.com
  • 1 edit
    1 move
    3 adds in trunk/JSTests

[JSC] Add JSON.parse microbenchmarks from Speedometer2
https://bugs.webkit.org/show_bug.cgi?id=230234

Reviewed by Saam Barati.

This patch adds JSON.parse microbenchmarks from Speedometer2. We record JSON.parse call in Speedometer2 subtests,
and create benchmark which performs the same calls.

  • microbenchmarks/flight-todomvc-json-parse.js: Renamed from JSTests/microbenchmarks/flight-todomvc-json.js.
  • microbenchmarks/vanilla-es2015-babel-webpack-todomvc-json-parse.js: Added.
  • microbenchmarks/vanilla-es2015-todomvc-json-parse.js: Added.
  • microbenchmarks/vanilla-todomvc-json-parse.js: Added.
5:05 PM Changeset in webkit [282372] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.6

3:53 PM Changeset in webkit [282371] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[iOS] Investigate unclassified CSS LayoutTest failures.
https://bugs.webkit.org/show_bug.cgi?id=178588

Unreviewed test gardening.

  • platform/ios/TestExpectations:
3:49 PM Changeset in webkit [282370] by Wenson Hsieh
  • 12 edits in trunk

[macOS] -toggleAutomaticSpellingCorrection: menu item validation shouldn't require post-layout editor state
https://bugs.webkit.org/show_bug.cgi?id=230205

Reviewed by Darin Adler.

Source/WebCore:

See WebKit ChangeLog for more details.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::canEnableAutomaticSpellingCorrection const):

Slightly improve the performance of this method in the case where we're focusing a text field, by only
consulting the host form control element, rather than both the form control and the contenteditable shadow root
element.

Source/WebKit:

In preparation for https://webkit.org/b/230204, refactor code on macOS that determines whether or not the
"Correct Spelling Automatically" menu bar item should be enabled, such that it doesn't require post-layout
editor state data. This is requisite to avoiding post-layout editor state computation altogether on macOS, when
the touch bar is either unavailable, or hasn't ever been shown in the context of text editing. See below for
more details.

We also take this opportunity to remove support for the unused _WKSelectionAttributeAtStartOfSentence SPI value
in _WKSelectionAttributes, which was originally intended for use in Mail compose in WebKit2 but seems to have
been obviated by the ability to swipe horizontally on the custom input accessory view in Mail compose to switch
between text candidates and the text formatting options.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
(WebKit::operator<<):

Remove the atStartOfSentence bit on EditorState's post-layout data that was only used to implement the
_WKSelectionAttributeAtStartOfSentence SPI flag value, and also move the canEnableAutomaticSpellingCorrection
bit out of post-layout data, and into the EditorState struct. Importantly, computing this bit does not require
or trigger layout, and this refactoring will allow us to completely forgo post-layout data on configurations
that do not require it (i.e. when the text touch bar is not active).

  • Shared/EditorState.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(selectionAttributes):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Remove an unused value, _WKSelectionAttributeAtStartOfSentence, in the _WKSelectionAttributes SPI flag.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::validateUserInterfaceItem):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getPlatformEditorState const):

Tools:

See WebKit ChangeLog for more details.

  • TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:

(TestWebKitAPI::TEST):

3:42 PM Changeset in webkit [282369] by Andres Gonzalez
  • 15 edits
    2 adds in trunk

AX: set insertion point to the end of a native text control does not work when passing a collapsed TextMarkerRange with both start and end equals to the end TextMarker for the element.
https://bugs.webkit.org/show_bug.cgi?id=230166

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/native-text-control-set-selected-textmarker-range.html

Added a special case to AX object's setSelectedVisiblePositionRange for
when the passed range is a collapsed range to the end of a native text
control element's range.
To accomplish this, it is necessary to compare for equality two
VisiblePositions obtained from TextMarkers.
In order to reconstruct the VisiblePositions from the TextMarkers in a
way that equality is preserved, the AnchorType of the underlying
Position needs to be added to the TextMarkerData.

  • accessibility/AXObjectCache.cpp:

Added the AnchorType to the TextMarkerData struct.
(WebCore::AXObjectCache::visiblePositionForTextMarkerData):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

  • accessibility/mac/AXObjectCacheMac.mm:

Exposed textMarkerRangeFromMarkers.
(WebCore::textMarkerRangeFromMarkers):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

Added the AXTextMarkerRangeForTextMarkers attribute which, unlike
AXTextMarkerRangeForUnorderedTextMarkers, assumes that the range's start
and end are ordered, and thus is more efficient.
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::textMarkerRangeForMarkers):
Use AXTextMarkerRangeForTextMarkers instead of
AXTextMarkerRangeForUnorderedTextMarkers.

LayoutTests:

  • accessibility/mac/bounds-for-range-expected.txt:

Added AXTextMarkerRangeForTextMarkers attribute name.

  • accessibility/mac/native-text-control-set-selected-textmarker-range-expected.txt:
  • accessibility/mac/native-text-control-set-selected-textmarker-range.html:

Expanded to include the test cases to move the insertion point to the
beginning and end of the text cotnrol.

  • accessibility/text-marker/text-marker-previous-next-expected.txt:
  • accessibility/text-marker/text-marker-previous-next.html:

Adjusted expected value to include linebreak character.

3:36 PM Changeset in webkit [282368] by achristensen@apple.com
  • 27 edits
    2 adds in trunk

Add unit test that uses PCM daemon
https://bugs.webkit.org/show_bug.cgi?id=230191

Reviewed by Chris Dumez.

Source/WebKit:

I make a way to specify what mach service to connect to,
then I temporarily register an executable with launchd to provide that mach service,
then I run the test communicating with that executable.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::managerOrProxy):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp:

(WebKit::PCM::Connection::Connection):
(WebKit::PCM::Connection::send const):
(WebKit::PCM::Connection::sendWithReply const):
(WebKit::PCM::Connection::connectionToDaemon): Deleted.
(WebKit::PCM::Connection::send): Deleted.
(WebKit::PCM::Connection::sendWithReply): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:

(WebKit::PCM::managerPointer):
(WebKit::PCM::initializePCMStorageInDirectory):
(WebKit::PCM::daemonManager):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:

(WebKit::PCM::ManagerProxy::sendMessage const):
(WebKit::PCM::ManagerProxy::sendMessageWithReply const):
(WebKit::PCM::ManagerProxy::ManagerProxy):
(WebKit::PCM::sendMessage): Deleted.
(WebKit::PCM::sendMessageWithReply): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h:
  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementDaemonConnectionCocoa.mm:

(WebKit::PCM::Connection::Connection):
(WebKit::PCM::Connection::initializeConnectionIfNeeded const):
(WebKit::PCM::Connection::send const):
(WebKit::PCM::Connection::sendWithReply const):
(WebKit::PCM::Connection::connectionToDaemon): Deleted.
(WebKit::PCM::Connection::send): Deleted.
(WebKit::PCM::Connection::sendWithReply): Deleted.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:

(WebKit::startListeningForMachServiceConnections):
(WebKit::registerScheduledActivityHandler):
(WebKit::PCMDaemonMain):

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

(-[_WKWebsiteDataStoreConfiguration pcmMachServiceName]):
(-[_WKWebsiteDataStoreConfiguration setPCMMachServiceName:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::setPCMMachServiceName):
(WebKit::WebsiteDataStoreConfiguration::pcmMachServiceName const):

Source/WTF:

  • wtf/PlatformHave.h:
  • wtf/spi/darwin/XPCSPI.h:

Tools:

  • TestWebKitAPI/Configurations/TestPCMDaemon.xcconfig: Added.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::currentExecutableLocation):
(TestWebKitAPI::testDaemonPList):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestPCMDaemonMain.c: Copied from Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp.

(main):

3:26 PM Changeset in webkit [282367] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Postprocess framework headers in parallel
https://bugs.webkit.org/show_bug.cgi?id=230198

Reviewed by Wenson Hsieh.

  • mac/postprocess-framework-headers.sh:

Previously, the framework header postprocessing step operated serially
on each of our 665 framework headers; not doing a particularly large
amount of work on any, but still, 20 wall clock ms * 665 headers is
a good chunk of time.

Instead, run them in parallel and wait on the result.

On a 10 core machine, this better than halves the time of a WebKit-only
null build (from 36 seconds to 15).

This is definitely not an ideal solution; we're still wasting a ton
of time launching processes; it's likely possible to get further wins
here; on the other hand, header postprocessing only takes 2 seconds now.

3:18 PM Changeset in webkit [282366] by Chris Dumez
  • 10 edits
    4 adds in trunk

Relax BroadcastChannel origin partitioning if iframe has storage access
https://bugs.webkit.org/show_bug.cgi?id=230164

Reviewed by Alex Christensen.

Source/WebCore:

In r282105, we started partitioning origins for BroadcastChannel using topOrigin/frameOrigin.
This prevents a topFrame of origin A to message a subframe of origin A if that subframe if under
another domain B. However, the document.requestStorageAccess() API exists to relax storage
partitioning and Gecko relies on this to relax BroadcastChannel origin partitioning as well.
This patch aligns WebKit's behavior with Gecko.

Test: http/tests/messaging/broadcastchannel-partitioning-with-storage-access.html

  • dom/BroadcastChannel.cpp:

(WebCore::shouldPartitionOrigin):
(WebCore::BroadcastChannel::MainThreadBridge::create):
(WebCore::BroadcastChannel::MainThreadBridge::name const):
(WebCore::BroadcastChannel::MainThreadBridge::identifier const):
(WebCore::BroadcastChannel::MainThreadBridge::MainThreadBridge):
(WebCore::BroadcastChannel::MainThreadBridge::ensureOnMainThread):
(WebCore::BroadcastChannel::MainThreadBridge::registerChannel):
(WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel):
(WebCore::BroadcastChannel::MainThreadBridge::postMessage):
(WebCore::BroadcastChannel::BroadcastChannel):
(WebCore::BroadcastChannel::~BroadcastChannel):
(WebCore::BroadcastChannel::identifier const):
(WebCore::BroadcastChannel::name const):
(WebCore::BroadcastChannel::postMessage):
(WebCore::BroadcastChannel::close):
(WebCore::BroadcastChannel::dispatchMessage):

  • dom/BroadcastChannel.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::hasPageLevelStorageAccess const):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::hasPageLevelStorageAccess const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

LayoutTests:

Add layout test coverage.

  • http/tests/messaging/broadcastchannel-partitioning-with-storage-access-expected.txt: Added.
  • http/tests/messaging/broadcastchannel-partitioning-with-storage-access.html: Added.
  • http/tests/messaging/resources/broadcastchannel-partitioning-with-storage-access-iframe.html: Added.
  • http/tests/messaging/resources/broadcastchannel-partitioning-with-storage-access-popup.html: Added.
3:06 PM Changeset in webkit [282365] by Chris Dumez
  • 4 edits in trunk

Crash under WebPage::runJavaScript()
https://bugs.webkit.org/show_bug.cgi?id=230223
<rdar://80172436>

Reviewed by Brady Eidson.

Source/WebKit:

The resolveFunction() was capturing frame = makeRef(frame) and then calling frame->coreFrame()->script().
This would lead to a null dereference crash in the case where the core frame gets destroyed before the JS
promise gets resolved. Protecting the WebFrame does not keep the core Frame alive as WebFrame::m_coreFrame
is merely a WeakPtr. To address the issue, the lambda now also protects the core frame and uses it to get
the script controller.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:

(-[AsyncJSUIDelegate initWithAlertHandler:]):
(-[AsyncJSUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):

3:01 PM Changeset in webkit [282364] by pvollan@apple.com
  • 8 edits in trunk/Source/WebKit

Send preference updates to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=230159
<rdar://81049367>

Reviewed by Brent Fulgham.

Like the WebContent process, the GPU process should also receive preference updates since it is blocking the preference service in the sandbox.
The common code to set a preference is being moved to the AuxiliaryProcess base class, so that also the GPU process can make use of it. When
the UI process is sending preference update messages to all the WebContent processes, it will now also send to the GPU process.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/cocoa/GPUProcessCocoa.mm:

(WebKit::GPUProcess::notifyPreferencesChanged):

  • Shared/AuxiliaryProcess.h:
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::decodePreferenceValue):
(WebKit::AuxiliaryProcess::setPreferenceValue):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::notifyPreferencesChanged):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::handlePreferenceChange):
(WebKit::WebProcess::notifyPreferencesChanged):
(WebKit::setPreferenceValue): Deleted.

2:55 PM Changeset in webkit [282363] by commit-queue@webkit.org
  • 283 edits in trunk/LayoutTests

[GLIB] Update test baselines after r282306
https://bugs.webkit.org/show_bug.cgi?id=230221

Unreviewed test gardening.

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

  • platform/glib/css2.1/t080301-c411-vt-mrgn-00-b-expected.txt:
  • platform/glib/css2.1/t0804-c5510-padn-00-b-ag-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-01-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-02-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-03-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-04-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-05-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-06-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-07-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-08-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-11-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-12-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-13-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-14-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-15-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-16-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-17-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-18-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-19-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-21-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-22-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-23-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-24-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-25-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-26-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-27-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-28-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-29-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-31-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-32-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-33-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-34-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-35-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-36-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-37-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-38-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-39-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-41-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-42-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-43-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-44-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-45-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-46-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-47-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-48-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-49-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-51-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-52-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-53-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-54-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-55-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-56-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-57-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-58-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-59-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-61-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-62-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-63-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-64-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-65-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-66-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-67-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-68-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-69-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-71-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-72-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-73-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-74-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-75-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-76-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-77-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-78-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-79-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-81-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-82-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-83-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-84-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-85-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-86-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-87-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-88-d-expected.txt:
  • platform/glib/css2.1/t170602-bdr-conflct-w-89-d-expected.txt:
  • platform/glib/css3/flexbox/flexbox-baseline-expected.txt:
  • platform/glib/fast/css/empty-pseudo-class-expected.txt:
  • platform/glib/fast/css/fieldset-display-row-expected.txt:
  • platform/glib/fast/css/first-child-pseudo-class-expected.txt:
  • platform/glib/fast/css/first-of-type-pseudo-class-expected.txt:
  • platform/glib/fast/css/last-child-pseudo-class-expected.txt:
  • platform/glib/fast/css/last-of-type-pseudo-class-expected.txt:
  • platform/glib/fast/css/only-child-pseudo-class-expected.txt:
  • platform/glib/fast/css/only-of-type-pseudo-class-expected.txt:
  • platform/glib/fast/dynamic/013-expected.txt:
  • platform/glib/fast/invalid/td-inside-object-expected.txt:
  • platform/glib/fast/table/multiple-percent-height-rows-expected.txt:
  • platform/glib/fast/table/rowspan-paint-order-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug110566-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug1296-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug18440-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug3103-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug45055-2-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug55527-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug7714-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug8950-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug97138-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug97383-expected.txt:
  • platform/glib/tables/mozilla/core/cell_heights-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_layers-opacity-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_position-table-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_simple-table-cell-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_simple-table-column-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_simple-table-column-group-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_simple-table-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_simple-table-row-expected.txt:
  • platform/glib/tables/mozilla/marvin/backgr_simple-table-row-group-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/bugs/97619-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/collapsing_borders/bug41262-1-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-cell-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-column-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-row-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_layers-hide-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_layers-show-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_position-table-cell-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_position-table-column-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_position-table-column-group-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_position-table-row-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/marvin/backgr_position-table-row-group-expected.txt:
  • platform/gtk/css1/basic/id_as_selector-expected.txt:
  • platform/gtk/css1/basic/inheritance-expected.txt:
  • platform/gtk/css1/box_properties/border_bottom-expected.txt:
  • platform/gtk/css1/box_properties/border_bottom_width-expected.txt:
  • platform/gtk/css1/box_properties/border_left-expected.txt:
  • platform/gtk/css1/box_properties/border_right_inline-expected.txt:
  • platform/gtk/css1/box_properties/border_top-expected.txt:
  • platform/gtk/css1/box_properties/clear_float-expected.txt:
  • platform/gtk/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/gtk/css1/box_properties/float_margin-expected.txt:
  • platform/gtk/css1/box_properties/float_on_text_elements-expected.txt:
  • platform/gtk/css1/box_properties/margin-expected.txt:
  • platform/gtk/css1/box_properties/margin_bottom-expected.txt:
  • platform/gtk/css1/box_properties/margin_top-expected.txt:
  • platform/gtk/css1/box_properties/padding-expected.txt:
  • platform/gtk/css1/box_properties/padding_bottom-expected.txt:
  • platform/gtk/css1/box_properties/padding_top-expected.txt:
  • platform/gtk/css1/box_properties/width-expected.txt:
  • platform/gtk/css1/classification/list_style-expected.txt:
  • platform/gtk/css1/classification/list_style_image-expected.txt:
  • platform/gtk/css1/color_and_background/background_attachment-expected.txt:
  • platform/gtk/css1/font_properties/font-expected.txt:
  • platform/gtk/css1/font_properties/font_size-expected.txt:
  • platform/gtk/css1/font_properties/font_weight-expected.txt:
  • platform/gtk/css1/formatting_model/floating_elements-expected.txt:
  • platform/gtk/css1/formatting_model/replaced_elements-expected.txt:
  • platform/gtk/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/gtk/css1/pseudo/firstletter-expected.txt:
  • platform/gtk/css1/pseudo/firstline-expected.txt:
  • platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/gtk/css1/text_properties/line_height-expected.txt:
  • platform/gtk/css1/text_properties/text_decoration-expected.txt:
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:
  • platform/gtk/editing/deleting/5144139-2-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/fast/forms/basic-buttons-expected.txt:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/line-grid/line-grid-contains-value-expected.txt:
  • platform/gtk/fast/multicol/nested-columns-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/gtk/fast/replaced/width100percent-image-expected.txt:
  • platform/gtk/fast/table/003-expected.txt:
  • platform/gtk/fast/table/025-expected.txt:
  • platform/gtk/fast/table/empty-cells-expected.txt:
  • platform/gtk/fast/table/frame-and-rules-expected.txt:
  • platform/gtk/fast/text/capitalize-boundaries-expected.txt:
  • platform/gtk/fast/text/international/bidi-override-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/fast/text/whitespace/024-expected.txt:
  • platform/gtk/fast/transforms/bounding-rect-zoom-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-in-html-expected.txt:
  • platform/gtk/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug10296-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1055-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug11944-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug133756-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug14323-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug17138-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug3977-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug57300-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug6304-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-3-expected.txt:
  • platform/gtk/tables/mozilla/marvin/tbody_valign_middle-expected.txt:
  • platform/gtk/tables/mozilla/marvin/td_valign_middle-expected.txt:
  • platform/gtk/tables/mozilla/marvin/tfoot_valign_middle-expected.txt:
  • platform/gtk/tables/mozilla/marvin/th_valign_middle-expected.txt:
  • platform/gtk/tables/mozilla/marvin/thead_valign_middle-expected.txt:
  • platform/gtk/tables/mozilla/marvin/tr_valign_middle-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug19526-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
  • platform/wpe/css1/basic/id_as_selector-expected.txt:
  • platform/wpe/css1/basic/inheritance-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_width-expected.txt:
  • platform/wpe/css1/box_properties/border_left-expected.txt:
  • platform/wpe/css1/box_properties/border_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_top-expected.txt:
  • platform/wpe/css1/box_properties/clear_float-expected.txt:
  • platform/wpe/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/wpe/css1/box_properties/float_margin-expected.txt:
  • platform/wpe/css1/box_properties/float_on_text_elements-expected.txt:
  • platform/wpe/css1/box_properties/margin-expected.txt:
  • platform/wpe/css1/box_properties/margin_bottom-expected.txt:
  • platform/wpe/css1/box_properties/margin_top-expected.txt:
  • platform/wpe/css1/box_properties/padding-expected.txt:
  • platform/wpe/css1/box_properties/padding_bottom-expected.txt:
  • platform/wpe/css1/box_properties/padding_top-expected.txt:
  • platform/wpe/css1/box_properties/width-expected.txt:
  • platform/wpe/css1/classification/list_style-expected.txt:
  • platform/wpe/css1/classification/list_style_image-expected.txt:
  • platform/wpe/css1/color_and_background/background_attachment-expected.txt:
  • platform/wpe/css1/font_properties/font-expected.txt:
  • platform/wpe/css1/font_properties/font_size-expected.txt:
  • platform/wpe/css1/font_properties/font_weight-expected.txt:
  • platform/wpe/css1/formatting_model/floating_elements-expected.txt:
  • platform/wpe/css1/formatting_model/replaced_elements-expected.txt:
  • platform/wpe/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/wpe/css1/pseudo/firstletter-expected.txt:
  • platform/wpe/css1/pseudo/firstline-expected.txt:
  • platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/wpe/css1/text_properties/line_height-expected.txt:
  • platform/wpe/css1/text_properties/text_decoration-expected.txt:
  • platform/wpe/css1/text_properties/vertical_align-expected.txt:
  • platform/wpe/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:
  • platform/wpe/fast/line-grid/line-grid-contains-value-expected.txt:
  • platform/wpe/fast/multicol/nested-columns-expected.txt:
  • platform/wpe/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/wpe/fast/replaced/width100percent-image-expected.txt:
  • platform/wpe/fast/table/025-expected.txt:
  • platform/wpe/fast/table/empty-cells-expected.txt:
  • platform/wpe/fast/table/frame-and-rules-expected.txt:
  • platform/wpe/fast/text/capitalize-boundaries-expected.txt:
  • platform/wpe/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/wpe/fast/text/whitespace/024-expected.txt:
  • platform/wpe/fast/transforms/bounding-rect-zoom-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug10296-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1055-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug11944-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug133756-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug14323-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug17138-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug3977-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug57300-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug6304-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/wpe/tables/mozilla/collapsing_borders/bug41262-3-expected.txt:
  • platform/wpe/tables/mozilla/marvin/tbody_valign_middle-expected.txt:
  • platform/wpe/tables/mozilla/marvin/td_valign_middle-expected.txt:
  • platform/wpe/tables/mozilla/marvin/tfoot_valign_middle-expected.txt:
  • platform/wpe/tables/mozilla/marvin/th_valign_middle-expected.txt:
  • platform/wpe/tables/mozilla/marvin/thead_valign_middle-expected.txt:
  • platform/wpe/tables/mozilla/marvin/tr_valign_middle-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug19526-expected.txt:
2:53 PM Changeset in webkit [282362] by youenn@apple.com
  • 7 edits in trunk

Fire RTCPeerConnection.signalstatechange as per spec
https://bugs.webkit.org/show_bug.cgi?id=230093

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-onsignalingstatechanged.https-expected.txt:

Source/WebCore:

Instead of using the built-in OnSignalingChange mechanism, we only update when setting descriptions.
As per spec, we fire the event before other tracks related events in case of setting remote description.
Covered by existing and updated tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::setSignalingState):
(WebCore::RTCPeerConnection::updateDescriptions):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnSignalingChange):
(WebCore::toRTCSignalingState):
(WebCore::descriptionsFromPeerConnection):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

2:44 PM Changeset in webkit [282361] by sihui_liu@apple.com
  • 42 edits
    10 copies
    2 adds in trunk

Add stub for File System Access API
https://bugs.webkit.org/show_bug.cgi?id=230101

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/file-system-access/idlharness.https.any-expected.txt:
  • web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/opaque-origin.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:

Source/WebCore:

Add some bindings code and a feature flag for File System Access API.
Spec: https://wicg.github.io/file-system-access/

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/filesystemaccess/FileSystemDirectoryHandle.cpp: Added.

(WebCore::FileSystemDirectoryHandle::create):
(WebCore::FileSystemDirectoryHandle::FileSystemDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::removeEntry):
(WebCore::FileSystemDirectoryHandle::resolve):

  • Modules/filesystemaccess/FileSystemDirectoryHandle.h: Copied from Source/WebCore/Modules/storage/StorageManager.h.
  • Modules/filesystemaccess/FileSystemDirectoryHandle.idl: Copied from Source/WebCore/Modules/storage/StorageManager.h.
  • Modules/filesystemaccess/FileSystemFileHandle.cpp: Copied from Source/WebCore/Modules/storage/StorageManager.h.

(WebCore::FileSystemFileHandle::create):
(WebCore::FileSystemFileHandle::FileSystemFileHandle):
(WebCore::FileSystemFileHandle::getFile):

  • Modules/filesystemaccess/FileSystemFileHandle.h: Copied from Source/WebCore/Modules/storage/StorageManager.h.
  • Modules/filesystemaccess/FileSystemFileHandle.idl: Copied from Source/WebCore/Modules/storage/StorageManager.h.
  • Modules/filesystemaccess/FileSystemHandle.cpp: Copied from Source/WebCore/Modules/storage/StorageManager.h.

(WebCore::FileSystemHandle::FileSystemHandle):
(WebCore::FileSystemHandle::isSameEntry):

  • Modules/filesystemaccess/FileSystemHandle.h: Copied from Source/WebCore/Modules/storage/StorageManager.h.

(WebCore::FileSystemHandle::kind const):
(WebCore::FileSystemHandle::name const):

  • Modules/filesystemaccess/FileSystemHandle.idl: Copied from Source/WebCore/Modules/storage/StorageManager.h.
  • Modules/filesystemaccess/StorageManager+FileSystemAccess.idl: Copied from Source/WebCore/Modules/storage/StorageManager.h.
  • Modules/filesystemaccess/StorageManagerFileSystemAccess.h: Copied from Source/WebCore/Modules/storage/StorageManager.h.

(WebCore::StorageManagerFileSystemAccess::getDirectory):

  • Modules/permissions/PermissionDescriptor.h:
  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::fileSystemAccessGetDirectory):

  • Modules/storage/StorageManager.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Enable file-system-access/ tests only on WK2 platforms where StorageManager is implemented.

2:40 PM Changeset in webkit [282360] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Update naming of WI.CSSCompletions callback used for collecting supported CSS properties from the target
https://bugs.webkit.org/show_bug.cgi?id=230153

Reviewed by Devin Rousso.

Rename WI.CSSCompletions.initializeCSSCompletions.propertyNamesCallback(names) to propertiesCallback(properties)
to remove confusion about what the payload actually contains: not a list of property names, but a list of objects with
CSS property names, values, aliases, longhands, etc.

The constructor of WI.CSSCompletions expects and handles this payload.

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.initializeCSSCompletions):
(WI.CSSCompletions.initializeCSSCompletions.propertyNamesCallback): Deleted.

2:32 PM Changeset in webkit [282359] by jh718.park@samsung.com
  • 4 edits in trunk

transform-origin should not accept 4 lengths
https://bugs.webkit.org/show_bug.cgi?id=186965

transform-origin accepts 1, 2, or 3 values per the spec below.
https://drafts.csswg.org/css-transforms/#propdef-transform-origin

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/parsing/transform-origin-invalid-expected.txt:

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):

2:20 PM Changeset in webkit [282358] by commit-queue@webkit.org
  • 16 edits
    3 adds in trunk

AX: Make PDFs loaded via <embed> accessible
https://bugs.webkit.org/show_bug.cgi?id=229556

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-09-13
Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

This patch makes PDFs loaded in <embed> elements accessible to
clients by exposing the underlying WKPDFPluginAccessibilityObject
created by PDF plugins.

Full-frame PDF accessibility support (e.g. file:///path/to/example.pdf) was
implemented in https://bugs.webkit.org/show_bug.cgi?id=170589, but this
wasn't sufficient for PDFs loaded in <embed>s.

This patch only implements <embed> PDF support for Mac - iOS support will
need to follow in a separate patch.

Test: accessibility/mac/basic-embed-pdf-accessibility.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreate):
Change comment that suggests PluginViewBase Widgets are not supported,
because they are now.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isAttachment const):
Don't consider plugins to be attachments since they need to be handled
differently.
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
Don't ignore widgets with underlying accessibilty objects (such as PDF
plugins).

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
Extract underlying accessibility object from widgets that have one.
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
Forward hit test to underlying plugin accessibility object if one
exists.
(isMatchingPlugin): Added.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
Match renderWidgetChildren for searches with SearchKey::AnyType
criteria.

  • platform/Widget.h:

(WebCore::Widget::accessibilityHitTest const): Added this virtual
method.
(WebCore::Widget::accessibilityObject const): Added this virtual
method.

Source/WebKit:

This patch makes PDFs loaded in <embed> elements accessible to
clients by exposing the underlying WKPDFPluginAccessibilityObject
created by PDF plugins.

Full-frame PDF accessibility support (e.g. file:///path/to/example.pdf) was
implemented in https://bugs.webkit.org/show_bug.cgi?id=170589, but this
wasn't sufficient for PDFs loaded in <embed>s.

This patch only implements <embed> PDF support for Mac - iOS support will
need to follow in a separate patch.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject initWithPDFPlugin:andElement:]):
Change this method to also accept the HTMLPlugInElement that the plugin
originates from.
(-[WKPDFPluginAccessibilityObject parent]):
Added. Returns the cached parent if present, otherwises tries to cache
the parent in the form of the HTMLPlugInElement that the plugin
originates from.
(-[WKPDFPluginAccessibilityObject setParent:]): Added.
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
Query against newly added parent getter when fulfilling attribute
value requests.
(-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WKPDFPluginAccessibilityObject accessibilityHitTestIntPoint:]): Added.
(-[WKPDFPluginAccessibilityObject accessibilityHitTest:]):
Changed to convert NSPoint to WebCore::IntPoint and call
accessibilityHitTestIntPoint.
(WebKit::PDFPlugin::create):
Add parameter to accept the HTMLPlugInElement that the plugin
originates from.
(WebKit::PDFPlugin::PDFPlugin):
Add parameter to accept the HTMLPlugInElement that the plugin
originates from.
(WebKit::PDFPlugin::accessibilityHitTest const): Added.
(-[WKPDFPluginAccessibilityObject initWithPDFPlugin:]): Deleted.

  • WebProcess/Plugins/Plugin.h:

(WebKit::Plugin::accessibilityHitTest const): Added.
(WebKit::Plugin::accessibilityObject const): Change the return type to
id as that is more common practice.

  • WebProcess/Plugins/PluginView.h:

Add id accessibilityHitTest and change accessibilityObject()
to return id.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::accessibilityObject const): Change return type to
id.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
Pass the originating pluginElement to PDFPlugin::create.

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::attributeValue):
Some PDFKit elements don't respond to accessibilityAttributeValue,
so before calling that selector first check to see if the given element responds
to an attribute-specific selector (like accessibilityRole).

LayoutTests:

Add a test ensuring the PDF accessibility tree of PDFs loaded via
<embed> elements is accessible.

  • accessibility/mac/basic-embed-pdf-accessibility-expected.txt: Added.
  • accessibility/mac/basic-embed-pdf-accessibility.html: Added.
  • accessibility/resources/simple-webkit-pages.pdf: Added.
2:13 PM Changeset in webkit [282357] by Sam Sneddon
  • 19 edits in trunk

Move ENABLE_RESOLUTION_MEDIA_QUERY to a runtime flag, start running tests again
https://bugs.webkit.org/show_bug.cgi?id=229776

Reviewed by Simon Fraser.

.:

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/WebKitFeatures.cmake:

LayoutTests/imported/w3c:

Rebaseline now resolution is supported when running tests

  • web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:

Source/WebCore:

No new tests, unskipped & rebaselined existing tests.

  • css/CSSUnits.cpp:

(WebCore::canonicalUnitTypeForCategory):

  • css/MediaList.cpp:

Fix compilation with resolution enabled.
(WebCore::addResolutionWarningMessageToConsole):
Simplify code generating message.
(WebCore::reportMediaQueryWarningIfNeeded):

  • css/MediaList.h:

(WebCore::reportMediaQueryWarningIfNeeded): Deleted.

  • css/MediaQueryEvaluator.cpp:

(WebCore::resolutionEvaluate):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add ResolutionMediaFeatureEnabled

LayoutTests:

  • fast/media/mq-resolution-expected.txt:
  • fast/media/mq-resolution.html: Use the backing scale-factor, not zoom
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
1:58 PM Changeset in webkit [282356] by commit-queue@webkit.org
  • 278 edits
    30 copies
    1 add in trunk

Addition of CSSNumericValue and subclasses. (CSS Typed OM)
https://bugs.webkit.org/show_bug.cgi?id=230031

Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-13
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/crashtests/cssTransform-Internal-value-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPerspective.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRGB-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRotate.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssScale.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkew.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewX.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewY.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTranslate.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/add-two-types.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/create-a-type.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathInvert-type-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathNegate-type-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssnumericvalue-multiply-two-types.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/equals.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/to.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/toSum.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/accent-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/alignment-baseline-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/all-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-delay-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-direction-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-duration-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-fill-mode-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-iteration-count-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-name-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-play-state-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-timing-function-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/backdrop-filter-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/backface-visibility-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-attachment-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-blend-mode-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-clip-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-image-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-origin-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-repeat-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-size-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/baseline-shift-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/block-size-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-collapse-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-image-outset-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-image-repeat-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-image-slice-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-image-source-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-image-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-radius-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-style-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/bottom-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/box-shadow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/box-sizing-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/break-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/caption-side-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/caret-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/center-coordinate-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/clear-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/clip-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/clip-path-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/clip-rule-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/color-interpolation-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-count-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-rule-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-rule-style-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-rule-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-span-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/contain-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/coordinate-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/counter-increment-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/counter-reset-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/counter-set-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/cursor-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/d-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/direction-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/display-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/dominant-baseline-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/empty-cells-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/fill-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/fill-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/fill-opacity-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/fill-rule-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/filter-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-basis-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-direction-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-flow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-grow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-shrink-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flex-wrap-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/float-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flood-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/flood-opacity-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-family-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-feature-settings-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-kerning-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-language-override-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-palette-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-presentation-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-size-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-stretch-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-style-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-synthesis-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-caps-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-east-asian-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-ligatures-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-numeric-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-variation-settings-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/gap-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-area-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-auto-columns-rows-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-auto-flow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-gap-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-start-end-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-template-areas-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-template-columns-rows-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/grid-template-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/height-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/hyphens-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/image-rendering-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/inline-size-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/isolation-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/left-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/letter-spacing-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/lighting-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/line-break-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/line-height-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/line-height-step-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/list-style-image-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/list-style-position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/list-style-type-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/logical-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/marker-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/mask-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/mask-image-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/mask-type-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/mix-blend-mode-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/object-fit-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/object-position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/offset-anchor-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/offset-distance-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/offset-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/offset-path-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/offset-position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/offset-rotate-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/opacity-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/order-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/orphans-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-offset-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-style-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/overflow-anchor-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/overflow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/overflow-wrap-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/overscroll-behavior-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/padding-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/page-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/paint-order-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/perspective-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/perspective-origin-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/pointer-events-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/quotes-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/radius-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resize-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/right-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scroll-behavior-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scroll-margin-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scroll-padding-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-stop-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scrollbar-gutter-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/scrollbar-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/shape-image-threshold-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/shape-margin-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/shape-outside-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/shape-rendering-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/speak-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stop-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stop-opacity-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-dasharray-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-dashoffset-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-linecap-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-linejoin-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-miterlimit-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-opacity-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/stroke-width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/tab-size-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/table-layout-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-align-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-align-last-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-anchor-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-combine-upright-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-line-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-skip-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-skip-ink-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-style-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-indent-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-justify-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-orientation-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-overflow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-rendering-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-shadow-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-size-adjust-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-transform-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-underline-offset-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-underline-position-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/top-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/touch-action-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform-box-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform-style-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transition-delay-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transition-duration-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transition-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transition-property-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transition-timing-function-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/unicode-bidi-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/user-select-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/vector-effect-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/vertical-align-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/visibility-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/white-space-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/widows-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/width-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/will-change-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/word-break-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/word-spacing-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/word-wrap-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/writing-mode-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/z-index-expected.txt:
  • web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt:
  • web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt:

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • css/typedom/CSSKeywordValue.h:
  • css/typedom/CSSNumericValue.cpp:

(WebCore::CSSNumericValue::add):
(WebCore::CSSNumericValue::sub):
(WebCore::CSSNumericValue::mul):
(WebCore::CSSNumericValue::div):
(WebCore::CSSNumericValue::min):
(WebCore::CSSNumericValue::max):
(WebCore::CSSNumericValue::rectifyNumberish):
(WebCore::CSSNumericValue::equals):
(WebCore::CSSNumericValue::to):
(WebCore::CSSNumericValue::toSum):
(WebCore::CSSNumericValue::type):
(WebCore::CSSNumericValue::parse):

  • css/typedom/CSSNumericValue.h:
  • css/typedom/CSSNumericValue.idl:
  • css/typedom/numeric/CSSMathInvert.cpp:

(WebCore::CSSMathInvert::create):
(WebCore::CSSMathInvert::CSSMathInvert):

  • css/typedom/numeric/CSSMathInvert.h:

(isType):

  • css/typedom/numeric/CSSMathMax.cpp:

(WebCore::CSSMathMax::create):
(WebCore::CSSMathMax::CSSMathMax):
(WebCore::CSSMathMax::values):

  • css/typedom/numeric/CSSMathMax.h:

(isType):
(WebCore::CSSMathMax::values): Deleted.

  • css/typedom/numeric/CSSMathMin.cpp:

(WebCore::CSSMathMin::create):
(WebCore::CSSMathMin::CSSMathMin):
(WebCore::CSSMathMin::values):

  • css/typedom/numeric/CSSMathMin.h:

(isType):
(WebCore::CSSMathMin::values): Deleted.

  • css/typedom/numeric/CSSMathMin.idl:
  • css/typedom/numeric/CSSMathNegate.cpp:

(WebCore::CSSMathNegate::create):
(WebCore::CSSMathNegate::CSSMathNegate):

  • css/typedom/numeric/CSSMathNegate.h:

(isType):

  • css/typedom/numeric/CSSMathOperator.cpp:
  • css/typedom/numeric/CSSMathOperator.h:
  • css/typedom/numeric/CSSMathProduct.cpp:

(WebCore::CSSMathProduct::create):
(WebCore::CSSMathProduct::CSSMathProduct):
(WebCore::CSSMathProduct::values):

  • css/typedom/numeric/CSSMathProduct.h:

(isType):
(WebCore::CSSMathProduct::values): Deleted.

  • css/typedom/numeric/CSSMathSum.cpp:

(WebCore::CSSMathSum::create):
(WebCore::CSSMathSum::CSSMathSum):
(WebCore::CSSMathSum::values):

  • css/typedom/numeric/CSSMathSum.h:

(isType):
(WebCore::CSSMathSum::values): Deleted.

  • css/typedom/numeric/CSSMathValue.cpp:

(WebCore::CSSMathValue::CSSMathValue):

  • css/typedom/numeric/CSSMathValue.h:

(WebCore::CSSMathValue::getOperator const):
(isType):

  • css/typedom/numeric/CSSNumericArray.cpp:

(WebCore::CSSNumericArray::create):
(WebCore::CSSNumericArray::CSSNumericArray):

  • css/typedom/numeric/CSSNumericArray.h:
  • css/typedom/numeric/CSSNumericBaseType.cpp: Copied from Source/WebCore/css/typedom/numeric/CSSMathMin.cpp.
  • css/typedom/numeric/CSSNumericType.cpp: Copied from Source/WebCore/css/typedom/numeric/CSSMathMin.cpp.
  • css/typedom/numeric/CSSNumericType.idl:
1:43 PM Changeset in webkit [282355] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.33.90

WPE WebKit 2.33.90

1:41 PM Changeset in webkit [282354] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.33.90 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.33.90.
1:41 PM Changeset in webkit [282353] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Fix non-unified builds

Unreviewed non-unified build fixes.

  • workers/Worker.h: Add missing wtf/Deque.h header.
1:34 PM Changeset in webkit [282352] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Add the ability to show a flat list of the slowest 200 tests in the tests treemap viewer
https://bugs.webkit.org/show_bug.cgi?id=230203

Reviewed by Jonathan Bedard.

Every test run produces a stats.json file that can be dragged into test-duration-treemap.html
to show data about how long tests take to run. The treemap is useful, but it's also useful to
see a flat list of the slowest tests, so add a button to show/hide that list in the
treemap viewer.

  • fast/harness/test-duration-treemap-expected.txt:
  • fast/harness/test-duration-treemap.html:
1:21 PM Changeset in webkit [282351] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

REGRESSION(r282278): ASSERTION FAILED: !m_needExceptionCheck in JSC::VM::verifyExceptionCheckNeedIsSatisfied
https://bugs.webkit.org/show_bug.cgi?id=230208

Reviewed by Youenn Fablet.

r282278 introduced a new assertion failure for
js/dom/transform-stream.html in WinCairo Debug WK2.

JSObject::get throws an simulated exception. DECLARE_THROW_SCOPE
failed the assertion after that.

  • bindings/js/InternalWritableStream.cpp:

(WebCore::invokeWritableStreamFunction): Removed
DECLARE_THROW_SCOPE because this function doesn't throw. Added
DECLARE_CATCH_SCOPE to use assertNoExceptionExceptTermination
after JSObject::get.

12:50 PM Changeset in webkit [282350] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC] Rename LayoutState::established*FormattingState to formattingStateFor*FormattingContext
https://bugs.webkit.org/show_bug.cgi?id=229263
<rdar://problem/82365067>

Reviewed by Antti Koivisto.

Stop using "established" when asking for the state object associated with a formatting context.
The spec term, "established", is used to indicate that a particular node in the layout tree forces a set of formatting rules on its descendants.
This terms works well in the context of forming formatting contexts. However the corresponding (persistent)formatting states are not "established" in the same sense.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::buildInlineDisplayTree):

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::boxGeometry):

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::formattingStateForBox const):
(WebCore::Layout::LayoutState::formattingStateForFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForInlineFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForBlockFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForTableFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForFlexFormattingContext const):
(WebCore::Layout::LayoutState::ensureInlineFormattingState):
(WebCore::Layout::LayoutState::establishedFormattingState const): Deleted.
(WebCore::Layout::LayoutState::establishedInlineFormattingState const): Deleted.
(WebCore::Layout::LayoutState::establishedBlockFormattingState const): Deleted.
(WebCore::Layout::LayoutState::establishedTableFormattingState const): Deleted.
(WebCore::Layout::LayoutState::establishedFlexFormattingState const): Deleted.

  • layout/LayoutState.h:
  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::computedWidthValue const):
(WebCore::Layout::FormattingGeometry::shrinkToFitWidth const):
(WebCore::Layout::FormattingGeometry::complicatedCases const):

  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin const):

  • layout/formattingContexts/block/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::marginsCollapseThrough const):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):

  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::usedBaselineForCell const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

12:41 PM Changeset in webkit [282349] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit

Followup to r282320 - avoid a potential memory leak
https://bugs.webkit.org/show_bug.cgi?id=230187
<rdar://problem/81436658>

Patch by Wenson Hsieh <Wenson Hsieh> on 2021-09-13
Reviewed by Myles C. Maxfield.

Use adoptCF to prevent leaking the last resort font descriptor.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::createCTFont):

12:35 PM Changeset in webkit [282348] by Alan Bujtas
  • 21 edits
    1 delete in trunk/Source/WebCore

[LFC][IFC] Do not pass in the InvalidationState to the layout functions
https://bugs.webkit.org/show_bug.cgi?id=229221
<rdar://problem/82321574>

Reviewed by Antti Koivisto.

This is in preparation for introducing formatting context specific invalidation.
Each type of formatting context may require a very different invalidation logic. While BFC could mark whole subtrees dirty, IFC's invalidation logic should be looking at lines instead.
The invalidation code (triggered by style/content change) produces a "damage state" which is input to the FormattingContext construction
the same way we pass in the FormattingState
(i.e. FormattinContext takes the root of the formatting subtree (the extent of the formatting context), the damaged state (how much we need to layout in this frame) and the formatting state (the data we can use from previous layout))

  • CMakeLists.txt:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutContext::layoutWithPreparedRootGeometry): Deleted.

  • layout/LayoutContext.h:
  • layout/formattingContexts/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/formattingContexts/FormattingContext.h:
  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/formattingContexts/block/BlockFormattingContext.h:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableWrapperBlockFormattingContext::layoutTableBox):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:
  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContent):
(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):

  • layout/formattingContexts/flex/FlexFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration):
(WebCore::Layout::InlineFormattingContext::invalidateFormattingState):

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraSpace):

  • layout/formattingContexts/table/TableFormattingContext.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

  • layout/invalidation/InvalidationContext.cpp: Removed.
  • layout/invalidation/InvalidationContext.h: Removed.
  • layout/invalidation/InvalidationState.cpp: Removed.
  • layout/invalidation/InvalidationState.h: Removed.
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::printLayoutTreeForLiveDocuments):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):

12:01 PM Changeset in webkit [282347] by Jonathan Bedard
  • 2 edits in trunk/Tools

Running iOS layout tests sometimes fails with a utf-8 error
https://bugs.webkit.org/show_bug.cgi?id=230082

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/driver.py:

(Driver.run_test): Decode errors should not be fatal, since it's possible
that stdout may be a png from a timed out test.

11:49 AM Changeset in webkit [282346] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Removed test expectations for inspector/css/getMatchedStylesForNodeMarkerPseudoId.html.
<rdar://82039967>.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:40 AM Changeset in webkit [282345] by youenn@apple.com
  • 14 edits in trunk/Source

Remove WritableStream runtime flag
https://bugs.webkit.org/show_bug.cgi?id=230148

Reviewed by Sihui Liu.

Source/WebCore:

WritableStream is enabled in all platforms and is mirroring ReadableStream which no longer has a runtime flag.

No change of behavior.

  • Modules/streams/ReadableStream.js:

(pipeThrough):
(pipeTo):
(pipeTo.doPipe): Deleted.
(pipeTo.closeDestination): Deleted.
(pipeTo.abortDestination): Deleted.

  • Modules/streams/WritableStream.idl:
  • Modules/streams/WritableStreamDefaultController.idl:
  • Modules/streams/WritableStreamDefaultWriter.idl:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/WebCoreBuiltinNames.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::readableByteStreamAPIEnabled const):
(WebCore::RuntimeEnabledFeatures::setWritableStreamAPIEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::writableStreamAPIEnabled const): Deleted.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences writableStreamAPIEnabled]): Deleted.
(-[WebPreferences setWritableStreamAPIEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:38 AM Changeset in webkit [282344] by Alan Coon
  • 1 copy in tags/Safari-613.1.1.3

Tag Safari-613.1.1.3.

11:31 AM Changeset in webkit [282343] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Remove test expectations for inspector/timeline/timeline-event-TimerInstall.html.
<rdar://82039288>.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:22 AM Changeset in webkit [282342] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Updated test expectations for performance-api/paint-timing/paint-timing-with-worker.html.
<rdar://82036119>.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:19 AM Changeset in webkit [282341] by Simon Fraser
  • 21 edits
    31 adds in trunk/LayoutTests

Update css/cssom-view WPT tests
https://bugs.webkit.org/show_bug.cgi?id=230196

Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:

Update CSS OM View tests from WPT efb73b2ce6da4c65350be9a0c8aa23700e253f07.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt:
  • web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html:
  • web-platform-tests/css/cssom-view/MediaQueryList-change-event-matches-value-expected.txt: Added.
  • web-platform-tests/css/cssom-view/MediaQueryList-change-event-matches-value.html: Added.
  • web-platform-tests/css/cssom-view/add-background-attachment-fixed-during-smooth-scroll-expected.html: Added.
  • web-platform-tests/css/cssom-view/add-background-attachment-fixed-during-smooth-scroll.html: Added.
  • web-platform-tests/css/cssom-view/background-change-during-smooth-scroll-expected.txt: Added.
  • web-platform-tests/css/cssom-view/background-change-during-smooth-scroll.html: Added.
  • web-platform-tests/css/cssom-view/client-props-input-expected.txt: Added.
  • web-platform-tests/css/cssom-view/client-props-input.html: Added.
  • web-platform-tests/css/cssom-view/client-props-root-display-none-crash-expected.txt: Added.
  • web-platform-tests/css/cssom-view/client-props-root-display-none-crash.html: Added.
  • web-platform-tests/css/cssom-view/client-props-root-expected.txt: Added.
  • web-platform-tests/css/cssom-view/client-props-root.html: Added.
  • web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-vertical-rl-expected.html:
  • web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-vertical-rl.html:
  • web-platform-tests/css/cssom-view/devicePixelRatio-undisplayed-iframe.tentative-expected.txt: Added.
  • web-platform-tests/css/cssom-view/devicePixelRatio-undisplayed-iframe.tentative.html: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-ellipsis-in-inline-box-expected.txt: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-float-in-relative-expected.txt: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-float-in-relative.html: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-visibility-hidden-resizer-expected.txt: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html: Added.
  • web-platform-tests/css/cssom-view/elementFromPosition.html:
  • web-platform-tests/css/cssom-view/elementsFromPoint-svg-text.html:
  • web-platform-tests/css/cssom-view/getBoundingClientRect-shy-expected.txt: Added.
  • web-platform-tests/css/cssom-view/getBoundingClientRect-shy.html: Added.
  • web-platform-tests/css/cssom-view/long_scroll_composited-expected.html:
  • web-platform-tests/css/cssom-view/long_scroll_composited.html:
  • web-platform-tests/css/cssom-view/mouseEvent-offsetXY-svg-expected.txt: Added.
  • web-platform-tests/css/cssom-view/mouseEvent-offsetXY-svg.html: Added.
  • web-platform-tests/css/cssom-view/position-sticky-root-scroller-with-scroll-behavior-expected.txt:
  • web-platform-tests/css/cssom-view/position-sticky-root-scroller-with-scroll-behavior.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html:
  • web-platform-tests/css/cssom-view/scroll-overflow-clip-quirks-001-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-overflow-clip-quirks-001.html: Added.
  • web-platform-tests/css/cssom-view/scroll-overflow-clip-quirks-002-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-overflow-clip-quirks-002.html: Added.
  • web-platform-tests/css/cssom-view/scrollIntoView-inline-image-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scrollIntoView-inline-image.html: Added.
  • web-platform-tests/css/cssom-view/scrollingElement-expected.txt:
  • web-platform-tests/css/cssom-view/scrollingElement.html:
  • web-platform-tests/css/cssom-view/w3c-import.log:

LayoutTests:

Update CSS OM View tests from WPT efb73b2ce6da4c65350be9a0c8aa23700e253f07.

11:15 AM Changeset in webkit [282340] by Ziran Sun
  • 3 edits in trunk

[css-grid] calling correct offset function for RTL for out of flow child
https://bugs.webkit.org/show_bug.cgi?id=229968

Reviewed by Javier Fernandez.

Handle RTL case to return the correct border values when calculating offsets for start and end edges
of a column for out of flow child.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::gridAreaPositionForOutOfFlowChild const):

11:06 AM Changeset in webkit [282339] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Expose TextBoxSelectableRange in the iterator
https://bugs.webkit.org/show_bug.cgi?id=230213

Reviewed by Alan Bujtas.

Replace isSelectable with more generic TextBoxSelectableRange accessor.
This will be helpful in the future.

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::selectableRange const):
(WebCore::LayoutIntegration::PathTextRun::isSelectable const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::selectableRange const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::isSelectable const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::selectableRange const):
(WebCore::LayoutIntegration::RunIteratorModernPath::isSelectable const): Deleted.

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::isSelectable const): Deleted.

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

(WebCore::RenderBlockFlow::inlineSelectionGaps):

  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteQuadsForRange const):

10:57 AM Changeset in webkit [282338] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Remove redundant copy of visibleToHitTesting function
https://bugs.webkit.org/show_bug.cgi?id=230212

Reviewed by Alan Bujtas.

Remove the LegacyInlineBox version.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::hitTest):

Also use visibleToHitTesting here.

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::nodeAtPoint):

  • rendering/LegacyInlineBox.h:
  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::nodeAtPoint):

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::nodeAtPoint):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::nodeAtPoint):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paint):

10:47 AM Changeset in webkit [282337] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

LegacyInlineTextBox::selectionState accessor mutates ellipsis selection state
https://bugs.webkit.org/show_bug.cgi?id=205528
<rdar://problem/58125978>

Reviewed by Alan Bujtas.

An accessor shouldn't mutate state.

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::paintSelection):

Also position ellipsis selection correctly when painting.

(WebCore::LegacyEllipsisBox::nodeAtPoint):
(WebCore::LegacyEllipsisBox::selectionState const):

  • rendering/LegacyEllipsisBox.h:
  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::selectionState const):

Compute the selection state of the ellipsis box by looking at the selection state of the
last text box on the line.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSelectionGap):
(WebCore::LegacyRootInlineBox::firstSelectedBox const):
(WebCore::LegacyRootInlineBox::lastSelectedBox const):
(WebCore::LegacyRootInlineBox::firstSelectedBox): Deleted.
(WebCore::LegacyRootInlineBox::lastSelectedBox): Deleted.

  • rendering/LegacyRootInlineBox.h:
10:37 AM Changeset in webkit [282336] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][32bit] in-by-val fails inside for-in loop after delete
https://bugs.webkit.org/show_bug.cgi?id=230150

Patch by Xan López <Xan Lopez> on 2021-09-13
Reviewed by Carlos Garcia Campos.

The order of payload and tag was reversed when constructing the
base value for compileEnumeratorHasProperty.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

10:20 AM Changeset in webkit [282335] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk

image-rendering: pixelated does not work with WebGL (but does with Canvas2D)
https://bugs.webkit.org/show_bug.cgi?id=193895
<rdar://problem/47656086>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-13
Reviewed by Simon Fraser.

Source/WebCore:

Implement image-rendering: crisp-edges for WebGL canvas elements
normal on-screen compositing code path on Cocoa by using CA layer filtering
properties.

Similar to non-compositing code path, approximate image-rendering: pixelated
by making it an alias of crisp-edges.

Test: webgl/webgl-image-rendering.html

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setContentsMinificationFilter):
(WebCore::GraphicsLayer::contentsMinificationFilter const):
(WebCore::GraphicsLayer::setContentsMagnificationFilter):
(WebCore::GraphicsLayer::contentsMagnificationFilter const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::toPlatformCALayerFilterType):
(WebCore::GraphicsLayerCA::setContentsMinificationFilter):
(WebCore::GraphicsLayerCA::setContentsMagnificationFilter):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateContentsScalingFilters):
(WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
(WebCore::GraphicsLayerCA::layerChangeAsString):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderHTMLCanvas.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateContentsScalingFilters):
(WebCore::RenderLayerBacking::updateConfigurationAfterStyleChange):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::paintIntoLayer):

  • rendering/RenderLayerBacking.h:

LayoutTests:

Add a test comparing upscaling of WebGL canvas element and an image element
with the same contents when using image-rendering: properties.

  • platform/mac/webgl/webgl-image-rendering-expected.png: Added.
  • webgl/webgl-image-rendering-expected.txt: Added.
  • webgl/webgl-image-rendering.html: Added.
10:06 AM Changeset in webkit [282334] by Russell Epstein
  • 8 edits in branches/safari-613.1.1-branch/Source

Versioning.

WebKit-7613.1.1.3

10:06 AM Changeset in webkit [282333] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Tools

[TestWTF] Hash tests for denorm_min should be skipped if denorm is not supported.
https://bugs.webkit.org/show_bug.cgi?id=230177

Reviewed by Don Olmstead.

std::numeric_limits::denorm_min does not return a denormalized value
if denormal number is not supported. Test denorm_min only if
(has_denorm == denorm_present).

  • TestWebKitAPI/Tests/WTF/Hasher.cpp:

(TestWebKitAPI::TEST):

10:01 AM Changeset in webkit [282332] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Linker warnings for WKWebViewConfiguration.limitsNavigationsToAppBoundDomains property methods
<https://webkit.org/b/230190>

Reviewed by Kate Cheney.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration limitsNavigationsToAppBoundDomains]):
(-[WKWebViewConfiguration setLimitsNavigationsToAppBoundDomains:]):

  • Move methods from category WKWebViewConfiguration (WKPrivate) to @implementation WKWebViewConfiguration to fix the warnings.
9:57 AM Changeset in webkit [282331] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Updated test expectations for performance-api/performance-observer-no-document-leak.html.
<rdar://82035182>.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:53 AM Changeset in webkit [282330] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7613.1.3

9:51 AM Changeset in webkit [282329] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Updated test expectations for security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star.html.
<rdar://82034073>.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:45 AM Changeset in webkit [282328] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Update test expectations for css3/background/background-repeat-round-padding.html and css3/background/background-repeat-round-border.html.
<rdar://82000141>.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
9:22 AM Changeset in webkit [282327] by Russell Epstein
  • 1 copy in branches/safari-613.1.2-branch

New branch.

8:17 AM Changeset in webkit [282326] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Remove redundant LayoutState::ensureFormattingState
https://bugs.webkit.org/show_bug.cgi?id=229259

Reviewed by Antti Koivisto.

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::ensureInlineFormattingState): No need to call ensure*. There has to be a parent formatting state at this point.
(WebCore::Layout::LayoutState::ensureFormattingState): Deleted.

  • layout/LayoutState.h:
7:40 AM Changeset in webkit [282325] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Reduce EWS email notifications to Aakash

Unreviewed. Do not email to Aakash anymore for every build/test failure. It was added initially so that I
can debug any issue in these email notifications. But these have been stable and I don't need a copy of every
EWS email.

  • CISupport/ews-build/send_email.py:

(send_email_to_patch_author):

2:56 AM Changeset in webkit [282324] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore/platform/gtk/po

Merge r282323 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.34
https://bugs.webkit.org/show_bug.cgi?id=229921

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2021-09-13
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
2:55 AM Changeset in webkit [282323] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK][l10n] Updated Polish translation of WebKitGTK for 2.34
https://bugs.webkit.org/show_bug.cgi?id=229921

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2021-09-13
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
2:24 AM Changeset in webkit [282322] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, AutoInstall hotfix for Linux platforms

  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall):
(AutoInstall._request): Disable custom cacert on Linux, OpenSSL fails validate this cert.

12:52 AM Changeset in webkit [282321] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for Ubuntu LTS/Debian r282270

  • rendering/LegacyInlineTextBox.h:
Note: See TracTimeline for information about the timeline view.