Timeline



Sep 20, 2021:

10:27 PM Changeset in webkit [282800] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

ANGLE Metal: single-component swizzles do not compile
https://bugs.webkit.org/show_bug.cgi?id=230472
<rdar://problem/83310780>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-20
Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Fix metal compiler compile errors when using
single value swizles (glslvariable.r) in position where lvalues would
be needed. Use the variable instead of single element array
(copy-paste typo).

  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:

LayoutTests:

Add a test for testing the swizzles as lvalues.

  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue-expected.txt: Added.
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue.html: Added.
  • webgl/pending/resources/webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html: Added.
  • webgl/pending/resources/webgl_test_files/resources/glsl-feature-tests.css: Added.
10:15 PM Changeset in webkit [282799] by Chris Dumez
  • 106 edits in trunk/Source/WebCore

Drop remaining uses of makeRefPtr() in WebCore/
https://bugs.webkit.org/show_bug.cgi?id=230527

Reviewed by Alex Christensen.

  • html/CustomPaintImage.cpp:
  • html/DirectoryFileListCreator.cpp:

(WebCore::DirectoryFileListCreator::start):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):
(WebCore::FileInputType::filesChosen):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::isActiveSummary const):
(WebCore::HTMLDetailsElement::parseAttribute):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::namedItem):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::editabilityFromContentEditableAttr):
(WebCore::imageOverlayHost):
(WebCore::HTMLElement::isInsideImageOverlay):
(WebCore::HTMLElement::updateWithTextRecognitionResult):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):

  • html/HTMLFormControlsCollection.cpp:

(WebCore::findFormAssociatedElement):
(WebCore::HTMLFormControlsCollection::customElementAfter const):
(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::length const):
(WebCore::HTMLFormElement::submitIfPossible):
(WebCore::HTMLFormElement::textFieldValues const):
(WebCore::HTMLFormElement::effectiveTarget const):
(WebCore::HTMLFormElement::elementFromPastNamesMap const):
(WebCore::HTMLFormElement::copyAssociatedElementsVector const):

  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::namedItem):

  • html/HTMLHtmlElement.cpp:

(WebCore::HTMLHtmlElement::insertedByParser):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::evaluateDynamicMediaQueryDependencies):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::defaultEventHandler):

  • html/HTMLLabelElement.cpp:

(WebCore::firstElementWithIdIfLabelable):

  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::form const):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):
(WebCore::HTMLLinkElement::addSubresourceAttributeURLs const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::layoutSizeChanged):

  • html/HTMLObjectElement.cpp:

(WebCore::shouldBeExposed):
(WebCore::HTMLObjectElement::appendFormData):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::recalcSelectOptions):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::bindingsInstance):
(WebCore::HTMLPlugInElement::isReplacementObscured):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::isImageType):
(WebCore::HTMLPlugInImageElement::willDetachRenderers):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::attributeChanged):
(WebCore::HTMLSlotElement::assignedNodes const):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::addSubresourceAttributeURLs const):

  • html/HTMLTableRowElement.cpp:

(WebCore::findRows):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::mediaElement const):

  • html/LinkIconCollector.cpp:

(WebCore::LinkIconCollector::iconsOfTypes):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::defaultEventHandler):
(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • html/MediaElementSession.cpp:

(WebCore::isElementRectMostlyInMainFrame):
(WebCore::isElementLargeRelativeToMainFrame):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):
(WebCore::PluginDocumentParser::appendBytes):

  • html/SubmitInputType.cpp:

(WebCore::SubmitInputType::handleDOMActivateEvent):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::wouldTaintOrigin):

  • html/canvas/CanvasStyle.cpp:

(WebCore::CanvasStyle::CanvasStyle):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGL2RenderingContext::getParameter):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getParameter):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::executeReparentTask):
(WebCore::executeTakeAllChildrenAndReparentTask):
(WebCore::HTMLConstructionSite::dispatchDocumentElementAvailableIfNeeded):
(WebCore::HTMLConstructionSite::findFosterSite):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::generateViolationReport):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerTextElement::defaultEventHandler):
(WebCore::SearchFieldResultsButtonElement::resolveCustomStyle):
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):

  • html/shadow/TextPlaceholderElement.cpp:

(WebCore::TextPlaceholderElement::insertedIntoAncestor):
(WebCore::TextPlaceholderElement::removedFromAncestor):

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::updateGenericCue):
(WebCore::InbandGenericTextTrack::removeGenericCue):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::addCue):
(WebCore::TextTrack::addRegion):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setEmulatedMedia):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::tryLoadingRedirectRequestFromApplicationCache):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::scrollToFragmentWithParentBoundary):

  • loader/HistoryController.cpp:

(WebCore::FrameLoader::HistoryController::restoreScrollPositionAndViewState):

  • loader/NavigationScheduler.cpp:
  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::createCustomFontData):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::innerWidth const):
(WebCore::DOMWindow::requestIdleCallback):
(WebCore::DOMWindow::cancelIdleCallback):
(WebCore::DOMWindow::languagesChanged):
(WebCore::DOMWindow::dispatchLoadEvent):

  • page/DragController.cpp:

(WebCore::DragController::tryToUpdateDroppedImagePlaceholders):
(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):
(WebCore::DragController::finalizeDroppedImagePlaceholder):

  • page/EventHandler.cpp:

(WebCore::nodeToSelectOnMouseDownForNode):
(WebCore::expandSelectionToRespectSelectOnMouseDown):
(WebCore::EventHandler::canMouseDownStartSelect):
(WebCore::EventHandler::hitTestResultAtPoint const):
(WebCore::EventHandler::scheduleScrollEvent):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):
(WebCore::FrameView::scrollToFocusedElementInternal):

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::selectionQuadsDidChange):

  • page/Page.cpp:

(WebCore::replaceRanges):
(WebCore::Page::replaceRangesWithText):
(WebCore::Page::setEditableRegionEnabled):
(WebCore::Page::editableElementsInRect const):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::setUnderPageBackgroundColorOverride):
(WebCore::Page::didFinishLoadingImageForElement):
(WebCore::Page::updateElementsWithTextRecognitionResults):

  • page/PageColorSampler.cpp:

(WebCore::PageColorSampler::sampleTop):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::enqueueEvent):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

  • page/UndoManager.cpp:

(WebCore::UndoManager::addItem):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::focusDocumentView):

  • page/ios/FrameIOS.mm:

(WebCore::nodeIsMouseFocusable):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::focusDocumentView):

  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::updateDataDetectorHighlights):
(WebCore::ImageOverlayController::platformHandleMouseEvent):
(WebCore::ImageOverlayController::handleDataDetectorAction):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::buildSelectionHighlight):

  • platform/PasteboardCustomData.cpp:

(WebCore::PasteboardCustomData::readBuffer const):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::setLogger):

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setLogger):

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

(WebCore::SourceBufferParserAVFObjC::setLogger):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:

(WebCore::ImageBufferCairoSurfaceBackend::copyNativeImage const):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::setLogger):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::makeWebKitTrack):

  • platform/network/cocoa/RangeResponseGenerator.mm:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionPseudoStyle const):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintMeter):

  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::makeResolverSharingKey):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::startAnimation):
(WebCore::SVGAnimateElementBase::calculateAnimatedValue):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::hasValidAttributeType const):
(WebCore::SVGAnimateMotionElement::startAnimation):
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
(WebCore::SVGAnimateMotionElement::applyResultsToTarget):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::takeElementFromPendingResourcesForRemovalMap):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::removeElementReference):
(WebCore::SVGElement::setCorrespondingElement):
(WebCore::SVGElement::resolveCustomStyle):
(WebCore::SVGElement::computedStyle):
(WebCore::SVGElement::updateRelativeLengthsInformation):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::build const):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::notifyFinished):

  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::svgAttributeChanged):
(WebCore::SVGFELightElement::childrenChanged):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::build const):

  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::invalidateFilterPrimitiveParent):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::rebuildFontFace):

  • svg/SVGFontFaceFormatElement.cpp:

(WebCore::SVGFontFaceFormatElement::childrenChanged):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::childrenChanged):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::rendererIsNeeded):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::determineViewport const):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::frameForCurrentScale const):
(WebCore::SVGSVGElement::deselectAll):
(WebCore::SVGSVGElement::localCoordinateSpaceTransform const):
(WebCore::SVGSVGElement::getElementById):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::setDisabled):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::detachTarget):

  • svg/SVGTransformList.cpp:

(WebCore::SVGTransformList::consolidate):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::transferSizeAttributesToTargetClone const):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):
(WebCore::SVGSMILElement::insertedIntoAncestor):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::setContainerSize):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::reportApproximateMemoryCost const):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::computeCSSPropertyValue const):
(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):

  • testing/Internals.cpp:

(WebCore::Internals::changeSelectionListType):
(WebCore::Internals::changeBackToReplacedString):

9:01 PM Changeset in webkit [282798] by Simon Fraser
  • 11 edits
    2 adds in trunk/Source/WebCore

Wrap ScrollingMomentumCalculator in a ScrollAnimationMomentum when used for scroll snap
https://bugs.webkit.org/show_bug.cgi?id=230506

Reviewed by Wenson Hsieh.

The long-term goal is to have all scroll animations run via ScrollAnimation subclasses,
and for there to be a class (ScrollAnimator or ScrollingEffectsController) that has
a member variable for the single active scroll animation, for there can be only one
at a time.

As a step towards that goal, make ScrollAnimationMomentum and have it wrap the
ScrollingMomentumCalculator. ScrollSnapAnimatorState then owns a ScrollAnimationMomentum.

Other ScrollAnimations are running their own timers (which should go away in future),
but for now ScrollAnimationMomentum is driven "manually" by ScrollSnapAnimatorState.
Facilitate this by having ScrollAnimation::serviceAnimation() return the current offset.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/ScrollAnimation.h:

(WebCore::ScrollAnimationClient::scrollAnimationDidUpdate):
(WebCore::ScrollAnimationClient::scrollAnimationDidEnd):
(WebCore::ScrollAnimation::serviceAnimation):

  • platform/ScrollAnimationMomentum.cpp: Added.

(WebCore::ScrollAnimationMomentum::ScrollAnimationMomentum):
(WebCore::ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationMomentum::retargetActiveAnimation):
(WebCore::ScrollAnimationMomentum::stop):
(WebCore::ScrollAnimationMomentum::isActive const):
(WebCore::ScrollAnimationMomentum::serviceAnimation):
(WebCore::ScrollAnimationMomentum::updateScrollExtents):

  • platform/ScrollAnimationMomentum.h: Added.
  • platform/ScrollAnimationSmooth.cpp:
  • platform/ScrollSnapAnimatorState.cpp:

(WebCore::ScrollSnapAnimatorState::setupAnimationForState):
(WebCore::ScrollSnapAnimatorState::teardownAnimationForState):
(WebCore::ScrollSnapAnimatorState::currentAnimatedScrollOffset const):
(WebCore::ScrollSnapAnimatorState::scrollExtentsForAnimation):

  • platform/ScrollSnapAnimatorState.h:
  • platform/ScrollingEffectsController.cpp:
  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::statelessSnapTransitionTimerFired):

6:51 PM Changeset in webkit [282797] by Russell Epstein
  • 1 copy in tags/Safari-612.2.4.1.3

Tag Safari-612.2.4.1.3.

6:06 PM Changeset in webkit [282796] by Russell Epstein
  • 1 copy in tags/Safari-612.2.7

Tag Safari-612.2.7.

5:24 PM Changeset in webkit [282795] by commit-queue@webkit.org
  • 10 edits
    6 adds in trunk

Implement exp,log functions calc functions
https://bugs.webkit.org/show_bug.cgi?id=229897

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-09-20
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/exp-log-compute.html: Added.
  • web-platform-tests/css/css-values/exp-log-invalid.html: Added.
  • web-platform-tests/css/css-values/exp-log-serialize.html: Added.

Source/WebCore:

Added support for calc functions exp and log. Involved adding exp and log CSS keywords and handling
for parsing these functions and their arguments as well as computing the result based on the arguments.
Spec for these functions: https://drafts.csswg.org/css-values-4/#exponent-funcs.

Tests: imported/w3c/web-platform-tests/css/css-values/exp-log-compute.html

imported/w3c/web-platform-tests/css/css-values/exp-log-invalid.html
imported/w3c/web-platform-tests/css/css-values/exp-log-serialize.html

  • css/CSSValueKeywords.in:
  • css/calc/CSSCalcExpressionNodeParser.cpp:

(WebCore::CSSCalcExpressionNodeParser::parseCalcFunction):

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::determineCategory):
(WebCore::functionFromOperator):
(WebCore::CSSCalcOperationNode::createLog):
(WebCore::CSSCalcOperationNode::createExp):
(WebCore::CSSCalcOperationNode::combineChildren):
(WebCore::CSSCalcOperationNode::simplifyNode):
(WebCore::functionPrefixForOperator):
(WebCore::CSSCalcOperationNode::evaluateOperator):

  • css/calc/CSSCalcOperationNode.h:
  • css/calc/CSSCalcValue.cpp:

(WebCore::createCSS):
(WebCore::CSSCalcValue::isCalcFunction):

  • platform/calc/CalcExpressionOperation.cpp:

(WebCore::CalcExpressionOperation::evaluate const):

  • platform/calc/CalcOperator.cpp:

(WebCore::operator<<):

  • platform/calc/CalcOperator.h:
5:14 PM Changeset in webkit [282794] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Avoid doing a second server pre-connect after a process-swap
https://bugs.webkit.org/show_bug.cgi?id=230517

Reviewed by Geoffrey Garen.

Avoid doing a second server pre-connect after a process-swap. It is unnecessary as we've already
asked the network process to do so before process-swapping.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):

4:45 PM Changeset in webkit [282793] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/websocket/tests/hybi/alert-in-event-handler.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230522

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:42 PM Changeset in webkit [282792] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Remove unused gesture code.
https://bugs.webkit.org/show_bug.cgi?id=230515

Reviewed by Wenson Hsieh.

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

(toGestureType):
(toUIWKGestureType):

4:18 PM Changeset in webkit [282791] by Russell Epstein
  • 8 edits in branches/safari-612.2.4.1-branch/Source

Versioning.

WebKit-7612.2.4.1.3

4:09 PM Changeset in webkit [282790] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Catalina wk2 Release EWS ] imported/w3c/web-platform-tests/subresource-integrity/subresource-integrity.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230518.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:08 PM Changeset in webkit [282789] by eric.carlson@apple.com
  • 7 edits in trunk/Source

[Cocoa] Videos sometimes don't render when loaded in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=230495
rdar://83205407

Reviewed by Jer Noble.

The media players choose what type of video output to create based on whether
or not the renderer can support accelerated rendering. We were only pushing
this state to the GPU process when the renderer changed to require backing, but
that state was lost if that transition happened before the AVFoundation-backed
media player was created. Change this to push the current state from the web process
when a remote media player is created, and again whenever its readyState changes.

We haven't figured out how to reliably reproduce this, so https://webkit.org/b/230500
tracks figuring that out and creating a test.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy): Set m_renderingCanBeAccelerated
from the configuration.
(WebKit::RemoteMediaPlayerProxy::prepareToPlay): Add logging.
(WebKit::RemoteMediaPlayerProxy::prepareForRendering): Ditto.
(WebKit::RemoteMediaPlayerProxy::setPageIsVisible): Ditto.
(WebKit::RemoteMediaPlayerProxy::acceleratedRenderingStateChanged): Ditto.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged): Ditto.

  • GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h: Add renderingCanBeAccelerated.

(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode): Decode it.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::readyStateChanged): Call acceleratedRenderingStateChanged
if the state has changed.
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged): Remember
the state.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer): Pass the accelerated
rendering state with the configuration.

3:40 PM Changeset in webkit [282788] by Ross Kirsling
  • 6 edits in trunk/Source

Unreviewed build fix for WinCairo with ENABLE_EXPERIMENTAL_FEATURES off.

Source/WebCore:

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForeground):

  • rendering/TextBoxPainter.h:

Source/WebKit:

  • NetworkProcess/NetworkSession.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createNewPage):

3:05 PM Changeset in webkit [282787] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[ BigSur Catalina iOS14 wk2 Release ] imported/w3c/web-platform-tests/html/webappapis/structured-clone/structured-clone.any.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230514.

Unreviewed test gardening.

  • platform/ios-14-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:51 PM Changeset in webkit [282786] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/viewport/scroll-delegates-switch-on-page-with-no-composition-mode-asserts.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230513

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:46 PM Changeset in webkit [282785] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, rebaseline webkitpy test after r282755.

  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:

(WebKit::TestWithCVPixelBuffer::didReceiveMessage):
(WebKit::TestWithCVPixelBuffer::didReceiveSyncMessage):

2:45 PM Changeset in webkit [282784] by Chris Dumez
  • 61 edits in trunk

Reduce use of makeRefPtr() and use RefPtr { } directly
https://bugs.webkit.org/show_bug.cgi?id=230503

Reviewed by Geoffrey Garen.

Source/WebCore:

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::readText):
(WebCore::Clipboard::writeText):
(WebCore::Clipboard::read):
(WebCore::Clipboard::getType):
(WebCore::Clipboard::write):

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::getType):
(WebCore::ClipboardItemBindingsDataSource::collectDataForWriting):
(WebCore::ClipboardItemBindingsDataSource::invokeCompletionHandler):

  • Modules/async-clipboard/ClipboardItemPasteboardDataSource.cpp:

(WebCore::ClipboardItemPasteboardDataSource::getType):

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::findNodeStartingAtPathComponentIndex):
(WebCore::findNode):
(WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::deleteFunction):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession):

  • Modules/mediasession/MediaSessionCoordinator.cpp:

(WebCore::MediaSessionCoordinator::join):
(WebCore::MediaSessionCoordinator::seekTo):
(WebCore::MediaSessionCoordinator::play):
(WebCore::MediaSessionCoordinator::pause):
(WebCore::MediaSessionCoordinator::setTrack):

  • Modules/mediasession/MediaSessionCoordinatorPrivate.cpp:

(WebCore::MediaSessionCoordinatorPrivate::setLogger):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::createTrackPrivateVector):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::shippingAddressChanged):

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::SpeechRecognition):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::scheduleTransactionCallback):

  • Modules/webxr/WebXRInputSource.cpp:

(WebCore::WebXRInputSource::update):
(WebCore::WebXRInputSource::pollEvents):

  • Modules/webxr/WebXRInputSourceArray.cpp:

(WebCore::WebXRInputSourceArray::update):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::didCompleteShutdown):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAriaExpandedChange):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::treeForPageID):

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::cacheCurrentTime):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setTarget):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::finishNotificationSteps):

  • bridge/runtime_object.cpp:

(JSC::Bindings::JSC_DEFINE_HOST_FUNCTION):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):

  • dom/Document.cpp:

(WebCore::Document::updateTitle):
(WebCore::Document::implicitClose):
(WebCore::Document::didRemoveAllPendingStylesheet):
(WebCore::Document::prepareMouseEvent):
(WebCore::command):

  • dom/Element.cpp:

(WebCore::Element::scrollTo):
(WebCore::Element::offsetLeftForBindings):
(WebCore::Element::offsetTopForBindings):
(WebCore::Element::focus):

  • dom/EventContext.h:

(WebCore::EventContext::EventContext):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::exitFullscreen):

  • dom/IdleDeadline.cpp:

(WebCore::IdleDeadline::timeRemaining const):
(WebCore::IdleDeadline::didTimeout const):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::disconnect):

  • dom/Position.cpp:

(WebCore::Position::firstNode const):
(WebCore::makeBoundaryPoint):

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::removeSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):

  • dom/messageports/WorkerMessagePortChannelProvider.cpp:

(WebCore::WorkerMessagePortChannelProvider::takeAllMessagesForPort):
(WebCore::WorkerMessagePortChannelProvider::checkRemotePortForActivity):

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::highestEmbeddingAncestor):
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
(WebCore::containsNonEditableRegion):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
(WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
(WebCore::ApplyStyleCommand::joinChildTextNodes):

  • editing/ChangeListTypeCommand.cpp:

(WebCore::ChangeListTypeCommand::listConversionType):

  • editing/CompositeEditCommand.cpp:

(WebCore::postTextStateChangeNotification):
(WebCore::CompositeEditCommand::insertNodeBefore):
(WebCore::CompositeEditCommand::insertNodeAfter):
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors):
(WebCore::CompositeEditCommand::prune):
(WebCore::CompositeEditCommand::positionOutsideTabSpan):
(WebCore::CompositeEditCommand::textNodeForRebalance const):
(WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
(WebCore::CompositeEditCommand::cleanupAfterDeletion):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::isTableRowEmpty):
(WebCore::firstInSpecialElement):
(WebCore::lastInSpecialElement):
(WebCore::DeleteSelectionCommand::initializePositionData):
(WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete):
(WebCore::firstEditablePositionInNode):
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):
(WebCore::DeleteSelectionCommand::doApply):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::postTextStateChangeNotification):

  • editing/Editing.cpp:

(WebCore::highestNodeToRemoveInPruning):

  • editing/Editor.cpp:

(WebCore::Editor::selectionForCommand):
(WebCore::Editor::shouldInsertFragment):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::respondToChangedContents):
(WebCore::Editor::hasBidiSelection const):
(WebCore::Editor::selectionUnorderedListState const):
(WebCore::Editor::selectionOrderedListState const):
(WebCore::Editor::findEventTargetFrom const):
(WebCore::Editor::applyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::notifyTextFromControls):
(WebCore::Editor::willApplyEditing):
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::copyImage):
(WebCore::Editor::renderLayerDidScroll):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
(WebCore::Editor::confirmOrCancelCompositionAndNotifyClient):
(WebCore::Editor::setComposition):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::isSpellCheckingEnabledFor const):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::removeTextPlaceholder):
(WebCore::Editor::applyEditingStyleToBodyElement const):
(WebCore::findFirstMarkable):
(WebCore::Editor::resolveTextCheckingTypeMask):
(WebCore::editableTextListsAtPositionInDescendingOrder):
(WebCore::Editor::fontAttributesAtSelectionStart):
(WebCore::Editor::styleForSelectionStart):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::unlistifyParagraph):

  • editing/InsertNestedListCommand.cpp:

(WebCore::InsertNestedListCommand::doApply):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::positionAvoidingPrecedingNodes):
(WebCore::ReplacementFragment::ReplacementFragment):
(WebCore::ReplacementFragment::removeUnrenderedNodes):
(WebCore::ReplacementFragment::removeInterchangeNodes):
(WebCore::ReplaceSelectionCommand::shouldMerge):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor):
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent const):
(WebCore::handleStyleSpansBeforeInsertion):
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
(WebCore::enclosingInline):
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace const):
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
(WebCore::singleChildList):
(WebCore::deepestSingleChildList):
(WebCore::ReplaceSelectionCommand::insertAsListItems):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleReplacedElement):

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::startObservingParagraphs):
(WebCore::tokenInfo):
(WebCore::isEnclosingItemBoundaryElement):
(WebCore::TextManipulationController::observeParagraphs):
(WebCore::TextManipulationController::scheduleObservationUpdate):
(WebCore::TextManipulationController::replace):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::document const):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::createElementForImageOverlay):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::replaceRichContentWithAttachments):
(WebCore::WebContentReader::readDataBuffer):

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearanceInternal):
(WebCore::sanitizedMarkupForFragmentInDocument):

  • page/VisualViewport.cpp:

(WebCore::VisualViewport::update):

  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::setupConverter):
(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pullSamplesInternal):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::enqueueSample):

Source/WTF:

  • wtf/CrossThreadTask.h:

(WTF::createCrossThreadTask):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
(WTR::UIScriptControllerIOS::sendEventStream):
(WTR::UIScriptControllerIOS::dragFromPointToPoint):

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::activateDataListSuggestion):

2:36 PM Changeset in webkit [282783] by commit-queue@webkit.org
  • 7 edits in trunk

WebKit might load custom URI scheme request content multiple times
https://bugs.webkit.org/show_bug.cgi?id=229116

Source/WebKit:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-20
Reviewed by Brady Eidson.

Use a ResourceLoaderIdentifier and a WebPageProxyIdentifier as keys in WebURLSchemeHandler.
This also makes it so that we don't need a new one per page on Cocoa platforms.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/WebURLSchemeHandler.cpp:

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

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

(WebKit::WebURLSchemeTask::didComplete):

Tools:

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-20
Reviewed by Brady Eidson.

Let's load the same URL 50 times and make sure all loads complete with the same content.
Without the fix, the test hangs forever spinning its main loop, because only a few of the
requests actually complete, so the test gets stuck waiting.

Note I picked 50 because when running the test 100 times, wpebackend-fdo dies to an
unrelated problem: its internal Wayland registry stops registering new global objects, and
each new web process starts crashing. That's weird, but not the problem we're trying to
solve today.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(createTestWebViewWithWebContext):
(testWebContextURIScheme):

2:16 PM Changeset in webkit [282782] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] canUseForText should take surrogate pairs into account when checking for directional characters
https://bugs.webkit.org/show_bug.cgi?id=230498

Reviewed by Antti Koivisto.

In this patch we start using U16_NEXT to properly loop through the characters to find their directions (RTL vs LTR).
(Note that this is temporary and will be removed when bidi handling is enabled for IFC)

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForCharacter): Deleted. These functions have shrunk so much, we don't need to template them anymore.

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

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

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:05 PM Changeset in webkit [282780] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS14] fast/events/ios/dom-update-on-keydown-quirk.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230509.

Unreviewed test gardening.

  • platform/ios-14-wk2/TestExpectations:
1:58 PM Changeset in webkit [282779] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Incorrect surrogate handling when dealing with short lines
https://bugs.webkit.org/show_bug.cgi?id=230487

Reviewed by Antti Koivisto.

Do not use 1 as the content length when dealing with text where even the first glyph does not fit the line.
(This functionality is mostly disabled by the missing font fallback feature. see webkit.org/b/228685 and imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-014.html)

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingContent const): this matches InlineIterator::incrementByCodePointInTextNode

1:56 PM Changeset in webkit [282778] by youenn@apple.com
  • 5 edits in trunk

Make sure RTCRtpSender.setParameters returns an exception with a valid type
https://bugs.webkit.org/show_bug.cgi?id=230476

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCRtpParameters-encodings-expected.txt:
  • web-platform-tests/webrtc/RTCRtpParameters-transactionId-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::setParameters):
Make sure to convert correctly the error.

1:50 PM September 2021 Meeting created by Jon Davis
1:44 PM Changeset in webkit [282777] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

ScrollSnapAnimatorState should be explicit about when it starts animations
https://bugs.webkit.org/show_bug.cgi?id=230497

Reviewed by Wenson Hsieh.

ScrollSnapAnimatorState::transitionTo* functions may not actually trigger an animation
if the target offset ends up as the initial offset. This currently happens to work
because ScrollingMomentumCalculator reports a duration of zero in this case, but
it's better to just make it clear that no animation was started.

Exercised by tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html

  • platform/ScrollSnapAnimatorState.cpp:

(WebCore::ScrollSnapAnimatorState::transitionToSnapAnimationState):
(WebCore::ScrollSnapAnimatorState::transitionToGlideAnimationState):
(WebCore::ScrollSnapAnimatorState::setupAnimationForState):

  • platform/ScrollSnapAnimatorState.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::processWheelEventForScrollSnap):

1:41 PM Changeset in webkit [282776] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Catalina, BigSur wk2 Release ] css3/masking/reference-clip-path-animate-transform-repaint.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230504.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:39 PM Changeset in webkit [282775] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Clean up overrides of DisplayCaptureSourceMac::Capturer::generateFrame()
<https://webkit.org/b/230491>
<rdar://problem/83315212>

Reviewed by David Kilzer.

  • platform/mediastream/mac/CGDisplayStreamCaptureSource.cpp:

(WebCore::CGDisplayStreamCaptureSource::generateFrame):

  • platform/mediastream/mac/CGWindowCaptureSource.mm:

(WebCore::CGWindowCaptureSource::generateFrame):

  • Simplify return value expression.
1:37 PM Changeset in webkit [282774] by Peng Liu
  • 2 edits in trunk/Source/WebCore

[GPUP] Videos appear black but audio plays normally
https://bugs.webkit.org/show_bug.cgi?id=230471
<rdar://82121369>

Reviewed by Youenn Fablet.

For some videos, the media player (MediaPlayerPrivateAVFoundation) starts
with the "MediaRenderingToContext" mode, and it switches to the "MediaRenderingToLayer"
mode later. When the mode switch happens, we have to destroy the context
video renderer before creating the video layer. Otherwise, we won't receive
the notification regarding "readyForDisplay" key path, which drives the
firstVideoFrameAvailable callback.

destroyContextVideoRenderer() destroys the m_videoOutput, but it will
be recreated by createVideoLayer().

Manually tested.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering):

1:18 PM Changeset in webkit [282773] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/LayoutTests

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

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

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTransformComponent-toMatrix-expected.txt: Added.
  • platform/gtk/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/rotate-by-added-angle-expected.txt:
1:17 PM Changeset in webkit [282772] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Win EWS] js/dfg-int16array.html is a flaky crash under WebCore::LayoutIntegration::LineLayout::constructContent.
https://bugs.webkit.org/show_bug.cgi?id=229594.

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:05 PM Changeset in webkit [282771] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk2 Debug arm64] storage/indexeddb/request-with-null-open-db-request.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230502.

Unreviewed test gardening .

  • platform/mac-wk2/TestExpectations:
12:52 PM Changeset in webkit [282770] by Jonathan Bedard
  • 7 edits
    1 copy
    2 adds
    2 deletes in trunk/Tools

[webkitcorepy] Move FileLock from webkitpy
https://bugs.webkit.org/show_bug.cgi?id=230320
<rdar://problem/83168826>

Reviewed by Dewei Zhu.

Move FileLock from webkitpy into webkitcorepy, implement FileLock as a more
modern Python API.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/file_lock.py: Added.

(FileLock):
(FileLock.init):
(FileLock.acquired): Check if the current process has acquired the lock.
(FileLock.acquire): Attempt to acquire lockfile.
(FileLock.release): Release lockfile, if this process owns the lock.
(FileLock.enter): Invoke acquire.
(FileLock.exit): Invoke release.

  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/file_lock.py: Copied from Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py.

(FileLock): Single-thread stub implementation of FileLock for testing without a filesystem.

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/file_lock_unittest.py: Added.

(FileLockTestCase):
(FileLockTestCase.init):
(FileLockTestCase.setUp):
(FileLockTestCase.tearDown):
(FileLockTestCase.test_basic):
(FileLockTestCase.test_locked):
(FileLockTestCase.test_locked_timeout):
(FileLockTestCase.test_double):

  • Scripts/webkitpy/common/system/file_lock.py: Removed.
  • Scripts/webkitpy/common/system/file_lock_integrationtest.py: Removed.
  • Scripts/webkitpy/common/system/systemhost.py:

(SystemHost.make_file_lock): Use webkitcorepy's FileLock.

  • Scripts/webkitpy/common/system/systemhost_mock.py:

(MockSystemHost.make_file_lock): Use webkitcorepy's mocks.FileLock.

  • Scripts/webkitpy/tool/commands/rebaseline.py:

(RebaselineTest._update_expectations_file): Use webkitcorepy's FileLock.

12:32 PM Changeset in webkit [282769] by Wenson Hsieh
  • 6 edits in trunk/Source

Refactor some code that controls Live Text selection behavior
https://bugs.webkit.org/show_bug.cgi?id=230482
rdar://83173597

Reviewed by Megan Gardner.

Source/WebCore:

Make a few adjustments to Live Text code. See below for more details.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::shouldExtendSelectionToTargetNode):

Adjust this rule so that instead of checking whether we're hit-testing to the image overlay container div, we
only allow the existing selection in an image overlay to extend when performing a mouse drag if the target node
(to which we're extending the selection) is a text node inside the image overlay.

This tweak is needed to deal with the stylesheet adjustment below, where the root #image-overlay container now
has pointer-events: none;.

  • html/shadow/imageOverlay.css:

(div#image-overlay):
(div.image-overlay-line):
(div.image-overlay-data-detector-result):

Mark the root #image-overlay container as pointer-events: none;, but mark the individual text containers in
the image overlay as pointer-events: auto; to ensure that they can still be selected via mouse events. This
change ensures that image overlays can be safely overlaid on top of other user agent shadow root content without
breaking pointer-based interactions on the shadow root content beneath it.

  • page/EventHandler.cpp:

(WebCore::EventHandler::textRecognitionCandidateElement const):

Add a WebKitAdditions extension point for determining whether or not an element is a candidate for text
recognition.

Source/WTF:

Add an (off-by-default) internal feature to enable certain enhancements to Live Text.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
12:23 PM Changeset in webkit [282768] by graouts@webkit.org
  • 22 edits
    2 adds in trunk

box-shadow and text-shadow do not yield float values while interpolating
https://bugs.webkit.org/show_bug.cgi?id=230347

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add some new WPT tests for float and calc() values for box-shadow and text-shadow while
interpolating and update output for still-failing composite operations tests. The new tests
have already landed in WPT with https://github.com/web-platform-tests/wpt/pull/30823.

  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation.html:
  • web-platform-tests/css/css-backgrounds/box-shadow-calc-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/box-shadow-calc.html: Added.
  • web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-interpolation.html:

Source/WebCore:

ShadowData members used integer values rather than floats and thus could not represent
float values while interpolating. We now use float values.

Test: imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow-calc.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::shadowForBlending):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForFilter):

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BoxDecorationPainter::paintBoxShadow const):

  • editing/Editor.cpp:

(WebCore::Editor::fontAttributesAtSelectionStart):

  • platform/LengthPoint.h:

(WebCore::LengthPoint::isZero const):

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::paint):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::applyBoxShadowForBackground):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
(WebCore::RenderBoxModelObject::paintBoxShadow):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::debugTextShadow const):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/TextPainter.cpp:

(WebCore::ShadowApplier::shadowIsCompletelyCoveredByText):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setTextShadow):
(WebCore::RenderStyle::shadowExtent):
(WebCore::RenderStyle::shadowInsetExtent):
(WebCore::RenderStyle::getShadowHorizontalExtent):
(WebCore::RenderStyle::getShadowVerticalExtent):

  • rendering/style/ShadowData.cpp:

(WebCore::ShadowData::ShadowData):
(WebCore::calculateShadowExtent):

  • rendering/style/ShadowData.h:

(WebCore::ShadowData::ShadowData):
(WebCore::ShadowData::x const):
(WebCore::ShadowData::y const):
(WebCore::ShadowData::location const):
(WebCore::ShadowData::radius const):
(WebCore::ShadowData::paintingExtent const):
(WebCore::ShadowData::spread const):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):

12:08 PM Changeset in webkit [282767] by Brent Fulgham
  • 4 edits in trunk

Remove XSS Auditor: Part 1 (Turn off by default)
https://bugs.webkit.org/show_bug.cgi?id=230483
<rdar://problem/83310922>

Reviewed by Yusuke Suzuki.

Source/WTF:

As an initial step in removing the XSS Auditor, turn it off by default.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:

(TestWebKitAPI::TEST): Switch expectation for XSS Auditor.

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

Skip stress/json-stringify-stack-overflow.js only on memory limited systems
https://bugs.webkit.org/show_bug.cgi?id=230489

Unreviewed gardening.

It's currently only failing on systems with low memory, regardless of
the arch.

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

  • stress/json-stringify-stack-overflow.js:
11:42 AM Changeset in webkit [282765] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

[Live Text] Adopt WeakHashMap for caching per-element text recognition results
https://bugs.webkit.org/show_bug.cgi?id=230461

Reviewed by Megan Gardner.

Simplify this logic by replacing the WeakHashSet and WeakPtr/TextRecognitionResult pair with just a WeakHashMap.
No change in behavior.

  • page/Page.cpp:

(WebCore::Page::updateElementsWithTextRecognitionResults):
(WebCore::Page::hasCachedTextRecognitionResult const):
(WebCore::Page::cacheTextRecognitionResult):
(WebCore::Page::resetTextRecognitionResults):

  • page/Page.h:
11:20 AM Changeset in webkit [282764] by Antti Koivisto
  • 16 edits
    2 adds in trunk

[LFC][Integration] Enable selections
https://bugs.webkit.org/show_bug.cgi?id=230463

Reviewed by Alan Bujtas.

Source/WebCore:

Don't switch to legacy inline boxes on selection.

Test: fast/repaint/selection-paint-invalidation.html

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):

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

(WebCore::LayoutIntegration::PathTextRun::selectionRect const):

Move this to path independent code and fix it to compute selectionTop/Bottom correctly.

(WebCore::LayoutIntegration::PathTextRun::isCombinedText const):
(WebCore::LayoutIntegration::PathTextRun::fontCascade const):

Add some helpful functions.

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::selectionRect const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::selectableRange const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::selectionRect const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::setSelectionState): Deleted.

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

(WebCore::RenderObject::setSelectionState):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):

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

(WebCore::LayoutIntegration::PathTextRun::selectionRect const):
(WebCore::LayoutIntegration::PathTextRun::fontCascade const):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::selectionRect const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::selectableRange const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::selectionRect const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::setSelectionState): Deleted.

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

(WebCore::RenderObject::setSelectionState):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paint):
(WebCore::TextBoxPainter::paintForeground):
(WebCore::TextBoxPainter::paintDecoration):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter::fontCascade const):

Use iterator functions.

(WebCore::TextBoxPainter::textOriginFromPaintRect const):
(WebCore::fontCascadeFor): Deleted.
(WebCore::TextBoxPainter::combinedText const): Deleted.

  • rendering/TextBoxPainter.h:

Tools:

  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • fast/repaint/selection-paint-invalidation-expected.txt: Added.
  • fast/repaint/selection-paint-invalidation.html: Added.
  • platform/mac/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
11:07 AM Changeset in webkit [282763] by Russell Epstein
  • 1 copy in tags/Safari-613.1.2.2

Tag Safari-613.1.2.2.

11:06 AM Changeset in webkit [282762] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Update test expectations for http/tests/misc/iframe-reparenting-id-collision.html.
https://bugs.webkit.org/show_bug.cgi?id=230427.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:57 AM Changeset in webkit [282761] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS debug build fix after r282755.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):

10:57 AM Changeset in webkit [282760] by Russell Epstein
  • 8 edits in branches/safari-613.1.2-branch/Source

Versioning.

WebKit-7613.1.2.2

10:46 AM Changeset in webkit [282759] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 arm64 ] imported/w3c/web-platform-tests/infrastructure/reftest-wait.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=230488

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:41 AM Changeset in webkit [282758] by achristensen@apple.com
  • 40 edits
    4 adds
    1 delete in trunk

Add support for CSSUnparsedValue parsing through CSSStyleValue.parse()
https://bugs.webkit.org/show_bug.cgi?id=229702

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

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-typed-om/idlharness-expected.txt:
  • web-platform-tests/css/css-typed-om/resources/testhelper.js:

(remove_leading_spaces):

  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-image-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/normalize-tokens.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parse-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parse-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parseAll-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-objects/parseAll-invalid-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-cssom-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssStyleValue-string-expected.txt:
  • web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get-shorthand-expected.txt:
  • web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.html:

Source/WebCore:

Test: css-typedom/css-style-value-parse.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSValue.h:

(WebCore::CSSValue::operator== const):

  • css/CSSVariableData.h:

(WebCore::CSSVariableData::tokenRange const):
(WebCore::CSSVariableData::tokenRange): Deleted.

  • css/CSSVariableReferenceValue.cpp:

(WebCore::CSSVariableReferenceValue::create):

  • css/CSSVariableReferenceValue.h:

(WebCore::CSSVariableReferenceValue::data const):

  • css/typedom/CSSNumericFactory.idl: Removed.
  • css/typedom/CSSOMVariableReferenceValue.cpp:

(WebCore::CSSOMVariableReferenceValue::toString const):
(WebCore::CSSOMVariableReferenceValue::serialize const):

  • css/typedom/CSSOMVariableReferenceValue.h:
  • css/typedom/CSSStyleImageValue.cpp:

(WebCore::CSSStyleImageValue::CSSStyleImageValue):

  • css/typedom/CSSStyleImageValue.h:
  • css/typedom/CSSStyleValue.cpp:

(WebCore::CSSStyleValue::parse):
(WebCore::CSSStyleValue::parseAll):
(WebCore::CSSStyleValue::parseStyleValue): Deleted.
(WebCore::CSSStyleValue::reifyValue): Deleted.

  • css/typedom/CSSStyleValue.h:
  • css/typedom/CSSStyleValueFactory.cpp: Added.

(WebCore::CSSStyleValueFactory::extractCSSValues):
(WebCore::CSSStyleValueFactory::extractShorthandCSSValues):
(WebCore::CSSStyleValueFactory::extractCustomCSSValues):
(WebCore::CSSStyleValueFactory::parseStyleValue):
(WebCore::CSSStyleValueFactory::reifyValue):

  • css/typedom/CSSStyleValueFactory.h: Copied from Source/WebCore/css/typedom/CSSOMVariableReferenceValue.h.
  • css/typedom/CSSUnparsedValue.cpp:

(WebCore::CSSUnparsedValue::create):
(WebCore::CSSUnparsedValue::serialize const):

  • css/typedom/CSSUnparsedValue.h:
  • css/typedom/StylePropertyMapReadOnly.cpp:

(WebCore::StylePropertyMapReadOnly::reifyValue):
(WebCore::StylePropertyMapReadOnly::customPropertyValueOrDefault):

  • dom/Document.cpp:

(WebCore::Document::registerCSSProperty):

  • dom/StyledElement.cpp:

LayoutTests:

  • css-typedom/css-style-value-parse-expected.txt: Added.
  • css-typedom/css-style-value-parse.html: Added.
10:30 AM Changeset in webkit [282757] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS macOS wk2] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-events.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230485

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:29 AM Changeset in webkit [282756] by commit-queue@webkit.org
  • 17 edits
    1 copy in trunk/Source/WebKit

Use ObjectIdentifier for WebURLSchemeHandler
https://bugs.webkit.org/show_bug.cgi?id=230462

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-20
Reviewed by Alex Christensen.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Shared/URLSchemeTaskParameters.cpp:

(WebKit::URLSchemeTaskParameters::decode):

  • Shared/URLSchemeTaskParameters.h:

(): Deleted.

  • Shared/WebPageCreationParameters.h:
  • Shared/WebURLSchemeHandlerIdentifier.h: Copied from Source/WebKit/Shared/URLSchemeTaskParameters.h.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::stopURLSchemeTask):

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

(WebKit::WebURLSchemeHandler::WebURLSchemeHandler):
(WebKit::generateWebURLSchemeHandlerIdentifier): Deleted.

  • UIProcess/WebURLSchemeHandler.h:

(WebKit::WebURLSchemeHandler::identifier const):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::registerURLSchemeHandler):
(WebKit::WebPage::urlSchemeTaskWillPerformRedirection):
(WebKit::WebPage::urlSchemeTaskDidPerformRedirection):
(WebKit::WebPage::urlSchemeTaskDidReceiveResponse):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::urlSchemeTaskDidComplete):

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

(WebKit::WebURLSchemeHandlerProxy::WebURLSchemeHandlerProxy):

  • WebProcess/WebPage/WebURLSchemeHandlerProxy.h:

(WebKit::WebURLSchemeHandlerProxy::create):
(WebKit::WebURLSchemeHandlerProxy::identifier const):
(): Deleted.

  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
10:17 AM Changeset in webkit [282755] by Chris Dumez
  • 251 edits in trunk

Stop using makeRef(*this) / makeRefPtr(this)
https://bugs.webkit.org/show_bug.cgi?id=230464

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • inspector/InjectedScriptHost.cpp:

(Inspector::InjectedScriptHost::wrapper):

  • inspector/remote/RemoteConnectionToTarget.cpp:

(Inspector::RemoteConnectionToTarget::close):

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):

  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::compileAsync):

  • wasm/WasmNameSection.h:

(JSC::Wasm::NameSection::get):

  • wasm/WasmStreamingCompiler.cpp:

(JSC::Wasm::StreamingCompiler::didReceiveFunctionData):

Source/WebCore:

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::ItemWriter::write):

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::match):
(WebCore::DOMCache::addAll):
(WebCore::DOMCache::putWithResponseData):
(WebCore::DOMCache::put):
(WebCore::DOMCache::remove):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::setServerCertificate):

  • Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::listDirectory):
(WebCore::DOMFileSystem::getParent):
(WebCore::DOMFileSystem::getEntry):

  • Modules/entriesapi/ErrorCallback.cpp:

(WebCore::ErrorCallback::scheduleCallback):

  • Modules/entriesapi/FileSystemEntriesCallback.cpp:

(WebCore::FileSystemEntriesCallback::scheduleCallback):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::dispatchEvent):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::dispatchEvent):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::abortInternal):
(WebCore::IDBTransaction::dispatchEvent):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::renameObjectStore):
(WebCore::IDBTransaction::createIndex):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::iterateCursor):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):
(WebCore::IDBTransaction::putOrAddOnServer):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::deleteIndex):

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::callResultFunctionWithErrorLater):
(WebCore::IDBClient::IDBConnectionToServer::commitTransaction):
(WebCore::IDBClient::IDBConnectionToServer::abortTransaction):
(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNamesAndVersions):

  • Modules/indexeddb/client/TransactionOperation.h:
  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::forEachObserver):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeTimerFired):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::applyConstraints):

  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::insertDTMF):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::addIceCandidate):

  • Modules/mediastream/RTCRtpScriptTransform.cpp:

(WebCore::RTCRtpScriptTransform::setTransformer):

  • Modules/mediastream/RTCRtpScriptTransformer.cpp:

(WebCore::RTCRtpScriptTransformer::writable):

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createStatsCollector):
(WebCore::LibWebRTCMediaEndpoint::OnTrack):
(WebCore::LibWebRTCMediaEndpoint::OnRemoveTrack):
(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):
(WebCore::LibWebRTCMediaEndpoint::OnNegotiationNeededEvent):
(WebCore::LibWebRTCMediaEndpoint::OnStandardizedIceConnectionChange):
(WebCore::LibWebRTCMediaEndpoint::OnIceGatheringChange):
(WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):
(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::shippingAddressChanged):
(WebCore::PaymentRequest::shippingOptionChanged):
(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::updateWith):
(WebCore::PaymentRequest::completeMerchantValidation):
(WebCore::PaymentRequest::whenDetailsSettled):

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::watchAvailability):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::mayResumePlayback):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::isPlayingAudioDidChange):

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::postTaskToAudioWorklet):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::fireProcessorErrorOnMainThread):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::clear):
(WebCore::BaseAudioContext::stop):
(WebCore::BaseAudioContext::updateTailProcessingNodes):
(WebCore::BaseAudioContext::scheduleNodeDeletion):
(WebCore::BaseAudioContext::deleteMarkedNodes):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::scheduleTransactionCallback):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpgradeURL):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::failAsynchronously):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):

  • Modules/webxr/WebXRFrame.cpp:

(WebCore::WebXRFrame::getViewerPose):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::requestReferenceSpace):
(WebCore::WebXRSession::shutdown):
(WebCore::WebXRSession::end):
(WebCore::WebXRSession::requestFrame):

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::remove):
(WebCore::WebAnimation::setEffect):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::updateFinishedState):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::callFunction):
(WebCore::DeferredPromise::whenSettled):

  • bindings/js/JSMicrotaskCallback.h:

(WebCore::JSMicrotaskCallback::call):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

  • bindings/js/WorkerModuleScriptLoader.cpp:

(WebCore::WorkerModuleScriptLoader::notifyClientFinished):

  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::valueWithStylesResolved):

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::signalAbort):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChildren):

  • dom/Document.cpp:

(WebCore::Document::updateTitle):
(WebCore::Document::didRemoveAllPendingStylesheet):
(WebCore::Document::queueTaskToDispatchEvent):
(WebCore::Document::queueTaskToDispatchEventOnWindow):

  • dom/WindowEventLoop.cpp:

(WebCore::WindowEventLoop::didReachTimeToRun):
(WebCore::WindowEventLoop::queueMutationObserverCompoundMicrotask):
(WebCore::WindowEventLoop::backupElementQueue):

  • dom/messageports/MessagePortChannel.cpp:

(WebCore::MessagePortChannel::closePort):
(WebCore::MessagePortChannel::checkRemotePortForActivity):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::ensureComposition):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::setStartingSelection):
(WebCore::EditCommand::setEndingSelection):

  • fileapi/BlobCallback.cpp:

(WebCore::BlobCallback::scheduleCallback):

  • fileapi/FileReader.cpp:

(WebCore::FileReader::abort):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):

  • html/DirectoryFileListCreator.cpp:

(WebCore::DirectoryFileListCreator::start):

  • html/FileInputType.cpp:

(WebCore::FileInputType::didCreateFileList):
(WebCore::FileInputType::receiveDroppedFilesWithImageTranscoding):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::focusAndShowValidationMessage):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submitIfPossible):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::resumeFromDocumentSuspension):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didAttachRenderers):
(WebCore::HTMLInputElement::resumeFromDocumentSuspension):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setAudioOutputDevice):
(WebCore::HTMLMediaElement::layoutSizeChanged):
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution):

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::scheduleCommitToPlaceholderCanvas):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::makeXRCompatible):

  • html/canvas/WebGLSync.cpp:

(WebCore::WebGLSync::scheduleAllowCacheUpdate):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::wrapper):

  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::suspend):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorBackendDispatchTask::scheduleOneShot):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::handleSubstituteDataLoadNow):
(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::init):
(WebCore::NetscapePlugInStreamLoader::willSendRequest):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::deliverResponseAndData):
(WebCore::ResourceLoader::loadDataURL):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::startLoading):
(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/appcache/ApplicationCacheResourceLoader.cpp:

(WebCore::ApplicationCacheResourceLoader::cancel):
(WebCore::ApplicationCacheResourceLoader::notifyFinished):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):
(WebCore::DOMWindow::close):
(WebCore::DOMWindow::dispatchLoadEvent):
(WebCore::DOMWindow::dispatchEvent):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScripts):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFocusedElementTimerFired):

  • page/Performance.cpp:

(WebCore::Performance::scheduleTaskIfNeeded):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
(WebCore::ThreadedScrollingTree::willStartRenderingUpdate):
(WebCore::ThreadedScrollingTree::displayDidRefresh):

  • platform/PreviewConverter.cpp:

(WebCore::PreviewConverter::updateMainResource):
(WebCore::PreviewConverter::iterateClients):
(WebCore::PreviewConverter::didAddClient):
(WebCore::PreviewConverter::replayToClient):
(WebCore::PreviewConverter::delegateDidReceiveData):
(WebCore::PreviewConverter::delegateDidFailWithError):

  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::render):

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::startAsyncDecodingQueue):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::invalidate):

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

(WebCore::ImageDecoderAVFObjC::ImageDecoderAVFObjC):
(WebCore::ImageDecoderAVFObjC::setTrack):

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

(WebCore::EffectiveRateChangedListener::effectiveRateChanged):

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

(WebCore::MediaSampleAVFObjC::divideIntoHomogeneousSamples):

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

(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError):
(WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID):

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

(WebCore::WebCoreAVFResourceLoader::invalidate):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::OnElementEnd):
(WebCore::SourceBufferParserWebM::OnBlockGroupEnd):
(WebCore::SourceBufferParserWebM::provideMediaData):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData):
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample):
(WebCore::WebCoreDecompressionSession::flush):

  • platform/graphics/gstreamer/MainThreadNotifier.h:
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):

  • platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp:

(WebCore::LegacyDisplayRefreshMonitorMac::dispatchDisplayDidRefresh):

  • platform/graphics/nicosia/NicosiaSceneIntegration.cpp:

(Nicosia::SceneIntegration::createUpdateScope):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::finalizeSetup):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::doExitFullscreen):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::requestUpdateInlineRect):
(VideoFullscreenControllerContext::requestVideoContentLayer):
(VideoFullscreenControllerContext::returnVideoContentLayer):
(VideoFullscreenControllerContext::didSetupFullscreen):
(VideoFullscreenControllerContext::willExitFullscreen):
(VideoFullscreenControllerContext::didExitFullscreen):
(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::fullscreenMayReturnToInline):
(VideoFullscreenControllerContext::durationChanged):
(VideoFullscreenControllerContext::currentTimeChanged):
(VideoFullscreenControllerContext::bufferedTimeChanged):
(VideoFullscreenControllerContext::rateChanged):
(VideoFullscreenControllerContext::hasVideoChanged):
(VideoFullscreenControllerContext::videoDimensionsChanged):
(VideoFullscreenControllerContext::seekableRangesChanged):
(VideoFullscreenControllerContext::canPlayFastReverseChanged):
(VideoFullscreenControllerContext::audioMediaSelectionOptionsChanged):
(VideoFullscreenControllerContext::legibleMediaSelectionOptionsChanged):
(VideoFullscreenControllerContext::externalPlaybackChanged):
(VideoFullscreenControllerContext::wirelessVideoPlaybackDisabledChanged):
(VideoFullscreenControllerContext::mutedChanged):
(VideoFullscreenControllerContext::volumeChanged):
(VideoFullscreenControllerContext::requestFullscreenMode):
(VideoFullscreenControllerContext::setVideoLayerFrame):
(VideoFullscreenControllerContext::setVideoLayerGravity):
(VideoFullscreenControllerContext::fullscreenModeChanged):
(VideoFullscreenControllerContext::play):
(VideoFullscreenControllerContext::pause):
(VideoFullscreenControllerContext::togglePlayState):
(VideoFullscreenControllerContext::toggleMuted):
(VideoFullscreenControllerContext::setMuted):
(VideoFullscreenControllerContext::setVolume):
(VideoFullscreenControllerContext::setPlayingOnSecondScreen):
(VideoFullscreenControllerContext::beginScrubbing):
(VideoFullscreenControllerContext::endScrubbing):
(VideoFullscreenControllerContext::seekToTime):
(VideoFullscreenControllerContext::fastSeek):
(VideoFullscreenControllerContext::beginScanningForward):
(VideoFullscreenControllerContext::beginScanningBackward):
(VideoFullscreenControllerContext::endScanning):
(VideoFullscreenControllerContext::setDefaultPlaybackRate):
(VideoFullscreenControllerContext::setPlaybackRate):
(VideoFullscreenControllerContext::selectAudioMediaOption):
(VideoFullscreenControllerContext::selectLegibleMediaOption):
(VideoFullscreenControllerContext::setUpFullscreen):
(VideoFullscreenControllerContext::exitFullscreen):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(WebCore::VideoFullscreenInterfaceMac::setupFullscreen):

  • platform/mediastream/AudioTrackPrivateMediaStream.cpp:

(WebCore::AudioTrackPrivateMediaStream::startRenderer):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::forEachObserver):

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::forEachObserver):

  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::OnChanged):

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::OnChanged):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::forEachObserver):
(WebCore::RealtimeMediaSource::updateHasStartedProducingData):
(WebCore::RealtimeMediaSource::end):
(WebCore::RealtimeMediaSource::scheduleDeferredTask):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::triggerDevicesChangedObservers):

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::applyRotation):

  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::whenReady):

  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:

(WebCore::GStreamerCapturer::forEachObserver):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):

  • platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp:

(WebCore::RealtimeOutgoingAudioSourceCocoa::audioSamplesAvailable):

  • platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:

(WebCore::WebAudioSourceProviderCocoa::prepare):

  • platform/mock/MockAudioDestinationCocoa.cpp:

(WebCore::MockAudioDestinationCocoa::tick):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::tick):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::start):
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):
(WebCore::BlobResourceHandle::notifyFinish):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::willSendRequest):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::callClient):
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
(WebCore::CurlRequest::completeDidReceiveResponse):
(WebCore::CurlRequest::invokeCancel):
(WebCore::CurlRequest::pausedStatusChanged):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCancellation):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::handleDataURL):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::willSendRequest):

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::initialize):
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering):
(PlatformXR::OpenXRDevice::shutDownTrackingAndRendering):
(PlatformXR::OpenXRDevice::requestFrame):
(PlatformXR::OpenXRDevice::submitFrame):
(PlatformXR::OpenXRDevice::waitUntilStopping):

  • storage/StorageQuotaManager.cpp:

(WebCore::StorageQuotaManager::requestSpaceOnMainThread):
(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):

  • testing/WebXRTest.cpp:

(WebCore::WebXRTest::simulateDeviceConnection):

  • workers/WorkerEventLoop.cpp:

(WebCore::WorkerEventLoop::scheduleToRun):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postMessageToDebugger):

  • workers/WorkerOrWorkletThread.cpp:

(WebCore::WorkerOrWorkletThread::workerOrWorkletThread):

  • workers/service/ExtendableEvent.cpp:

(WebCore::ExtendableEvent::addExtendLifetimePromise):

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::respondWith):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::startHeartBeatTimer):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::postTaskToLoader):
(WebCore::ServiceWorkerThreadProxy::postMessageToDebugger):
(WebCore::ServiceWorkerThreadProxy::setResourceCachingDisabledByWebInspector):
(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::postMessageToServiceWorker):
(WebCore::ServiceWorkerThreadProxy::fireInstallEvent):
(WebCore::ServiceWorkerThreadProxy::fireActivateEvent):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::postTaskToWorkQueue):
(WebCore::RegistrationDatabase::importRecordsIfNecessary):
(WebCore::RegistrationDatabase::schedulePushChanges):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::didFail):
(WebCore::XMLHttpRequest::didFinishLoading):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::closeAllToplevelBrowsingContexts):
(WebDriver::Session::createTopLevelBrowsingContext):
(WebDriver::Session::handleUserPrompts):
(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::getWindowHandle):
(WebDriver::Session::closeTopLevelBrowsingContext):
(WebDriver::Session::switchToWindow):
(WebDriver::Session::getWindowHandles):
(WebDriver::Session::newWindow):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::computeElementLayout):
(WebDriver::Session::findElements):
(WebDriver::Session::getActiveElement):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::elementIsFileUpload):
(WebDriver::Session::selectOptionElement):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementIsEditable):
(WebDriver::Session::elementClear):
(WebDriver::Session::setInputFileUploadFiles):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::getPageSource):
(WebDriver::Session::executeScript):
(WebDriver::Session::performMouseInteraction):
(WebDriver::Session::performKeyboardInteractions):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::releaseActions):
(WebDriver::Session::dismissAlert):
(WebDriver::Session::acceptAlert):
(WebDriver::Session::getAlertText):
(WebDriver::Session::sendAlertText):
(WebDriver::Session::takeScreenshot):

Source/WebKit:

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):

  • GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:

(WebKit::RemoteAudioSourceProviderProxy::createRingBuffer):

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::responseReceived):

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::removeCodedFrames):

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::close):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::close):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::postTask):
(WebKit::WebResourceLoadStatisticsStore::destroyResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk):
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessEphemeral):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::getOrigins):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::renameOrigin):
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::registerTemporaryBlobFilePaths):
(WebKit::WebIDBServer::close):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFilesForIndexedDB):
(WebKit::NetworkConnectionToWebProcess::takeAllMessagesForPort):

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::resume):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::findPendingDownloadLocation):
(WebKit::NetworkProcess::createWebIDBServer):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):

  • NetworkProcess/NetworkSocketStream.cpp:

(WebKit::NetworkSocketStream::sendData):
(WebKit::NetworkSocketStream::sendHandshake):

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::add):
(WebKit::StorageManagerSet::remove):
(WebKit::StorageManagerSet::removeConnection):
(WebKit::StorageManagerSet::handleLowMemoryWarning):
(WebKit::StorageManagerSet::suspend):
(WebKit::StorageManagerSet::getSessionStorageOrigins):
(WebKit::StorageManagerSet::deleteSessionStorage):
(WebKit::StorageManagerSet::deleteSessionStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOrigins):
(WebKit::StorageManagerSet::deleteLocalStorageModifiedSince):
(WebKit::StorageManagerSet::deleteLocalStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOriginDetails):
(WebKit::StorageManagerSet::renameOrigin):

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::readCache):
(WebKit::CacheStorage::Engine::fetchDirectoryEntries):
(WebKit::CacheStorage::CompletionHandler<void):
(WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::storeOrigin):
(WebKit::CacheStorage::Caches::initializeSize):
(WebKit::CacheStorage::Caches::clear):
(WebKit::CacheStorage::Caches::readCachesFromDisk):
(WebKit::CacheStorage::Caches::writeCachesToDisk):
(WebKit::CacheStorage::Caches::writeRecord):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::traverse):

  • NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:

(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):

  • NetworkProcess/cache/NetworkCacheIOChannelGLib.cpp:

(WebKit::NetworkCache::IOChannel::readSyncInThread):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::finishReadOperation):
(WebKit::NetworkCache::Storage::finishWriteOperation):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrink):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::resume):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::curlDidSendData):
(WebKit::NetworkDataTaskCurl::curlDidReceiveResponse):
(WebKit::NetworkDataTaskCurl::curlDidReceiveBuffer):
(WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::tryHttpAuthentication):
(WebKit::NetworkDataTaskCurl::tryProxyAuthentication):
(WebKit::NetworkDataTaskCurl::tryServerTrustEvaluation):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::createResolver):
(WebKit::NetworkRTCProvider::stopResolver):
(WebKit::NetworkRTCProvider::closeListeningSockets):

  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.cpp:

(WebKit::RTCDataChannelRemoteManagerProxy::registerConnectionToWebProcess):
(WebKit::RTCDataChannelRemoteManagerProxy::unregisterConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
(IPC::Connection::connectionDidClose):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::enqueueIncomingMessage):

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):
(IPC::Connection::initializeSendSource):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::sendOutputMessage):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::invokeReadEventHandler):
(IPC::Connection::invokeWriteEventHandler):

  • Scripts/webkit/messages.py:

(generate_message_handler):

  • Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:

(WebKit::TestWithIfMessage::didReceiveMessage):

  • Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:

(WebKit::TestWithImageData::didReceiveMessage):
(WebKit::TestWithImageData::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:

(WebKit::TestWithLegacyReceiver::didReceiveTestWithLegacyReceiverMessage):
(WebKit::TestWithLegacyReceiver::didReceiveSyncTestWithLegacyReceiverMessage):

  • Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:

(WebKit::TestWithSemaphore::didReceiveMessage):
(WebKit::TestWithSemaphore::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:

(WebKit::TestWithStreamBuffer::didReceiveMessage):

  • Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:

(WebKit::TestWithSuperclass::didReceiveMessage):
(WebKit::TestWithSuperclass::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:

(WebKit::TestWithoutAttributes::didReceiveMessage):
(WebKit::TestWithoutAttributes::didReceiveSyncMessage):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::suspend):
(WebKit::ThreadedCompositor::resume):
(WebKit::ThreadedCompositor::forceRepaint):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::startOnMainThread):
(WebKit::MediaFormatReader::parseByteSource):

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::getContentRuleListSource):

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::cookiesForURL):
(API::HTTPCookieStore::setCookies):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded):
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
(WebKit::IconDatabase::clear):

  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputDispatcher::transitionToNextKeyFrame):
(WebKit::SimulatedInputDispatcher::transitionToNextInputSourceState):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::getBrowsingContexts):
(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext):
(WebKit::WebAutomationSession::maximizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::hideWindowOfBrowsingContext):
(WebKit::WebAutomationSession::exitFullscreenWindowForPage):
(WebKit::WebAutomationSession::willShowJavaScriptDialog):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::simulateMouseInteraction):
(WebKit::WebAutomationSession::simulateTouchInteraction):
(WebKit::WebAutomationSession::simulateWheelInteraction):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::performInteractionSequence):
(WebKit::WebAutomationSession::cancelInteractionSequence):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::dismissViewController):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • UIProcess/DeviceIdHashSaltStorage.cpp:

(WebKit::DeviceIdHashSaltStorage::DeviceIdHashSaltStorage):
(WebKit::DeviceIdHashSaltStorage::loadStorageFromDisk):
(WebKit::DeviceIdHashSaltStorage::storeHashSaltToDisk):
(WebKit::DeviceIdHashSaltStorage::deleteHashSaltFromDisk):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::cancel):
(WebKit::DownloadProxy::willSendRequest):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::gpuProcessExited):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:

(WebKit::RemoteMediaSessionCoordinatorProxy::join):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSeekTo):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePlay):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePause):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSetTrack):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessDidTerminate):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::prompt):

  • UIProcess/WebContextMenuProxy.cpp:

(WebKit::WebContextMenuProxy::useContextMenuItems):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::forceRepaint):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::willSubmitForm):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::getWindowFrame):
(WebKit::WebPageProxy::getWindowFrameWithCallback):
(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
(WebKit::WebPageProxy::requestStorageSpace):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::dispatchActivityStateUpdateForTesting):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::terminateServiceWorkers):
(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::requestTermination):
(WebKit::WebProcessProxy::didExceedCPULimit):

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::willPerformRedirection):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::ensureAppBoundDomains const):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::acquireAsync):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getShareMenuItem):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
(WebKit::WebContextMenuProxyMac::useContextMenuItems):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::windowAndViewFramesChanged):
(WebKit::WebPageProxy::pdfSaveToPDF):
(WebKit::WebPageProxy::pdfOpenWithPreview):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didClose):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::startRendering):
(WebKit::RemoteAudioDestinationProxy::stopRendering):

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:

(WebKit::RemoteAudioSourceProviderManager::addProvider):
(WebKit::RemoteAudioSourceProviderManager::removeProvider):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::removeCodedFrames):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::sendMessage):
(WebKit::WebSocketChannel::close):
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::resume):

  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:

(WebKit::NotificationPermissionRequestManager::startRequest):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::pluginThreadAsyncCall):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::pdfLog):
(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::tryRunScriptsInPDFDocument):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::start):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::removeUserScriptMessageHandlerInternal):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):
(WebKit::EventDispatcher::dispatchWheelEventViaMainThread):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::suspendForProcessSwap):
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPage::drawPagesForPrinting):
(WebKit::WebPage::elementDidBlur):
(WebKit::WebPage::requestStorageAccess):

  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:

(WebKit::WebURLSchemeTaskProxy::didPerformRedirection):
(WebKit::WebURLSchemeTaskProxy::didReceiveResponse):
(WebKit::WebURLSchemeTaskProxy::didReceiveData):
(WebKit::WebURLSchemeTaskProxy::didComplete):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::didFinishContentChangeObserving):
(WebKit::WebPage::didFinishLoadingImageForElement):
(WebKit::WebPage::updateInputContextAfterBlurringAndRefocusingElementIfNeeded):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::removeSource):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::createRemoteMediaSource):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::createRemoteMediaSource):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::requestVideoContentLayer):
(WebKit::VideoFullscreenManager::returnVideoContentLayer):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::willExitFullscreen):
(WebKit::VideoFullscreenManager::didEnterFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):

Source/WebKitLegacy:

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::deleteDatabase):
(InProcessIDBServer::didDeleteDatabase):
(InProcessIDBServer::openDatabase):
(InProcessIDBServer::didOpenDatabase):
(InProcessIDBServer::didAbortTransaction):
(InProcessIDBServer::didCommitTransaction):
(InProcessIDBServer::didCreateObjectStore):
(InProcessIDBServer::didDeleteObjectStore):
(InProcessIDBServer::didRenameObjectStore):
(InProcessIDBServer::didClearObjectStore):
(InProcessIDBServer::didCreateIndex):
(InProcessIDBServer::didDeleteIndex):
(InProcessIDBServer::didRenameIndex):
(InProcessIDBServer::didPutOrAdd):
(InProcessIDBServer::didGetRecord):
(InProcessIDBServer::didGetAllRecords):
(InProcessIDBServer::didGetCount):
(InProcessIDBServer::didDeleteRecord):
(InProcessIDBServer::didOpenCursor):
(InProcessIDBServer::didIterateCursor):
(InProcessIDBServer::abortTransaction):
(InProcessIDBServer::commitTransaction):
(InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(InProcessIDBServer::createObjectStore):
(InProcessIDBServer::deleteObjectStore):
(InProcessIDBServer::renameObjectStore):
(InProcessIDBServer::clearObjectStore):
(InProcessIDBServer::createIndex):
(InProcessIDBServer::deleteIndex):
(InProcessIDBServer::renameIndex):
(InProcessIDBServer::putOrAdd):
(InProcessIDBServer::getRecord):
(InProcessIDBServer::getAllRecords):
(InProcessIDBServer::getCount):
(InProcessIDBServer::deleteRecord):
(InProcessIDBServer::openCursor):
(InProcessIDBServer::iterateCursor):
(InProcessIDBServer::establishTransaction):
(InProcessIDBServer::fireVersionChangeEvent):
(InProcessIDBServer::didStartTransaction):
(InProcessIDBServer::didCloseFromServer):
(InProcessIDBServer::notifyOpenDBRequestBlocked):
(InProcessIDBServer::databaseConnectionPendingClose):
(InProcessIDBServer::databaseConnectionClosed):
(InProcessIDBServer::abortOpenAndUpgradeNeeded):
(InProcessIDBServer::didFireVersionChangeEvent):
(InProcessIDBServer::openDBRequestCancelled):
(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
(InProcessIDBServer::closeAndDeleteDatabasesModifiedSince):

Source/WebKitLegacy/mac:

  • Plugins/Hosted/HostedNetscapePluginStream.mm:

(WebKit::HostedNetscapePluginStream::start):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::start):

Source/WTF:

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

  • wtf/glib/SocketConnection.cpp:

(WTF::SocketConnection::SocketConnection):
(WTF::SocketConnection::waitForSocketWritability):

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::callUIScriptCallback):

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::doAsyncTask):
(WTR::UIScriptControllerIOS::zoomToScale):

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::doAsyncTask):
(WTR::UIScriptControllerMac::activateDataListSuggestion):
(WTR::UIScriptControllerMac::removeViewFromWindow):
(WTR::UIScriptControllerMac::addViewToWindow):

  • DumpRenderTree/win/UIScriptControllerWin.cpp:

(WTR::UIScriptControllerWin::doAsyncTask):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::H2::Connection::receive const):

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::setDidShowContextMenuCallback):
(WTR::UIScriptControllerCocoa::setDidDismissContextMenuCallback):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::doAsyncTask):
(WTR::UIScriptControllerGtk::activateAtPoint):
(WTR::UIScriptControllerGtk::removeViewFromWindow):
(WTR::UIScriptControllerGtk::addViewToWindow):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::doAfterPresentationUpdate):
(WTR::UIScriptControllerIOS::doAfterNextStablePresentationUpdate):
(WTR::UIScriptControllerIOS::ensurePositionInformationIsUpToDateAt):
(WTR::UIScriptControllerIOS::doAfterVisibleContentRectUpdate):
(WTR::UIScriptControllerIOS::zoomToScale):
(WTR::UIScriptControllerIOS::retrieveSpeakSelectionContent):
(WTR::UIScriptControllerIOS::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerIOS::touchDownAtPoint):
(WTR::UIScriptControllerIOS::liftUpAtPoint):
(WTR::UIScriptControllerIOS::twoFingerSingleTapAtPoint):
(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
(WTR::UIScriptControllerIOS::doubleTapAtPoint):
(WTR::UIScriptControllerIOS::stylusDownAtPoint):
(WTR::UIScriptControllerIOS::stylusMoveToPoint):
(WTR::UIScriptControllerIOS::stylusUpAtPoint):
(WTR::UIScriptControllerIOS::stylusTapAtPointWithModifiers):
(WTR::UIScriptControllerIOS::longPressAtPoint):
(WTR::UIScriptControllerIOS::typeCharacterUsingHardwareKeyboard):
(WTR::UIScriptControllerIOS::dismissFilePicker):
(WTR::UIScriptControllerIOS::applyAutocorrection):
(WTR::UIScriptControllerIOS::simulateRotation):
(WTR::UIScriptControllerIOS::simulateRotationLikeSafari):
(WTR::UIScriptControllerIOS::setDidStartFormControlInteractionCallback):
(WTR::UIScriptControllerIOS::setDidEndFormControlInteractionCallback):
(WTR::UIScriptControllerIOS::setWillBeginZoomingCallback):
(WTR::UIScriptControllerIOS::setDidEndZoomingCallback):
(WTR::UIScriptControllerIOS::setDidShowKeyboardCallback):
(WTR::UIScriptControllerIOS::setDidHideKeyboardCallback):
(WTR::UIScriptControllerIOS::setWillStartInputSessionCallback):
(WTR::UIScriptControllerIOS::chooseMenuAction):
(WTR::UIScriptControllerIOS::setWillPresentPopoverCallback):
(WTR::UIScriptControllerIOS::setDidDismissPopoverCallback):
(WTR::UIScriptControllerIOS::setDidEndScrollingCallback):
(WTR::UIScriptControllerIOS::activateDataListSuggestion):
(WTR::UIScriptControllerIOS::doAfterDoubleTapDelay):
(WTR::UIScriptControllerIOS::installTapGestureOnWindow):

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::zoomToScale):
(WTR::UIScriptControllerMac::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerMac::chooseMenuAction):
(WTR::UIScriptControllerMac::activateAtPoint):

  • WebKitTestRunner/win/UIScriptControllerWin.cpp:

(WTR::UIScriptControllerWin::doAsyncTask):

  • WebKitTestRunner/wpe/UIScriptControllerWPE.cpp:

(WTR::UIScriptControllerWPE::doAsyncTask):
(WTR::UIScriptControllerWPE::activateAtPoint):
(WTR::UIScriptControllerWPE::removeViewFromWindow):
(WTR::UIScriptControllerWPE::addViewToWindow):

10:12 AM Changeset in webkit [282754] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Fix race in RemoteRenderingBackend::allowsExitUnderMemoryPressure()
https://bugs.webkit.org/show_bug.cgi?id=229870
<rdar://82459484>

Reviewed by Simon Fraser.

RemoteRenderingBackend::allowsExitUnderMemoryPressure() gets called on the main thread while
RemoteResourceCache is always modified on a work queue. Introduce a std::atomic<bool> on
the RemoteResourceCache that RemoteRenderingBackend::allowsExitUnderMemoryPressure() can
safely query from the main thread.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::updateRenderingResourceRequest):
(WebKit::RemoteRenderingBackend::allowsExitUnderMemoryPressure const):

  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::RemoteResourceCache):
(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::maybeRemoveResource):
(WebKit::RemoteResourceCache::updateHasActiveDrawables):

  • GPUProcess/graphics/RemoteResourceCache.h:

(WebKit::RemoteResourceCache::hasActiveDrawables const):

9:56 AM Changeset in webkit [282753] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

REGRESSION (r281102?): [ Mac ] media/track/track-in-band.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229478

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:52 AM Changeset in webkit [282752] by jer.noble@apple.com
  • 11 edits in trunk/Source

[Cocoa] Make AVSampleBufferVideoOutput support an Experimental Feature
https://bugs.webkit.org/show_bug.cgi?id=230424

Reviewed by Eric Carlson.

Source/WebCore:

Move AVSampleBufferVideoOutput from a compile-time to a runtime enabled
feature for A/B testing purposes.

  • page/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::setMediaSourceInlinePaintingEnabled):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::mediaSourceInlinePaintingEnabled const):

  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::setMediaSourceInlinePaintingEnabled):
(WebCore::MediaSessionManagerCocoa::mediaSourceInlinePaintingEnabled):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

Source/WebCore/PAL:

Drive-by fix: fix up the declarations in AVFoundationSPI.h.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformHave.h:
9:26 AM Changeset in webkit [282751] by graouts@webkit.org
  • 8 edits in trunk/Source/WebCore

TimingFunction::transformTime() is poorly-named
https://bugs.webkit.org/show_bug.cgi?id=230478

Reviewed by Simon Fraser.

This function transforms an input _progress_ not a time, so we rename it to transformProgress()
and name its first parameter accordingly.

  • animation/AnimationEffect.cpp:

(WebCore::AnimationEffect::getComputedTiming const):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):

  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::animateScroll):

  • platform/animation/TimingFunction.cpp:

(WebCore::TimingFunction::transformProgress const):
(WebCore::TimingFunction::transformTime const): Deleted.

  • platform/animation/TimingFunction.h:
  • platform/graphics/nicosia/NicosiaAnimation.cpp:

(Nicosia::Animation::apply):

  • platform/mac/ScrollbarsControllerMac.mm:

(-[WebScrollbarPartAnimation setCurrentProgress:]):

9:19 AM Changeset in webkit [282750] by Aditya Keerthi
  • 20 edits
    12 adds in trunk

Implement input-security
https://bugs.webkit.org/show_bug.cgi?id=184510
rdar://79979992

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add web platform tests for input-security.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-ui/input-security-auto-sensitive-text-input-expected.html: Added.
  • web-platform-tests/css/css-ui/input-security-auto-sensitive-text-input.html: Added.
  • web-platform-tests/css/css-ui/input-security-computed-expected.txt: Added.
  • web-platform-tests/css/css-ui/input-security-computed.html: Added.
  • web-platform-tests/css/css-ui/input-security-non-sensitive-elements-expected.html: Added.
  • web-platform-tests/css/css-ui/input-security-non-sensitive-elements.html: Added.
  • web-platform-tests/css/css-ui/input-security-none-sensitive-text-input-expected.html: Added.
  • web-platform-tests/css/css-ui/input-security-none-sensitive-text-input.html: Added.
  • web-platform-tests/css/css-ui/input-security-parsing-expected.txt: Added.
  • web-platform-tests/css/css-ui/input-security-parsing.html: Added.
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Implement the input-security property as specified in
https://drafts.csswg.org/css-ui-4/#input-security.

The property provides authors a way to enable/disable obscuring of text
in sensitive text inputs, such as <input type=password>. While the
property is similar to the non-standard -webkit-text-security property
at a surface level, there are several differences that make input-security
more than a simple alias/synonym.

  1. -webkit-text-security is an inherited property, input-security is not.
  1. input-security only applies to sensitive text inputs, whereas -webkit-text-security applies to everything but sensitive text inputs. The latter is due to the presence of an !important rule in the UA stylesheet that prevented authors from disabling/controlling obscuring.
  1. -webkit-text-security supports additional values that control the appearance of obscured characters. input-security is a simple toggle.

However, while an alias is not possible, the implementation can still
leverage the existing text security logic under the hood.

Tests: fast/css/computed-text-security-for-input-security.html

imported/w3c/web-platform-tests/css/css-ui/input-security-auto-sensitive-text-input.html
imported/w3c/web-platform-tests/css/css-ui/input-security-computed.html
imported/w3c/web-platform-tests/css/css-ui/input-security-non-sensitive-elements.html
imported/w3c/web-platform-tests/css/css-ui/input-security-none-sensitive-text-input.html
imported/w3c/web-platform-tests/css/css-ui/input-security-parsing.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator InputSecurity const):

  • css/CSSProperties.json:
  • css/html.css:

(input[type="password"]):

Remove the -webkit-text-security rule, as password inputs are obscured
by default (input-security: auto), and to support disabling of
obscuring.

(input:-webkit-autofill-strong-password, input:-webkit-autofill-strong-password-viewable):

Use input-security to make the characters viewable, as
-webkit-text-security no longer has an effect on password inputs in
the UA stylesheet. Note that the property already had no effect in
author stylesheets.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::inputSecurity const):
(WebCore::RenderStyle::setInputSecurity):
(WebCore::RenderStyle::initialInputSecurity):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleAdjuster.cpp:

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

Control the obscuring of text in password inputs by setting appropriate
TextSecurity value in RenderStyle, corresponding to the InputSecurity
value. This implementation was chosen for two reasons:

  1. Leverage the existing logic which obscures characters based on the style's TextSecurity value. Note that it is already not possible to specify other TextSecurity value's for password inputs, so there is no risk in forcing a TextSecurity value for a given InputSecurity.
  1. Ensure the computed value for -webkit-text-security is not "none" (the default) when input-security is "auto". This behavior is necessary as there are known existing scripts that check the computed value for -webkit-text-security to determine whether text in an input is obscured.

LayoutTests:

Add a test to verify the interaction between the new input-security
property, and the existing -webkit-text-security property. See the
WebCore ChangeLog for more details.

Rebaselined existing tests to account for the existence of a new CSS
property.

  • fast/css/computed-text-security-for-input-security-expected.txt: Added.
  • fast/css/computed-text-security-for-input-security.html: Added.
  • 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:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
9:01 AM Changeset in webkit [282749] by Simon Fraser
  • 19 edits in trunk/Source/WebCore

Have ScrollingMomentumCalculator work in terms of ScrollExtents
https://bugs.webkit.org/show_bug.cgi?id=230465

Reviewed by Wenson Hsieh.

ScrollAnimator gets min/max scroll offsets and the viewport size via a ScrollExtents
class. To ease a future transition of ScrollingMomentumCalculator to be a ScrollAnimator,
move ScrollingMomentumCalculator to use the same struct, which is modified to satisfy
the need to provide ScrollingMomentumCalculatorMac with the contents size.

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

(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollExtents const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollExtent const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::viewportSize const): Deleted.

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

(WebCore::ScrollAnimationKinetic::startAnimatedScrollWithInitialVelocity):

  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::startOrRetargetAnimation):
(WebCore::ScrollAnimationSmooth::updateScrollExtents):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scrollExtents const):
(WebCore::ScrollAnimator::scrollExtentsForAnimation):
(WebCore::ScrollAnimator::scrollExtent const): Deleted.
(WebCore::ScrollAnimator::viewportSize const): Deleted.

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

(WebCore::ScrollSnapAnimatorState::transitionToSnapAnimationState):
(WebCore::ScrollSnapAnimatorState::transitionToGlideAnimationState):
(WebCore::ScrollSnapAnimatorState::setupAnimationForState):
(WebCore::ScrollSnapAnimatorState::targetOffsetForStartOffset const):

  • platform/ScrollSnapAnimatorState.h:
  • platform/ScrollTypes.h:

(WebCore::ScrollExtents::minimumScrollOffset const):
(WebCore::ScrollExtents::maximumScrollOffset const):

  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::setNearestScrollSnapIndexForAxisAndOffset):
(WebCore::ScrollingEffectsController::adjustScrollDestination):

  • platform/ScrollingEffectsController.h:
  • platform/ScrollingMomentumCalculator.cpp:

(WebCore::ScrollingMomentumCalculator::ScrollingMomentumCalculator):
(WebCore::ScrollingMomentumCalculator::predictedDestinationOffset):
(WebCore::ScrollingMomentumCalculator::create):
(WebCore::BasicScrollingMomentumCalculator::BasicScrollingMomentumCalculator):

  • platform/ScrollingMomentumCalculator.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::statelessSnapTransitionTimerFired):
(WebCore::ScrollingEffectsController::processWheelEventForScrollSnap):

  • platform/mac/ScrollingMomentumCalculatorMac.h:
  • platform/mac/ScrollingMomentumCalculatorMac.mm:

(WebCore::ScrollingMomentumCalculator::create):
(WebCore::ScrollingMomentumCalculatorMac::ScrollingMomentumCalculatorMac):
(WebCore::ScrollingMomentumCalculatorMac::ensurePlatformMomentumCalculator):

8:04 AM Changeset in webkit [282748] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unskip COOP tests that were marked as flaky as they have no recent failures on the bots.

  • platform/mac/TestExpectations:
7:35 AM Changeset in webkit [282747] by ntim@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

Import inert/inert-on-non-html.tentative.html from WPT
https://bugs.webkit.org/show_bug.cgi?id=230474

Reviewed by Youenn Fablet.

  • web-platform-tests/inert/inert-on-non-html.tentative.html: Added.
  • web-platform-tests/inert/inert-on-non-html.tentative-expected.txt: Added.
  • web-platform-tests/inert/w3c-import.log:
7:22 AM Changeset in webkit [282746] by commit-queue@webkit.org
  • 7 edits
    7 adds in trunk

Web Share permission policy "web-share" and "self" as the allowlist
https://bugs.webkit.org/show_bug.cgi?id=214448

Patch by Marcos Caceres <Marcos Caceres> on 2021-09-20
Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/tests/webshare/webshare-allow-attribute-canShare.https.html

http/tests/webshare/webshare-allow-attribute-share.https.html

  • html/FeaturePolicy.cpp:

(WebCore::policyTypeName):
(WebCore::FeaturePolicy::parse):
(WebCore::FeaturePolicy::allows const):

  • html/FeaturePolicy.h:
  • page/Navigator.cpp:

(WebCore::Navigator::canShare):
(WebCore::Navigator::share):

LayoutTests:

  • http/tests/webshare/resources/webshare-postmessage.html: Added.
  • http/tests/webshare/webshare-allow-attribute-canShare.https-expected.txt: Added.
  • http/tests/webshare/webshare-allow-attribute-canShare.https.html: Added.
  • http/tests/webshare/webshare-allow-attribute-share.https-expected.txt: Added.
  • http/tests/webshare/webshare-allow-attribute-share.https.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
7:09 AM Changeset in webkit [282745] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

Web Share tests are out of date
https://bugs.webkit.org/show_bug.cgi?id=229489

Patch by Marcos Caceres <Marcos Caceres> on 2021-09-20
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/web-share/canShare.https.html:
  • web-platform-tests/web-share/share-consume-activation.https.html:
  • web-platform-tests/web-share/share-empty.https.html:
  • web-platform-tests/web-share/share-securecontext.http.html:
  • web-platform-tests/web-share/share-simple-manual.https.html:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/web-share/canShare.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/web-share/canShare.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt:
7:00 AM Changeset in webkit [282744] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Remove redundant Run::m_isLineSpanning
https://bugs.webkit.org/show_bug.cgi?id=230470

Reviewed by Antti Koivisto.

FIXME got implemented. Run iterators do skip line spanning inline boxes. We don't need this anymore.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::Run::hasContent const):
(WebCore::Layout::Run::Run):
(WebCore::Layout::Run::isLineSpanning const): Deleted.

5:04 AM Changeset in webkit [282743] by youenn@apple.com
  • 66 edits
    35 adds
    3 deletes in trunk/LayoutTests

Resync WPT webrtc tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=229549
<rdar://problem/82670236>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/webrtc/RTCConfiguration-iceServers-expected.txt:
  • web-platform-tests/webrtc/RTCConfiguration-iceServers.html:
  • web-platform-tests/webrtc/RTCDataChannel-bufferedAmount-expected.txt:
  • web-platform-tests/webrtc/RTCDataChannel-iceRestart-expected.txt: Added.
  • web-platform-tests/webrtc/RTCDataChannel-iceRestart.html: Added.
  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
  • web-platform-tests/webrtc/RTCDataChannel-send.html:
  • web-platform-tests/webrtc/RTCDtlsTransport-state-expected.txt:
  • web-platform-tests/webrtc/RTCDtlsTransport-state.html:
  • web-platform-tests/webrtc/RTCIceConnectionState-candidate-pair.https-expected.txt:
  • web-platform-tests/webrtc/RTCIceTransport-extension-helper.js: Removed.
  • web-platform-tests/webrtc/RTCIceTransport-extension.https-expected.txt:
  • web-platform-tests/webrtc/RTCIceTransport-extension.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-connectionSetup.html:
  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate.html:
  • web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-addTrack.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-capture-video.https.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-connectionState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-connectionState.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-createOffer-offerToReceive-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-createOffer-offerToReceive.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-getDefaultIceServers-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-getDefaultIceServers.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-getIdentityAssertion.sub-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-getIdentityAssertion.sub.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-helper.js:

(doExchange):
(async listenForSSRCs):

  • web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState.html:
  • web-platform-tests/webrtc/RTCPeerConnection-mandatory-getStats.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-mandatory-getStats.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-peerIdentity-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-peerIdentity.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-plan-b-is-not-supported-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-plan-b-is-not-supported.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-relay-canvas.https-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-relay-canvas.https.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-remote-track-mute.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-restartIce.https.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer.html:
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-tracks.https-expected.txt: Added.
  • web-platform-tests/webrtc/RTCRtpParameters-degradationPreference-expected.txt: Added.
  • web-platform-tests/webrtc/RTCRtpParameters-degradationPreference.html: Added.
  • web-platform-tests/webrtc/RTCRtpTransceiver-setDirection-expected.txt: Added.
  • web-platform-tests/webrtc/RTCRtpTransceiver-setDirection.html: Added.
  • web-platform-tests/webrtc/RTCRtpTransceiver-stop-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver-stop.html:
  • web-platform-tests/webrtc/RTCRtpTransceiver.https.html:
  • web-platform-tests/webrtc/RTCStats-helper.js:

(validateCodecStats):

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt: Removed.
  • web-platform-tests/webrtc/datachannel-emptystring.html: Removed.
  • web-platform-tests/webrtc/getstats.html:
  • web-platform-tests/webrtc/identity-helper.sub.js: Added.

(parseAssertionResult):
(getIdpDomains):
(assert_rtcerror_rejection):
(set hostString):

  • web-platform-tests/webrtc/no-media-call.html:
  • web-platform-tests/webrtc/promises-call.html:
  • web-platform-tests/webrtc/protocol/README.txt:
  • web-platform-tests/webrtc/protocol/dtls-setup.https-expected.txt: Added.
  • web-platform-tests/webrtc/protocol/dtls-setup.https.html: Added.
  • web-platform-tests/webrtc/protocol/handover-datachannel-expected.txt: Added.
  • web-platform-tests/webrtc/protocol/handover-datachannel.html: Added.
  • web-platform-tests/webrtc/protocol/handover.html:
  • web-platform-tests/webrtc/protocol/rtp-clockrate-expected.txt: Added.
  • web-platform-tests/webrtc/protocol/rtp-clockrate.html: Added.
  • web-platform-tests/webrtc/protocol/rtp-extension-support-expected.txt: Added.
  • web-platform-tests/webrtc/protocol/rtp-extension-support.html: Added.
  • web-platform-tests/webrtc/protocol/rtp-payloadtypes.html:
  • web-platform-tests/webrtc/protocol/sdes-dont-dont-dont-expected.txt: Added.
  • web-platform-tests/webrtc/protocol/sdes-dont-dont-dont.html: Added.
  • web-platform-tests/webrtc/protocol/split.https.html:
  • web-platform-tests/webrtc/protocol/vp8-fmtp-expected.txt: Added.
  • web-platform-tests/webrtc/protocol/vp8-fmtp.html: Added.
  • web-platform-tests/webrtc/protocol/w3c-import.log:
  • web-platform-tests/webrtc/simplecall-no-ssrcs.https.html:
  • web-platform-tests/webrtc/simplecall.https.html:
  • web-platform-tests/webrtc/simulcast/basic.https-expected.txt:
  • web-platform-tests/webrtc/simulcast/basic.https.html:
  • web-platform-tests/webrtc/simulcast/getStats.https-expected.txt:
  • web-platform-tests/webrtc/simulcast/h264.https-expected.txt:
  • web-platform-tests/webrtc/simulcast/h264.https.html:
  • web-platform-tests/webrtc/simulcast/setParameters-active.https-expected.txt:
  • web-platform-tests/webrtc/simulcast/setParameters-active.https.html:
  • web-platform-tests/webrtc/simulcast/vp8.https-expected.txt:
  • web-platform-tests/webrtc/simulcast/vp8.https.html:
  • web-platform-tests/webrtc/tools/package.json:
  • web-platform-tests/webrtc/w3c-import.log:

LayoutTests:

Unskipping some tests that are no longer flaky.
Marking some new tests as flaky.

1:08 AM Changeset in webkit [282742] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Move toolchains to UserFlatpak and improve SDK upgrades
https://bugs.webkit.org/show_bug.cgi?id=230201

Patch by Philippe Normand <pnormand@igalia.com> on 2021-09-20
Reviewed by Carlos Alberto Lopez Perez.

As toolchain archives depend on the SDK runtime, it makes sense to move them in the
corresponding UserFlatpak folder, so that when SDK is upgraded, stale toolchains are
removed. The SDK upgrade is also now handling cached SSCache authentication tokens and
propagating those in the newly installed SDK. Finally, SDK upgrades will now also clear
CMake cache files on WebKit builds, so that hopefully, existing build directories no longer
need to be manually removed.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.main):
(WebkitFlatpak.acquire_sccache_auth_token_from_config_file):
(WebkitFlatpak.save_config):

Sep 19, 2021:

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

Have ScrollAnimation work in terms of offsets, not positions
https://bugs.webkit.org/show_bug.cgi?id=230450

Reviewed by Antti Koivisto.

Scroll positions can have negative values in RTL content. It's simpler for ScrollAnimation
to work on zero-based scroll offsets. ScrollAnimator handles the mapping from these to
ScrollPositions.

Also share a bit of setCurrentPosition() code. This required adding an early return in
ScrollableArea::setScrollPositionFromAnimation() to avoid re-entrant calls during scrolling
tree commit, which would cause deadlocks on the scrolling tree lock, which happened when a
ScrollAnimation set a fractional offset.

  • platform/KeyboardScrollingAnimator.cpp:

(WebCore::KeyboardScrollingAnimator::scrollableDirectionsFromPosition const): Clarify offset vs. position.
(WebCore::KeyboardScrollingAnimator::updateKeyboardScrollPosition):
(WebCore::KeyboardScrollingAnimator::scrollableDirectionsFromOffset const): Deleted.

  • platform/KeyboardScrollingAnimator.h:
  • platform/ScrollAnimation.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::PerAxisData::PerAxisData):
(WebCore::ScrollAnimationKinetic::PerAxisData::animateScroll):
(WebCore::ScrollAnimationKinetic::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationKinetic::animationTimerFired):

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

(WebCore::ScrollAnimationSmooth::startAnimatedScroll):
(WebCore::ScrollAnimationSmooth::startAnimatedScrollToDestination):
(WebCore::ScrollAnimationSmooth::retargetActiveAnimation):
(WebCore::ScrollAnimationSmooth::startOrRetargetAnimation):
(WebCore::ScrollAnimationSmooth::updateScrollExtents):
(WebCore::ScrollAnimationSmooth::animateScroll):
(WebCore::ScrollAnimationSmooth::animationTimerFired):

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

(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation):
(WebCore::ScrollAnimator::scrollToPositionWithAnimation):
(WebCore::ScrollAnimator::offsetFromPosition const):
(WebCore::ScrollAnimator::positionFromOffset const):
(WebCore::ScrollAnimator::setCurrentPosition):
(WebCore::ScrollAnimator::notifyPositionChanged):
(WebCore::ScrollAnimator::scrollAnimationDidUpdate):
(WebCore::ScrollAnimator::scrollExtentsForAnimation):
(WebCore::ScrollAnimator::offsetFromPosition): Deleted.
(WebCore::ScrollAnimator::positionFromOffset): Deleted.

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

(WebCore::ScrollView::setScrollOffset):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::setScrollPositionFromAnimation):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::minimumScrollOffset const): minimumScrollOffset is always 0,0 but add this function for symmetry.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::immediateScrollBy):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::clampScrollOffset const):

5:10 PM Changeset in webkit [282740] by Wenson Hsieh
  • 7 edits in trunk/Source

Teach WebKit::createShareableBitmap to snapshot video elements
https://bugs.webkit.org/show_bug.cgi?id=230468

Reviewed by Tim Horton.

Source/WebCore:

Now that createShareableBitmap may return images for video elements, we need to ensure that we explicitly
avoid allowing Live Text in video elements, since doing so will (1) break built-in platform media controls,
which also share the same shadow root, and (2) lead to confusing results when playing or seeking in videos,
since the recognized text falls out of sync with the video frame.

  • html/HTMLVideoElement.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::textRecognitionCandidateElement const):

For the above reasons, we refactor logic to check if the currently hovered node is a candidate for text
recognition, such that the video element check is consolidated all in one place.

(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::textRecognitionHoverTimerFired):

  • page/EventHandler.h:
  • rendering/RenderVideo.h:

Source/WebKit:

createShareableBitmap currently only returns a non-null image bitmap for image renderers that have cached
images; notably, this omits video elements. For use in future patches, we should allow this helper function to
handle video elements by snapshotting the current frame of the video.

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:

(WebKit::createShareableBitmap):

4:46 PM Changeset in webkit [282739] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed gardening after r282738.

2:18 PM Changeset in webkit [282738] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] overflow-wrap: anywhere/break-word rules over word-break: keep-all
https://bugs.webkit.org/show_bug.cgi?id=230458

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-keep-all-001-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-text/#overflow-wrap-property
"...An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are
no otherwise-acceptable break points in the line."

"word-break: keep all" makes the content "otherwise unbreakable sequence of characters". It simply means
that "overflow-wrap: anywhere/break-word" may break the content at an arbitrary position even when "keep-all" is set,

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):

10:04 AM Changeset in webkit [282737] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

[lFC][Integration] Enable some text painting features
https://bugs.webkit.org/show_bug.cgi?id=230459

Reviewed by Sam Weinig.

Enable text-shadow and background-clip:text.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

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

Allow TextClip paint phase.

9:42 AM Changeset in webkit [282736] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

[LFC][Integration] Make block selection gap painting use iterator
https://bugs.webkit.org/show_bug.cgi?id=230457

Reviewed by Alan Bujtas.

Make the code not depend on legacy inline boxes.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSelectionGap): Deleted.

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

(WebCore::RenderBlock::logicalLeftSelectionGap):
(WebCore::RenderBlock::logicalRightSelectionGap):

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

(WebCore::RenderBlockFlow::inlineSelectionGaps):

7:27 AM Changeset in webkit [282735] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

[LFC][Integration] Paint LFC text runs with TextBoxPainter
https://bugs.webkit.org/show_bug.cgi?id=230455

Reviewed by Alan Bujtas.

This will give LFC path all the same painting features (including selections, markers etc) that
the legacy path has. This patch does not enable any new features yet.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

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

Use TextBoxPainter.

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

(WebCore::LegacyInlineTextBox::textOriginFromBoxRect const): Deleted.
(WebCore::LegacyInlineTextBox::debugTextShadow const): Deleted.

  • rendering/LegacyInlineTextBox.h:
  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::TextBoxPainter):

TextBoxPainter now uses the inline iterator instead of directly accessing LegacyInlineTextBox.

(WebCore::TextBoxPainter::paint):
(WebCore::TextBoxPainter::createMarkedTextFromSelectionInBox):
(WebCore::TextBoxPainter::paintBackground):
(WebCore::TextBoxPainter::paintForegroundAndDecorations):
(WebCore::TextBoxPainter::paintCompositionBackground):
(WebCore::TextBoxPainter::paintForeground):
(WebCore::TextBoxPainter::paintDecoration):
(WebCore::TextBoxPainter::paintCompositionUnderlines):
(WebCore::textPosition):
(WebCore::TextBoxPainter::paintCompositionUnderline):
(WebCore::TextBoxPainter::paintPlatformDocumentMarkers):
(WebCore::TextBoxPainter::calculateUnionOfAllDocumentMarkerBounds):
(WebCore::TextBoxPainter::computePaintRect):
(WebCore::fontCascadeFor):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter::computeHaveSelection const):
(WebCore::TextBoxPainter::combinedText const):
(WebCore::TextBoxPainter::fontCascade const):
(WebCore::TextBoxPainter::textOriginFromPaintRect const):
(WebCore::TextBoxPainter::debugTextShadow const):
(WebCore::createMarkedTextFromSelectionInBox): Deleted.

  • rendering/TextBoxPainter.h:

Sep 18, 2021:

9:25 PM Changeset in webkit [282734] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Add "Shaping" log channel
https://bugs.webkit.org/show_bug.cgi?id=230440

Reviewed by Darin Adler.

This logging has been useful to me before, so I figure it might be useful to other people.

This new channel is off by default.

No new tests because there is no behavior change.

  • platform/Logging.h:
  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::applyTransforms const):

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

7:55 PM Changeset in webkit [282733] by Simon Fraser
  • 7 edits
    4 moves in trunk/Source/WebCore

Move ScrollingMomentumCalculator into the platform directory
https://bugs.webkit.org/show_bug.cgi?id=230452

Reviewed by Wenson Hsieh.

ScrollingMomentumCalculator/ScrollingMomentumCalculatorMac have no non-platform dependencies.

Other changes are unified sources fallout.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/ScrollingMomentumCalculator.cpp: Renamed from Source/WebCore/page/scrolling/ScrollingMomentumCalculator.cpp.
  • platform/ScrollingMomentumCalculator.h: Renamed from Source/WebCore/page/scrolling/ScrollingMomentumCalculator.h.
  • platform/gamepad/mac/HIDGamepadElement.cpp:
  • platform/graphics/Model.cpp:
  • platform/mac/ScrollingMomentumCalculatorMac.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingMomentumCalculatorMac.h.
  • platform/mac/ScrollingMomentumCalculatorMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingMomentumCalculatorMac.mm.
5:56 PM Changeset in webkit [282732] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Scroll offsets in ScrollingMomentumCalculator should be FloatPoint, not FloatSize
https://bugs.webkit.org/show_bug.cgi?id=230451

Reviewed by Wenson Hsieh.

Scroll offsets are generally represented as IntPoint or FloatPoint. Have
ScrollingMomentumCalculator conform to this convention.

  • page/scrolling/ScrollingMomentumCalculator.cpp:

(WebCore::ScrollingMomentumCalculator::ScrollingMomentumCalculator):
(WebCore::ScrollingMomentumCalculator::setRetargetedScrollOffset):
(WebCore::ScrollingMomentumCalculator::predictedDestinationOffset):
(WebCore::BasicScrollingMomentumCalculator::linearlyInterpolatedOffsetAtProgress):
(WebCore::BasicScrollingMomentumCalculator::cubicallyInterpolatedOffsetAtProgress const):
(WebCore::BasicScrollingMomentumCalculator::scrollOffsetAfterElapsedTime):
(WebCore::BasicScrollingMomentumCalculator::initializeInterpolationCoefficientsIfNecessary):

  • page/scrolling/ScrollingMomentumCalculator.h:

(WebCore::ScrollingMomentumCalculator::retargetedScrollOffset const):

  • page/scrolling/mac/ScrollingMomentumCalculatorMac.h:
  • page/scrolling/mac/ScrollingMomentumCalculatorMac.mm:

(WebCore::ScrollingMomentumCalculatorMac::scrollOffsetAfterElapsedTime):
(WebCore::ScrollingMomentumCalculatorMac::predictedDestinationOffset):
(WebCore::ScrollingMomentumCalculatorMac::retargetedScrollOffsetDidChange):
(WebCore::ScrollingMomentumCalculatorMac::ensurePlatformMomentumCalculator):

3:59 PM Changeset in webkit [282731] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove some logging left in by mistake.

Unreviewed.

  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::startAnimatedScroll):
(WebCore::ScrollAnimationSmooth::startAnimatedScrollToDestination):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::setCurrentPosition):
(WebCore::ScrollAnimator::scrollAnimationDidUpdate):

3:44 PM Changeset in webkit [282730] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Remove use of NSScrollAnimationHelper for animated scrolls
https://bugs.webkit.org/show_bug.cgi?id=230445

Reviewed by Martin Robinson.

NSScrollAnimationHelper provided little utility. Under the hood it's ust an ease-in-out
animation with a duration based on distance, and that's exactly what ScrollAnimationSmooth
is now, so we can remove use of NSScrollAnimationHelper in ScrollAnimatorMac and just
use the ScrollAnimationSmooth from the base class.

This unifies the scroll animation used for keyboard scrolling and CSS smooth scrolling.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation):
(WebCore::ScrollAnimator::setCurrentPosition):
(WebCore::ScrollAnimator::scrollAnimationDidUpdate):

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::platformAllowsScrollAnimation const):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::scrollAnimationEnabledForSystem):
(WebCore::ScrollAnimatorMac::platformAllowsScrollAnimation const):
(WebCore::ScrollAnimatorMac::scroll):
(abs): Deleted.
(-[WebScrollAnimationHelperDelegate initWithScrollAnimator:]): Deleted.
(-[WebScrollAnimationHelperDelegate invalidate]): Deleted.
(-[WebScrollAnimationHelperDelegate bounds]): Deleted.
(-[WebScrollAnimationHelperDelegate _immediateScrollToPoint:]): Deleted.
(-[WebScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]): Deleted.
(-[WebScrollAnimationHelperDelegate convertSizeToBase:]): Deleted.
(-[WebScrollAnimationHelperDelegate convertSizeFromBase:]): Deleted.
(-[WebScrollAnimationHelperDelegate convertSizeToBacking:]): Deleted.
(-[WebScrollAnimationHelperDelegate convertSizeFromBacking:]): Deleted.
(-[WebScrollAnimationHelperDelegate superview]): Deleted.
(-[WebScrollAnimationHelperDelegate documentView]): Deleted.
(-[WebScrollAnimationHelperDelegate window]): Deleted.
(-[WebScrollAnimationHelperDelegate _recursiveRecomputeToolTips]): Deleted.
(WebCore::ScrollAnimatorMac::scrollToPositionWithAnimation): Deleted.
(WebCore::ScrollAnimatorMac::scrollToPositionWithoutAnimation): Deleted.
(WebCore::ScrollAnimatorMac::immediateScrollToPositionForScrollAnimation): Deleted.

  • platform/mac/ScrollbarsControllerMac.h:
1:41 PM Changeset in webkit [282729] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Rename haveScrolledSincePageLoad() and push the state to ScrollbarsController
https://bugs.webkit.org/show_bug.cgi?id=230444

Reviewed by Myles C. Maxfield.

r81159 added logic to suppress scrollbar animations during page load (delayed using a 100ms
timer in ScrollbarsControllerMac), but to unsuppress the animations when receiving user
events or scrolling. This state using the confusingly named "haveScrolledSincePageLoad",
which is really "a wheel evnet or scroll requires that we stop suppressing scrollbar
animations". So name it scrollbarAnimationsUnsuspendedByUserInteraction", and have
ScrollbarsController maintain the state, rather than ScrollAnimator.

Add some OverlayScrollbars logging to show this working (although it reveals that the
100ms timer can fire multiple times).

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::cancelAnimations):

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::haveScrolledSincePageLoad const): Deleted.
(WebCore::ScrollAnimator::setHaveScrolledSincePageLoad): Deleted.

  • platform/ScrollbarsController.cpp:

(WebCore::ScrollbarsController::shouldSuspendScrollbarAnimations const):
(WebCore::ScrollbarsController::cancelAnimations):
(WebCore::ScrollbarsController::didBeginScrollGesture):
(WebCore::ScrollbarsController::didEndScrollGesture):
(WebCore::ScrollbarsController::mayBeginScrollGesture):

  • platform/ScrollbarsController.h:

(WebCore::ScrollbarsController::scrollbarAnimationsUnsuspendedByUserInteraction const):
(WebCore::ScrollbarsController::setScrollbarAnimationsUnsuspendedByUserInteraction):
(WebCore::ScrollbarsController::cancelAnimations): Deleted.
(WebCore::ScrollbarsController::didBeginScrollGesture const): Deleted.
(WebCore::ScrollbarsController::didEndScrollGesture const): Deleted.
(WebCore::ScrollbarsController::mayBeginScrollGesture const): Deleted.

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::scroll):
(WebCore::ScrollAnimatorMac::handleWheelEventPhase):
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::ScrollAnimatorMac::cancelAnimations): Deleted.

  • platform/mac/ScrollbarsControllerMac.h:
  • platform/mac/ScrollbarsControllerMac.mm:

(-[WebScrollbarPartAnimation setCurrentProgress:]):
(-[WebScrollerImpDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
(WebCore::ScrollbarsControllerMac::cancelAnimations):
(WebCore::ScrollbarsControllerMac::didBeginScrollGesture):
(WebCore::ScrollbarsControllerMac::didEndScrollGesture):
(WebCore::ScrollbarsControllerMac::mayBeginScrollGesture):
(WebCore::ScrollbarsControllerMac::initialScrollbarPaintTimerFired):
(WebCore::ScrollbarsControllerMac::haveScrolledSincePageLoad const): Deleted.
(WebCore::ScrollbarsControllerMac::didBeginScrollGesture const): Deleted.
(WebCore::ScrollbarsControllerMac::didEndScrollGesture const): Deleted.
(WebCore::ScrollbarsControllerMac::mayBeginScrollGesture const): Deleted.

12:05 PM Changeset in webkit [282728] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Clean up the ScrollAnimator interface a little
https://bugs.webkit.org/show_bug.cgi?id=230324

Reviewed by Myles C. Maxfield.

Reduce brainprint by removing the "scroll to offset" variants; have the caller
do offset -> position conversion instead.

Move virtual functions close together. Remove updateScrollSnapState()
which was unimplemented.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::immediateScrollOnAxis):
(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation): Deleted.
(WebCore::ScrollAnimator::scrollToOffsetWithAnimation): Deleted.

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::scrollableArea const):
(WebCore::ScrollAnimator::processWheelEventForScrollSnap):
(WebCore::ScrollAnimator::currentPosition const):
(WebCore::ScrollAnimator::haveScrolledSincePageLoad const):
(WebCore::ScrollAnimator::setHaveScrolledSincePageLoad):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
(WebCore::ScrollableArea::doPostThumbMoveSnapping):

  • platform/mac/ScrollAnimatorMac.mm:
9:12 AM Changeset in webkit [282727] by Patrick Griffis
  • 7 edits in trunk/Source/WebCore

[GTK] Disable MediaSessionManagerGLib when MEDIA_SESSION disabled
https://bugs.webkit.org/show_bug.cgi?id=230420

Reviewed by Philippe Normand.

Previously WebKit would try to own the MPRIS bus names even though
the feature was disabled.

  • platform/RemoteCommandListener.cpp:

(WebCore::RemoteCommandListener::resetCreationFunction):

  • platform/audio/PlatformMediaSessionManager.cpp:
  • platform/audio/glib/MediaSessionManagerGLib.cpp:
  • platform/audio/glib/MediaSessionManagerGLib.h:
  • platform/glib/RemoteCommandListenerGLib.cpp:
  • platform/glib/RemoteCommandListenerGLib.h:
8:59 AM Changeset in webkit [282726] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Stretch the inline box with glyphs coming from fallback fonts.
https://bugs.webkit.org/show_bug.cgi?id=230439

Reviewed by Antti Koivisto.

https://www.w3.org/TR/css-inline-3/#inline-height
"...
When the computed line-height is normal, the layout bounds of an inline box encloses all its glyphs, going from the highest A to the deepest D.
(Note that glyphs in a single box can come from different fonts and thus might not all have the same A and D.)
..."
(This is still no-op as TextUtil::fallbackFontsForRun returns an empty set)

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustVerticalGeometryForInlineBoxWithFallbackFonts const):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
6:29 AM Changeset in webkit [282725] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Add skeleton implementation for fallback font support
https://bugs.webkit.org/show_bug.cgi?id=230433

Reviewed by Antti Koivisto.

This is in preparation for supporting inline box stretching glyphs coming from fallback fonts.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustVerticalGeometryForInlineBoxWithFallbackFonts const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const): Deleted.

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

(WebCore::Layout::TextUtil::fallbackFontsForRun):

  • layout/formattingContexts/inline/text/TextUtil.h:
6:29 AM Changeset in webkit [282724] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Enable surrogate pairs
https://bugs.webkit.org/show_bug.cgi?id=229434

Reviewed by Antti Koivisto.

The "break the content at arbitrary position" feature is already surrogate pair aware, so
let's enable this for IFC.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForCharacter):

1:56 AM Changeset in webkit [282723] by mmaxfield@apple.com
  • 21 edits
    1 add
    8 deletes in trunk

[iOS Family] Delete letterpress support
https://bugs.webkit.org/show_bug.cgi?id=230441

Reviewed by Tim Horton.

Source/WebCore:

It isn't necessary anymore.

Tests deleted.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationFlagsToCSSValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator OptionSet<TextDecoration> const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTextDecorationLine):

  • platform/graphics/FontCascade.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cocoa/FontCascadeCocoa.cpp: Added.

(WebCore::FontCascade::canReturnFallbackFontsForComplexText):
(WebCore::FontCascade::canExpandAroundIdeographsInComplexText):

  • platform/graphics/cocoa/FontCascadeCocoa.mm: Removed.
  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::drawGlyphs):
(WebCore::shouldUseLetterpressEffect): Deleted.

  • rendering/TextPaintStyle.cpp:

(WebCore::TextPaintStyle::operator== const):
(WebCore::computeTextPaintStyle):
(WebCore::updateGraphicsContext):

  • rendering/TextPaintStyle.h:
  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • TestExpectations:
  • fast/text/letterpress-different-expected-mismatch.html: Removed.
  • fast/text/letterpress-different.html: Removed.
  • fast/text/letterpress-paint-expected-mismatch.html: Removed.
  • fast/text/letterpress-paint.html: Removed.
  • platform/ios/TestExpectations:
  • platform/ios/ios/getComputedStyle-text-decoration-letterpress-expected.txt: Removed.
  • platform/ios/ios/getComputedStyle-text-decoration-letterpress.html: Removed.
  • platform/ios/ios/resources/getComputedStyle-text-decoration-letterpress.js: Removed.

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.

Note: See TracTimeline for information about the timeline view.