Timeline



Oct 31, 2021:

11:20 PM Changeset in webkit [285100] by Antti Koivisto
  • 4 edits in trunk

Fix :host invalidation when combined with pseudo classes in descendant position
https://bugs.webkit.org/show_bug.cgi?id=232544

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scoping/host-functional-descendant-invalidation-expected.txt:

Source/WebCore:

  • style/RuleSet.cpp:

(WebCore::Style::isHostSelectorMatchingInShadowTree):

Make more readable and accurate.

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

Compute m_hasHostPseudoClassRulesMatchingInShadowTree before bailing out for pseudo elements.

5:56 PM Changeset in webkit [285099] by Fujii Hironori
  • 25 edits
    12 copies
    18 adds in trunk

[WinCairo] New GraphicsLayer for GPU process mode
https://bugs.webkit.org/show_bug.cgi?id=228308

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWinCairo.cmake:

Source/WebCore:

  • PlatformWinCairo.cmake:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/wc/RemoteGraphicsContextGLProxyBaseWC.cpp: Added.

(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize):
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const):
(WebCore::RemoteGraphicsContextGLProxyBase::setPlatformLayer):

  • platform/graphics/wc/WCPlatformLayer.h: Added.
  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore::GraphicsContext::getWindowsContext): DisplayList
GraphicsContext doesn't have a HDC. Do nothing for DisplayList
context.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame):
Paint a frame by using GraphicsContext::drawNativeImage instead of
Cairo API for DisplayList.

Source/WebKit:

Added a new GraphicsLayer implementation GraphicsLayerWC which
transfers GraphicsLayer tree to GPU process and runs the
compositor (TextureMapper) in GPU process.

In GPU process mode, WebGL is run in GPU process. So, the
compositor should be run in GPU process. Otherwise, the output
texture of WebGL has to be transferred from GPU process to the
compositor process (UI process or web process).

Because ANGLE isn't thread-safe, the compositor and WebGL should
be run in the same thread in GPU process.

Enabling gpu_process_webgl also enables GPU process compositing now.

reg add HKEY_CURRENT_USER\Software\WebKit /v gpu_process_webgl /t REG_DWORD /d 1 /f

gpu_process_canvas_rendering can also be enabled.

reg add HKEY_CURRENT_USER\Software\WebKit /v gpu_process_canvas_rendering /t REG_DWORD /d 1 /f

Enabling gpu_process_dom_rendering is still experimental.

reg add HKEY_CURRENT_USER\Software\WebKit /v gpu_process_dom_rendering /t REG_DWORD /d 1 /f

The following commands restore the non-GPU process mode.

reg delete HKEY_CURRENT_USER\Software\WebKit /v gpu_process_canvas_rendering /f
reg delete HKEY_CURRENT_USER\Software\WebKit /v gpu_process_webgl /f
reg delete HKEY_CURRENT_USER\Software\WebKit /v gpu_process_dom_rendering /f

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createWCLayerTreeHost):
(WebKit::GPUConnectionToWebProcess::releaseWCLayerTreeHost):
(WebKit::GPUConnectionToWebProcess::findRemoteGraphicsContextGL):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/GPUProcess.h:

(WebKit::GPUProcess::sharedSceneContext):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:

(WebKit::RemoteGraphicsContextGL::platformLayer const):

  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.cpp:

(WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources):

  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.cpp: Added.

(WebKit::RemoteWCLayerTreeHost::create):
(WebKit::RemoteWCLayerTreeHost::RemoteWCLayerTreeHost):
(WebKit::RemoteWCLayerTreeHost::~RemoteWCLayerTreeHost):
(WebKit::RemoteWCLayerTreeHost::messageSenderConnection const):
(WebKit::RemoteWCLayerTreeHost::messageSenderDestinationID const):
(WebKit::RemoteWCLayerTreeHost::update):

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

(WebKit::WCScene::initialize):
(WebKit::WCScene::~WCScene):
(WebKit::WCScene::update):

  • GPUProcess/graphics/wc/WCScene.h: Added.
  • GPUProcess/graphics/wc/WCSceneContext.cpp: Added.

(WebKit::WCSceneContext::WCSceneContext):
(WebKit::WCSceneContext::makeContextCurrent):
(WebKit::WCSceneContext::createTextureMapper):
(WebKit::WCSceneContext::swapBuffers):

  • GPUProcess/graphics/wc/WCSceneContext.h: Added.
  • GPUProcess/graphics/wc/WCSharedSceneContextHolder.h: Added.

(WebKit::WCSharedSceneContextHolder::ensureHolderForWindow):
(WebKit::WCSharedSceneContextHolder::removeHolder):

  • GPUProcess/win/GPUProcessMainWin.cpp:

(WebKit::GPUProcessMain):

  • PlatformWin.cmake:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(conditions_for_header):

  • Shared/DrawingAreaInfo.h:
  • UIProcess/wc/DrawingAreaProxyWC.cpp: Added.

(WebKit::DrawingAreaProxyWC::DrawingAreaProxyWC):
(WebKit::DrawingAreaProxyWC::paint):
(WebKit::DrawingAreaProxyWC::sizeDidChange):
(WebKit::DrawingAreaProxyWC::update):
(WebKit::DrawingAreaProxyWC::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyWC::incorporateUpdate):
(WebKit::DrawingAreaProxyWC::discardBackingStore):

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

(WebKit::PageClientImpl::createDrawingAreaProxy):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):

  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.cpp: Added.

(WebKit::RemoteWCLayerTreeHostProxy::RemoteWCLayerTreeHostProxy):
(WebKit::RemoteWCLayerTreeHostProxy::~RemoteWCLayerTreeHostProxy):
(WebKit::RemoteWCLayerTreeHostProxy::messageSenderConnection const):
(WebKit::RemoteWCLayerTreeHostProxy::ensureGPUProcessConnection):
(WebKit::RemoteWCLayerTreeHostProxy::disconnectGpuProcessIfNeeded):
(WebKit::RemoteWCLayerTreeHostProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteWCLayerTreeHostProxy::messageSenderDestinationID const):
(WebKit::RemoteWCLayerTreeHostProxy::update):
(WebKit::RemoteWCLayerTreeHostProxy::didUpdate):

  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.h: Added.

(WebKit::RemoteWCLayerTreeHostProxy::wcLayerTreeHostIdentifier const):

  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.messages.in: Added.
  • WebProcess/GPU/graphics/wc/WCLayerTreeHostIdentifier.h: Added.
  • WebProcess/GPU/graphics/wc/WCPlatformLayerGCGL.h: Added.

(WebKit::WCPlatformLayerGCGL::WCPlatformLayerGCGL):
(WebKit::WCPlatformLayerGCGL::graphicsContextGLIdentifier):

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create):
(WebKit::DrawingArea::supportsGPUProcessRendering):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::updateGeometry):

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/wc/DrawingAreaWC.cpp: Added.

(WebKit::DrawingAreaWC::DrawingAreaWC):
(WebKit::DrawingAreaWC::~DrawingAreaWC):
(WebKit::DrawingAreaWC::graphicsLayerFactory):
(WebKit::DrawingAreaWC::updateRootLayers):
(WebKit::DrawingAreaWC::setRootCompositingLayer):
(WebKit::DrawingAreaWC::attachViewOverlayGraphicsLayer):
(WebKit::DrawingAreaWC::setLayerTreeStateIsFrozen):
(WebKit::DrawingAreaWC::updateGeometry):
(WebKit::DrawingAreaWC::setNeedsDisplay):
(WebKit::DrawingAreaWC::setNeedsDisplayInRect):
(WebKit::DrawingAreaWC::scroll):
(WebKit::DrawingAreaWC::triggerRenderingUpdate):
(WebKit::flushLayerImageBuffers):
(WebKit::DrawingAreaWC::isCompositingMode):
(WebKit::DrawingAreaWC::updateRendering):
(WebKit::DrawingAreaWC::sendUpdateAC):
(WebKit::shouldPaintBoundsRect):
(WebKit::DrawingAreaWC::sendUpdateNonAC):
(WebKit::DrawingAreaWC::graphicsLayerAdded):
(WebKit::DrawingAreaWC::graphicsLayerRemoved):
(WebKit::DrawingAreaWC::commitLayerUpateInfo):
(WebKit::DrawingAreaWC::createImageBuffer):
(WebKit::DrawingAreaWC::didUpdate):
(WebKit::DrawingAreaWC::RootLayerClient::RootLayerClient):
(WebKit::DrawingAreaWC::RootLayerClient::paintContents):
(WebKit::DrawingAreaWC::RootLayerClient::deviceScaleFactor const):

  • WebProcess/WebPage/wc/DrawingAreaWC.h: Added.
  • WebProcess/WebPage/wc/GraphicsLayerWC.cpp: Added.

(WebKit::GraphicsLayerWC::GraphicsLayerWC):
(WebKit::GraphicsLayerWC::~GraphicsLayerWC):
(WebKit::GraphicsLayerWC::generateLayerID):
(WebKit::GraphicsLayerWC::primaryLayerID const):
(WebKit::GraphicsLayerWC::setNeedsDisplay):
(WebKit::GraphicsLayerWC::setNeedsDisplayInRect):
(WebKit::GraphicsLayerWC::setContentsNeedsDisplay):
(WebKit::GraphicsLayerWC::setChildren):
(WebKit::GraphicsLayerWC::addChild):
(WebKit::GraphicsLayerWC::addChildAtIndex):
(WebKit::GraphicsLayerWC::addChildBelow):
(WebKit::GraphicsLayerWC::addChildAbove):
(WebKit::GraphicsLayerWC::replaceChild):
(WebKit::GraphicsLayerWC::removeFromParent):
(WebKit::GraphicsLayerWC::setMaskLayer):
(WebKit::GraphicsLayerWC::setReplicatedLayer):
(WebKit::GraphicsLayerWC::setReplicatedByLayer):
(WebKit::GraphicsLayerWC::setPosition):
(WebKit::GraphicsLayerWC::setAnchorPoint):
(WebKit::GraphicsLayerWC::setSize):
(WebKit::GraphicsLayerWC::setBoundsOrigin):
(WebKit::GraphicsLayerWC::setTransform):
(WebKit::GraphicsLayerWC::setChildrenTransform):
(WebKit::GraphicsLayerWC::setPreserves3D):
(WebKit::GraphicsLayerWC::setMasksToBounds):
(WebKit::GraphicsLayerWC::setOpacity):
(WebKit::GraphicsLayerWC::setContentsRect):
(WebKit::GraphicsLayerWC::setContentsClippingRect):
(WebKit::GraphicsLayerWC::setDrawsContent):
(WebKit::GraphicsLayerWC::setContentsVisible):
(WebKit::GraphicsLayerWC::setBackfaceVisibility):
(WebKit::GraphicsLayerWC::setContentsToSolidColor):
(WebKit::GraphicsLayerWC::setContentsToPlatformLayer):
(WebKit::GraphicsLayerWC::usesContentsLayer const):
(WebKit::GraphicsLayerWC::setShowDebugBorder):
(WebKit::GraphicsLayerWC::setDebugBorder):
(WebKit::GraphicsLayerWC::setShowRepaintCounter):
(WebKit::filtersCanBeComposited):
(WebKit::GraphicsLayerWC::setFilters):
(WebKit::GraphicsLayerWC::setBackdropFilters):
(WebKit::GraphicsLayerWC::setBackdropFiltersRect):
(WebKit::GraphicsLayerWC::noteLayerPropertyChanged):
(WebKit::GraphicsLayerWC::flushCompositingState):
(WebKit::GraphicsLayerWC::flushCompositingStateForThisLayerOnly):

  • WebProcess/WebPage/wc/GraphicsLayerWC.h: Added.
  • WebProcess/WebPage/wc/WCBackingStore.h: Added.

(WebKit::WCBackingStore::WCBackingStore):
(WebKit::WCBackingStore::imageBuffer):
(WebKit::WCBackingStore::setImageBuffer):
(WebKit::WCBackingStore::bitmap const):
(WebKit::WCBackingStore::encode const):
(WebKit::WCBackingStore::decode):

  • WebProcess/WebPage/wc/WCLayerFactory.cpp: Added.

(WebKit::WCLayerFactory::WCLayerFactory):
(WebKit::WCLayerFactory::createGraphicsLayer):

  • WebProcess/WebPage/wc/WCLayerFactory.h: Added.
  • WebProcess/WebPage/wc/WCUpateInfo.h: Added.

(WebKit::WCLayerUpateInfo::encode const):
(WebKit::WCLayerUpateInfo::decode):
(WebKit::WCUpateInfo::encode const):
(WebKit::WCUpateInfo::decode):

2:40 PM Changeset in webkit [285098] by Cameron McCormack
  • 14 edits in trunk/Source

Update Web IDL links to new URL
https://bugs.webkit.org/show_bug.cgi?id=232533
<rdar://problem/84842937>

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • Modules/mediastream/OverconstrainedError.idl:
  • bindings/js/JSCallbackData.cpp:
  • bindings/js/JSDOMAbstractOperations.h:
  • bindings/js/JSDOMConvertPromise.h:
  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/CodeGeneratorJS.pm:

(AddMapLikeAttributesAndOperationIfNeeded):
(AddSetLikeAttributesAndOperationIfNeeded):
(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):
(GenerateDeletePropertyCommon):
(GenerateDeleteProperty):
(GenerateDeletePropertyByIndex):
(GenerateNamedDeleterDefinition):
(AttributeShouldBeOnInstance):
(OperationShouldBeOnInstance):
(GenerateDictionaryImplementationContent):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):
(GenerateDefaultToJSONOperationDefinition):
(GenerateConstructorHelperMethods):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/IDLParser.pm:
  • bindings/scripts/preprocess-idls.pl:
  • dom/ExceptionCode.h:
1:31 PM Changeset in webkit [285097] by Fujii Hironori
  • 5 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/selection/3690703-2-expected.txt:
  • platform/wincairo/editing/selection/3690703-expected.txt:
  • platform/wincairo/editing/selection/3690719-expected.txt:
11:20 AM Changeset in webkit [285096] by mmaxfield@apple.com
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove some straggling files after r280467
https://bugs.webkit.org/show_bug.cgi?id=232541

Reviewed by Sam Weinig.

Somehow I must have missed some files.

No new tests because there is no behavior change.

  • Modules/webgpu/WHLSL/AST/WHLSLStatement.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLStatementList.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLType.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLProgram.cpp: Removed.
10:26 AM Changeset in webkit [285095] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Keep track of the text box offset in ubidi's paragraph content
https://bugs.webkit.org/show_bug.cgi?id=232540

Reviewed by Antti Koivisto.

This hashmap helps to map bidi boundary positions back to inline items.

The paragraph content string holds the InlineTextBox content (and injected control characters)
in DOM order. InlineTextItems hold start/end positions relative to their InlineTextBoxes.
We'll use this hashmap to figure out which InlineTextItems need splitting at bidi boundaries.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::handleInlineBox):
(WebCore::Layout::InlineItemsBuilder::enterBidiContext):
(WebCore::Layout::InlineItemsBuilder::exitBidiContext):

  • layout/formattingContexts/inline/InlineItemsBuilder.h:
8:18 AM Changeset in webkit [285094] by Simon Fraser
  • 21 edits in trunk/Source

Scroll animations should run at 120Hz on 120Hz displays
https://bugs.webkit.org/show_bug.cgi?id=232534

Reviewed by Tim Horton.

Source/WebCore:

Scroll animations on the scrolling thread were driven by a 60Hz timer in
ScrollingTreeScrollingNodeDelegateMac. Replace that with a mechanism that drives them from
ThreadedScrollingTree::displayDidRefreshOnScrollingThread(), which is called at the maximum
display refresh frequency.

We leverage startAnimationCallback/stopAnimationCallback which update the HashSet of
animating nodes on scrolling tree, and iterate this set in the callback to service the
animations.

Change some ScrollingTree terminology from "AnimatedScroll" to "ScrollAnimation" to indicate
that they are about all kinds of scroll animations (e.g. rubberbanding), not just animated
scrolls.

A side effect of removing the ScrollingTreeScrollingNodeDelegateMac was that there was no
code path that triggered continual "displayDidRefresh" notifications (which originate in the
UI process). We need something to keep the displayDidRefresh notifications coming. To fix
this, have ScrollingCoordinatorMac call scheduleRenderingUpdate() when an animation starts,
and in each rendering update while there are active animations. This doesn't trigger
additional rendering updates; these will happen anyway as a side effect of scrolling tree
scrolls bouncing to the main thread. Also worth noting is that the scrolling thread will get
120Hz updates, even if we're only triggering main thread rendering updates, because of
existing WebPageProxy hasActiveAnimatedScroll state.

Exercised by existing tests.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::isScrollAnimationInProgressForNode):
(WebCore::ScrollingTree::setScrollAnimationInProgressForNode):
(WebCore::ScrollingTree::hasNodeWithActiveScrollAnimations):
(WebCore::ScrollingTree::nodesWithActiveScrollAnimations):
(WebCore::ScrollingTree::isAnimatedScrollInProgressForNode): Deleted.
(WebCore::ScrollingTree::setAnimatedScrollInProgressForNode): Deleted.
(WebCore::ScrollingTree::hasNodeWithActiveAnimatedScroll): Deleted.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::willStartAnimatedScroll):
(WebCore::ScrollingTreeScrollingNode::didStopAnimatedScroll):
(WebCore::ScrollingTreeScrollingNode::setScrollAnimationInProgress):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingThreadIsActive):
(WebCore::ThreadedScrollingTree::serviceScrollAnimations):
(WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::didCompleteRenderingUpdate):
(WebCore::ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged):

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

(WebCore::ScrollingTreeFrameScrollingNodeMac::startAnimatedScrollToPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::serviceScrollAnimation):
(WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged):

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

(WebCore::ScrollingTreeOverflowScrollingNodeMac::serviceScrollAnimation):

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

(WebCore::ScrollingTreeScrollingNodeDelegateMac::createTimer):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::startAnimationCallback):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::stopAnimationCallback):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::serviceScrollAnimation):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollControllerAnimationTimerFired): Deleted.

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::animationTimerFired):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::serviceScrollAnimation):

  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h:

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationScrollingCoordinator.mm:

(WebKit::TiledCoreAnimationScrollingCoordinator::hasNodeWithAnimatedScrollChanged):

7:25 AM Changeset in webkit [285093] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add unicode-bidi control characters
https://bugs.webkit.org/show_bug.cgi?id=232538

Reviewed by Antti Koivisto.

This is preparation for injecting entering/exiting control characters into the paragraph string used by ubidi.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::handleInlineBox):
(WebCore::Layout::InlineItemsBuilder::enterBidiContext):
(WebCore::Layout::InlineItemsBuilder::exitBidiContext):

  • layout/formattingContexts/inline/InlineItemsBuilder.h:
6:41 AM Changeset in webkit [285092] by Andres Gonzalez
  • 15 edits in trunk/Source/WebCore

Move handling of ChildrenChanged notifications out of the AccessibilityObjects into AXObjectCache.
https://bugs.webkit.org/show_bug.cgi?id=232503
<rdar://problem/84820154>

Reviewed by Chris Fleizach.

ChildrenChanged notifications were handled in
AXObjectCache::performDeferredCacheUpdate by calling into an AX object
method. While in principle this may seem as a good design, it obscures
significantly what exactly happens in response to a notification. This
is aggravated by the fact that the object's handlers may call back into
the AXObjectCache to post or further defer notifications to platform
clients.
This patch atempts to straightline this flow by handling the
ChildrenChanged notifications in AXObjectCache.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::handleChildrenChanged):
The name indicates that this is the actual handler for the notification
as opposed as the other childrenChanged(...) methods that just queue
the notifications for a later time.

(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
(WebCore::AXObjectCache::performDeferredCacheUpdate):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::childrenChanged):
Deleted, now handled in AXObjectCache::handleChildrenChanged.

  • accessibility/AccessibilityMenuList.h:
  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::handleChildrenChanged):
(WebCore::AccessibilityMenuListPopup::childrenChanged):
Renamed handleChildrenChanged. It is the only AXObject subclass that
still has this method to update its children. It does not post or
schedule any platform client notification.

  • accessibility/AccessibilityMenuListPopup.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::updateAccessibilityRole):
(WebCore::AccessibilityNodeObject::childrenChanged): Deleted.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::hasIgnoredValueChanged):
(WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
Renamed hasIgnoredValueChanged since the actual notifications are posted
in AXObjectCache.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::updateAccessibilityRole):

  • accessibility/AccessibilityObjectInterface.h:

Several methods can now be removed from the AXCoreObject interface since
they are internal to the AXObject class hierarchy.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

Now able to delete several unnecessary methods from the isolated objects.
(WebCore::AXIsolatedObject::childrenChanged): Deleted.
(WebCore::AXIsolatedObject::updateAccessibilityRole): Deleted.
(WebCore::AXIsolatedObject::lastKnownIsIgnoredValue): Deleted.
(WebCore::AXIsolatedObject::setLastKnownIsIgnoredValue): Deleted.
(WebCore::AXIsolatedObject::notifyIfIgnoredValueChanged): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
1:49 AM Changeset in webkit [285091] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Change some bitwise OR operators to logical OR
https://bugs.webkit.org/show_bug.cgi?id=232537
<rdar://problem/84845378>

Reviewed by Alexey Proskuryakov.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::translate):
(WebCore::CanvasRenderingContext2DBase::transform):
(WebCore::CanvasRenderingContext2DBase::setTransform):
(WebCore::validateRectForCanvas):
(WebCore::CanvasRenderingContext2DBase::canDrawText):

Oct 30, 2021:

8:22 PM Changeset in webkit [285090] by mmaxfield@apple.com
  • 9 edits in trunk/Source

Migrate the first few callers from ImageBuffer::truncatedLogicalSize() to ImageBuffer::logicalSize()
https://bugs.webkit.org/show_bug.cgi?id=232528

Reviewed by Tim Horton.

Source/WebCore:

These are the callers which seem obviously correct to migrate from truncatedLogicalSize() to logicalSize(),
because these are the callers that immediately cast the result to FloatSize. That means, before this patch,
these callers are going from float -> int -> float.

This patch is the fourth step in https://bugs.webkit.org/show_bug.cgi?id=225377. There is no situation where
truncating the logical size is meaningful - we either want the float logical size, or we want the physical
number of texels in the image (which is the logical size, times the resolution, rounded up to an int size).
Eventually, we should move all callers off of truncatedLogicalSize() and on to either logicalSize() or
a yet-to-be-written physicalSize()/texelCount()/bikeshedName().

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::allocateBackingStoreIfNeeded):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):

8:19 PM Changeset in webkit [285089] by Wenson Hsieh
  • 13 edits
    2 adds in trunk

Layer tree should not be stuck in frozen state after explicitly stopping a page load
https://bugs.webkit.org/show_bug.cgi?id=232532
rdar://84522357

Reviewed by Tim Horton.

Source/WebCore:

Add WEBCORE_EXPORT to a method. See WebKit/ChangeLog for more details.

Test: http/tests/navigation/unfreeze-layer-tree-after-stopping-load.html

  • loader/FrameLoader.h:

Source/WebKit:

From diagnostic logs gathered in rdar://84522357, it's apparently possible for the layer tree to be stuck in a
state where it's indefinitely frozen after the user explicitly stops the page load (e.g. by tapping on the "x"
button in Safari). Specifically, these logs indicate that the PageTransition layer tree freeze reason may
persist even after the user has canceled the load, leading to situations where content may be visible but
unresponsive.

From code inspection, this may happen for multiple reasons, one of which is that a media element has incremented
the load event delay count, which in turn prevents us from transitioning to completed state inside
FrameLoader::checkLoadCompleteForThisFrame(). It's unknown whether this (in particular) is the cause of
unresponsiveness observed by the reporter of rdar://84522357, but we can at least use this in order to come up
with a layout test; to mitigate all instances where the PageTransition reason may persist after the load has
been stopped, we make WebPage::stopLoading() complete the page transition (thereby lifting the freeze reason)
if needed.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::stopLoading):

Tools:

Add support for TestRunner.stopLoading(), which immediately stops the page load, emulating what would normally
happen if the user taps or clicks the "x" button to cancel loading in Safari. See the layout test for more
details.

  • DumpRenderTree/TestRunner.cpp:

(stopLoadingCallback):
(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::stopLoading):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::stopLoading):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::stopLoading):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Add a test that verifies that a requestAnimationFrame() callback fires even after stopping page load. This
test fails without the fix in this patch, since the layer tree ends up in a permanently frozen state.

  • http/tests/navigation/unfreeze-layer-tree-after-stopping-load-expected.txt: Added.
  • http/tests/navigation/unfreeze-layer-tree-after-stopping-load.html: Added.
7:37 PM Changeset in webkit [285088] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebKit

Web process shouldn't crash if ImageBuffer::ensureBackendCreated() fails
https://bugs.webkit.org/show_bug.cgi?id=232520
<rdar://problem/84829717>

Reviewed by Simon Fraser.

Guard against the possibility of it returning null.

No new tests because there shouldn't be any behavior change after https://bugs.webkit.org/show_bug.cgi?id=232470.
It's still good to do this, though, to be defensive.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::createImageBufferBackendHandle):

7:24 PM Changeset in webkit [285087] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[GPU Process] Small ImageBuffers cause the web process to crash
https://bugs.webkit.org/show_bug.cgi?id=232470
<rdar://problem/84626560>

Reviewed by Tim Horton.

Source/WebKit:

The problem is when the (floating point) size < 1x1, but the size*resolution is >= 1x1.
In this situation, calculateSafeBackendSize() is correctly determining that this
isn't a zero-sized ImageBuffer, but when we go to actually pass the size to the GPU
process, we call this:

IntSize logicalSize() const override { return IntSize(m_parameters.logicalSize); }

So, the logical size gets truncated down to 0, and then the GPU process fails to allocate
the ImageBuffer, and then the web process blocks on the GPU process indefinitely, and then
eventually times out and then crashes. I'm going to deal with that last step (the crash
itself) in a secondary patch - if the web process doesn't hear from the GPU process, it
shouldn't crash.

This patch simply exposes a floatLogicalSize() function on ImageBuffer, so we can get
the full-fidelity logical size to pass that to the GPU process.

Test: compositing/device-pixel-image-buffer-hidpi.html

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):

LayoutTests:

  • compositing/device-pixel-image-buffer-hidpi-expected.html: Added.
  • compositing/device-pixel-image-buffer-hidpi.html: Added.
6:24 PM Changeset in webkit [285086] by Chris Dumez
  • 7 edits in trunk

Improve error handling in sendWithAsyncReply()
https://bugs.webkit.org/show_bug.cgi?id=232508

Reviewed by Darin Adler.

Source/WebKit:

  • Platform/IPC/Connection.cpp:

(IPC::Connection::invalidate):
We stop delivering messages as soon as |m_valid| becomes false. It is
thus a good idea to cancel any pending async reply handlers as soon
as we set m_isValid to false. We were doing it correctly in connectionDidClose()
but not in invalidate(). The Connection destructor would eventually call
the async reply handlers. However, I have noticed when investigating a leak
that this may delay the calling of the reply handler for a long time if
something keeps the Connection alive (or forever in case of a leak).

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithAsyncReply):
Return early if the connection is no longer valid and call the
completion handler right away (but asynchronously). Previously,
we'd register the async reply handler and then the call to
sendMessage() would fail.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getContentsAsStringWithCompletionHandlerKeepIPCConnectionAliveForTesting:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add helper SPI for API test.

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:

(TEST):

6:18 PM Changeset in webkit [285085] by Chris Dumez
  • 4 edits in trunk

[ BigSur wk2 Debug arm64 ] webaudio/AudioBufferSource/audiobuffersource-playbackrate.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=232500
<rdar://problem/84816843>

Reviewed by Eric Carlson.

Source/WebCore:

The call to HashSet::remove() may cause a memory allocation so we need to extend the scope of the
DisableMallocRestrictionsForCurrentThreadScope to avoid assertion hits in debug builds.

No new tests, unskipped existing test.

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::removeOutput):

LayoutTests:

Unskip test that is no longer crashing.

  • platform/mac-wk2/TestExpectations:
3:58 PM Changeset in webkit [285084] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

Selection extend() should trigger exception with no ranges
https://bugs.webkit.org/show_bug.cgi?id=232420

Patch by Brandon Stewart <Brandon> on 2021-10-30
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Verify extend() will throw an exception when the Selection object
contains no Range objects. Chrome and Firefox will also throw an
exception in this scenario.

https://w3c.github.io/selection-api/#dom-selection-extend

  • web-platform-tests/selection/extend-exception-expected.txt: Added.
  • web-platform-tests/selection/extend-exception.html: Added.

Source/WebCore:

The 'extend' method in the Selection API should throw an exception upon
being called if there are no ranges present in the Selection object.

https://w3c.github.io/selection-api/#dom-selection-extend

Test: imported/w3c/web-platform-tests/selection/extend-exception.html

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend):

LayoutTests:

Resolve errors in test cases introduced by new exception being thrown by extend()
when no ranges are present.

  • editing/execCommand/null_calc_primitive_value_for_css_property.html:
  • editing/execCommand/transpose-backslash-with-euc.html:
  • editing/inserting/insert-html-crash-02.html:
  • editing/selection/DOMSelection-crossing-document-expected.txt:
  • editing/selection/DOMSelection-crossing-document.html:
12:57 PM Changeset in webkit [285083] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Add bidi level to InlineDisplay::Box
https://bugs.webkit.org/show_bug.cgi?id=232531

Reviewed by Antti Koivisto.

InlineItem -> Line::Run -> InlineDisplay::Box.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::m_bidiLevel):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::bidiLevel const):

  • layout/formattingContexts/inline/display/InlineDisplayBox.h:

(WebCore::InlineDisplay::Box::Box):
(WebCore::InlineDisplay::Box::bidiLevel const):

  • layout/integration/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::bidiLevel const):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

10:26 AM Changeset in webkit [285082] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Add skeleton implementation for bidi content handling
https://bugs.webkit.org/show_bug.cgi?id=232524

Reviewed by Antti Koivisto.

Add dedicated functions for inline content types that need separate bidi handling (text vs. inline box vs. atomic etc).

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectContentIfNeeded):

  • layout/formattingContexts/inline/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::addInlineItems):
(WebCore::Layout::InlineFormattingState::addInlineItem): Deleted.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::InlineItemsBuilder::collectInlineItems):
(WebCore::Layout::InlineItemsBuilder::breakInlineItemsAtBidiBoundaries):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
(WebCore::Layout::InlineItemsBuilder::handleInlineBox):
(WebCore::Layout::InlineItemsBuilder::handleInlineLevelBox):
(WebCore::Layout::InlineItemsBuilder::createAndAppendTextItems): Deleted.

  • layout/formattingContexts/inline/InlineItemsBuilder.h:

(WebCore::Layout::InlineItemsBuilder::root const):
(WebCore::Layout::InlineItemsBuilder::formattingState const): Deleted.

10:09 AM Changeset in webkit [285081] by Sam Sneddon
  • 5 edits in trunk/Tools

Ensure we stop LayoutTest servers without them becoming zombies
https://bugs.webkit.org/show_bug.cgi?id=225189
<rdar://problem/77604119>

Reviewed by Jonathan Bedard.

Also increase the polling frequency in HttpServerBase._wait_for_action, as this is a major
source of delay when running run-webkit-tests --dry-run due to the number of servers we're
starting nowadays.

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

(MockProcess.init): Rename self.returncode to _returncode
(MockProcess.returncode): returncode should be None if process is still running

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd._spawn_process): Store Popen object
(Lighttpd._check_and_kill): Skip "kill" if process has returned
(Lighttpd._is_server_running_on_all_ports): Correctly raise ServerError if it has returned

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase.start): Change polling frequency for cygwin from 0.1Hz to default
(HttpServerBase._wait_for_action): Increase default polling frequency to 10Hz from 1Hz

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._stop_running_server): Poll first so we don't have zombies keeping references to pipes

9:08 AM Changeset in webkit [285080] by Kate Cheney
  • 5 edits in trunk

[iOS 15] Loads after WKWebView session restore are marked as app-initiated
https://bugs.webkit.org/show_bug.cgi?id=232486
<rdar://problem/84811692>

Reviewed by Brent Fulgham.

Source/WebKit:

Return app initiated value in the page's SessionState so it can be restored
by third party apps using the [WKWebView setInteractionState] API.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::sessionState const):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::encodeLegacySessionState):
(WebKit::decodeLegacySessionState):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
6:44 AM Changeset in webkit [285079] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] InlineItem should not cross bidi level boundary
https://bugs.webkit.org/show_bug.cgi?id=232509

Reviewed by Antti Koivisto.

Every inline item has a bidi level even when the content is not considered strictly as bidi (i.e. we don't call into ubidi to figure level information).

  • layout/formattingContexts/inline/InlineItem.h:

(WebCore::Layout::InlineItem::bidiLevel const):
(WebCore::Layout::InlineItem::InlineItem):

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::createAndAppendTextItems):

  • layout/formattingContexts/inline/InlineSoftLineBreakItem.h:

(WebCore::Layout::InlineSoftLineBreakItem::createSoftLineBreakItem):
(WebCore::Layout::InlineSoftLineBreakItem::InlineSoftLineBreakItem):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):

  • layout/formattingContexts/inline/InlineTextItem.h:

(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::createEmptyItem):

Oct 29, 2021:

11:48 PM Changeset in webkit [285078] by ysuzuki@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

[JSC] Having StructureStubInfo and CallLinkInfo via FixedVector for Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=232521

Reviewed by Saam Barati.

We know # of StructureStubInfo and # of CallLinkInfo after compiling Baseline JIT code.
So when installing a code into CodeBlock, we do not need to use Bag<>. Instead we can just
use FixedVector to allocate these instances.

We keep FixedVector<StructureStubInfo> and FixedVector<CallLinkInfo> in JITData for Baseline JIT.
And moving Bag<StructureStubInfo> and Bag<CallLinkInfo> to DFG::CommonData when they are instantiated
for DFG / FTL codes.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::CallLinkInfo): Deleted.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::CallLinkInfo):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeJITInlineCaches):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::addOptimizingStubInfo): Deleted.
(JSC::CodeBlock::addCallLinkInfo): Deleted.

  • bytecode/CodeBlock.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo): Deleted.

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::StructureStubInfo):

  • dfg/DFGCommonData.h:

(JSC::DFG::CommonData::addCallLinkInfo):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal):
(JSC::DFG::SpeculativeJIT::compilePutPrivateName):
(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForCells):
(JSC::DFG::SpeculativeJIT::cachedPutById):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValImpl):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

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

(JSC::JIT::addUnlinkedCallLinkInfo):
(JSC::JIT::link):

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

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

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITPutByValGenerator::JITPutByValGenerator):
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_instanceof):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emit_op_enumerator_get_by_val):

11:28 PM Changeset in webkit [285077] by Lauro Moura
  • 5 edits in trunk/Source/WebKit

[GLIB][SOUP] Unify memoryPressureMonitorDisabled implementation
https://bugs.webkit.org/show_bug.cgi?id=232519

Reviewed by Carlos Garcia Campos.

Covered by existing tests.

Follow up the fix of r285062, to avoid having two copies of
the same function around.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::memoryPressureMonitorDisabled): Deleted.

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::MemoryPressureMonitor::disabled):

  • UIProcess/linux/MemoryPressureMonitor.h:
  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::memoryPressureMonitorDisabledSoup): Deleted.

10:25 PM Changeset in webkit [285076] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move InlineTextItem construction to InlineItemsBuilder
https://bugs.webkit.org/show_bug.cgi?id=232498

Reviewed by Antti Koivisto.

This is in preparation for adding bidi support.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::moveToNextBreakablePosition):
(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::InlineItemsBuilder::createAndAppendTextItems):

  • layout/formattingContexts/inline/InlineItemsBuilder.h:
  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
(): Deleted.
(WebCore::Layout::moveToNextNonWhitespacePosition): Deleted.
(WebCore::Layout::moveToNextBreakablePosition): Deleted.
(WebCore::Layout::InlineTextItem::createAndAppendTextItems): Deleted.

  • layout/formattingContexts/inline/InlineTextItem.h:

(WebCore::Layout::InlineTextItem::InlineTextItem): Deleted.
(WebCore::Layout::InlineTextItem::left const): Deleted.
(WebCore::Layout::InlineTextItem::right const): Deleted.

10:11 PM Changeset in webkit [285075] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce # of iterations in stress/validate-int-52-ai-state.js due to Debug timeout

  • stress/validate-int-52-ai-state.js:
9:19 PM Changeset in webkit [285074] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, skip stress/unlinked-code-block-destructor.js when it is debug build

The bug was not related to Debug build. And it is timing out on Debug build due to
heavy test load.

  • stress/unlinked-code-block-destructor.js:
9:10 PM Changeset in webkit [285073] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce # of iteration since it is timing out on Debug JSC bot

  • stress/put-private-name-ic-write-barrier.js:

(PutPrivateNameIC):

7:45 PM Changeset in webkit [285072] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Add release logging of display list size to CGDisplayListImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=232496

Reviewed by Wenson Hsieh.

No new tests, just new logging.

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::createImageBufferBackendHandle const):

7:44 PM Changeset in webkit [285071] by mmaxfield@apple.com
  • 25 edits in trunk/Source

Rename ImageBuffer.logicalSize to ImageBuffer.truncatedLogicalSize
https://bugs.webkit.org/show_bug.cgi?id=232515
<rdar://problem/84829689>

Reviewed by Tim Horton.

Source/WebCore:

This is a purely mechanical change, and is the first step in
https://bugs.webkit.org/show_bug.cgi?id=225377. Once we have both logicalSize()
and truncatedLogicalSize(), we can start migrating callers to the correct one
and away from the trucated one.

I did this rename by adding truncatedImageSize, and then temporarily renaming
logicalSize() to some dummy value - to force compilation failures at every call
to logicalSize(). Then, once compiling found all the call sites, I renamed it
back to just logicalSize().

No new tests because there is no behavior change.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpImageBitmap):

  • html/CanvasBase.cpp:

(WebCore::CanvasBase::setImageBuffer const):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toMediaSample):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):

  • html/ImageBitmapBacking.cpp:

(WebCore::ImageBitmapBacking::width const):
(WebCore::ImageBitmapBacking::height const):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::putImageData):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):

  • page/PageColorSampler.cpp:

(WebCore::sampleColor):

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::WTF_REQUIRES_LOCK):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::allocateBackingStoreIfNeeded):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):

7:08 PM Changeset in webkit [285070] by ysuzuki@apple.com
  • 17 edits in trunk/Source

[JSC] Clean up Baseline StructureStubInfo management
https://bugs.webkit.org/show_bug.cgi?id=232513

Reviewed by Saam Barati.

Source/JavaScriptCore:

  1. We should keep Generator::m_stubInfo nullptr. And we add some assertions about it since it should not be allocated and used.
  2. We found that propertyIsInt32 for op_get_by_val and op_put_by_val is not appropriately configured for UnlinkedStructureStubInfo (it was accidentally set for the above wasted StructureStubInfo). This patch attaches that information.
  3. We keep UnlinkedStructureStubInfo in a FixedVector in BaselineJITCode. While we need to keep pointer identity while compiling Baseline JIT, after that, we no longer need to keep that since these pointers are not embedded into JIT code. This patch allocates UnlinkedStructureStubInfo via SegmentedVector during compilation to keep pointer identity, but when finalizing, we allocate FixedVector and copy the above content to that to keep memory as small as possible. We should do similar thing to UnlinkedCallLinkInfo, StructureStubInfo etc. for baseline, but this should be done in a separate patch.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::addOptimizingStubInfo):
(JSC::CodeBlock::addStubInfo): Deleted.

  • bytecode/CodeBlock.h:
  • bytecode/PutKind.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):

  • bytecode/StructureStubInfo.h:
  • jit/BaselineJITCode.h:
  • jit/JIT.cpp:

(JSC::JIT::addUnlinkedStructureStubInfo):
(JSC::JIT::link):

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

(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::finalize):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITGetByIdWithThisGenerator::generateFastPath):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::generateFastPath):
(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByValGenerator::finalize):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::finalize):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::JITInByValGenerator::finalize):
(JSC::JITInByIdGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::finalize):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):
(JSC::JITPutByValGenerator::JITPutByValGenerator):
(JSC::JITPutByValGenerator::generateFastPath):
(JSC::JITPutByValGenerator::finalize):
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):
(JSC::garbageStubInfo): Deleted.

  • jit/JITInlineCacheGenerator.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_instanceof):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::generateGetByValSlowCase):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emit_op_enumerator_get_by_val):

Source/WTF:

  • wtf/SegmentedVector.h:
6:44 PM Changeset in webkit [285069] by Jean-Yves Avenard
  • 10 edits in trunk/Source/WebCore

Have PlatformMediaResourceClient use SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=232422
rdar://84558835

Reviewed by Alex Christensen.

When playing a non-mse media element, the download gets controlled by a
MediaResource into a WebCoreNSURLSession to be used by the media framework.
The data got copied at least three times along the way due to the
multi-threaded nature of the framework and the need for thread
safety.
The situation was made worse when the content server didn't support
range-request: as a RangeResponseGenerator is then used by the
WebCoreNSURLSession which downloads the entire media to be played and
keep it in memory.

By modifying the various actors between a MediaResource and WebCoreNSURLSession
to use SharedBuffers ; we can remove most copies and allocation.
This also completely eliminates the need for new memory buffer allocations and
copies by the RangeResponseGenerator object.

With WK2 and the GPU process, it allows for the memory to be allocated once
and only be assigned to the content process by using SharedMemory wrapped
in a SharedBuffer.

In the future, by refactoring CachedRawResourceClient to use SharedBuffers,
we could remove further allocation/copies. We could likely get the data from the
network process all the way to the final client in the GPU process without
a single copy. This is tracked in bug 232424.

No change in observable behaviour. Covered by all the existing media tests.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBufferDataView::size const):
(WebCore::SharedBufferDataView::trim): Add ability to trim a SharedBufferDataView.
This allows to avoid having to copy into a new buffer.
(WebCore::SharedBufferDataView::createSharedBuffer const): Cross declarations
makes it difficult to add a new SharedBuffer constructor that would take a
SharedBufferDataView.

  • platform/SharedBuffer.h: Add new methods.
  • platform/cocoa/SharedBufferCocoa.mm: Update to allow for end trimming

information.
(-[WebCoreSharedBufferData initWithDataSegment:position:endTrim:]):
(-[WebCoreSharedBufferData length]):
(WebCore::SharedBuffer::DataSegment::createNSData const):
(WebCore::SharedBufferDataView::createNSData const):
(-[WebCoreSharedBufferData initWithDataSegment:position:]): Deleted.

  • platform/graphics/PlatformMediaResourceLoader.h:

(WebCore::PlatformMediaResourceClient::dataReceived): Add a new API using
a SharedBuffer. We keep the old one taking a pointer/size due to a WebKit
implementation details which allows us to save an intermediary allocation/copy
when used with SharedMemory.

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

(WebCore::PlatformResourceMediaLoader::dataReceived):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived): Update to use SharedBuffer.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):

  • platform/network/cocoa/WebCoreNSURLSession.h: Change prototypes.

Fly-by fix, property countOfBytesReceived needed to be atomic.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(-[WebCoreNSURLSessionDataTask resource:receivedData:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):

6:29 PM Changeset in webkit [285068] by Kate Cheney
  • 5 edits in trunk/Source

Crash setting up AVCaptureSession
https://bugs.webkit.org/show_bug.cgi?id=232507
<rdar://problem/84820282>

Reviewed by Jer Noble.

Source/WebCore:

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setupSession):

Source/WebKit:

  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:

(WebKit::GPUConnectionToWebProcess::setTCCIdentity):

6:29 PM Changeset in webkit [285067] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening timeouts affected by xhtml mimetype misdetection

Unreviewed test gardening.

  • platform/glib/TestExpectations:
5:48 PM Changeset in webkit [285066] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GTK] Layout Tests for experimental <attachment> element are failing since added
https://bugs.webkit.org/show_bug.cgi?id=141699

Mark the tests that rely on the attachment element as skipped for
glib platforms, as it is not standard nor supported on that platform.

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-29

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:46 PM Changeset in webkit [285065] by dbezhetskov
  • 12 edits
    1 add in trunk

[WASM-Function-References] Add support for (ref.null heaptype)
https://bugs.webkit.org/show_bug.cgi?id=229707

Reviewed by Yusuke Suzuki.

JSTests:

Added spec tests for (ref.null $t) : https://github.com/WebAssembly/function-references/blob/master/test/core/ref_null.wast.

  • wasm.yaml:
  • wasm/function-references-spec-tests/call_ref.wast.js:
  • wasm/function-references-spec-tests/ref_null.wast.js: Added.

Source/JavaScriptCore:

Added support for (ref.null $t) from the typed function references proposal:
https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md#optional-references.
Since now we can have null references I've also updated call_ref implementation to check the target reference for null.
According to the spec (https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md#functions)
we must trap on null.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addCallRef):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCallRef):

  • wasm/WasmExceptionType.h:
  • wasm/WasmFormat.h:

(JSC::Wasm::isTypeIndexHeapType):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseHeapType):
(JSC::Wasm::Parser<SuccessType>::parseValueType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::doWasmCallRef):

5:35 PM Changeset in webkit [285064] by Kocsen Chung
  • 1 copy in tags/Safari-612.3.3

Tag Safari-612.3.3.

5:08 PM Changeset in webkit [285063] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS macOS ] imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-021.html and flex-aspect-ratio-022.html are failing after reverting r284440, r284397, and r284359.
https://bugs.webkit.org/show_bug.cgi?id=232518

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:48 PM Changeset in webkit [285062] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix WPE build after r285047
https://bugs.webkit.org/show_bug.cgi?id=232462

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::memoryPressureMonitorDisabledSoup):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::memoryPressureMonitorDisabled): Deleted.

4:29 PM Changeset in webkit [285061] by stephan.szabo@sony.com
  • 2 edits in trunk/Tools

[PlayStation] Build fix after r285020
https://bugs.webkit.org/show_bug.cgi?id=232494

Unreviewed temporary Build Fix

Remove test that requires unsupported WTF::FileSystem functions.

  • TestWebKitAPI/PlatformPlayStation.cmake:
4:24 PM Changeset in webkit [285060] by achristensen@apple.com
  • 2 edits in trunk/Tools

Revert r285034
webkit.org/b/232166

The test still times out in EWS.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
4:17 PM Changeset in webkit [285059] by achristensen@apple.com
  • 6 edits in trunk

Unreviewed, reverting r284917.
Source/WebCore/PAL:

Likely caused significant performance regression

Reverted changeset:

"Remove properties set by NSURLProtocol on NSURLRequest before
serializing"
https://bugs.webkit.org/show_bug.cgi?id=232332
https://commits.webkit.org/r284917

Source/WebKit:

<rdar://84807461>

Likely caused significant performance regression

Reverted changeset:

"Remove properties set by NSURLProtocol on NSURLRequest before
serializing"
https://bugs.webkit.org/show_bug.cgi?id=232332
https://commits.webkit.org/r284917

Tools:

Likely caused significant performance regression

Reverted changeset:

"Remove properties set by NSURLProtocol on NSURLRequest before
serializing"
https://bugs.webkit.org/show_bug.cgi?id=232332
https://commits.webkit.org/r284917

3:21 PM Changeset in webkit [285058] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix AppleWin build after r285051

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

  • DumpRenderTree/CMakeLists.txt:
3:06 PM Changeset in webkit [285057] by achristensen@apple.com
  • 2 edits in trunk/Tools

[ Monterey iOS15 ] TestWebKitAPI.URLSchemeHandler.Ranges is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=231394

Reviewed by Jer Noble.

For some reason, AVFoundation used to play videos from custom schemes when you respond to range requests with 1 fewer byte than requested.
They stopped successfully playing videos in such circumstances, which is fine. I had accidentally done that in my test.
When I respond properly, the test starts passing again.

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
2:48 PM Changeset in webkit [285056] by commit-queue@webkit.org
  • 5 edits in trunk

Add last modified and creation time to +[_WKWebAuthenticationPanel getAllLocalAuthenticatorCredentials]
https://bugs.webkit.org/show_bug.cgi?id=232390
<rdar://problem/84689277>

Patch by John Pascoe <J Pascoe> on 2021-10-29
Reviewed by Darin Adler.

Source/WebKit:

This change adds new fields to returned credentials useful for providing context about them, namely
when they were created and last modified.

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

(getAllLocalAuthenticatorCredentialsImpl):

Tools:

These fields (creation time and last modified) are useful for providing context about credentials.
The modifications to the tests verify they are properly added.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

2:45 PM Changeset in webkit [285055] by Cameron McCormack
  • 5 edits in trunk/Source

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

Reviewed by Simon Fraser.

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

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::isRemote const):

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

Reviewed by Simon Fraser.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
2:42 PM Changeset in webkit [285054] by Antti Koivisto
  • 5 edits in trunk

Allow :is/:where after all pseudo elements
https://bugs.webkit.org/show_bug.cgi?id=232434

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scoping/slotted-parsing-expected.txt:

Source/WebCore:

Any subselectors that are not legal in the context will be removed by the forgiving parsing.
This matches the behavior in other engines and the discussion in https://github.com/w3c/csswg-drafts/issues/5093.

The validity check is moved from the compound selector level to the simple selector level. This way if we are
inside forgiving selector list parsing, it can recover and continue.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isLogicalCombinationPseudoClass):
(WebCore::isPseudoClassValidAfterPseudoElement):
(WebCore::isSimpleSelectorValidAfterPseudoElement):

:is(), :where(), and so on are always legal but their content is necessarily not.

(WebCore::CSSSelectorParser::consumeCompoundSelector):

Set the preceding pseudo-element as parser state.

(WebCore::CSSSelectorParser::consumeSimpleSelector):

Check if the pseudo-class or pseudo-element is valid immediately after consuming it.

(WebCore::CSSSelectorParser::consumePseudo):

Disallow nesting in all cases.

(WebCore::CSSSelectorParser::DisallowPseudoElementsScope::DisallowPseudoElementsScope): Deleted.
(WebCore::CSSSelectorParser::DisallowPseudoElementsScope::~DisallowPseudoElementsScope): Deleted.

Just use SetForScope.

  • css/parser/CSSSelectorParser.h:
2:31 PM Changeset in webkit [285053] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix internal macOS build after r285047
https://bugs.webkit.org/show_bug.cgi?id=232462

  • Modules/OSX.modulemap:
2:15 PM Changeset in webkit [285052] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Fix internal macOS build after r285047
https://bugs.webkit.org/show_bug.cgi?id=232462

  • MigrateHeaders.make:
2:11 PM Changeset in webkit [285051] by achristensen@apple.com
  • 2 edits
    1 delete in trunk/Tools

Fix macOS clean build after r285047
https://bugs.webkit.org/show_bug.cgi?id=232462

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/TestNetscapePlugIn: Removed.
2:09 PM Changeset in webkit [285050] by Alan Bujtas
  • 4 edits
    2 adds in trunk/Source/WebCore

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

Reviewed by Antti Koivisto.

This builder is going to be used for constructing bidi compatible inline items.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectContentIfNeeded):

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp: Added.

(WebCore::Layout::InlineItemsBuilder::InlineItemsBuilder):
(WebCore::Layout::InlineItemsBuilder::build):

  • layout/formattingContexts/inline/InlineItemsBuilder.h: Added.

(WebCore::Layout::InlineItemsBuilder::root const):
(WebCore::Layout::InlineItemsBuilder::formattingState const):

2:08 PM Changeset in webkit [285049] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKitLegacy/mac

[WebKitLegacy] Enable -Wformat=2 warnings
<https://webkit.org/b/232333>
<rdar://problem/84681560>

Reviewed by Darin Adler.

  • Configurations/Base.xcconfig:

(WARNING_CFLAGS):

  • Replace -Wformat-security with -Wformat=2, which enables more warnings like -Wformat-nonliteral.
  • Misc/WebLocalizableStringsInternal.h:

(WebLocalizedStringInternal):

  • Add NS_FORMAT_ARGUMENT() macro to fix -Wformat-nonliteral warnings.
1:54 PM Changeset in webkit [285048] by Darin Adler
  • 15 edits in trunk/Source

Create constants for all special frame names used in anchor target attribute values and elsewhere
https://bugs.webkit.org/show_bug.cgi?id=232488

Reviewed by Anders Carlsson.

Source/WebCore:

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick): Use isBlankTargetFrameName.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit): Ditto.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openURLExternally): Use
blankTargetFrameName and selfTargetFrameName.

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate): Ditto.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame): Use selfTargetFrameName.
(WebCore::FrameLoader::loadURL): Use selfTargetFrameName and blankTargetFrameName.
(WebCore::FrameLoader::loadPostRequest): Use blankTargetFrameName.
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Ditto.
(WebCore::createWindow): Use isBlankTargetFrameName.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange): Use selfTargetFrameName.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::defaultEventHandler): Use selfTargetFrameName.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Use selfTargetFrameName.
(WebCore::DOMWindow::open): Use isTopTargetFrameName and isParentTargetFrameName.

  • page/FrameTree.cpp:

(WebCore::FrameTree::uniqueChildName const): Use isBlankTargetFrameName.
(WebCore::FrameTree::find const): Use isSelfTargetFrameName, isTopTargetFrameName,
isParentTargetFrameName, and isBlankTargetFrameName.
(WebCore::blankTargetFrameName): Added.
(WebCore::selfTargetFrameName): Added.
(WebCore::isBlankTargetFrameName): Added.
(WebCore::isParentTargetFrameName): Added.
(WebCore::isSelfTargetFrameName): Added.
(WebCore::isTopTargetFrameName): Added.

  • page/FrameTree.h: Add declarations.
  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler): Use blankTargetFrameName.

Source/WTF:

  • wtf/Forward.h: Declare ASCIILiteral.
  • wtf/text/ASCIILiteral.h: Update for above.
1:33 PM Changeset in webkit [285047] by achristensen@apple.com
  • 96 edits
    95 deletes in trunk/Source

Remove code inside ENABLE(NETSCAPE_PLUGIN_API)
https://bugs.webkit.org/show_bug.cgi?id=232462

Reviewed by Anders Carlsson.

Source/WebCore:

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::clearScriptObjects):
(WebCore::ScriptController::windowScriptNPObject): Deleted.

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::createScriptInstanceForWidget):

  • bridge/NP_jsobject.cpp: Removed.
  • bridge/NP_jsobject.h: Removed.
  • bridge/c/CRuntimeObject.cpp: Removed.
  • bridge/c/CRuntimeObject.h: Removed.
  • bridge/c/c_class.cpp: Removed.
  • bridge/c/c_class.h: Removed.
  • bridge/c/c_instance.cpp: Removed.
  • bridge/c/c_instance.h: Removed.
  • bridge/c/c_runtime.cpp: Removed.
  • bridge/c/c_runtime.h: Removed.
  • bridge/c/c_utility.cpp: Removed.
  • bridge/c/c_utility.h: Removed.
  • bridge/npruntime.cpp: Removed.
  • bridge/npruntime_impl.h: Removed.
  • bridge/npruntime_internal.h: Removed.
  • bridge/npruntime_priv.h: Removed.
  • html/HTMLPlugInElement.cpp:
  • page/Frame.cpp:
  • plugins/npapi.h: Removed.
  • plugins/npfunctions.h: Removed.
  • plugins/npruntime.h: Removed.
  • plugins/nptypes.h: Removed.

Source/WebKit:

  • Configurations/PluginService.xcconfig:
  • Configurations/WebKit.xcconfig:
  • DerivedSources.make:
  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes):

  • PlatformMac.cmake:
  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.Info.plist: Removed.
  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginServiceEntryPoint.mm: Removed.
  • PluginProcess/PluginControllerProxy.cpp: Removed.
  • PluginProcess/PluginControllerProxy.h: Removed.
  • PluginProcess/PluginControllerProxy.messages.in: Removed.
  • PluginProcess/PluginCreationParameters.cpp: Removed.
  • PluginProcess/PluginCreationParameters.h: Removed.
  • PluginProcess/PluginProcess.cpp: Removed.
  • PluginProcess/PluginProcess.h: Removed.
  • PluginProcess/PluginProcess.messages.in: Removed.
  • PluginProcess/WebProcessConnection.cpp: Removed.
  • PluginProcess/WebProcessConnection.h: Removed.
  • PluginProcess/WebProcessConnection.messages.in: Removed.
  • PluginProcess/mac/PluginControllerProxyMac.mm: Removed.
  • PluginProcess/mac/PluginProcessMac.mm: Removed.
  • PluginProcess/mac/PluginProcessShim.h: Removed.
  • PluginProcess/mac/PluginProcessShim.mm: Removed.
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Removed.
  • Resources/PlugInSandboxProfiles/cn.microdone.cmb.safari.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.apple.BocomSubmitCtrl.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.apple.NPSafeInput.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.apple.NPSafeSubmit.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.apple.QuickTime Plugin.plugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.apple.appstore.CodeRedeemerNetscapePlugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.cfca.npSecEditCtl.MAC.BOC.plugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.cisco.webex.plugin.gpc64.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.cmbchina.CMBSecurity.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.ftsafe.NPAPI-Core-Safe-SoftKeybaord.plugin.rfc1034identifier.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.google.googletalkbrowserplugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.google.o1dbrowserplugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.macromedia.Flash Player ESR.plugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb: Removed.
  • Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb: Removed.
  • Shared/API/c/WKPluginInformation.cpp:

(WKPluginInformationBundleIdentifierKey):
(WKPluginInformationBundleVersionKey):
(WKPluginInformationBundleShortVersionKey):
(WKPluginInformationPathKey):
(WKPluginInformationDisplayNameKey):
(WKPluginInformationDefaultLoadPolicyKey):
(WKPluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey):
(WKPluginInformationHasSandboxProfileKey):
(WKPluginInformationFrameURLKey):
(WKPluginInformationMIMETypeKey):
(WKPluginInformationPageURLKey):
(WKPluginInformationPluginspageAttributeURLKey):
(WKPluginInformationPluginURLKey):
(WKPlugInInformationReplacementObscuredKey):

  • Shared/Plugins/NPIdentifierData.cpp: Removed.
  • Shared/Plugins/NPIdentifierData.h: Removed.
  • Shared/Plugins/NPObjectMessageReceiver.cpp: Removed.
  • Shared/Plugins/NPObjectMessageReceiver.h: Removed.
  • Shared/Plugins/NPObjectMessageReceiver.messages.in: Removed.
  • Shared/Plugins/NPObjectProxy.cpp: Removed.
  • Shared/Plugins/NPObjectProxy.h: Removed.
  • Shared/Plugins/NPRemoteObjectMap.cpp: Removed.
  • Shared/Plugins/NPRemoteObjectMap.h: Removed.
  • Shared/Plugins/NPVariantData.cpp: Removed.
  • Shared/Plugins/NPVariantData.h: Removed.
  • Shared/Plugins/Netscape/NetscapePluginModule.cpp: Removed.
  • Shared/Plugins/Netscape/NetscapePluginModule.h: Removed.
  • Shared/Plugins/Netscape/PluginInformation.cpp: Removed.
  • Shared/Plugins/Netscape/PluginInformation.h: Removed.
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: Removed.
  • Shared/Plugins/Netscape/mac/PluginInformationMac.mm: Removed.
  • Shared/Plugins/PluginModuleInfo.h: Removed.
  • Shared/Plugins/PluginProcessAttributes.h: Removed.
  • Shared/Plugins/PluginProcessCreationParameters.cpp: Removed.
  • Shared/Plugins/PluginProcessCreationParameters.h: Removed.
  • Shared/Plugins/PluginQuirks.h: Removed.
  • Shared/Plugins/mac/PluginComplexTextInputState.h: Removed.
  • Shared/Plugins/mac/PluginSandboxProfile.h: Removed.
  • Shared/Plugins/mac/PluginSandboxProfile.mm: Removed.
  • Shared/WebProcessCreationParameters.h:
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::encode const):
(WebKit::WebsiteData::decode):
(WebKit::WebsiteData::ownerProcess):
(WebKit::WebsiteData::isolatedCopy const):

  • Shared/WebsiteData/WebsiteData.h:
  • Shared/WebsiteData/WebsiteDataType.h:
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APILoaderClient.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::contentRuleListNotification):
(API::NavigationClient::didFailToInitializePlugIn): Deleted.
(API::NavigationClient::didBlockInsecurePluginVersion): Deleted.
(API::NavigationClient::decidePolicyForPluginLoad): Deleted.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::mouseDidMoveOverElement):
(API::UIClient::unavailablePluginButtonClicked): Deleted.

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toWKPluginLoadPolicy): Deleted.
(WebKit::toWKPluginLoadClientPolicy): Deleted.
(WebKit::toPluginModuleLoadPolicy): Deleted.
(WebKit::toPluginLoadClientPolicy): Deleted.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetAdditionalPluginsDirectory):
(WKContextRefreshPlugIns):
(WKContextAddSupportedPlugin):
(WKContextClearSupportedPlugins):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetPluginSandboxProfilesEnabledForAllPlugins):

  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextCopyPlugInInfoForBundleIdentifier):
(WKContextGetInfoForInstalledPlugIns):

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setExperimentalPlugInSandboxProfilesEnabled:]):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _pluginProcessCount]):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::toWKPlugInUnavailabilityReason): Deleted.
(WebKit::UIDelegate::UIClient::unavailablePluginButtonClicked): Deleted.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::updateProcessSuppressionState):

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::pluginComplexTextInputState const): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::disableComplexTextInputIfNecessary):
(WebKit::WebViewImpl::handlePluginComplexTextInputKeyDown):
(WebKit::WebViewImpl::tryHandlePluginComplexTextInputKeyDown):
(WebKit::WebViewImpl::tryPostProcessPluginComplexTextInputKeyDown):
(WebKit::WebViewImpl::setPluginComplexTextInputState): Deleted.
(WebKit::WebViewImpl::setPluginComplexTextInputStateAndIdentifier): Deleted.

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):

  • UIProcess/PageClient.h:
  • UIProcess/Plugins/PluginInfoStore.cpp: Removed.
  • UIProcess/Plugins/PluginInfoStore.h: Removed.
  • UIProcess/Plugins/PluginProcessManager.cpp: Removed.
  • UIProcess/Plugins/PluginProcessManager.h: Removed.
  • UIProcess/Plugins/PluginProcessProxy.cpp: Removed.
  • UIProcess/Plugins/PluginProcessProxy.h: Removed.
  • UIProcess/Plugins/PluginProcessProxy.messages.in: Removed.
  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm: Removed.
  • UIProcess/Plugins/mac/PluginProcessManagerMac.mm: Removed.
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm: Removed.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::canShowMIMEType):
(WebKit::WebPageProxy::findPlugin): Deleted.
(WebKit::WebPageProxy::unavailablePluginButtonClicked): Deleted.
(WebKit::WebPageProxy::didFailToInitializePlugin): Deleted.
(WebKit::WebPageProxy::didBlockInsecurePluginVersion): Deleted.

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

(WebKit::WebProcessPool::sendMemoryPressureEvent):
(WebKit::WebProcessPool::addSupportedPlugin):
(WebKit::WebProcessPool::clearSupportedPlugins):
(WebKit::WebProcessPool::setAdditionalPluginsDirectory): Deleted.
(WebKit::WebProcessPool::refreshPlugins): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getPlugins): Deleted.
(WebKit::WebProcessProxy::getPluginProcessConnection): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::topPrivatelyControlledDomain):
(WebKit::WebsiteDataRecord::isolatedCopy const):
(WebKit::WebsiteDataRecord::addPluginDataHostName): Deleted.

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::plugins const): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setPluginComplexTextInputState): Deleted.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::setPluginComplexTextInputState): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setPluginComplexTextInputState): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/Netscape/JSNPMethod.cpp: Removed.
  • WebProcess/Plugins/Netscape/JSNPMethod.h: Removed.
  • WebProcess/Plugins/Netscape/JSNPObject.cpp: Removed.
  • WebProcess/Plugins/Netscape/JSNPObject.h: Removed.
  • WebProcess/Plugins/Netscape/NPJSObject.cpp: Removed.
  • WebProcess/Plugins/Netscape/NPJSObject.h: Removed.
  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: Removed.
  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: Removed.
  • WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp: Removed.
  • WebProcess/Plugins/Netscape/NPRuntimeUtilities.h: Removed.
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: Removed.
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.h: Removed.
  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp: Removed.
  • WebProcess/Plugins/Netscape/NetscapePlugin.h: Removed.
  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: Removed.
  • WebProcess/Plugins/Netscape/NetscapePluginStream.h: Removed.
  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Removed.
  • WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm: Removed.
  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginProcessConnection.cpp: Removed.
  • WebProcess/Plugins/PluginProcessConnection.h: Removed.
  • WebProcess/Plugins/PluginProcessConnection.messages.in: Removed.
  • WebProcess/Plugins/PluginProcessConnectionManager.cpp: Removed.
  • WebProcess/Plugins/PluginProcessConnectionManager.h: Removed.
  • WebProcess/Plugins/PluginProcessConnectionManager.messages.in: Removed.
  • WebProcess/Plugins/PluginProxy.cpp: Removed.
  • WebProcess/Plugins/PluginProxy.h: Removed.
  • WebProcess/Plugins/PluginProxy.messages.in: Removed.
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::didFinishLoading):
(WebKit::PluginView::destroyPluginAndReset):
(WebKit::PluginView::didFailToInitializePlugin):
(WebKit::PluginView::scriptObject):
(WebKit::PluginView::pageMutedStateDidChange):
(WebKit::PluginView::windowScriptNPObject): Deleted.
(WebKit::PluginView::pluginElementNPObject): Deleted.
(WebKit::PluginView::evaluate): Deleted.
(WebKit::PluginView::setPluginIsPlayingAudio): Deleted.
(WebKit::PluginView::isMuted const): Deleted.
(WebKit::PluginView::setComplexTextInputState): Deleted.

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::pluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache): Deleted.

  • WebProcess/Plugins/WebPluginInfoProvider.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::unavailablePluginButtonClicked const):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::refreshPlugins):
(WebKit::WebProcess::pluginProcessConnectionManager): Deleted.

  • WebProcess/WebProcess.h:

Source/WebKitLegacy:

  • PlatformMac.cmake:
  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Plugins/Hosted/HostedNetscapePluginStream.h: Removed.
  • Plugins/Hosted/HostedNetscapePluginStream.mm: Removed.
  • Plugins/Hosted/NetscapePluginHostManager.h: Removed.
  • Plugins/Hosted/NetscapePluginHostManager.mm: Removed.
  • Plugins/Hosted/NetscapePluginHostProxy.h: Removed.
  • Plugins/Hosted/NetscapePluginHostProxy.mm: Removed.
  • Plugins/Hosted/NetscapePluginInstanceProxy.h: Removed.
  • Plugins/Hosted/NetscapePluginInstanceProxy.mm: Removed.
  • Plugins/Hosted/ProxyInstance.h: Removed.
  • Plugins/Hosted/ProxyInstance.mm: Removed.
  • Plugins/Hosted/ProxyRuntimeObject.h: Removed.
  • Plugins/Hosted/ProxyRuntimeObject.mm: Removed.
  • Plugins/Hosted/WebHostedNetscapePluginView.h: Removed.
  • Plugins/Hosted/WebHostedNetscapePluginView.mm: Removed.
  • Plugins/Hosted/WebKitPluginAgent.defs: Removed.
  • Plugins/Hosted/WebKitPluginAgentReply.defs: Removed.
  • Plugins/Hosted/WebKitPluginClient.defs: Removed.
  • Plugins/Hosted/WebKitPluginHost.defs: Removed.
  • Plugins/Hosted/WebKitPluginHostTypes.defs: Removed.
  • Plugins/Hosted/WebKitPluginHostTypes.h: Removed.
  • Plugins/Hosted/WebTextInputWindowController.h: Removed.
  • Plugins/Hosted/WebTextInputWindowController.m: Removed.
  • Plugins/WebBaseNetscapePluginView.h: Removed.
  • Plugins/WebBaseNetscapePluginView.mm: Removed.
  • Plugins/WebBasePluginPackage.h:
  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage pluginWithPath:]):

  • Plugins/WebNetscapePluginEventHandler.h: Removed.
  • Plugins/WebNetscapePluginEventHandler.mm: Removed.
  • Plugins/WebNetscapePluginEventHandlerCocoa.h: Removed.
  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: Removed.
  • Plugins/WebNetscapePluginPackage.h: Removed.
  • Plugins/WebNetscapePluginPackage.mm: Removed.
  • Plugins/WebNetscapePluginStream.h: Removed.
  • Plugins/WebNetscapePluginStream.mm: Removed.
  • Plugins/WebNetscapePluginView.h: Removed.
  • Plugins/WebNetscapePluginView.mm: Removed.
  • Plugins/WebPluginController.mm:

(-[WebPluginController destroyPlugin:]):
(-[WebPluginController destroyAllPlugins]):

  • Plugins/WebPluginDatabase.mm:

(PluginPackageCandidates::update):
(-[WebPluginDatabase removePluginInstanceViewsFor:]):
(-[WebPluginDatabase destroyAllPluginInstanceViews]):

  • Plugins/WebPluginRequest.h: Removed.
  • Plugins/WebPluginRequest.m: Removed.
  • Plugins/npapi.mm: Removed.
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createWindow):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchCreatePage):
(WebFrameLoaderClient::createPlugin):
(WebFrameLoaderClient::redirectDataToPlugin):
(NetscapePluginWidget::NetscapePluginWidget): Deleted.
(NetscapePluginWidget::platformLayer const): Deleted.
(NetscapePluginWidget::getFormValue): Deleted.
(NetscapePluginWidget::handleEvent): Deleted.
(NetscapePluginWidget::clipRectChanged): Deleted.
(NetscapePluginWidget::notifyWidget): Deleted.

  • WebView/WebFrame.mm:

(-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]): Deleted.
(-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]): Deleted.

  • WebView/WebFramePrivate.h:
  • WebView/WebHTMLView.mm:

(needsCursorRectsSupportAtPoint):
(-[WebHTMLView viewWillMoveToHostWindow:]):
(-[WebHTMLView viewDidMoveToHostWindow]):
(-[WebHTMLView _web_makePluginSubviewsPerformSelector:withObject:]): Deleted.
(-[WebHTMLView _pauseNullEventsForAllNetscapePlugins]): Deleted.
(-[WebHTMLView _resumeNullEventsForAllNetscapePlugins]): Deleted.

  • WebView/WebHTMLViewPrivate.h:
  • WebView/WebView.mm:

Source/WTF:

It is not used anywhere since https://trac.webkit.org/changeset/285003/webkit

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
1:30 PM Changeset in webkit [285046] by Ayumi Kojima
  • 15 edits in trunk/Source

Unreviewed, reverting r285038.

Reverting the commit because it broke the open source test
runs and also caused an impanct on EWS queues

Reverted changeset:

"Create constants for all special frame names used in anchor
target attribute values and elsewhere"
https://bugs.webkit.org/show_bug.cgi?id=232488
https://commits.webkit.org/r285038

1:17 PM Changeset in webkit [285045] by ysuzuki@apple.com
  • 21 edits in trunk

Unreviewed, revert r284440, r284397, r284359

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt:
  • web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt:
  • web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt:

Source/WebCore:

r284359 causes Twitter using CPU 100%.
We reverted r284440 and r284397 too since they rely on r284359 change.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):

  • css/CSSProperties.json:
  • css/LengthFunctions.cpp:

(WebCore::valueForLength):
(WebCore::floatValueForLength):

  • css/LengthFunctions.h:

(WebCore::minimumValueForLength):

  • css/calc/CSSCalcValue.cpp:

(WebCore::createCSS):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFlexBasis):
(WebCore::CSSPropertyParser::consumeFlex):

  • platform/Length.cpp:

(WebCore::operator<<):

  • platform/Length.h:

(WebCore::Length::initialize):
(WebCore::Length::isContent const): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeReplacedLogicalWidthUsing const):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite):
(WebCore::RenderFlexibleBox::childHasComputableAspectRatioAndCrossSizeIsConsideredDefinite):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes):
(WebCore::RenderFlexibleBox::constructFlexItem):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
(WebCore::ScopedUnboundedBoxWithFlexBasisAsChildMainSize::ScopedUnboundedBoxWithFlexBasisAsChildMainSize): Deleted.
(WebCore::ScopedUnboundedBoxWithFlexBasisAsChildMainSize::~ScopedUnboundedBoxWithFlexBasisAsChildMainSize): Deleted.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Deleted.

  • rendering/RenderFlexibleBox.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertLengthSizing):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Length>::encode):
(IPC::ArgumentCoder<Length>::decode):

LayoutTests:

12:28 PM Changeset in webkit [285044] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore/PAL

Cherry-pick r284494. rdar://problem/84816590

REGRESSION (r284220): [PAL] TCCSPI.h should be a project header, not a private header
<https://webkit.org/b/231977>
<rdar://problem/84425384>

Reviewed by Wenson Hsieh.

  • PAL.xcodeproj/project.pbxproj:
  • Change TCCSPI.h from a private header to a project header. PAL uses a build phase script to install its headers.

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

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

[ BigSur wk1 Debug arm64 ] inspector/audit/run-accessibility.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=232322

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:29 AM Changeset in webkit [285042] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 Debug arm64 ] webaudio/AudioBufferSource/audiobuffersource-playbackrate.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232500.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:53 AM Changeset in webkit [285041] by sihui_liu@apple.com
  • 25 edits in trunk

Release FileSystemStorageHandle when it is not in use
https://bugs.webkit.org/show_bug.cgi?id=232363

Reviewed by Youenn Fablet.

Source/WebCore:

When FileSystemHandle is destroyed, its corresponding FileSystemStorageHandle should be destroyed as it will
not be used any more. Also, stop creating a new FileSystemHandle or FileSystemSyncAccessHandle if context
already stops.

  • Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:

(WebCore::FileSystemDirectoryHandle::create):
(WebCore::FileSystemDirectoryHandle::FileSystemDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getHandle):

  • Modules/filesystemaccess/FileSystemDirectoryHandle.h:
  • Modules/filesystemaccess/FileSystemFileHandle.cpp:

(WebCore::FileSystemFileHandle::create):
(WebCore::FileSystemFileHandle::FileSystemFileHandle):
(WebCore::FileSystemFileHandle::createSyncAccessHandle):

  • Modules/filesystemaccess/FileSystemFileHandle.h:
  • Modules/filesystemaccess/FileSystemHandle.cpp:

(WebCore::FileSystemHandle::FileSystemHandle):

  • Modules/filesystemaccess/FileSystemHandle.h:
  • Modules/filesystemaccess/FileSystemStorageConnection.h:
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:

(WebCore::FileSystemSyncAccessHandle::create):
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):

  • Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:

(WebCore::WorkerFileSystemStorageConnection::closeHandle):

  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::fileSystemAccessGetDirectory):

Source/WebKit:

  • NetworkProcess/storage/FileSystemStorageHandle.cpp:

(WebKit::FileSystemStorageHandle::close):

  • NetworkProcess/storage/FileSystemStorageHandle.h:
  • NetworkProcess/storage/FileSystemStorageManager.cpp:

(WebKit::FileSystemStorageManager::closeHandle):
(WebKit::FileSystemStorageManager::connectionClosed):

  • NetworkProcess/storage/FileSystemStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::closeHandle):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:

(WebKit::WebFileSystemStorageConnection::closeHandle):

  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:

LayoutTests:

  • storage/filesystemaccess/resources/sync-access-handle-basics.js:

(getDirectory): clean up existing file before test.

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

Layout test http/tests/websocket/tests/hybi/send-object-tostring-check.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=176030

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:41 AM Changeset in webkit [285039] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ BigSur Debug wk2 arm64 EWS-only ] media/media-source/media-source-istypesupported-case-sensitive.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232497.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:27 AM Changeset in webkit [285038] by Darin Adler
  • 15 edits in trunk/Source

Create constants for all special frame names used in anchor target attribute values and elsewhere
https://bugs.webkit.org/show_bug.cgi?id=232488

Reviewed by Anders Carlsson.

Source/WebCore:

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick): Use isBlankTargetFrameName.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit): Ditto.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openURLExternally): Use
blankTargetFrameName and selfTargetFrameName.

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate): Ditto.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame): Use selfTargetFrameName.
(WebCore::FrameLoader::loadURL): Use selfTargetFrameName and blankTargetFrameName.
(WebCore::FrameLoader::loadPostRequest): Use blankTargetFrameName.
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Ditto.
(WebCore::createWindow): Use isBlankTargetFrameName.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange): Use selfTargetFrameName.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::defaultEventHandler): Use selfTargetFrameName.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Use selfTargetFrameName.
(WebCore::DOMWindow::open): Use isTopTargetFrameName and isParentTargetFrameName.

  • page/FrameTree.cpp:

(WebCore::FrameTree::uniqueChildName const): Use isBlankTargetFrameName.
(WebCore::FrameTree::find const): Use isSelfTargetFrameName, isTopTargetFrameName,
isParentTargetFrameName, and isBlankTargetFrameName.
(WebCore::blankTargetFrameName): Added.
(WebCore::selfTargetFrameName): Added.
(WebCore::isBlankTargetFrameName): Added.
(WebCore::isParentTargetFrameName): Added.
(WebCore::isSelfTargetFrameName): Added.
(WebCore::isTopTargetFrameName): Added.

  • page/FrameTree.h: Add declarations.
  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler): Use blankTargetFrameName.

Source/WTF:

  • wtf/Forward.h: Declare ASCIILiteral.
  • wtf/text/ASCIILiteral.h: Update for above.
10:20 AM Changeset in webkit [285037] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ BigSur Debug wk2 arm64 EWS ] webrtc/video-receivers.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232492.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:17 AM Changeset in webkit [285036] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

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

Reviewed by Yusuke Suzuki.

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

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

  • wtf/PlatformEnable.h:
9:50 AM Changeset in webkit [285035] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkitscmpy] Assign PR to author
https://bugs.webkit.org/show_bug.cgi?id=232348
<rdar://problem/84685313>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.request): Add assignees.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.create): Assign created PR to it's author.
(GitHub.PRGenerator.update): Assign modified PR to it's editor.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py: Add assignees.
9:48 AM Changeset in webkit [285034] by achristensen@apple.com
  • 2 edits in trunk/Tools

Re-enable two AppPrivacyReport tests
webkit.org/b/232166

I ran them locally on iOS simulator and they ran fine.
They were disabled during a tumultuous time, and the cause of their timeouts is likely resolved.
I'll watch the bots and see if they agree.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
9:46 AM Changeset in webkit [285033] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

REGRESSION (r283269) disneyplus.com time remaining bar shows an extra line/bar
https://bugs.webkit.org/show_bug.cgi?id=232461
rdar://84561981

Reviewed by Antti Koivisto.

Source/WebCore:

The "time remaining" bar on disneyplus.com is implemented using a
<progress> element. Some elements, including <progress>, drop their
native appearance depending on which CSS properties are set. For
example, setting a custom background color on a <progress> element
prevents us from drawing the native progress bar. This behavior is
implemented by changing the used value of 'appearance' to 'none'.

Prior to r283269, there was no distinction between the specified and
used value for 'appearance'. The logic to set the used value of
'appearance' to 'none' resulted in the used value being exposed to
the page. In particular, getComputedStyle() returned the used value for
for 'appearance' (rather than the specified value), contrary to the
specification. To fix, r283269 split up the specified value (appearance)
and the used value (effectiveAppearance) into distinct fields in
RenderStyle.

<progress> elements are shadow roots, containing a
'-webkit-progress-inner-element' in their shadow tree. This element has
a '-webkit-appearance: inherit' declaration in the UA stylesheet. The
change in r283269 made it so that the 'none' value obtained as a result
of styling the <progress> is not inherited by
'-webkit-progress-inner-element', as it is not the specified value in
the parent style. Consequently, the '-webkit-progress-inner-element'
has 'appearance: progress-bar', causing a second bar to show up on
disneyplus.com.

To fix, remove the '-webkit-appearance: inherit' declaration for
'-webkit-progress-inner-element' in the UA stylesheet. The declaration
was originally added in r124754, to support the 'AuthorShadowDOM'
feature, but is no longer necessary as it is not possible to attach
a shadow root to <progress> elements. This change ensures that
'-webkit-progress-inner-element' has a specified/used 'appearance: none',
and does not draw an additional progress bar.

Test: fast/dom/HTMLProgressElement/progress-element-styled-drop-appearance.html

  • css/html.css:

(progress::-webkit-progress-inner-element):

LayoutTests:

Added a ref test to verify that the native progress bar is not drawn
when a <progress> element has custom styling.

Thanks to Antti Koivisto for the reduction leading to this test case.

  • fast/dom/HTMLProgressElement/progress-element-styled-drop-appearance-expected.html: Added.
  • fast/dom/HTMLProgressElement/progress-element-styled-drop-appearance.html: Added.
9:22 AM Changeset in webkit [285032] by Antti Koivisto
  • 11 edits in trunk

Make :-webkit-any() a synonym of :is()
https://bugs.webkit.org/show_bug.cgi?id=232482

Reviewed by Simon Fraser.

Source/WebCore:

:-webkit-any() is an obscure obsolete subset version of the standard :is(). It can become a full synonym.
Another obsolete version :matches() is already a full synonym.

The main difference is that :is allows complex selectors and uses forgiving parsing.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

LayoutTests:

  • fast/css/pseudo-any-expected.txt:
  • fast/css/pseudo-any.html:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector.html:
  • fast/selectors/invalid-functional-pseudo-class-expected.txt:
  • fast/selectors/invalid-functional-pseudo-class.html:
8:52 AM Changeset in webkit [285031] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Enable -Wformat=2 warnings
<https://webkit.org/b/232359>
<rdar://problem/84691442>

Reviewed by Darin Adler.

  • Configurations/Base.xcconfig:

(WARNING_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
8:47 AM Changeset in webkit [285030] by Ayumi Kojima
  • 25 edits in trunk

Unreviewed, reverting r285007.

Reverting r285007 because it caused storage/filesystemaccess
/sync-access-handle-basics-worker.html to constantly fail.

Reverted changeset:

"Release FileSystemStorageHandle when it is not in use"
https://bugs.webkit.org/show_bug.cgi?id=232363
https://commits.webkit.org/r285007

8:44 AM Changeset in webkit [285029] by Jonathan Bedard
  • 8 edits in trunk/Tools

[webkitscmpy] Add fetch and rebase
https://bugs.webkit.org/show_bug.cgi?id=232447
<rdar://problem/84770221>

Reviewed by Dewei Zhu.

To land commits, we need to be able to rebase a branch against another.
Additionally, when rebasing, we need to discard stale cache bits. This
is also true when pulling and rebasing against main.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.Cache.clear): Clear cache of a specific branch.
(Git.rebase): Rebase a branch on top of another.
(Git.fetch): Fetch specific branch ref.
(Git.pull): Use generalized fetch command, clear cache for updated branch
if that branch is not the default branch.

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

(Git.init): Add rebase mock.
(Git.rebase):

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

(PullRequest.main): Recompute branch-point after rebase.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(test_rebase):

8:37 AM Changeset in webkit [285028] by Chris Dumez
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

[ iOS ] imported/w3c/web-platform-tests/dom/events/scrolling/iframe-chains.html is missing its results
https://bugs.webkit.org/show_bug.cgi?id=232484
<rdar://problem/84809167>

Unreviewed, land expected.txt for new test introduced in r285010 during the WPT resync.

  • web-platform-tests/dom/events/scrolling/iframe-chains-expected.txt: Added.
6:36 AM Changeset in webkit [285027] by youenn@apple.com
  • 22 edits
    1 copy
    2 adds in trunk/Source/WebCore

Ensure synchronized rendering of incoming audio tracks
https://bugs.webkit.org/show_bug.cgi?id=232375

Reviewed by Eric Carlson.

WebRTC incoming audio tracks are guaranteed to be synchronized based on the audio module clock.
Previously, we were mixing all audio tracks together, but we were not handling synchronization of tracks that have the same clock.
This can cause some lower quality audio rendering.
To prevent this, all WebRTC incoming audio tracks are now mixed together in a single track that is then mixed with all other non synchronized tracks.
To do so we introduce IncomingAudioMediaStreamTrackRendererUnit which will receive all incoming audio tracks.
It then sends the mix to the actual AudioMediaStreamTrackRendererUnit.
To ensure tight synchronization, we introduce AudioSampleDataSource::pullAvailableSampleChunk which reads data using the provided timestamp relative to the input offset.
We do a refactoring to make it easy to either use IncomingAudioMediaStreamTrackRendererUnit or AudioMediaStreamTrackRendererUnit by having a base class called BaseAudioMediaStreamTrackRendererUnit.

Manually tested.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:
  • platform/audio/cocoa/AudioSampleDataSource.h:
  • platform/audio/cocoa/AudioSampleDataSource.mm:
  • platform/mediastream/AudioMediaStreamTrackRenderer.cpp:
  • platform/mediastream/AudioMediaStreamTrackRenderer.h:
  • platform/mediastream/AudioTrackPrivateMediaStream.cpp:
  • platform/mediastream/RealtimeIncomingAudioSource.cpp:
  • platform/mediastream/RealtimeIncomingAudioSource.h:
  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h:
  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
  • platform/mediastream/cocoa/BaseAudioMediaStreamTrackRendererUnit.h: Added.
  • platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.cpp: Added.
  • platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.h: Added.
  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
6:04 AM Changeset in webkit [285026] by aakash_jain@apple.com
  • 2 edits in trunk

Add Aakash's GitHub username to contributors.json

5:05 AM Changeset in webkit [285025] by Oriol Brufau
  • 2 edits in trunk

Add obrufau's GitHub username to contributors.json

Unreviewed.

  • metadata/contributors.json:
3:59 AM Changeset in webkit [285024] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Fix potential race in AudioMediaStreamTrackRendererCocoa::pushSamples
https://bugs.webkit.org/show_bug.cgi?id=232430

Reviewed by Eric Carlson.

In case we start a AudioMediaStreamTrackRendererCocoa, and we quickly stop it, there may be a time
where we create an AudioSampleDataSource from a background thread, then hop to main thread.
We would then register it to the rendering unit even if the AudioMediaStreamTrackRendererCocoa is cleared.
The AudioSampleDataSource would then be kept registered with no data which would be wasteful in terms of CPU.
To fix this, we keep m_dataSource but introduce a m_registeredDataSource.
m_registeredDataSource is only manipulated in main thread and is the one that is registered/unregistered to the rendering unit.
m_dataSource is only accessed from background thread.

Manually tested and covered by added assertion in AudioMediaStreamTrackRendererCocoa destructor.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::~AudioMediaStreamTrackRendererCocoa):
(WebCore::AudioMediaStreamTrackRendererCocoa::clear):
(WebCore::AudioMediaStreamTrackRendererCocoa::setRegisteredDataSource):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
(WebCore::pollSamplesCount): Deleted.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h:
2:50 AM Changeset in webkit [285023] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

LocalAudioMediaStreamTrackRendererInternalUnit should clip audio data
https://bugs.webkit.org/show_bug.cgi?id=232428

Reviewed by Eric Carlson.

When using a bluetooth speaker, unclipped audio data triggers distortion, contrary to built-in speakers.
To prevent this, we clip audio data just before rendering for float audio samples.

Manually tested.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
2:15 AM Changeset in webkit [285022] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

AudioMediaStreamTrackRendererUnit::render should handle the case of failing to pull samples from the first source
https://bugs.webkit.org/show_bug.cgi?id=232429

Reviewed by Eric Carlson.

In case we fail to pull samples from the first source, we should copy the data of the second source,
and so on until we actually copy data. Then we can start mixing data.
In case all pulls fail, we now output silence.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
2:13 AM Changeset in webkit [285021] by Martin Robinson
  • 7 edits in trunk

opacity should flatten when combined with transform-style: preserve-3d
https://bugs.webkit.org/show_bug.cgi?id=73267

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

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

show newly passing test.

Source/WebCore:

No new tests. This is covered by the existing WPT test:

  • imported/w3c/web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties.html
  • style/StyleAdjuster.cpp:

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

LayoutTests:

  • compositing/geometry/preserve-3d-switching-expected.txt:
  • platform/ios/compositing/geometry/preserve-3d-switching-expected.txt:
12:23 AM Changeset in webkit [285020] by Takashi.Komori@sony.com
  • 7 edits
    1 add in trunk

WKAPI does not have any APIs to set cookie path to WKWebsiteDataStoreConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=232336

Reviewed by Alex Christensen.

Add cookie-path setting API for WKWebasiteDataStoreConfigurationRef.

Source/WebKit:

Test: CookieStorageFile.CustomPath

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationCopyCookieStorageFile):
(WKWebsiteDataStoreConfigurationSetCookieStorageFile):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/WebsiteData/curl/WebsiteDataStoreCurl.cpp:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

Tools:

  • TestWebKitAPI/PlatformPlayStation.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/Tests/WebKit/CookieStorageFile.cpp: Added.

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST_F):

Oct 28, 2021:

11:19 PM Changeset in webkit [285019] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WTF

[WTF] Use mcontext_t on OpenBSD
https://bugs.webkit.org/show_bug.cgi?id=232451

In OpenBSD there is no mcontext_t, but the needed information
is contained directly in ucontext_t, so use the latter instead.

This is essentially these two patches from the OpenBSD packaging
of WebKitGTK:

https://github.com/openbsd/ports/blob/865bd13/www/webkitgtk4/patches/patch-Source_WTF_wtf_PlatformRegisters_h
https://github.com/openbsd/ports/blob/865bd13/www/webkitgtk4/patches/patch-Source_WTF_wtf_PlatformHave_h

Reviewed by Carlos Garcia Campos.

  • wtf/PlatformHave.h:
  • wtf/PlatformRegisters.h:

(WTF::registersFromUContext):

9:19 PM Changeset in webkit [285018] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Layout test is crashing inside WebChromeClient::createWindow
https://bugs.webkit.org/show_bug.cgi?id=232460
<rdar://81344393>

Reviewed by Brent Fulgham.

Add null check for local NetscapePluginHostProxy pointer variable.

  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::NetscapePluginHostManager::didCreateWindow):

8:49 PM Changeset in webkit [285017] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Yahoo.com has fragments of wrongly-scaled content throughout when using CGDisplayListImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=232459

Reviewed by Dean Jackson.

Source/WebCore:

  • platform/graphics/GraphicsContext.h:

Add a WEBCORE_EXPORT that the compiler now wants.

  • platform/graphics/cg/GraphicsContextCG.h:

Add a final that was missing; not sure why the compiler didn't complain
about the lack of final OR override, but it does now!
Change getCTM and setCTM to override instead of final so that
GraphicsContextCGDisplayList can override them.

Source/WebKit:

Similar to r284991, 2D transforms that getCTM() from a CGBitmap context and set
the result on a CGDisplayList with setCTM() (via BifurcatedGraphicsContext)
corrupt the display list's CTM, because it starts out in a different initial state,
because the display list is always recorded with a 1x scale.

To fix this, sneak the fake scale into setCTM/getCTM (multiplying it in in get,
dividing it out in set) so that it appears to the outside as if it has
the same base transform as the CGBitmap context.

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::GraphicsContextCGDisplayList::GraphicsContextCGDisplayList):
(WebKit::CGDisplayListImageBufferBackend::create):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

7:53 PM Changeset in webkit [285016] by commit-queue@webkit.org
  • 9 edits in trunk

Source/WebCore:
Negative length returned by TextUtil::midWordBreak with surrogate pair
https://bugs.webkit.org/show_bug.cgi?id=232053

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-28
Reviewed by Alan Bujtas.

When the substring does not fit, the right side is supposed to be the start
of the surrogate pair if applicable. However, if the start of the surrogate
pair falls to the left of the startPosition, we will end up returning a
negative length. Instead, bail out at this point since we know that our
middle point (which becomes the right) falls before the start position.
We are not going to find a non-empty fitting content anymore in here.

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

(WebCore::Layout::TextUtil::breakWord):

LayoutTests:
Add an additional edge case for surrogate pairs to existing tests.
https://bugs.webkit.org/show_bug.cgi?id=232053

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-28
Reviewed by Alan Bujtas.

  • fast/text/word-break-column-gap-display-flex-utf16-surrogates-expected.txt:
  • fast/text/word-break-column-gap-display-flex-utf16-surrogates.html:
  • fast/text/word-break-letter-spacing-utf16-surrogates-expected.txt:
  • fast/text/word-break-letter-spacing-utf16-surrogates.html:
  • fast/text/word-break-max-width-utf16-surrogates-expected.txt:
  • fast/text/word-break-max-width-utf16-surrogates.html:
7:19 PM Changeset in webkit [285015] by Nikos Mouchtaris
  • 8 edits
    2 adds
    2 deletes in trunk

if border-radius includes a var(), the value is not readable from .style
https://bugs.webkit.org/show_bug.cgi?id=230389

Reviewed by Myles Maxfield.
Source/WebCore:

Return correct string for shorthand CSS values set by var. Add extra checks for if all
longhand properties are pending values and if the requested shorthand property was set
to a variable.

Test: css3/short-hand-var-serialization.html

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

LayoutTests:

  • css3/short-hand-var-serialization-expected.txt: Added.
  • css3/short-hand-var-serialization.html: Added.
7:00 PM Changeset in webkit [285014] by Russell Epstein
  • 1 copy in tags/Safari-613.1.6.4

Tag Safari-613.1.6.4.

6:58 PM Changeset in webkit [285013] by Russell Epstein
  • 8 edits in branches/safari-613.1.6-branch/Source

Versioning.

WebKit-7613.1.6.4

6:04 PM Changeset in webkit [285012] by Chris Dumez
  • 54 edits
    12 adds in trunk

Add stubs for the Web Locks API
https://bugs.webkit.org/show_bug.cgi?id=232438

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing or failing later on.

  • web-platform-tests/web-locks/acquire.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/acquire.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/clientids.tentative.https-expected.txt:
  • web-platform-tests/web-locks/frames.tentative.https-expected.txt:
  • web-platform-tests/web-locks/held.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/held.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/idlharness.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/idlharness.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/ifAvailable.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/ifAvailable.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/lock-attributes.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/lock-attributes.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/mode-exclusive.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/mode-exclusive.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/mode-mixed.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/mode-mixed.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/mode-shared.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/mode-shared.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/opaque-origin.tentative.https-expected.txt:
  • web-platform-tests/web-locks/query-empty.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/query-empty.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/query-ordering.tentative.https-expected.txt:
  • web-platform-tests/web-locks/query.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/query.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/resource-names.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/resource-names.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/secure-context.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/secure-context.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/signal.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/signal.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/steal.tentative.https.any-expected.txt:
  • web-platform-tests/web-locks/steal.tentative.https.any.worker-expected.txt:
  • web-platform-tests/web-locks/workers.tentative.https-expected.txt:

Source/WebCore:

Add stubs for the Web Locks API:

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/web-locks/NavigatorLocks.idl: Added.
  • Modules/web-locks/WebLock.cpp: Added.

(WebCore::WebLock::create):
(WebCore::WebLock::WebLock):

  • Modules/web-locks/WebLock.h: Added.

(WebCore::WebLock::name const):
(WebCore::WebLock::mode const):

  • Modules/web-locks/WebLock.idl: Added.
  • Modules/web-locks/WebLockGrantedCallback.h: Added.
  • Modules/web-locks/WebLockGrantedCallback.idl: Added.
  • Modules/web-locks/WebLockManager.cpp: Added.

(WebCore::WebLockManager::create):
(WebCore::WebLockManager::WebLockManager):
(WebCore::WebLockManager::request):
(WebCore::WebLockManager::query):

  • Modules/web-locks/WebLockManager.h: Added.
  • Modules/web-locks/WebLockManager.idl: Added.
  • Modules/web-locks/WebLockMode.h: Added.
  • Modules/web-locks/WebLockMode.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/Navigator.idl:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::locks):

  • page/NavigatorBase.h:
  • page/WorkerNavigator.idl:

Source/WTF:

Add experimental feature flag, off by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
5:46 PM Changeset in webkit [285011] by commit-queue@webkit.org
  • 12 edits
    10 adds in trunk/LayoutTests

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

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-28

  • platform/glib/fast/block/positioning/062-expected.txt: Added.
  • platform/glib/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt: Added.
  • platform/glib/fast/layers/opacity-stacking-expected.txt: Added.
  • platform/glib/fast/multicol/svg-content-as-column-spanner-crash-expected.txt: Added.
  • platform/glib/fast/repaint/overflow-into-content-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/media-capabilities/decodingInfo.webrtc-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/media-capabilities/encodingInfo.webrtc-expected.txt: Added.
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/fast/block/float/multiple-float-positioning-expected.txt:
  • platform/gtk/fast/block/margin-collapse/101-expected.txt:
  • platform/gtk/fast/block/margin-collapse/103-expected.txt:
  • platform/gtk/fast/text/updateNewFont-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
5:21 PM Changeset in webkit [285010] by Chris Dumez
  • 8 edits
    2 moves
    28 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/dom from upstream
https://bugs.webkit.org/show_bug.cgi?id=232441

Reviewed by Darin Adler.

Resync web-platform-tests/dom from upstream 038de3e0ddeaf9e.

  • web-platform-tests/dom/*: Updated.
5:21 PM Changeset in webkit [285009] by mmaxfield@apple.com
  • 5 edits
    7 adds in trunk

The space glyph in the Filicudi font is not substituted by shaping in the complex text codepath, thereby breaking the visual effect of the font
https://bugs.webkit.org/show_bug.cgi?id=232293

Reviewed by Darin Adler.

.:

Big thanks to Ulrike Rausch and Frank Grießhammer for contributing the test font!!!

  • metadata/contributors.json:

Source/WebCore:

Filicudi is a color font where the background of the glyphs is filled with a
repeating pattern of colored vertical stripes. Each glyph has multiple
alternates which change the phase of this repeating background pattern. The
font also has shaping rules to select the right alternate glyph based on the
previous glyph, so that the phases line up correctly and you get a nice
repeating pattern throughout the whole line of text.

You can see this in action here:
https://fonts.adobe.com/fonts/tipoteca-series#fonts-section

In the complex text codepath, though, after shaping, we were clobbering the
glyph used by the space character. We were overwriting it to be the glyph
that would have been used if there were no shaping. This means that the phase
of the repeating background for the space glyph was wrong, which broke the
visual effect of the repeating background on a full line of text.

The solution is to just stop clobbering the space glyph - but continue to
clobber the space width. If we stop clobbering the space glyph, then the
repeating background starts working again. We have to continue to clobber the
spaceWidth because different parts of webkit measure text in differently-sized
chunks. For example, computing the preferred widths measures word-by-word, but
painting - which requires measuring - measures the entire run. In order to have
these different strategies measure consistently, we have to clobber the widths
of all the space characters to set them consistently. These space width
adjustments are small - they're usually due to slight kerning of characters
like "T" around a space.

Clobbering one but not the other seems a bit scary, but I think in practice it
will actually be an improvement, because:
1) These glyphs we're dealing with here are almost always invisible, so

clobbering / not clobbering won't have much effect

2) Because the width adjustments are usually small, the chance for a mismatch

causing broken rendering is also small.

Long term, though, we'll stop clobbering space widths, too, because IFC will
help us be more deliberate about the chunks we measure text in. So, I think
this patch is both A) an improvement upon what we're shipping today, and
B) a step in the right future direction.

Test: fast/text/complex-space-glyph.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

Big thanks to Ulrike Rausch and Frank Grießhammer for contributing the test font!!!

  • fast/text/complex-space-glyph-expected.html: Added.
  • fast/text/complex-space-glyph.html: Added.
  • fast/text/resources/Filicudi Dummy BSD2/FilicudiDummy-Barber.otf: Added.
  • fast/text/resources/Filicudi Dummy BSD2/LICENSE.txt: Added.
  • fast/text/resources/Filicudi Dummy BSD2/README.md: Added.
  • fast/text/resources/Filicudi Dummy BSD2/color.html: Added.
5:04 PM Changeset in webkit [285008] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] webgl/1.0.3/conformance/uniforms/uniform-default-values.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=231514

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:46 PM Changeset in webkit [285007] by sihui_liu@apple.com
  • 25 edits in trunk

Release FileSystemStorageHandle when it is not in use
https://bugs.webkit.org/show_bug.cgi?id=232363

Reviewed by Youenn Fablet.

Source/WebCore:

When FileSystemHandle is destroyed, its corresponding FileSystemStorageHandle should be destroyed as it will
not be used any more. Also, stop creating a new FileSystemHandle or FileSystemSyncAccessHandle if context
already stops.

  • Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:

(WebCore::FileSystemDirectoryHandle::create):
(WebCore::FileSystemDirectoryHandle::FileSystemDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::getHandle):

  • Modules/filesystemaccess/FileSystemDirectoryHandle.h:
  • Modules/filesystemaccess/FileSystemFileHandle.cpp:

(WebCore::FileSystemFileHandle::create):
(WebCore::FileSystemFileHandle::FileSystemFileHandle):
(WebCore::FileSystemFileHandle::createSyncAccessHandle):

  • Modules/filesystemaccess/FileSystemFileHandle.h:
  • Modules/filesystemaccess/FileSystemHandle.cpp:

(WebCore::FileSystemHandle::FileSystemHandle):

  • Modules/filesystemaccess/FileSystemHandle.h:
  • Modules/filesystemaccess/FileSystemStorageConnection.h:
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:

(WebCore::FileSystemSyncAccessHandle::create):
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):

  • Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:

(WebCore::WorkerFileSystemStorageConnection::closeHandle):

  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::fileSystemAccessGetDirectory):

Source/WebKit:

  • NetworkProcess/storage/FileSystemStorageHandle.cpp:

(WebKit::FileSystemStorageHandle::close):

  • NetworkProcess/storage/FileSystemStorageHandle.h:
  • NetworkProcess/storage/FileSystemStorageManager.cpp:

(WebKit::FileSystemStorageManager::closeHandle):
(WebKit::FileSystemStorageManager::connectionClosed):

  • NetworkProcess/storage/FileSystemStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::closeHandle):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:

(WebKit::WebFileSystemStorageConnection::closeHandle):

  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:

LayoutTests:

  • storage/filesystemaccess/resources/sync-access-handle-basics.js:

(getDirectory): clean up existing file before test.

4:36 PM Changeset in webkit [285006] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS Debug ] fast/selectors/ backtracking tests are timing out.
https://bugs.webkit.org/show_bug.cgi?id=230988

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:54 PM Changeset in webkit [285005] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ iOS15 Sim ] fast/css/style-element-process-crash.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=232456.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:22 PM Changeset in webkit [285004] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Don't call type() on Structure, instead call type() on its typeInfo()
https://bugs.webkit.org/show_bug.cgi?id=232414

Reviewed by Yusuke Suzuki.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • runtime/Structure.h:

(JSC::Structure::type):

2:21 PM Changeset in webkit [285003] by achristensen@apple.com
  • 29 edits
    1 add
    7 deletes in trunk

Disable NETSCAPE_PLUGIN_API at build time on macOS and Windows
https://bugs.webkit.org/show_bug.cgi?id=232396

Reviewed by Geoff Garen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKPreferences.mm:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _pluginProcessCount]):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

Source/WebKitLegacy/mac:

  • WebView/WebFramePrivate.h:
  • WebView/WebHTMLViewPrivate.h:

Source/WTF:

It has been disabled at run time since https://trac.webkit.org/changeset/276720/webkit
and https://trac.webkit.org/changeset/275910/webkit but is still able to be reached by tests.
This begins the removal of the code and tests with what is close to the smallest change possible.

  • wtf/PlatformEnable.h:

LayoutTests:

  • TestExpectations:
  • fast/frames/sandboxed-iframe-plugins-expected.txt:
  • fast/frames/sandboxed-iframe-plugins.html:
  • http/tests/contentextensions/plugin-doesnt-crash-expected.txt: Removed.
  • http/tests/contentextensions/plugin-doesnt-crash.html: Removed.
  • http/tests/contentextensions/plugin-doesnt-crash.html.json: Removed.
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation-expected.txt: Removed.
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html: Removed.
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/fast/dom/collection-iterators-expected.txt: Added.
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/plugins/contents-scale-factor-expected.txt:
  • platform/mac-wk2/plugins/contents-scale-factor.html:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
  • platform/wpe/TestExpectations:
  • tiled-drawing/scrolling/non-fast-region/wheel-event-plugin-expected.txt: Removed.
  • tiled-drawing/scrolling/non-fast-region/wheel-event-plugin.html: Removed.
2:04 PM Changeset in webkit [285002] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Fix commits set on branch
https://bugs.webkit.org/show_bug.cgi?id=232443
<rdar://problem/84763432>

Reviewed by Darin Adler.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.commits): We are appending to list of commits, not pre-pending.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGitHub.test_commits_branch_ref):

2:01 PM Changeset in webkit [285001] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] Add warning comments regarding use of child setup functions
https://bugs.webkit.org/show_bug.cgi?id=232444

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-28
Reviewed by Adrian Perez de Castro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::launch):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

1:57 PM Changeset in webkit [285000] by Adrian Perez de Castro
  • 6 edits
    1 add in trunk/Source/WebKit

[WPE][Qt] Do not use WebKit internals in the implementation
https://bugs.webkit.org/show_bug.cgi?id=232228

Reviewed by Philippe Normand.

Remove usage of GRefPtr, GUniquePtr, WTF macros, and usage of the config.h header from
the WPE Qt API implementation, as all the funcionality can be achieved on top of the
public API. This allows building the Qt plug-in in a standalone fashion, without involving
any of the WebKit machinery, and a sample CMakeLists.txt which does that is provided as
well. Distributors may prefer to build using this approach instead of as part of the whole
WebKit compilation process, specially if when providing split packages on top of their
base WPE WebKit ones.

No new tests needed.

  • UIProcess/API/wpe/qt/CMakeLists.txt: Added.
  • UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.cpp:
  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::createWebView):
(jsAsyncReadyCallback):

  • UIProcess/API/wpe/qt/WPEQtView.h:
  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::displayImage):

  • UIProcess/API/wpe/qt/WPEQtViewLoadRequest.cpp:
1:53 PM Changeset in webkit [284999] by Aditya Keerthi
  • 2 edits in trunk

Add Aditya Keerthi as a reviewer
https://bugs.webkit.org/show_bug.cgi?id=232450

Unreviewed.

  • metadata/contributors.json:

Add myself as a reviewer, and add GitHub username.

1:34 PM Changeset in webkit [284998] by Andres Gonzalez
  • 5 edits in trunk

Isolated tree mode: Dispatch all calls to [WebAccessibilityObjectWrapper accessibilityAttributeValue] in WTR::AccessibilityUIElement to the AX thread.
https://bugs.webkit.org/show_bug.cgi?id=232415
<rdar://problem/84738483>

Reviewed by Chris Fleizach.

Source/WebCore:

Added ASSERTS to verify that AXIsolatedTree::nodeForID and
applyPendingChanges are called on the AX thread in isolated tree mode 2.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::applyPendingChanges):

Tools:

This is necessary to simulate running accessibility layout tests on the
secondary AX thread.

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

(WTR::AccessibilityUIElement::descriptionOfValue const):
(WTR::descriptionOfElements):
(WTR::AccessibilityUIElement::attributeValue const):
(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::getDocumentLinks):
(WTR::AccessibilityUIElement::getUIElementsWithAttribute const):
(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::elementForAttribute const):
(WTR::AccessibilityUIElement::elementForAttributeAtIndex const):
(WTR::AccessibilityUIElement::detailsElements const):
(WTR::AccessibilityUIElement::errorMessageElements const):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(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::lineRectsAndText const):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::insertionPointLineNumber):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::sortDirection const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::classList const):
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfColumns):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::indexInTable):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::horizontalScrollbar const):
(WTR::AccessibilityUIElement::verticalScrollbar const):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isOnScreen const):
(WTR::AccessibilityUIElement::embeddedImageDescription const):
(WTR::AccessibilityUIElement::imageOverlayElements const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::popupValue const):
(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::startTextMarker):
(WTR::AccessibilityUIElement::endTextMarker):
(WTR::_convertMathMultiscriptPairsToString):
(WTR::AccessibilityUIElement::mathPostscriptsDescription const):
(WTR::AccessibilityUIElement::mathPrescriptsDescription const):
(WTR::AccessibilityUIElement::mathRootRadicand const):
(WTR::AccessibilityUIElement::pathDescription const):
(WTR::descriptionOfValue): Deleted.
(WTR::attributesOfElement): Deleted.

1:26 PM Changeset in webkit [284997] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Add WebPageProxy identifiers to ViewGestures category logging
https://bugs.webkit.org/show_bug.cgi?id=232437

Reviewed by Tim Horton.

Make it easier to correlate release logging from "ViewGestures" and "ViewState" categories in WebKit2 by having
"ViewGestures" logging include "pageProxyID=...", instead of just the content view pointer. This makes it more
straightforward to (for instance) detect when the user is trying to interact with a page that has stopped
receiving layer tree commits in the UI process for an extended period of time.

Note that in all of the below codepaths, we either already call into _page, or they're called as a result of
gesture recognizer delegate methods that should never be invoked by WebKit clients prior to common
initialization (where we initialize _page), so null checks for _page are unnecessary here.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didRelaunchProcess]):

Also log the web process pid here, to make it easier to correlate logging in WKWebView with logs from the
corresponding web process.

  • UIProcess/ios/WKContentViewInteraction.h:

Drive-by fix: also rename m_commitPotentialTapPointerId to _commitPotentialTapPointerId, so that it is
consistent with the other Objective-C ivar names.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]):
(-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]):
(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapDidReset:]):
(-[WKContentView _doubleTapDidFail:]):
(-[WKContentView _commitPotentialTapFailed]):
(-[WKContentView _didCompleteSyntheticClick]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):

1:22 PM Changeset in webkit [284996] by Nikos Mouchtaris
  • 4 edits in trunk

[Debug] imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.ellipse.basics.html is asserting
https://bugs.webkit.org/show_bug.cgi?id=218671

Reviewed by Simon Fraser.

Source/WebCore:

Add extra check to assert that was failing due to floating point precision error.

  • html/canvas/CanvasPath.cpp:

(WebCore::normalizeAngles):

LayoutTests:

12:55 PM Changeset in webkit [284995] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Enable lazy image loading by default
https://bugs.webkit.org/show_bug.cgi?id=208094

Reviewed by Simon Fraser.

Fix merge error of commit queue.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:57 AM Changeset in webkit [284994] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Catalina Debug wk1 EWS ] media/track/track-element-dom-change-crash.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=232446.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:54 AM Changeset in webkit [284993] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:
11:04 AM Changeset in webkit [284992] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ macOS Debug] Layout Test fast/selectors/matches-backtracking.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=197068

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:18 AM Changeset in webkit [284991] by timothy_horton@apple.com
  • 13 edits
    2 adds in trunk

DOM GPUP: Yahoo.com has fragments of wrongly-scaled content throughout
https://bugs.webkit.org/show_bug.cgi?id=232356
<rdar://83884813>

Reviewed by Simon Fraser.

Source/WebCore:

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::calculateBaseTransform):
Delegate baseTransform computation to the backend, so that it
can also compute it itself when applyBaseTransformToContext() is called.

Multiply resolutionScale into the base transform.

(WebCore::ImageBufferBackend::applyBaseTransformToContext const):
Apply the base transform to the context via recordable GraphicsContext
methods, so that getCTM() returns an accurate CTM that matches the one
on the replay side.

Also, apply the device scale factor like setupContext() used to do,
but *before* setting the CTM so that we don't double-scale.
In the future we should consider making applyDeviceScaleFactor() *not*
actually scale the context, instead only touching the CG base CTM;
I went the opposite direction in r284902 in order to reduce change
to non-DisplayList clients, but this is a bit messy.

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::originAtBottomLeftCorner const):
Add a virtual originAtBottomLeftCorner getter; oddly we need it both
dynamically (from ImageBufferBackend::calculateBaseTransform) and
statically (from ConcreteImageBuffer::baseTransform(), which has to
be callable before the backend is actually realized), so we have both
this virtual method and the existing static bit.

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::setupContext const): Deleted.

  • platform/graphics/cg/ImageBufferCGBackend.h:
  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::context const):
Replace setupContext() with a call to applyBaseTransformToContext(),
which supercedes it.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
Map the initial clip back out to base coordinates through the initialCTM;
I missed this in r284888 because the initialCTM was just a flip, but
now that it includes a scale this is critical.

Source/WebKit:

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableIOSurfaceBackend::backendSize const):
Implement backendSize() so that ImageBufferShareableIOSurfaceBackend
doesn't always report itself as being 0x0.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:

LayoutTests:

  • fast/transforms/interleaved-2d-transforms-with-gpu-process-expected.html: Added.
  • fast/transforms/interleaved-2d-transforms-with-gpu-process.html: Added.
10:02 AM Changeset in webkit [284990] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=232318

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-10-28
Reviewed by Don Olmstead.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.cpp:
  • UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h:
10:00 AM Changeset in webkit [284989] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source/WebCore

Apply patch. rdar://problem/84630680

9:38 AM Changeset in webkit [284988] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[watchOS] Fix logging
https://bugs.webkit.org/show_bug.cgi?id=232423

Reviewed by Eric Carlson.

OSStatus is typedef'ed to an SInt32. On watchOS, SInt32 is typedef'ed to be a signed long.
A signed long on watchOS is 4 bytes long. On non-watchOS, SInt32 is typedef'ed to be a signed int.
So, if we want to use printf formatting strings, we have to cast the OSStatus to an int.

No new tests because there is no behavior change.

  • platform/cocoa/MediaUtilities.cpp:

(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):

9:36 AM Changeset in webkit [284987] by Simon Fraser
  • 2 edits
    1 add in trunk/Tools

Prepare SingleTestRunnerTest to read fuzzy pixel matching data
https://bugs.webkit.org/show_bug.cgi?id=232410

Reviewed by Martin Robinson.

Add code to SingleTestRunnerTest to get fuzzy pixel matching data from the <meta name=fuzzy>
tag in a test in the case of a hash match failure[1]. In future this will be used to
determine if the test can pass with acceptable fuzziness.

[1] Strictly speaking this can result in wrong behavior; a test with <meta name=fuzzy> is
supposed to fail if the differences are below the minimum specified values, so for correct
WPT behavior we would need to always look for the meta tag. But to avoid the perf impact of
always parsing tests, for now only look for the tag in the case of hash failure.

Add unit tests for the new functionality in SingleTestRunner.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner):
(SingleTestRunner._relative_reference_path):
(SingleTestRunner._fuzzy_matching_values):
(SingleTestRunner._test_passes_fuzzy_matching):
(SingleTestRunner._compare_output_with_reference):

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner_unittest.py: Added.

(TestDriver):
(TestDriver.run_test):
(TestDriver.start):
(TestDriver.stop):
(SingleTestRunnerTest):
(SingleTestRunnerTest._add_file):
(SingleTestRunnerTest._make_test_runner):
(SingleTestRunnerTest.test_fuzzy_matching_values):
(SingleTestRunnerTest.test_fuzzy_matching_values_for_ref):

9:28 AM Changeset in webkit [284986] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: testForLinkLabels Accessibility audit should ignore anchors if aria-hidden
https://bugs.webkit.org/show_bug.cgi?id=231038
<rdar://problem/83783868>

Update testForLinkLabels accessibility audit test to exclude hidden links.
See AccessibilityObject->isHidden()

Reviewed by BJ Burg.

  • UserInterface/NonMinified/DefaultAudits.js:

(WI.DefaultAudits.testForLinkLabels):

9:21 AM Changeset in webkit [284985] by Alan Bujtas
  • 11 edits in trunk

REGRESSION(r281422): PLT5 regressed by 1% overall
https://bugs.webkit.org/show_bug.cgi?id=232391
<rdar://82530500>

Reviewed by Antti Koivisto.

<sub>/<sup> inline boxes with non-integral vertical values and with integral positioned child inline boxes may trigger unexpected vertical overflow.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::verticalPositionForBox):

9:15 AM Changeset in webkit [284984] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

REGRESSION (r282451): [iOS] Cannot override background of search inputs with 'appearance: textfield'
https://bugs.webkit.org/show_bug.cgi?id=231503
rdar://84110684

Reviewed by Wenson Hsieh.

Source/WebCore:

r282451 made search inputs with 'appearance: textfield' always have the
standard text input background color. This change was necessary to fix
search input styling on sites that did not customize search input
backgrounds, but relied on 'appearance: textfield' to obtain the
appropriate styling.

However, the change also made it so that any customization to the
background color on top of the UA default was not honored. To fix,
check if the background color differs from the UA default prior to
making the adjustment.

Test: fast/forms/ios/form-control-refresh/search/textfield-appearance-background-styled.html

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustTextFieldStyle const):

LayoutTests:

  • fast/forms/ios/form-control-refresh/search/textfield-appearance-background-styled-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/search/textfield-appearance-background-styled.html: Added.
9:04 AM Changeset in webkit [284983] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE][Qt] String memory leak in WPEQtView.cpp
https://bugs.webkit.org/show_bug.cgi?id=232435

Reviewed by Michael Catanzaro.

No new tests needed.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(jsAsyncReadyCallback): Remove unneeded usage of g_strdup(), and replace direct usage
of the QString constructor with QString::fromUtf8(), which better indicates that the
call will copy the string contents.

9:04 AM Changeset in webkit [284982] by Chris Dumez
  • 4 edits
    122 adds in trunk/LayoutTests

Import web-platform-tests/web-locks API tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=232406

Reviewed by Youenn Fablet.

Import web-platform-tests/web-locks API tests from upstream a8e7d294c626dceb6.

  • resources/import-expectations.json:
  • web-platform-tests/web-locks/*: Added.
8:59 AM Changeset in webkit [284981] by Alan Coon
  • 1 edit in branches/safari-612-branch/Source/WebCore/platform/RuntimeApplicationChecks.h

Unreviewed build fix. rdar://problem/83971417

8:32 AM Changeset in webkit [284980] by youenn@apple.com
  • 4 edits in trunk

Fix CARingBuffer mix mode
https://bugs.webkit.org/show_bug.cgi?id=232427
Source/WebCore:

Reviewed by Eric Carlson.

Like done for Copy, we need to use the destination offset to write data properly.

Covered by API test.

  • platform/audio/cocoa/CARingBuffer.cpp:

Tools:

<rdar://problem/84747657>

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:
8:30 AM Changeset in webkit [284979] by Simon Fraser
  • 3 edits in trunk/Tools

Enhance test_parser.py to find fuzzy matching metadata
https://bugs.webkit.org/show_bug.cgi?id=232399

Reviewed by Martin Robinson.

w3c/test_parser is used by wpt import code, and it knows how to parse a file for various
meta tags. Enhance it to find <meta name=fuzzy> and return the data in test_info for future
use by layout tests, using code copied from wpt/tools/manifest/sourcefile.py.

Tested by new unit tests in test_parser_unittest.py

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.analyze_test):
(TestParser.has_fuzzy_metadata):
(TestParser):
(TestParser.fuzzy_metadata):

  • Scripts/webkitpy/w3c/test_parser_unittest.py:

(_test_info_from_test_with_contents):
(test_simple_fuzzy_data):
(test_nameless_fuzzy_data):
(test_range_fuzzy_data):
(test_nameless_range_fuzzy_data):
(test_per_ref_fuzzy_data):

8:18 AM Changeset in webkit [284978] by Lauro Moura
  • 2 edits
    1 add in trunk/Tools/buildstream

[FlatpakSDK] Import ccache 4.4.2 over fdo-sdk 4.4.0
https://bugs.webkit.org/show_bug.cgi?id=232224

Reviewed by Philippe Normand.

ccache 4.4.2 already up in the unreleased version of freedesktop-sdk.
The latest, 21.08.4, is using 4.4.1.

To avoid changing too much gears at once, just patch the newest
version on top of our current sdk.

  • elements/freedesktop-sdk.bst:
  • patches/fdo-sdk-0001-Bump-ccache-to-4.4.2.patch: Added.
8:12 AM Changeset in webkit [284977] by ddkilzer@apple.com
  • 13 edits in trunk/Tools

[Tools] Enable -Wformat=2 warnings
<https://webkit.org/b/232404>
<rdar://problem/84728058>

Reviewed by Darin Adler.

  • DumpRenderTree/mac/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • ImageDiff/cg/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • MiniBrowser/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • MobileMiniBrowser/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • TestWebKitAPI/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
  • TestWebKitAPI/PlatformUtilities.h:

(TestWebKitAPI::Util::waitForConditionWithLogging):

  • Add NS_FORMAT_FUNCTION() attribute.
  • TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm:

(TEST):

  • Change type of format string to NSString *const.
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerTCPServer.h:

(ServiceWorkerTCPServer::request):
(ServiceWorkerTCPServer::requestWithLocalhost):
(ServiceWorkerTCPServer::requestWithFragment):

  • Call -[NSString initWithFormat:] in each method so the format string is used directly in the method call.

(ServiceWorkerTCPServer::respondToRequests):

  • Change type of format string to NSString *const, and fix placeholder for strlen() return value.

(ServiceWorkerTCPServer::requestWithFormat): Delete.
(ServiceWorkerTCPServer::requestWithURLString):

  • Rename from requestWithFormat() and take a url parameter instead of a format parameter.
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::request const):

  • Change switch statement to set the scheme for the URL, and move the format string into +[NSString stringWithFormat:].
  • WebEditingTester/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • WebKitTestRunner/Configurations/Base.xcconfig:

(WARNINGS_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
6:52 AM Changeset in webkit [284976] by youenn@apple.com
  • 13 edits in trunk

[ Mac wk1 ] 2 media-capabilities/webrtc tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=232283
<rdar://problem/84637007>

Reviewed by Eric Carlson.

Source/WebCore:

Migrate WebRTC H265 and VP9 flags from runtime enabled features to page settings.
WK1 and WK2 will call Page::settingsDidChange when updating settings so that these settings are pushed to its LibWebRTCProvider.
This makes sure that in WK1, test runs with the correct settings.

Covered by existing tests.

  • page/Page.cpp:
  • page/Page.h:
  • page/RuntimeEnabledFeatures.h:
  • testing/Internals.cpp:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
3:02 AM Changeset in webkit [284975] by Adrian Perez de Castro
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r282165 - KeyboardEvent should setDefaultHandled if EventHandler::startKeyboardScrolling returns true
https://bugs.webkit.org/show_bug.cgi?id=229784

Reviewed by Darin Adler.

Source/WebCore:

If a KeyboardEvent is handled by the default event handler, it
should be marked by Event::setDefaultHandled.

Test: fast/scrolling/keyboard-scrolling-last-timestamp.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultArrowEventHandler):

LayoutTests:

  • fast/scrolling/keyboard-scrolling-last-timestamp-expected.txt: Added.
  • fast/scrolling/keyboard-scrolling-last-timestamp.html: Added.
3:02 AM Changeset in webkit [284974] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r281867 - REGRESSION(r280928) The smooth keyboard scrolling is unconditionally enabled for PageUp and PageDown keys
https://bugs.webkit.org/show_bug.cgi?id=229733

Reviewed by Tim Horton.

Even though WinCairo port doesn't enable
EventHandlerDrivenSmoothKeyboardScrollingEnabled yet, it had been
enabled only for PageUp and PageDown keys since r280928. Other
keys (Space and Arrow keys) don't trigger the smooth scrolling.

r280928 changed to call startKeyboardScrolling for PageUp and
PageDown keys, but it didn't check the setting.

  • page/EventHandler.cpp:

(WebCore::EventHandler::startKeyboardScrolling):
(WebCore::EventHandler::defaultKeyboardEventHandler):

3:02 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:59 AM Changeset in webkit [284973] by Antti Koivisto
  • 20 edits
    6 adds in trunk

Support ::before and ::after pseudo elements after ::slotted
https://bugs.webkit.org/show_bug.cgi?id=178237

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Update the tests from WPT repo.

  • web-platform-tests/css/css-scoping/host-context-parsing-expected.txt: Added.
  • web-platform-tests/css/css-scoping/host-context-parsing.html: Added.
  • web-platform-tests/css/css-scoping/host-parsing-expected.txt: Added.
  • web-platform-tests/css/css-scoping/host-parsing.html: Added.
  • web-platform-tests/css/css-scoping/keyframes-001-expected.txt:
  • web-platform-tests/css/css-scoping/shadow-shared-style-cache-001-expected.txt: Added.
  • web-platform-tests/css/css-scoping/shadow-shared-style-cache-001.html: Added.
  • web-platform-tests/css/css-scoping/slotted-link-expected.txt:
  • web-platform-tests/css/css-scoping/slotted-parsing-expected.txt:
  • web-platform-tests/css/css-scoping/slotted-parsing.html:
  • web-platform-tests/css/css-scoping/w3c-import.log:

Source/WebCore:

Change the way we resolve ::slotted to improve compatibility. We now traverse through the assigned slot chain in
a single pass, similar to ::part matching.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:

Add a new selection relation ShadowSlotted, similar to the existing ShadowDescendant and ShadowPartDescendant,
for switching scopes during selector matching.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

Find the right scope to continue matching on ShadowSlotted relation. Pass in the scope ordinal to find the scope.

(WebCore::SelectorChecker::checkOne const):

Match the ::slotted() element.

  • css/SelectorChecker.h:
  • css/SelectorFilter.cpp:

(WebCore::collectSelectorHashes):

  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching const):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isPseudoClassValidAfterPseudoElement):
(WebCore::isTreeAbidingPseudoElement):

Add a spec-termed helper.

(WebCore::isSimpleSelectorValidAfterPseudoElement):
(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):

Insert ShadowSlotted relation for ::slotted().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
(WebCore::SelectorCompiler::constructFragmentsInternal):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::clearMatchedRules):
(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):

Simply get the rules from scopes in the assinged slot chaing and match against them.
No need for two passes.

(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot): Deleted.

Not needed anymore.

(WebCore::Style::findSlottedPseudoElementSelector): Deleted.

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

(WebCore::Style::RuleFeatureSet::computeNextMatchElement):

LayoutTests:

1:36 AM Changeset in webkit [284972] by Carlos Garcia Campos
  • 6 edits
    2 copies in trunk

AX: AXValueChanged is only sent for range elements when value is changed with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=232298
<rdar://problem/84653767>

Reviewed by Andres Gonzalez.

Source/WebCore:

It should always be sent.

Test: accessibility/gtk/html-slider-indicator.html

  • html/InputType.cpp:

(WebCore::InputType::setValue): Send AXValueChanged for range elements.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleKeydownEvent): Remove the AXValueChanged notification from here.

LayoutTests:

Update the mac test for slider indicator and add a new one for gtk port.

  • accessibility/gtk/html-slider-indicator-expected.txt: Added.
  • accessibility/gtk/html-slider-indicator.html: Added.
  • accessibility/mac/html-slider-indicator-expected.txt:
  • accessibility/mac/html-slider-indicator.html:
12:32 AM Changeset in webkit [284971] by youenn@apple.com
  • 11 edits
    2 adds in trunk

Fetch API: Network process leaks when blobs are unused
https://bugs.webkit.org/show_bug.cgi?id=232371
<rdar://problem/84704184>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure to unregister the internal URL when the blob gets destroyed.

Test: http/wpt/fetch/blob-gc.html

  • fileapi/Blob.cpp:
  • fileapi/ThreadableBlobRegistry.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Make sure to unregister blobs created by a WebProcess in case WebProcess terminates.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkConnectionToWebProcess.h:

LayoutTests:

  • http/wpt/fetch/blob-gc-expected.txt: Added.
  • http/wpt/fetch/blob-gc.html: Added.

Oct 27, 2021:

11:55 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
11:52 PM Changeset in webkit [284970] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r284858 - Multiple build issues with ENABLE_VIDEO=OFF
https://bugs.webkit.org/show_bug.cgi?id=232264

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • accessibility/AXObjectCache.cpp:

(WebCore::isSimpleImage): Guard usage of HTMLMediaElement with ENABLE(VIDEO).

  • platform/graphics/BifurcatedGraphicsContext.cpp: Ditto.
7:20 PM Changeset in webkit [284969] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Assertions in findFirstSlotElement hit when removing two slots with the same name in a single shadow tree
https://bugs.webkit.org/show_bug.cgi?id=232409

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

When resolveSlotsAfterSlotMutation is called during removeAllChildrenWithScriptAssertion,
it can clear slot.element but not slot.elementCount, which is decremented for each
slot element in removeSlotElementByName. When multiple slots elements are removed in
removeAllChildrenWithScriptAssertion, this results in slot.element being null but
slot.elementCount not being zero in findFirstSlotElement called within destroyRenderTreeIfNeeded.

This patch removes assertions in findFirstSlotElement which wrongly asserted this condition to never happen.

Test: fast/shadow-dom/slot-removal-same-name.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::findFirstSlotElement):

LayoutTests:

  • fast/shadow-dom/slot-removal-same-name-expected.txt: Added.
  • fast/shadow-dom/slot-removal-same-name.html: Added.
6:44 PM Changeset in webkit [284968] by ddkilzer@apple.com
  • 14 edits in trunk/Source/WebKit

[WebKit] Enable -Wformat=2 warnings
<https://webkit.org/b/232360>
<rdar://problem/84571460>

Reviewed by Darin Adler.

With one exception noted below, this patch changes calls from
WEB_UI_STRING() to WEB_UI_NSSTRING(), which includes the proper
compiler attribute to be used with +[NSString stringWithFormat:].
This fixes the -Wformat-nonliteral warnings that occurred after
adding -Wformat=2.

  • Configurations/Base.xcconfig:

(WARNING_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:

(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString):

  • GPUProcess/mac/GPUProcessMac.mm:

(WebKit::GPUProcess::initializeProcessName):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::initializeProcessName):

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::initializeProcessName):

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::experimentalFeatureEnabled):

  • Change format to be a constant NSString pointer to fix the -Wformat-nonliteral warnings.
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _appendAppLinkOpenActionsForURL:actions:elementInfo:]):

  • UIProcess/ios/WKPDFPageNumberIndicator.mm:

(-[WKPDFPageNumberIndicator _updateLabel]):

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController _showPhishingAlert]):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionsController showSuggestionsDropdown:]):

  • WebAuthnProcess/mac/WebAuthnProcessMac.mm:

(WebKit::WebAuthnProcess::initializeProcessName):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):

5:31 PM Changeset in webkit [284967] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/blink/compositing/video/video-controls-layer-creation-squashing.html is a flaky crash/timeout.
https://bugs.webkit.org/show_bug.cgi?id=232412

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:31 PM Changeset in webkit [284966] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Generate commit message template
https://bugs.webkit.org/show_bug.cgi?id=231023
<rdar://problem/83722871>

Unreviewed follow-up fix.

  • Scripts/git-webkit: Match repository base, not folder containing repository.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Mark hook as executable.

4:30 PM Changeset in webkit [284965] by Chris Dumez
  • 5 edits
    4 deletes in trunk

Disable relaxation of BroadcastChannel origin partitioning based on storage access
https://bugs.webkit.org/show_bug.cgi?id=232401

Reviewed by John Wilander.

Source/WebCore:

Disable relaxation of BroadcastChannel origin partitioning based on storage access (r282366).
Only Gecko does this at the moment and it appears they want to drop this behavior.

This patch is a revert of the behavior added in r282366.

  • dom/BroadcastChannel.cpp:

(WebCore::shouldPartitionOrigin):

LayoutTests:

Dropt test added in r282366.

  • http/tests/messaging/broadcastchannel-partitioning-with-storage-access-expected.txt: Removed.
  • http/tests/messaging/broadcastchannel-partitioning-with-storage-access.html: Removed.
  • http/tests/messaging/resources/broadcastchannel-partitioning-with-storage-access-iframe.html: Removed.
  • http/tests/messaging/resources/broadcastchannel-partitioning-with-storage-access-popup.html: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
4:27 PM Changeset in webkit [284964] by ap@apple.com
  • 2 edits in trunk/Tools

AutoInstall should have separate install directories per CPU architecture
https://bugs.webkit.org/show_bug.cgi?id=232403

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/init.py:
3:47 PM Changeset in webkit [284963] by Alan Coon
  • 21 edits
    8 copies in branches/safari-612-branch

Cherry-pick r282984. rdar://problem/77587429

This reverts commit r284907.

3:21 PM Changeset in webkit [284962] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Use correct String constructor in PrivateClickMeasurement.FraudPrevention API test
https://bugs.webkit.org/show_bug.cgi?id=232362

Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-27
Reviewed by Darin Adler.

The Vector<char> received in the CompletionHandler given to Connection::receiveHTTPRequest is not null terminated,
so we need to call the String constructor that takes a length instead of assuming the byte after the Vector buffer is 0.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

3:06 PM Changeset in webkit [284961] by commit-queue@webkit.org
  • 6 edits in trunk

Add discrete animation support between PathOperations
https://bugs.webkit.org/show_bug.cgi?id=232366

Patch by Kiet Ho <Kiet Ho> on 2021-10-27
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Updated relevant test expectations.

  • web-platform-tests/css/css-masking/animations/clip-path-composition-expected.txt:
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-001-expected.txt:
  • web-platform-tests/css/css-masking/animations/clip-path-interpolation-002-expected.txt:

Source/WebCore:

Updated the code responsible for blending two PathOperations to account for discrete animation.
Implemented PropertyWrapperClipPath::canInterpolate, used to determine if a CSS transition is possible
(if animation between two PathOperations is discrete, then canInterpolate() is false, and no transitions
are created).

Tests: imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-composition.html

imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-001.html
imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-002.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

2:43 PM Changeset in webkit [284960] by Chris Dumez
  • 31 edits in trunk

autofocus IDL attribute should be exposed on all HTML or SVG elements
https://bugs.webkit.org/show_bug.cgi?id=232349

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline some WPT tests now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/dom/reflection-grouping-expected.txt:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:
  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:
  • web-platform-tests/html/dom/reflection-sections-expected.txt:
  • web-platform-tests/html/dom/reflection-tabular-expected.txt:
  • web-platform-tests/html/dom/reflection-text-expected.txt:
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/supported-elements-expected.txt:
  • web-platform-tests/svg/struct/scripted/autofocus-attribute-expected.txt:

Source/WebCore:

autofocus IDL attribute should be exposed on all HTML or SVG elements:

Previously, WebKit only exposed the autofocus attribute on form control elements.

No new tests, rebaselined existing tests.

  • dom/Element.cpp:

(WebCore::shouldAutofocus):
(WebCore::Element::insertedIntoAncestor):

  • html/HTMLButtonElement.idl:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::insertedIntoAncestor):
(WebCore::shouldAutofocus): Deleted.

  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLOrForeignElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl:
  • svg/svgattrs.in:

LayoutTests:

Rebaseline some WPT tests now that more checks are passing.

  • inspector/model/remote-object/dom-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
2:34 PM Changeset in webkit [284959] by Kate Cheney
  • 12 edits in trunk

REGRESSION (r284650-284661): [iOS15 Sim] imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html is a text failure
https://bugs.webkit.org/show_bug.cgi?id=232120
<rdar://problem/84529888>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms-expected.txt:

Source/WebCore:

Flaky test was caused by a race condition between 2 error messages in
the test. To fix the flakiness, this patch fixes a bug so the test
will now pass.

This adds support for multiple CSP policies with different hashes for the
same script, e.g. one for sha256 and one for sha384. Instead of
sending the hash from one algorithm to check against all policies, we
now send hashes from all specified algorithms and make sure each
policy allows at least one of them.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const):

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkUnsafeHashes):
(WebCore::checkHashes):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashStyle const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptHash const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleHash const):
(WebCore::checkHash): Deleted.

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

(WebCore::ContentSecurityPolicySourceList::matches const):

  • page/csp/ContentSecurityPolicySourceList.h:
  • page/csp/ContentSecurityPolicySourceListDirective.cpp:

(WebCore::ContentSecurityPolicySourceListDirective::allows const):
(WebCore::ContentSecurityPolicySourceListDirective::allowUnsafeHashes const):

  • page/csp/ContentSecurityPolicySourceListDirective.h:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
2:23 PM Changeset in webkit [284958] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: extension iframes leak when disabling an extension
https://bugs.webkit.org/show_bug.cgi?id=232049

Reviewed by Timothy Hatcher.

Since shouldNotRemoveFromDOMWhenHidden() is true, the <iframe> will not
be detached and unload its document in the normal tab-closing code path.
Add a dispose() method for cleaning up the tab when its extension is
unregistered.

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController.prototype.unregisterExtension):

  • UserInterface/Views/WebInspectorExtensionTabContentView.js:

(WI.WebInspectorExtensionTabContentView.prototype.dispose):

2:06 PM Changeset in webkit [284957] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284349. rdar://problem/81171560

Use-after-move of m_sockets in NetworkRTCProvider::close()
<https://webkit.org/b/231779>
<rdar://problem/84278026>

Reviewed by Youenn Fablet.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::close):
  • Replace WTFMove() with std::exchange() to make it clear that m_sockets will be emptied, then iterate on sockets to close them. Update ASSERT() to check that no sockets were added to m_sockets during the loop.

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

2:06 PM Changeset in webkit [284956] by Alan Coon
  • 4 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r283797. rdar://problem/81171560

Bind the number of WebRTC sockets opened per process
https://bugs.webkit.org/show_bug.cgi?id=231171

Reviewed by Alex Christensen.

Migrate from HashMap to StdMap so that we can keep the order based on socket identifiers.
Take benefit of the ordering so that, above a certain size, we get the oldest socket, close it and remove it from the map.
We set the maximum size to 256 sockets per process.
Fix a potential bug in NetworkRTCTCPSocketCocoa to ensure we remove the socket from the map even if the nw connection is not live.
Manually tested.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:
  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

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

2:06 PM Changeset in webkit [284955] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r283604. rdar://problem/81171560

Close NetworkRTCProvider sockets explicitly when closing NetworkRTCProvider
https://bugs.webkit.org/show_bug.cgi?id=231228
<rdar://83237496>

Reviewed by Eric Carlson.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::close): Make sure to explictly closing the socket before deleting it.

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

2:06 PM Changeset in webkit [284954] by Alan Coon
  • 9 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284669. rdar://problem/83971417

WebGL low-power and high-performance contexts should use different ANGLE Metal EGLDisplays
https://bugs.webkit.org/show_bug.cgi?id=231012
<rdar://problem/83971417>

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

Source/WebCore:

Use per-power preference EGLDisplay when creating Metal
contexts.

Adds a new API test.

  • platform/RuntimeApplicationChecks.cpp: (WebCore::setAuxiliaryProcessTypeForTesting):
  • platform/RuntimeApplicationChecks.h: Add a test function to reset the process type after test has set a specific type and then run to completion. process for the duration of the test. The volatile context flag in
GraphicsContextGLOpenGL depends on condition isWebProcess
isGPUProcess.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::releaseThreadResources):
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::initializeEGLDisplay): (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::setContextVisibility): (WebCore::GraphicsContextGLOpenGL::displayWasReconfigured):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

Tools:

Add a API test to test GraphicsContextGLOpenGL
Cocoa implementation regarding the bug where
the GraphicsContextGLOpenGL instances would use
the GPU that was selected by the first instance.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLOpenGLCocoa.mm: Added. (TestWebKitAPI::WebCore::TestedGraphicsContextGLOpenGL::create): (TestWebKitAPI::WebCore::TestedGraphicsContextGLOpenGL::TestedGraphicsContextGLOpenGL): (TestWebKitAPI::hasMultipleGPUs): (TestWebKitAPI::TEST):
  • TestWebKitAPI/WebCoreUtilities.h: Added. (TestWebKitAPI::ScopedSetAuxiliaryProcessTypeForTesting::ScopedSetAuxiliaryProcessTypeForTesting): (TestWebKitAPI::ScopedSetAuxiliaryProcessTypeForTesting::~ScopedSetAuxiliaryProcessTypeForTesting): Add a utility state setter to set the process type for the duration of a test.

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

2:06 PM Changeset in webkit [284953] by Alan Coon
  • 16 edits
    2 moves
    2 deletes in branches/safari-612-branch/Source

Cherry-pick r283703. rdar://problem/84629308

ScopedEGLDefaultDisplay should be removed
https://bugs.webkit.org/show_bug.cgi?id=231011

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-07
Reviewed by Kenneth Russell.

Source/WebCore:

Hard-coding the code to EGL_DEFAULT_DISPLAY only and using the scoped
holder is making the EGLDisplays harder to use than neccessary. The
implementation target, e.g. the ability to call EGLTerminate, was also a bit
more convoluted than needed.

Move the "call EGLTerminate" logic from a bit convoluted refcount mechanism
in ScopedEGLDefaultDisplay to the explicit GraphicsContextGLOpenGL::releaseResources().
The callers are expected to do the refcounting anyway, as the existing client
WebKit::ScopedWebGLRenderingResourcesRequest already did.

Make GraphicsContextGLOpenGL::releaseResources() available on all platforms.
It is implemented on all ANGLE implementations.
Platforms can augment the implementation by implementing
GraphicsContextGLOpenGL::platformReleaseResources(). For Cocoa, this function
resets the currentContext cache that is used to optimize making context current.

No new tests, refactor.

  • CMakeLists.txt:
  • Headers.cmake:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/angle/ANGLEUtilities.cpp: Renamed from Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLEEGLUtilities.h. (WebCore::platformIsANGLEAvailable):
  • platform/graphics/angle/ANGLEUtilities.h: Renamed from Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLEUtilities.h. Rename GraphicsContextGLANGLEUtilities to simpler and more descriptive ANGLEUtilities. Add the isANGLEAvailable to there.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::releaseResources): (WebCore::GraphicsContextGLOpenGL::platformReleaseResources):
  • platform/graphics/angle/GraphicsContextGLANGLEEGLUtilities.cpp: Removed. (WebCore::refDefaultDisplay): Deleted. (WebCore::unrefDefaultDisplayIfNeeded): Deleted. (WebCore::ScopedEGLDefaultDisplay::operator=): Deleted. (WebCore::ScopedEGLDefaultDisplay::ScopedEGLDefaultDisplay): Deleted. (WebCore::ScopedEGLDefaultDisplay::~ScopedEGLDefaultDisplay): Deleted. (WebCore::ScopedEGLDefaultDisplay::releaseAllResourcesIfUnused): Deleted.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::platformIsANGLEAvailable): (WebCore::initializeEGLDisplay): (WebCore::GraphicsContextGLOpenGL::platformReleaseResources): (WebCore::isANGLEAvailable): Deleted. (WebCore::GraphicsContextGLOpenGL::releaseCurrentContext): Deleted. (WebCore::GraphicsContextGLOpenGL::releaseAllResourcesIfUnused): Deleted.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::releaseResources): (WebCore::GraphicsContextGLOpenGL::platformReleaseResources):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/ios/wak/WebCoreThread.mm:

Source/WebKit:

Implement the release of WebGL resources with the amended
GraphicsContextGLOpenGL::releaseResources() instead of
previous separate function GraphicsContextGLOpenGL::releaseAllResources().

Use the resource release code path universally, as
GraphicsContextGLOpenGL::releaseResources() is now common code.

  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.cpp: (WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources): (WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources):
  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.h:
  • GPUProcess/graphics/ScopedWebGLRenderingResourcesRequestCocoa.cpp: Removed. (WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources): Deleted. (WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources): Deleted.
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

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

2:06 PM Changeset in webkit [284952] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283301. rdar://problem/84629308

GPUP Cocoa GraphicsContextGLOpenGL should check for ANGLE presence
https://bugs.webkit.org/show_bug.cgi?id=230946

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-29
Reviewed by Antti Koivisto.

For consistency, avoid crashing the GPUP mode when trying
to create GraphicsContextGLOpenGL when the ANGLE-shared dylib
is not present.

No new tests, refactor.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::isANGLEAvailable): (WebCore::initializeEGLDisplay): (WebCore::GraphicsContextGLOpenGL::create): (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::InitializeEGLDisplay): Deleted.

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

2:06 PM Changeset in webkit [284951] by Alan Coon
  • 16 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284523. rdar://problem/83763291

WebRTC p2p call, VP9-SVC only low layer decoded on receiver side
https://bugs.webkit.org/show_bug.cgi?id=231071
<rdar://problem/83763291>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

In case VP9 SVC is used, fallback to software decoder for now.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

Source/WebCore:

Add Internals API to check whether VP9 VTB is used or not.

Test: webrtc/vp9-svc.html

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:
  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • webrtc/vp9-svc-expected.txt: Added.
  • webrtc/vp9-svc.html: Added.

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

2:05 PM Changeset in webkit [284950] by Alan Coon
  • 7 edits in branches/safari-612-branch/Source

Cherry-pick r284344. rdar://problem/84625558

Build fix #3: Adopt attribution AVCaptureSession SPI for GPU process
https://bugs.webkit.org/show_bug.cgi?id=231621
<rdar://problem/80748535>

Unreviewed build fix.

Source/WebCore/PAL:

  • pal/spi/cocoa/TCCSPI.h:
  • Use HAVE(TCC_IOS_14_BIG_SUR_SPI).

Source/WebKit:

  • Shared/Cocoa/TCCSoftLink.h: (tcc_identity_create):
  • Shared/Cocoa/TCCSoftLink.mm: (tcc_identity_create):
  • Use HAVE(TCC_IOS_14_BIG_SUR_SPI).

Source/WTF:

  • wtf/PlatformHave.h: (HAVE_TCC_IOS_14_BIG_SUR_SPI): Add.
  • Used for TCC.framework SPI available in iOS 14 and macOS 11 Big Sur and later.

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

2:05 PM Changeset in webkit [284949] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/ThirdParty/ANGLE

Cherry-pick r284293. rdar://problem/84204653

REGRESSION (r283667): webgl/2.0.0/deqp/functional/gles3/lifetime.html fails
https://bugs.webkit.org/show_bug.cgi?id=231682

Transform feedback should avoid appending _u for
builtin output variables.

Reviewed by Kimmo Kinnunen.

  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::GenerateTransformFeedbackVaryingOutput):

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

2:05 PM Changeset in webkit [284948] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284251. rdar://problem/84625558

Unreviewed maccatalyst build fix.

  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm: (WebKit::GPUConnectionToWebProcess::setTCCIdentity):

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

2:05 PM Changeset in webkit [284947] by Alan Coon
  • 2 edits in branches/safari-612-branch/Source/WebCore/PAL

Cherry-pick r284222. rdar://problem/84625558

Fix non-internal iOS builds after r284220
https://bugs.webkit.org/show_bug.cgi?id=231621

  • pal/spi/cocoa/TCCSPI.h:

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

2:05 PM Changeset in webkit [284946] by Alan Coon
  • 18 edits
    1 move in branches/safari-612-branch/Source

Cherry-pick r284220. rdar://problem/84625558

Adopt attribution AVCaptureSession SPI for GPU process
https://bugs.webkit.org/show_bug.cgi?id=231621
<rdar://problem/80748535>

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Manually tested by checking App Privacy Report data.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::setupSession):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVFoundationSPI.h:
  • pal/spi/cocoa/TCCSPI.h: Renamed from Source/WebKit/Platform/spi/ios/TCCSPI.h.

Source/WebKit:

Add SPI to attribute camera access to host app in the GPU process.

  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm: (WebKit::GPUConnectionToWebProcess::setTCCIdentity):
  • Shared/Cocoa/TCCSoftLink.h:
  • Shared/Cocoa/TCCSoftLink.mm:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: (WebKit::UserMediaCaptureManagerProxy::startProducingData):
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: (WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::setTCCIdentity):
  • WebKit.xcodeproj/project.pbxproj:

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

2:05 PM Changeset in webkit [284945] by Alan Coon
  • 8 edits
    3 adds
    2 deletes in branches/safari-612-branch

Cherry-pick r283667. rdar://problem/84629931

Shadertoy "truchet district" fails to compile with error: Internal error compiling shader with Metal backend"
https://bugs.webkit.org/show_bug.cgi?id=229378
<rdar://problem/82299053>

Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

Change TranslatorMetalDirect to prefix '_u' to all user defined variables.
Clean up builtins like samplers and ANGLE structs that were being
accidently promoted to userDefined variables.

  • src/compiler/translator/TranslatorMetalDirect.cpp: (sh::GetMslKeywords):
  • src/compiler/translator/TranslatorMetalDirect/Name.cpp: (Name::emit const):
  • src/compiler/translator/TranslatorMetalDirect/SymbolEnv.cpp: (SymbolEnv::getTextureEnv): (SymbolEnv::getSamplerStruct): (sh::GetTextureTypeName):
  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::GenerateTransformFeedbackVaryingOutput):

LayoutTests:

Add a test testing Metal reserved words and standard library macros.

  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2-expected.txt: Added.
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html: Added.
  • webgl/pending/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html: Added.

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

2:05 PM Changeset in webkit [284944] by Alan Coon
  • 3 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283583. rdar://problem/83606128

REGRESSION (Monterey): paramountplus.com: Cannot enter fullscreen in Safari
https://bugs.webkit.org/show_bug.cgi?id=231005

The page performs a lot of canvas readbacks when entering or exiting
fullscreen mode.
When the media is encrypted, attempting to do so would have made the
sync call from the content to GPU process hang for one full second.
Worse the CATransaction should it fail to paint would retry continuously.
After 10 attempts (and blocking the process for over 10s) the
content process would get automatically killed.
This works around rdar://83867877 where outputMediaDataWillChange isn't
called following a call to
[AVPlayerItemVideoOutput requestNotificationOfMediaDataChangeWithAdvanceInterval].
In case we timed out. we will disable this functionality until there's a
track change.

Reviewed by Eric Carlson.

We do not have the infrastructure to easily test interacting with encrypted
content. Once bug 231006 is fixed, we could write a test to ensure that canvas
readbacks do not lock-up.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):

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

2:05 PM Changeset in webkit [284943] by Alan Coon
  • 11 edits
    2 adds in branches/safari-612-branch/Source/WebCore

Cherry-pick r283362. rdar://problem/84629481

Cocoa GraphicsContextGLOpenGL should not be used by GraphicsContextGLCVANGLE
https://bugs.webkit.org/show_bug.cgi?id=231010

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-01
Reviewed by Kenneth Russell.

GraphicsContextGLOpenGL creates a GraphicsContextGLCVANGLE helper to do
do YUV texture uploads. This GraphicsContextGLCVANGLE creates a OpenGL ES context that
shares the OpenGL state by the caller.

Previously the new context would be a GraphicsContextGLOpenGL. This would be a problem
since GraphicsContextGLOpenGL has compositor related logic and objects, for example
the WebGL layer as well as resources for default framebuffer operation. Shared context
would also go to the GraphicsContextGLOpenGLManager context list even though
they could not be deleted behind the owners back during context recycling.

Instead, create just a normal ANGLE context and call ANGLE directly from
GraphicsContextGLCVANGLE. This is more consistent with software layers:
GraphicsContextGLOpenGL and GraphicsContextGLCVANGLE are at the same software
level, part of the same GraphicsContextGLOpenGL implementation.

Makes it possible to remove otherwise unused and unfitting "shared context"
related functionality from WebGL level from GraphicsContextGL.

No new tests, refactor.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::GraphicsContextGL):
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::asCV): Deleted.
  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp: Added. (WebCore::createPbufferAndAttachIOSurface): (WebCore::destroyPbufferAndDetachIOSurface):
  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.h: Added. Move the createPbufferAndAttachIOSurface to Cocoa specific ANGLE utility file. See also bug 226504 - Adopt createPbufferAndAttachIOSurface/destroyPbufferAndDetachIOSurface in GraphicsContextGLCVANGLE.cpp and GraphicsContextGLOpenGLCocoa.mm
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::create): (WebCore::GraphicsContextGLOpenGL::createForGPUProcess): (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::makeCurrent): Add a new function to make the EGL context current and maintain the GraphicsContextGLOpenGL::currentContext cache value correctly. Cache needs to be invalidated always when EGL context changes. The cache value is reset always, and then set only when needed during GraphicsContextGLOpenGL::makeContextCurrent().

Make GraphicsContextGLCVANGLE friend of GraphicsContextGLOpenGL, since
essentially the former is part of the implementation of latter.

(WebCore::GraphicsContextGLOpenGL::createPbufferAndAttachIOSurface):
(WebCore::GraphicsContextGLOpenGL::destroyPbufferAndDetachIOSurface):
Move the implementation to a ANGLE related helper files above.

(WebCore::GraphicsContextGLOpenGL::asCV):
Move the asCV to the implementaton file for Cococa, as that is
the platform which uses the implementation.

(WebCore::GraphicsContextGLOpenGL::createShared): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearCurrentContext): Deleted.
Replace with GraphicsContextGLOpenGL::makeCurrent().

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp: (WebCore::YCbCrMatrix::operator const GLfloat* const): (WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction): (WebCore::GraphicsContextGLCVANGLE::create): (WebCore::GraphicsContextGLCVANGLE::~GraphicsContextGLCVANGLE): (WebCore::GraphicsContextGLCVANGLE::GraphicsContextGLCVANGLE): Reorder the resource initialization with ScopeExit cleanup functions. Avoid storing the yuvProgram, instead just use the program as program binary and delete the program.

(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):
(WebCore::YCbCrMatrix::operator GCGLSpan<const GLfloat, 16> const): Deleted.
(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects): Deleted.
Move the resource initialization into the constructor. The object
itself is already initialized only on demand.
(WebCore::GraphicsContextGLCVANGLE::attachIOSurfaceToTexture): Deleted.
(WebCore::GraphicsContextGLCVANGLE::detachIOSurfaceFromTexture): Deleted.
Share the implementation with the existing implementation from
WebCore::GraphicsContextGLOpenGL::createPbufferAndAttachIOSurface that
was moved to WebCore::createPbufferAndAttachIOSurface.

  • platform/graphics/cv/GraphicsContextGLCVANGLE.h: Remove the m_yuvProgram, rather use just the program binary.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): Remove the redundant sharedContext parameter.

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

2:05 PM Changeset in webkit [284942] by Alan Coon
  • 7 edits in branches/safari-612-branch

Cherry-pick r282160. rdar://problem/84630406

webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229940

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

Source/WebCore:

Add compressed texture upload internal format validation back.
This was disabled when ANGLE was integrated.
ANGLE does not check whether the extensions are enabled or not.

Fixes tests:
webgl/1.0.x/conformance/extensions/webgl-compressed-texture-etc.html
webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html

  • html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::compressedTexImage2D):
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::compressedTexImage2D): (WebCore::WebGLRenderingContextBase::compressedTexSubImage2D): (WebCore::WebGLRenderingContextBase::validateCompressedTexFormat):
  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

Enable webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html
explicitly until 2.0.y is activated. Same for 1.0.x.

  • webgl/TestExpectations:
  • webgl/webgl-allow-shared-expected.txt: The test tests that SharedArrayBuffer does not produce an error for when used as TexImageSource. The change makes two compressedTexImage calls produce new GL errors due to the extension not being enabled. The errors are added to the expected.txt. This does not invalidate the objective of the change -- the SharedArrayBuffer type validation happens before the GL validation and as such will be visible if the objective of the test is broken.

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

2:05 PM Changeset in webkit [284941] by Alan Coon
  • 5 edits in branches/safari-612-branch

Cherry-pick r282132. rdar://problem/84629639

webgl/2.0.y/deqp/functional/gles3/rbostatequery.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229950

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

Source/WebCore:

Request ANGLE_framebuffer_multisample when creating WebGL2 context.
WebGL2 spec requires multisampled framebuffers.

The test that would fail is:

gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.RGBA8, 128, 128);
var value = / @type {number} */ (gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_SAMPLES));
this.check(value >= samples, 'Expected greater or equal to ' + samples + ' got ' + value);

for samples == 1 the test would have value == 0 with INVALID_OPERATION from ANGLE due to
the extension not being enabled.

Fixes tests:
webgl/2.0.0/deqp/functional/gles3/rbostatequery.html
webgl/2.0.y/deqp/functional/gles3/rbostatequery.html

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

LayoutTests:

Enable webgl/2.0.y/deqp/functional/gles3/rbostatequery.html
explicitly until 2.0.y is activated.

  • webgl/TestExpectations:

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

2:05 PM Changeset in webkit [284940] by Alan Coon
  • 11 edits
    2 deletes in branches/safari-612-branch

Cherry-pick r281794. rdar://problem/84625240

webgl/1.0.x/conformance/glsl/misc/fragcolor-fragdata-invariant.html fails
https://bugs.webkit.org/show_bug.cgi?id=223317
<rdar://problem/75772659>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-31
Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

The parser maintains invariance metadata for each input and output
with the help of the symbol table, during parsing.

Use this metadata through the collection phase done by CollectVariables
section of shader compilation.

Remove the manual tree rewrite section that collected the invariance
information. The implementation had following problems:
1) It would declare the variables present. This would fail the test case
fixed here, due to the test case using invariant declarations to both
FragColor and FragData, which would cause both to be present as outputs
to the MSL.
2) It would operate on rewritten variables. For example, FragCoord would
be replaced with different variable, causing the invariance be marked
based on the rewritten name but the later lookup intended to be done
with the original name.

Remove logic to mark FragCoord as invariant, as MSL specification explicitly
says that only the vertex position output can be marked as invariant.
As noted above, this never worked.

Fix cases where the tree rewriters assume that all variable references are
done within functions. The global qualifier declarations are now left
in the tree and as such can refer to variables but do not belong to any
function.

Fixes:
webgl/1.0.x/conformance/glsl/misc/fragcolor-fragdata-invariant.html
webgl/2.0.y/conformance/glsl/misc/fragcolor-fragdata-invariant.html

  • ANGLE.xcodeproj/project.pbxproj:
  • src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl):
  • src/compiler/translator/TranslatorMetalDirect/DiscoverDependentFunctions.cpp:
  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::GenMetalTraverser): (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::visitGlobalQualifierDeclaration): (sh::EmitMetal):
  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.h:
  • src/compiler/translator/TranslatorMetalDirect/RewriteGlobalQualifierDecls.cpp: Removed.
  • src/compiler/translator/TranslatorMetalDirect/RewriteGlobalQualifierDecls.h: Removed.
  • src/compiler/translator/TranslatorMetalDirect/RewritePipelines.cpp: (sh::IsVariableInvariant): (sh::GeneratePipelineStruct::Exec): (sh::GeneratePipelineStruct::GeneratePipelineStruct): (sh::GeneratePipelineStruct::createInternalPipelineStruct): (sh::UpdatePipelineSymbols): (sh::RewritePipeline): (sh::RewritePipelines):
  • src/compiler/translator/TranslatorMetalDirect/RewritePipelines.h:
  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.cpp:

LayoutTests:

Fixes tests:
webgl/1.0.x/conformance/glsl/misc/fragcolor-fragdata-invariant.html
webgl/2.0.y/conformance/glsl/misc/fragcolor-fragdata-invariant.html

  • TestExpectations: Mark the skipped tests as Pass until all 1.0.x/2.0.y tests are unskipped.

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

1:09 PM Changeset in webkit [284939] by Kate Cheney
  • 2 edits in trunk/Tools

REGRESSION: [iOS] TestWebKitAPI.InAppBrowserPrivacy.AppBoundDomainAllowsServiceWorkers is failing
https://bugs.webkit.org/show_bug.cgi?id=227918

Unreviewed fix to unskip failing test that was fixed by
https://commits.webkit.org/239967@main.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
12:45 PM Changeset in webkit [284938] by Simon Fraser
  • 7 edits in trunk

Preserve image diff precision until display time
https://bugs.webkit.org/show_bug.cgi?id=232365

Reviewed by Martin Robinson.

Tools:

Keep the precise image diff percentage value, saving it in full_results.json, and
only round it at presentation time in results.html.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image_failed_with_rounded_diff):

LayoutTests:

  • fast/harness/full_results.json:
  • fast/harness/results-expected.txt:
  • fast/harness/results.html:
12:41 PM Changeset in webkit [284937] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Remove tests that now pass from test expectations. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232395

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-27

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:40 PM Changeset in webkit [284936] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Update test expectations for regressions from r284521. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232393

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-27

  • platform/glib/TestExpectations:
12:28 PM Changeset in webkit [284935] by dbezhetskov
  • 26 edits
    2 adds in trunk

[WASM-Function-References] Add call_ref spec tests
https://bugs.webkit.org/show_bug.cgi?id=229710
JSTests:

Reviewed by Yusuke Suzuki.

Add tests for call_ref instruction from the spec repo:
https://github.com/WebAssembly/function-references/blob/master/test/core/call_ref.wast.
Also added tests for Funcref/Externref in Wasm tables and globals to test
new internal representation of Funcref = (ref null funcref).

  • wasm.yaml:
  • wasm/function-references-spec-tests/call_ref.wast.js: Added.
  • wasm/function-references/ref_types.js:

(async testRefGlobalCheck):
(async testNonNullExternrefIncompatible):
(async testNonNullFuncrefIncompatible):
(async testWasmJSGlobals):
(async testRefTypesInTables):

  • wasm/wasm.json:

Source/JavaScriptCore:

Reviewed by Yusuke Suzuki.

Removed redundand TypeKind::TypeIdx because new Ref and RefNull opcodes cover
the same cases.
Also use new internal representation of Funcref/Externref when typed
function references proposal is enabled.

  • bytecode/BytecodeDumper.cpp:

(JSC::Wasm::BytecodeDumper::formatConstant const):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::gRef):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::addRefFunc):
(JSC::Wasm::AirIRGenerator::gTypeIdx): Deleted.

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::WasmCallingConvention::marshallLocation const):
(JSC::Wasm::JSCallingConvention::marshallLocation const):

  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):
(JSC::Wasm::isRefType):
(JSC::Wasm::isExternref):
(JSC::Wasm::isFuncref):
(JSC::Wasm::FuncrefType):
(JSC::Wasm::ExternrefType):
(JSC::Wasm::isRefWithTypeIndex):
(JSC::Wasm::isSubtype):
(JSC::Wasm::isDefaultableType):
(JSC::Wasm::TableInformation::wasmType const):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::get const):
(JSC::Wasm::Global::set):
(JSC::Wasm::Global::visitAggregateImpl):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseValueType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::wasmType const):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::marshallJSResult):

  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::type):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::defaultValueForReferenceType):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::linkImpl):

  • wasm/wasm.json:

Tools:

Reviewed by Yusuke Suzuki.

Add a new routine to run typed function references spec tests.

  • Scripts/run-jsc-stress-tests:
12:05 PM Changeset in webkit [284934] by Chris Dumez
  • 6 edits in trunk

JavaScript URL result should be treated as UTF-8 bytes
https://bugs.webkit.org/show_bug.cgi?id=232380

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing. The remaining failures are due to the fact that we ignore the JavaScript URL result
when the URL is set as href on an anchor (as opposed to the src of an iframe). This will be addressed separately.

  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic-expected.txt:

Source/WebCore:

JavaScript URL result should be treated as UTF-8 bytes:

No new tests, rebaselined existing test.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::replaceDocumentWithResultOfExecutingJavascriptURL):

11:30 AM Changeset in webkit [284933] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[ iOS Release GPUProcess ] fast/forms/form-submission-crash-3.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=232312
<rdar://problem/84667412>

Reviewed by Alex Christensen.

Make sure the focus event has fired before calling finishJSTest since it changes the
output of the test.

  • fast/forms/form-submission-crash-3.html:
11:26 AM Changeset in webkit [284932] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Fix test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https.html to include DumpJSConsoleLogInStdErr.
https://bugs.webkit.org/show_bug.cgi?id=232337.

Unreviewed test gardening.

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

[ iOS macOS Debug ] imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is a flaky failure.
https://trac.webkit.org/changeset/284727/webkit

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:18 AM Changeset in webkit [284930] by Simon Fraser
  • 5 edits in trunk/Tools

Store WPT-style fuzzy pixel matching data in ImageDiffResult
https://bugs.webkit.org/show_bug.cgi?id=232352

Reviewed by Martin Robinson.

Always run ImageDiff with --difference so that it prints the "maxDifference=; totalPixels="
output, and parse and store this output in ImageDiffResult.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_tolerance.ImageDiffTestPort.diff_image):

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffResult.init):
(ImageDiffResult.eq):
(ImageDiffResult.repr):
(ImageDiffer._start):
(ImageDiffer._read):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image.make_proc):
(PortTestCase.test_diff_image):
(PortTestCase.test_diff_image_passed):
(PortTestCase.test_diff_image_passed_with_tolerance):
(PortTestCase.test_diff_image_failed_with_rounded_diff):
(PortTestCase.test_diff_image_failed):

  • Scripts/webkitpy/port/test.py:
11:08 AM Changeset in webkit [284929] by ddkilzer@apple.com
  • 4 edits
    1 add in trunk/Source/ThirdParty/libwebrtc

[WebRTC] Enable -Wformat=2 warnings
<https://webkit.org/b/232335>
<rdar://problem/84571752>

Reviewed by Eric Carlson.

  • Configurations/Base.xcconfig:

(WARNING_CFLAGS):

  • Add -Wformat=2 switch, which includes -Wformat-nonliteral.
  • Source/third_party/libsrtp/crypto/include/err.h:

(LIBSRTP_FORMAT_PRINTF): Add.

  • Define a macro for the printf format attribute.

(srtp_err_report):

  • Apply LIBSRTP_FORMAT_PRINTF() macro to this function to fix -Wformat-nonliteral warnings.
  • Source/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h:

(LIBVPX_FORMAT_PRINTF): Add.

  • Define a macro for the printf format attribute.

(vpx_internal_error):

  • Apply LIBVPX_FORMAT_PRINTF() macro to this function to fix -Wformat-nonliteral warnings.
  • WebKit/0001-WebKitLegacy-Enable-Wformat-2-warnings.patch: Add.
11:08 AM Changeset in webkit [284928] by Alan Coon
  • 6 edits in branches/safari-612-branch/Source

Cherry-pick r283662. rdar://problem/84717723

Fix watchOS, tvOS, and macCatalyst builds after r283592
https://bugs.webkit.org/show_bug.cgi?id=231300
rdar://83936867

Reviewed by Wenson Hsieh.

Source/WebKit:

  • Platform/spi/ios/PhotosUISPI.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):

Source/WTF:

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

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

10:43 AM Changeset in webkit [284927] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (Safari 15): Poor WebGL performance on https://downloads.scirra.com/labs/particles
https://bugs.webkit.org/show_bug.cgi?id=230749
<rdar://problem/83576271>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-27
Reviewed by Kenneth Russell.

The site would draw indexed per frame with each frame increasing the size of the draw.
This would cause index buffer range cache update for each draw.
Range computation needs to look inside the index buffer.
Mapping the index buffer for read would cause command buffer flush for each computation,
since previous frame would have used the index buffer for reading. This would cause
performance degradation for the duration where the range cache would need update.

Since the buffer is read by the draw but not written, the map should be a no-op.
Consult the "CPU memory needs synchronizing" flag of the mtl::Resource when
mapping. Only synchronize with GPU if the memory needs synchronizing.

  • src/libANGLE/renderer/metal/mtl_resources.mm:

(rx::mtl::Buffer::mapWithOpt):

10:11 AM Changeset in webkit [284926] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Ensure empty line before canonicalization
https://bugs.webkit.org/show_bug.cgi?id=232103
<rdar://problem/84521382>

Reviewed by Stephanie Lewis.

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

(main): Handle empty lines around identifier links, add empty line before identifier links.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:

(TestCanonicalize.test_formated_identifier):
(TestCanonicalize.test_existing_identifier):
(TestCanonicalize.test_git_svn):
(TestCanonicalize.test_git_svn_existing):
(TestCanonicalize.test_branch_commits):
(TestCanonicalize.test_number):

10:08 AM Changeset in webkit [284925] by commit-queue@webkit.org
  • 2 edits in trunk

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

Patch by Roy Reapor <rreapor@apple.com> on 2021-10-27
Reviewed by Aakash Jain.

  • metadata/contributors.json:
9:32 AM Changeset in webkit [284924] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

REGRESSION (iOS 15): Touch events are not fired during quick successive taps
https://bugs.webkit.org/show_bug.cgi?id=232324
rdar://83455472

Reviewed by Wenson Hsieh.

To support Live Text on iOS 15, two new gesture recognizers were added
to WKContentView. When the gesture recognizers were added,
-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]
was not updated, resulting in a failure dependency between the new gesture
recognizers and the touchstart deferring gesture recognizer for "immediately
resettable" gestures.

The failure dependency causes the entire "immediately resettable" subgraph
(which contains UIWebTouchEventsGestureRecognizer) to have a delayed reset,
as the new gestures recognizers are connected to the "delayed resettable"
subgraph by way of UIKit's exclusion gestures that control context menu
presentation. The delayed reset prevents successive touches from being
recognized, and touch events are only recognized after the delay has
passed. Consequently, quick successive taps result in some touch events
being dropped.

To fix, remove the existing failure dependency and instead add an explicit
failure dependency to the "delayed resettable" subgraph. This ensures the
immediately resettable subgraph can reset as intended.

No new tests, as the issue has been difficult to reproduce in WebKitTestRunner,
even though it reproduces consistently in Safari. Filed webkit.org/b/232326
as a follow-up to investigate a testing strategy.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

8:34 AM Changeset in webkit [284923] by commit-queue@webkit.org
  • 14 edits in trunk/Source/JavaScriptCore

[JSC][32bit] Fix CSR restore on DFG tail calls, add extra register on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=230622

Patch by Geza Lore <Geza Lore> on 2021-10-27
Reviewed by Keith Miller.

This re-introduces the patch reverted by
https://trac.webkit.org/changeset/284911/webkit
with the C_LOOP interpreter now fixed.

The only difference between the original patch and this version is in
LowLevelInterpreter32_64.asm and LowLevelInterpreter64.asm, which
need the PC base (PB) register restored on C_LOOP on return from a
call, as C_LOOP does not seem to handle this as a proper callee save
register (CSR). On non C_LOOP builds, the CSR restore mechanism takes
care of this, so removed the superfluous instructions.

--- Original ChangeLog ---

This patch does two things:

  1. Adds an extra callee save register (CSR) to be available to DFG on

ARMv7. To do this properly required the following:

  1. Implements the necessary shuffling in CallFrameShuffler on 32-bit

architectures that is required to restore CSRs properly after a tail
call on these architectures. This also fixes the remaining failures in
the 32-bit build of the unlinked baseline JIT.

  • bytecode/ValueRecovery.cpp:

(JSC::ValueRecovery::dumpInContext const):

  • bytecode/ValueRecovery.h:

(JSC::ValueRecovery::calleeSaveRegDisplacedInJSStack):
(JSC::ValueRecovery::isInJSStack const):
(JSC::ValueRecovery::dataFormat const):
(JSC::ValueRecovery::withLocalsOffset const):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • jit/CachedRecovery.cpp:

(JSC::CachedRecovery::loadsIntoGPR const):

  • jit/CallFrameShuffleData.cpp:

(JSC::CallFrameShuffleData::setupCalleeSaveRegisters):

  • jit/CallFrameShuffleData.h:
  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::snapshot const):
(JSC::CallFrameShuffler::addNew):

  • jit/CallFrameShuffler32_64.cpp:

(JSC::CallFrameShuffler::emitLoad):
(JSC::CallFrameShuffler::emitDisplace):

  • jit/GPRInfo.h:

(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toIndex):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::dfgCalleeSaveRegisters):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
8:29 AM Changeset in webkit [284922] by ap@apple.com
  • 2 edits in trunk/Tools

webkitdirs.pm should use JSON::XS when available
https://bugs.webkit.org/show_bug.cgi?id=232354

Reviewed by Dewei Zhu.

JSON::XS is faster than JSON::PP. While it doesn't matter for webkitdirs' own use,
where JSONs are tiny, other scripts that import webkitdirs.pm do care.

  • Scripts/webkitdirs.pm:
8:24 AM Changeset in webkit [284921] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Mark some WPT transforms tests as passing
https://bugs.webkit.org/show_bug.cgi?id=232377

Unreviewed.

4:47 AM Changeset in webkit [284920] by Martin Robinson
  • 17 edits
    1 copy
    3 moves
    2 adds
    1 delete in trunk/Source

Eliminate duplicated platform-specific code in ScrollingTreeStickyNode
https://bugs.webkit.org/show_bug.cgi?id=231571

Reviewed by Simon Fraser.

Abstract code from the Nicosia and Cooca version of ScrollingTreeStickyNode,
so that it can be shared by both ports.

Source/WebCore:

No new tests. This should not change any behavior.

  • Headers.cmake:
  • PlatformMac.cmake:
  • PlatformPlayStation.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/ScrollingTreeStickyNode.cpp: Renamed from Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNode.cpp.

(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNode::dumpProperties const):

  • page/scrolling/ScrollingTreeStickyNode.h: Copied from Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNode.h.
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: Removed.

(WebCore::ScrollingTreeStickyNode::create): Deleted.
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode): Deleted.
(WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode): Deleted.
(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren): Deleted.
(WebCore::ScrollingTreeStickyNode::computeLayerPosition const): Deleted.
(WebCore::ScrollingTreeStickyNode::applyLayerPositions): Deleted.
(WebCore::ScrollingTreeStickyNode::scrollDeltaSinceLastCommit const): Deleted.
(WebCore::ScrollingTreeStickyNode::dumpProperties const): Deleted.

  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h: Renamed from Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNode.h.
  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm: Added.

(WebCore::ScrollingTreeStickyNodeCocoa::create):
(WebCore::ScrollingTreeStickyNodeCocoa::ScrollingTreeStickyNodeCocoa):
(WebCore::ScrollingTreeStickyNodeCocoa::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions):
(WebCore::ScrollingTreeStickyNodeCocoa::layerTopLeft const):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:
  • page/scrolling/mac/ScrollingTreeMac.mm:

(ScrollingTreeMac::createScrollingTreeNode):

  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::ScrollingTreeNicosia::createScrollingTreeNode):

  • page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.cpp: Added.

(WebCore::ScrollingTreeStickyNodeNicosia::create):
(WebCore::ScrollingTreeStickyNodeNicosia::ScrollingTreeStickyNodeNicosia):
(WebCore::ScrollingTreeStickyNodeNicosia::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNodeNicosia::applyLayerPositions):
(WebCore::ScrollingTreeStickyNodeNicosia::layerTopLeft const):

  • page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.h: Renamed from Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNode.h.
  • platform/TextureMapper.cmake:

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::createScrollingTreeNode):

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
4:32 AM Changeset in webkit [284919] 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=232364

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-27

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:38 AM Changeset in webkit [284918] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/css/css-shadow-parts/invalidation-part-pseudo.html is failing
https://bugs.webkit.org/show_bug.cgi?id=232343
<rdar://problem/84684454>

Unreviewed test gardening.

  • platform/ios/TestExpectations:
Note: See TracTimeline for information about the timeline view.