Skip to content
Permalink
main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Mar 24, 2023

  1. JavaScriptCore: m_linkBuffer should be initialized via WTF::makeUnique

    https://bugs.webkit.org/show_bug.cgi?id=253156
    
    Reviewed by Chris Dumez.
    
    m_linkBuffer can be fast-allocated, so let's do this via WTF::makeUnique.
    
    * Source/JavaScriptCore/jit/JIT.cpp:(JIT::compileAndLinkWithoutFinalizing):
      Use WTF::MakeUnique to initialize m_linkBuffer.
    
    Canonical link: https://commits.webkit.org/262084@main
    AtariDreams authored and cdumez committed Mar 24, 2023
  2. WebCore: Prefer mutableCopy over mutableCopyWithZone

    https://bugs.webkit.org/show_bug.cgi?id=253825
    
    Reviewed by Chris Dumez.
    
    The mutableCopyWithZone method is not overridden, nor is the
    zone parameter even acknowledged anymore by the Objective-C
    runtime. We should replace calls to mutableCopyWithZone with
    calls to mutableCopy.
    
    * Source/WebCore/platform/mac/WebNSAttributedStringExtras.mm:
      (attributedStringByStrippingAttachmentCharacters): Replace
      mutableCopyWithZone with mutableCopy.
    
    * Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:
      (initWithSession): Ditto.
    
    Canonical link: https://commits.webkit.org/262083@main
    AtariDreams authored and cdumez committed Mar 24, 2023
  3. [UI-side compositing] Add infrastructure to get scrollbar state in la…

    …yout tests
    
    https://bugs.webkit.org/show_bug.cgi?id=254372
    rdar://107154212
    
    Reviewed by Simon Fraser.
    
    Add UI-script controller function for getting scrollbar state for a scrolling tree
    node id. Add an internals function for getting the scrolling tree node id from a
    node.
    
    * LayoutTests/fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html:
    * Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
    (WebCore::ScrollingTreeScrollingNodeDelegate::scrollbarStateForOrientation const):
    * Source/WebCore/page/scrolling/mac/ScrollerMac.h:
    * Source/WebCore/page/scrolling/mac/ScrollerMac.mm:
    (WebCore::ScrollerMac::scrollbarState const):
    * Source/WebCore/page/scrolling/mac/ScrollerPairMac.h:
    * Source/WebCore/page/scrolling/mac/ScrollerPairMac.mm:
    (WebCore::ScrollerPairMac::scrollbarStateForOrientation const):
    * Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
    * Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
    (WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollbarStateForOrientation const):
    * Source/WebCore/testing/Internals.cpp:
    (WebCore::Internals::scrollingNodeIDForNode):
    * Source/WebCore/testing/Internals.h:
    * Source/WebCore/testing/Internals.idl:
    * Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
    * Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
    (-[WKWebView _scrollbarStateForScrollingNodeID:isVertical:]):
    * Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
    (WebKit::RemoteScrollingCoordinatorProxy::scrollbarStateForScrollingNodeID):
    * Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:
    (WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::scrollbarStateForOrientation const):
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:
    (WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::scrollbarStateForOrientation const):
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h:
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::scrollbarStateForScrollingNodeID):
    * Source/WebKit/UIProcess/WebPageProxy.h:
    * Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
    * Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:
    (WTR::UIScriptController::scrollbarStateForScrollingNodeID const):
    * Tools/WebKitTestRunner/mac/UIScriptControllerMac.h:
    * Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm:
    (WTR::UIScriptControllerMac::scrollbarStateForScrollingNodeID const):
    
    Canonical link: https://commits.webkit.org/262082@main
    nmoucht committed Mar 24, 2023
  4. Trimmed block-start margins for flex items in horizontal writing mode…

    … should be reflected in computed style
    
    https://bugs.webkit.org/show_bug.cgi?id=253712
    rdar://106558991
    
    Reviewed by Alan Baradlay.
    
    Whenever we trim a block-start margin for a flex item, we should include
    a bit of information for this trimmed margin as a piece of rare data
    for the object. The trimming is done inside trimMainAxisMarginStart and
    trimCrossAxisMarginStart, so we can wrap abstract the trimming into a
    new helper method, RenderBlock::setTrimmedMarginForChild. This new
    helper will trim the correct margin and also set the corresponding bit
    of rare data
    
    Then, inside of ComputedStyleExtractor we can check
    if this bit has been set when trying to determine the block-start margin
    when the flexbox is in horizontal writing-mode (i.e. the top margin).
    
    For flex layout, we can clear these new bits whenever we go through
    another layout and recreate the flex items.
    
    We also need to update the conditions for determining whether the
    margin-top property is layout dependent by taking into consideration
    margin-trim. For flex items, this can be done by checking the set
    margin-trim values on the flexbox.
    
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::isFlexItem):
    (WebCore::rendererContainingBlockHasMarginTrim):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::setTrimmedMarginForChild):
    * Source/WebCore/rendering/RenderBlock.h:
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::flowRelativeDirectionToMarginTrimType):
    (WebCore::RenderBox::markMarginAsTrimmed):
    (WebCore::RenderBox::clearTrimmedMarginsMarkings):
    (WebCore::RenderBox::hasTrimmedMargin const):
    * Source/WebCore/rendering/RenderBox.h:
    * Source/WebCore/rendering/RenderFlexibleBox.cpp:
    (WebCore::RenderFlexibleBox::trimMainAxisMarginStart):
    (WebCore::RenderFlexibleBox::trimCrossAxisMarginStart):
    (WebCore::RenderFlexibleBox::constructFlexItem):
    * Source/WebCore/rendering/RenderObject.h:
    
    Canonical link: https://commits.webkit.org/262081@main
    sgill26 authored and Sammy Gill committed Mar 24, 2023
  5. ARQL: Launch Preview needs to be passed along the appropriate disable…

    …Scaling and customSharing fragment identifiers
    
    https://bugs.webkit.org/show_bug.cgi?id=254371
    rdar://106193234
    
    Reviewed by Antoine Quint.
    
    ARQL needs to see the fragment identifier on the link in order
    to do things like disable scaling.
    
    * Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm:
    (WebKit::LegacyDownloadClient::didCreateDestination): Pass along the fragment identifier.
    (WebKit::LegacyDownloadClient::didFinish): Copy the code from above.
    * Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Don't explicitly remove the fragment identifier.
    
    Canonical link: https://commits.webkit.org/262080@main
    grorg committed Mar 24, 2023
  6. ReadableStream.tee should make sure to have its internal pull promise…

    …s handled
    
    https://bugs.webkit.org/show_bug.cgi?id=254407
    rdar://problem/107183268
    
    Reviewed by Alex Christensen.
    
    Make sure that the read promise used for teeing is handled.
    We do not currently use the rejection handler as we handle closure with the closed promise.
    A follow-up patch should update the tee algorithm to the latest specification.
    
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.serviceworker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.sharedworker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.worker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.any.serviceworker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.any.sharedworker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.any.worker-expected.txt:
    * Source/WebCore/Modules/streams/ReadableStreamInternals.js:
    (readableStreamTeePullFunction):
    
    Canonical link: https://commits.webkit.org/262079@main
    youennf committed Mar 24, 2023
  7. WritableStreamDefaultController constructor should throw if called di…

    …rectly
    
    https://bugs.webkit.org/show_bug.cgi?id=254418
    rdar://problem/107185937
    
    Reviewed by Alex Christensen.
    
    Fix the check in initializeWritableStreamDefaultController to make sure the constructor will throw.
    
    * LayoutTests/imported/w3c/web-platform-tests/streams/writable-streams/constructor.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/streams/writable-streams/constructor.any.worker-expected.txt:
    * Source/WebCore/Modules/streams/WritableStreamDefaultController.js:
    (initializeWritableStreamDefaultController):
    
    Canonical link: https://commits.webkit.org/262078@main
    youennf committed Mar 24, 2023
  8. RenderBlockFlows with no children should not even try to run inline l…

    …ayout
    
    https://bugs.webkit.org/show_bug.cgi?id=254391
    
    Reviewed by Antti Koivisto.
    
    1. RenderBlockFlow's initial state is m_childrenInline = true
    2. m_childrenInline is set to true when the block ends up with no children.
    3. childrenInline() makes RenderBlockFlow run inline layout.
    
    Initiating layout (IFC or BFC) does not make much sense when there's nothing to run layout on.
    
    * Source/WebCore/rendering/RenderBlockFlow.cpp:
    (WebCore::RenderBlockFlow::layoutInlineChildren): RenderSVGText calls layoutInlineChildren with no children :|
    
    Canonical link: https://commits.webkit.org/262077@main
    alanbaradlay committed Mar 24, 2023
  9. Animations inside a Details tag only fire once

    https://bugs.webkit.org/show_bug.cgi?id=254401
    
    Reviewed by Antti Koivisto.
    
    We should always cancel declarative animations in case of a Full teardown, and never
    in the FullAfterSlotChange case. We remove the FALLTHROUGH to make this all clearer
    and better distinguish the Full and FullAfterSlotChange cases.
    
    * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-canceled-by-parent-details-element-being-closed-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-canceled-by-parent-details-element-being-closed.html: Added.
    * Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
    (WebCore::RenderTreeUpdater::tearDownRenderers):
    
    Canonical link: https://commits.webkit.org/262076@main
    graouts committed Mar 24, 2023
  10. [GTK] Allow pasting content with async clipboard when origin is the same

    https://bugs.webkit.org/show_bug.cgi?id=254408
    
    Reviewed by Michael Catanzaro.
    
    * LayoutTests/platform/gtk/TestExpectations:
    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:
    (WebKit::PageClientImpl::requestDOMPasteAccess):
    
    Canonical link: https://commits.webkit.org/262075@main
    carlosgcampos committed Mar 24, 2023
  11. [EGL] Merge GLContext and GLContextEGL

    https://bugs.webkit.org/show_bug.cgi?id=254270
    
    Reviewed by Adrian Perez de Castro.
    
    GLContextEGL is now the only implementation of GLContext, so there's no
    reason to have a base abstract class.
    
    * Source/WebCore/Headers.cmake:
    * Source/WebCore/PlatformPlayStation.cmake:
    * Source/WebCore/PlatformWin.cmake:
    * Source/WebCore/SourcesGTK.txt:
    * Source/WebCore/SourcesWPE.txt:
    * Source/WebCore/platform/graphics/GLContext.cpp: Removed.
    * Source/WebCore/platform/graphics/GLContext.h: Removed.
    * Source/WebCore/platform/graphics/PlatformDisplay.cpp:
    (WebCore::PlatformDisplay::sharingGLContext):
    (WebCore::PlatformDisplay::initializeEGLDisplay):
    * Source/WebCore/platform/graphics/egl/GLContext.cpp: Renamed from Source/WebCore/platform/graphics/egl/GLContextEGL.cpp.
    (WebCore::initializeOpenGLShimsIfNeeded):
    (WebCore::GLContext::errorString):
    (WebCore::GLContext::lastErrorString):
    (WebCore::GLContext::getEGLConfig):
    (WebCore::GLContext::createWindowContext):
    (WebCore::GLContext::createPbufferContext):
    (WebCore::GLContext::createSurfacelessContext):
    (WebCore::GLContext::createContext):
    (WebCore::GLContext::createOffscreen):
    (WebCore::GLContext::createSharing):
    (WebCore::GLContext::GLContext):
    (WebCore::GLContext::~GLContext):
    (WebCore::GLContext::createContextForEGLVersion):
    (WebCore::GLContext::makeContextCurrent):
    (WebCore::GLContext::current):
    (WebCore::GLContext::swapBuffers):
    (WebCore::GLContext::platformContext):
    (WebCore::GLContext::isExtensionSupported):
    (WebCore::GLContext::version):
    * Source/WebCore/platform/graphics/egl/GLContext.h: Added.
    (WebCore::GLContext::display const):
    (WebCore::GLContext::config const):
    * Source/WebCore/platform/graphics/egl/GLContextEGL.h: Removed.
    * Source/WebCore/platform/graphics/egl/GLContextEGLLibWPE.cpp:
    (WebCore::GLContext::GLContext):
    (WebCore::GLContext::createWindowSurfaceWPE):
    (WebCore::GLContext::createWPEContext):
    (WebCore::GLContext::destroyWPETarget):
    (WebCore::GLContextEGL::GLContextEGL): Deleted.
    (WebCore::GLContextEGL::createWindowSurfaceWPE): Deleted.
    (WebCore::GLContextEGL::createWPEContext): Deleted.
    (WebCore::GLContextEGL::destroyWPETarget): Deleted.
    * Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp:
    (WebCore::GLContext::GLContext):
    (WebCore::GLContext::createWindowSurfaceWayland):
    (WebCore::GLContext::createWaylandContext):
    (WebCore::GLContext::destroyWaylandWindow):
    (WebCore::GLContextEGL::GLContextEGL): Deleted.
    (WebCore::GLContextEGL::createWindowSurfaceWayland): Deleted.
    (WebCore::GLContextEGL::createWaylandContext): Deleted.
    (WebCore::GLContextEGL::destroyWaylandWindow): Deleted.
    * Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp:
    (WebCore::GLContext::GLContext):
    (WebCore::GLContext::createWindowSurfaceX11):
    (WebCore::GLContext::createPixmapContext):
    (WebCore::GLContextEGL::GLContextEGL): Deleted.
    (WebCore::GLContextEGL::createWindowSurfaceX11): Deleted.
    (WebCore::GLContextEGL::createPixmapContext): Deleted.
    * Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:
    * Source/WebCore/platform/graphics/libwpe/PlatformDisplayLibWPE.cpp:
    (WebCore::PlatformDisplayLibWPE::initialize):
    * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp:
    (WebCore::TextureMapperPlatformLayerDmabuf::validateTexture):
    * Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp:
    * Source/WebCore/platform/xr/openxr/PlatformXROpenXR.cpp:
    (PlatformXR::OpenXRDevice::initializeTrackingAndRendering):
    * Source/WebCore/platform/xr/openxr/PlatformXROpenXR.h:
    * Source/WebKit/GPUProcess/graphics/wc/WCSceneContext.cpp:
    (WebKit::WCSceneContext::WCSceneContext):
    * Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
    (WebKit::ThreadedCompositor::createGLContext):
    * Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp:
    (WebKit::WebKitProtocolHandler::handleGPU):
    * Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
    (WebKit::tryInitializeEGL):
    * Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:
    (WebKit::LayerTreeHost::LayerTreeHost):
    
    Canonical link: https://commits.webkit.org/262074@main
    carlosgcampos committed Mar 24, 2023
  12. Synchronize fetch/range WPT

    https://bugs.webkit.org/show_bug.cgi?id=254416
    rdar://107184642
    
    Reviewed by Youenn Fablet.
    
    Corrects oversight of 09841b4.
    
    * LayoutTests/imported/w3c/web-platform-tests/fetch/range/blob.any.worker-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/fetch/range/blob.any.worker.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/fetch/range/w3c-import.log:
    
    Canonical link: https://commits.webkit.org/262073@main
    annevk authored and youennf committed Mar 24, 2023
  13. Implement URL.canParse()

    https://bugs.webkit.org/show_bug.cgi?id=254147
    rdar://106934916
    
    Reviewed by Chris Dumez.
    
    Additionally removes an overload that's not supported by the URL Standard.
    
    * LayoutTests/imported/w3c/web-platform-tests/url/historical.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/historical.any.js:
    (test):
    * LayoutTests/imported/w3c/web-platform-tests/url/historical.any.worker-expected.txt:
    
    Changes exported via web-platform-tests/wpt#39177.
    
    * LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any.js: Added.
    (forEach):
    
    Imported from upstream.
    
    * Source/WebCore/html/DOMURL.cpp:
    (WebCore::DOMURL::canParse):
    * Source/WebCore/html/DOMURL.h:
    * Source/WebCore/html/DOMURL.idl:
    
    Canonical link: https://commits.webkit.org/262072@main
    annevk authored and cdumez committed Mar 24, 2023
  14. [MSE] media/media-source/media-source-video-playback-quality.html is …

    …a constant failure with MockMSE in GPUP
    
    https://bugs.webkit.org/show_bug.cgi?id=254405
    rdar://107182984
    
    Reviewed by Youenn Fablet.
    
    To get a valid VideoPlaybackQuality object about all the frames contained
    in the SourceBuffer we must get the entire content first.
    We modify the test so that the video is played to the end first and only
    then get the VideoPlaybackQuality.
    
    * LayoutTests/media/media-source/media-source-video-playback-quality-expected.txt:
    * LayoutTests/media/media-source/media-source-video-playback-quality.html:
    
    Canonical link: https://commits.webkit.org/262071@main
    jyavenard committed Mar 24, 2023
  15. m_styleScope should be a WeakPtr in InlineStyleSheetOwner

    https://bugs.webkit.org/show_bug.cgi?id=254397
    
    Reviewed by Chris Dumez.
    
    Use WeakPtr instead of a raw pointer in InlineStyleSheetOwner for Style::Scope.
    
    * Source/WebCore/dom/InlineStyleSheetOwner.cpp:
    (WebCore::InlineStyleSheetOwner::insertedIntoDocument):
    (WebCore::InlineStyleSheetOwner::removedFromDocument):
    (WebCore::InlineStyleSheetOwner::clearDocumentData):
    (WebCore::InlineStyleSheetOwner::createSheet):
    (WebCore::InlineStyleSheetOwner::sheetLoaded):
    (WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):
    * Source/WebCore/dom/InlineStyleSheetOwner.h:
    (WebCore::InlineStyleSheetOwner::styleScope):
    
    Canonical link: https://commits.webkit.org/262070@main
    rniwa authored and cdumez committed Mar 24, 2023
  16. [MSE] media/media-source/media-source-fudge-factor.html times out

    https://bugs.webkit.org/show_bug.cgi?id=254385
    rdar://107162814
    
    Reviewed by Jer Noble.
    
    The test assumed that it assumes that the `SourceBuffer.updating` attribute
    will be false when `loadedmetadata` or `loadeddata` are fired.
    This isn't guaranteed, only once `updateend` has fired would the updating
    attribute be false, allowing to append more data again to the sourceBuffer.
    
    * LayoutTests/media/media-source/media-source-fudge-factor-expected.txt:
    * LayoutTests/media/media-source/media-source-fudge-factor.html:
    
    Canonical link: https://commits.webkit.org/262069@main
    jyavenard committed Mar 24, 2023
  17. DFG should support tuples

    https://bugs.webkit.org/show_bug.cgi?id=253413
    
    Reviewed by Yusuke Suzuki.
    
    This change adds support for tuples in the DFG. It works similarly to how tuples
    work in B3 where there is a side buffer which holds most of the metadata for a
    tuple. In the DFG there are three pieces of information held here:
        1) The reference count
        2) The result flags
        3) The virtual register
    
    1) tells us if the ExtractFromTuple Node for a given tuple result still exists
    (e.g. it could have been constant folded or dead code eliminated). From that we
    will decide to fill (3) the virtual register when allocating registers. If we
    didn't have the reference count then we would have no way to know that the
    virtual registers isn't going to be consumed thus we will leak it. Lastly we
    have (2) the result flags for the node. This tells the ExtractFromTuple and
    theoretically (as right now the only ExtractFromTuple users produce Int32s) any
     consumers of the ExtractFromTuple what value format the tuple's result will
     be in. For the DFG, we don't need this because we know there's at most one
     ExtractFromTuple for any given tuple index since we don't duplicate code.
    
    When dumping the DFG graph ExtractFromTuple follows the same pattern as B3
    and uses `<<X` to denote the offset we are extracting from. So it will look
    something like:
    
      6  1  0:  D@101:< 1:->    EnumeratorNextUpdateIndexAndMode(Check:Untyped:D@97, Check:Untyped:D@98, Check:Untyped:D@100, Check:Untyped:D@99, VarArgs, SelectUsingPredictions+NonArray+InBounds+AsIs+Read, enumeratorModes = 4, R:World, W:Heap, Exits, ClobbersExit, bc#115, ExitValid)
      7  1  0:  D@102:< 1:->    ExtractFromTuple(Check:Untyped:D@101, Int32|UseAsOther, <<0, bc#115, ExitInvalid)
      8  1  0:  D@103:<!0:->    MovHint(Check:Untyped:D@102, MustGen, loc10, W:SideState, ClobbersExit, bc#115, ExitInvalid)
      9  1  0:  D@104:< 1:->    ExtractFromTuple(Check:Untyped:D@101, Int32|UseAsOther, <<1, bc#115, ExitInvalid)
    
    This patch also adds support for calling operations in both the FTL/B3 via
    CCall. CCall can take exactly the tuple of `{ pointerType(), pointerType() }`,
    which, for every calling conevention we support, should be returned in both
    the return value registers. As the only way to look into a tuple is via the
    B3 prodecure, the first Air::Arg of any CCall/ColdCCall Inst is now the
    CCallSpecial for the compiling Air::Code. This gives us access to Air::Code
    inside CCallCustom::forEachArg and isValidForm.
    
    * JSTests/stress/for-in-redefine-enumerable.js:
    (shouldBe):
    * Source/JavaScriptCore/b3/B3LowerToAir.cpp:
    * Source/JavaScriptCore/b3/B3Type.h:
    (JSC::B3::pointerType):
    (JSC::B3::registerType):
    * Source/JavaScriptCore/b3/B3Validate.cpp:
    * Source/JavaScriptCore/b3/air/AirCCallingConvention.cpp:
    (JSC::B3::Air::cCallResultCount):
    (JSC::B3::Air::cCallArgumentRegisterWidth):
    (JSC::B3::Air::cCallResult):
    * Source/JavaScriptCore/b3/air/AirCCallingConvention.h:
    * Source/JavaScriptCore/b3/air/AirCustom.cpp:
    (JSC::B3::Air::CCallCustom::isValidForm):
    * Source/JavaScriptCore/b3/air/AirCustom.h:
    (JSC::B3::Air::CCallCustom::forEachArg):
    * Source/JavaScriptCore/b3/air/AirLowerAfterRegAlloc.cpp:
    (JSC::B3::Air::lowerAfterRegAlloc):
    * Source/JavaScriptCore/b3/air/AirLowerMacros.cpp:
    (JSC::B3::Air::lowerMacros):
    * Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
    * Source/JavaScriptCore/b3/testb3.h:
    * Source/JavaScriptCore/b3/testb3_3.cpp:
    (addCallTests):
    * Source/JavaScriptCore/b3/testb3_5.cpp:
    (JSC_DEFINE_JIT_OPERATION):
    (testCallPairResult):
    (testCallPairResultRare):
    * Source/JavaScriptCore/dfg/DFGAbstractInterpreter.h:
    (JSC::DFG::AbstractInterpreter::setTupleConstant):
    * Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
    * Source/JavaScriptCore/dfg/DFGAtTailAbstractState.cpp:
    (JSC::DFG::AtTailAbstractState::AtTailAbstractState):
    * Source/JavaScriptCore/dfg/DFGAtTailAbstractState.h:
    (JSC::DFG::AtTailAbstractState::forTupleNode):
    (JSC::DFG::AtTailAbstractState::clearForTupleNode):
    (JSC::DFG::AtTailAbstractState::setForTupleNode):
    (JSC::DFG::AtTailAbstractState::setTypeForTupleNode):
    (JSC::DFG::AtTailAbstractState::setNonCellTypeForTupleNode):
    (JSC::DFG::AtTailAbstractState::makeBytecodeTopForTupleNode):
    (JSC::DFG::AtTailAbstractState::makeHeapTopForTupleNode):
    * Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::addToGraph):
    (JSC::DFG::ByteCodeParser::parseBlock):
    * Source/JavaScriptCore/dfg/DFGClobberize.h:
    (JSC::DFG::clobberize):
    * Source/JavaScriptCore/dfg/DFGDoesGC.cpp:
    (JSC::DFG::doesGC):
    * Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:
    (JSC::DFG::FixupPhase::fixupNode):
    * Source/JavaScriptCore/dfg/DFGGenerationInfo.h:
    (JSC::DFG::GenerationInfo::initFromTupleResult):
    * Source/JavaScriptCore/dfg/DFGGraph.cpp:
    (JSC::DFG::Graph::dump):
    * Source/JavaScriptCore/dfg/DFGGraph.h:
    * Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:
    (JSC::DFG::InPlaceAbstractState::InPlaceAbstractState):
    * Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.h:
    (JSC::DFG::InPlaceAbstractState::forTupleNode):
    (JSC::DFG::InPlaceAbstractState::clearForTupleNode):
    (JSC::DFG::InPlaceAbstractState::setForTupleNode):
    (JSC::DFG::InPlaceAbstractState::setTypeForTupleNode):
    (JSC::DFG::InPlaceAbstractState::setNonCellTypeForTupleNode):
    (JSC::DFG::InPlaceAbstractState::makeBytecodeTopForTupleNode):
    (JSC::DFG::InPlaceAbstractState::makeHeapTopForTupleNode):
    * Source/JavaScriptCore/dfg/DFGMayExit.cpp:
    * Source/JavaScriptCore/dfg/DFGNode.h:
    (JSC::DFG::Node::isTuple const):
    (JSC::DFG::Node::setTupleOffset):
    (JSC::DFG::Node::tupleOffset const):
    (JSC::DFG::Node::hasExtractOffset const):
    (JSC::DFG::Node::extractOffset const):
    (JSC::DFG::Node::tupleIndex const):
    (JSC::DFG::Node::tupleSize const):
    (JSC::DFG::Node::hasVirtualRegister):
    (JSC::DFG::Node::virtualRegister):
    (JSC::DFG::Node::setVirtualRegister):
    * Source/JavaScriptCore/dfg/DFGNodeType.h:
    * Source/JavaScriptCore/dfg/DFGOperations.cpp:
    (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
    * Source/JavaScriptCore/dfg/DFGOperations.h:
    (JSC::DFG::makeUGPRPair):
    * Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:
    * Source/JavaScriptCore/dfg/DFGSafeToExecute.h:
    (JSC::DFG::safeToExecute):
    * Source/JavaScriptCore/dfg/DFGScoreBoard.h:
    (JSC::DFG::ScoreBoard::use):
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:
    (JSC::DFG::SpeculativeJIT::strictInt32TupleResultWithoutUsingChildren):
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * Source/JavaScriptCore/dfg/DFGValidate.cpp:
    * Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp:
    (JSC::DFG::VirtualRegisterAllocationPhase::run):
    * Source/JavaScriptCore/ftl/FTLCapabilities.cpp:
    (JSC::FTL::canCompile):
    * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
    (JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
    (JSC::FTL::DFG::LowerDFGToB3::compileNode):
    (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
    * Source/JavaScriptCore/ftl/FTLOutput.cpp:
    (JSC::FTL::Output::extract):
    * Source/JavaScriptCore/ftl/FTLOutput.h:
    * Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
    (JSC::Wasm::AirIRGeneratorBase::emitCCall):
    
    Canonical link: https://commits.webkit.org/262068@main
    kmiller68 committed Mar 24, 2023
  18. Add initial slew of tests for wide-layout attachment

    https://bugs.webkit.org/show_bug.cgi?id=254203
    rdar://106984208
    
    Reviewed by Aditya Keerthi.
    
    Most are copies of the non-"wide" tests.
    
    Minor bugs were revealed and fixed:
    - When setting/changing the top-level attachment's id or class (or even style) attribute, it was copied to the inner attachment, possibly modifying its rendering through css. So instead of indiscriminately copying every attribute, only the necessary ones related to the icon/thumbnail display are now copied.
    - setFile function calls on the top-level attachment needed to be forwarded to the inner attachment to display the correct icon in some cases.
    
    Render tree tests could become proper ref tests once the inner attachment is replaced with a standard HTML image element.
    
    * LayoutTests/TestExpectations:
    * LayoutTests/fast/attachment/cocoa/wide-attachment-class-expected.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-class.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-default-icon-expected.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-default-icon.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-dom-expected.txt: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-dom.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-folder-icon-expected.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-folder-icon.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-icon-from-file-extension-expected.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-icon-from-file-extension.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-id-expected.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-id.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-rendering.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-save-event-expected.txt: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-save-event.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-uti-expected.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-uti.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-wrapping-action-expected-mismatch.html: Added.
    * LayoutTests/fast/attachment/cocoa/wide-attachment-wrapping-action.html: Added.
    * LayoutTests/fast/attachment/mac/wide-attachment-element-gpu-process-expected.html: Added.
    * LayoutTests/fast/attachment/mac/wide-attachment-element-gpu-process.html: Added.
    * LayoutTests/fast/attachment/mac/wide-attachment-image-controls-basic-expected.txt: Added.
    * LayoutTests/fast/attachment/mac/wide-attachment-image-controls-basic.html: Added.
    * LayoutTests/fast/attachment/mac/wide-attachment-type-attribute-expected.html: Added.
    * LayoutTests/fast/attachment/mac/wide-attachment-type-attribute.html: Added.
    * LayoutTests/platform/ios-wk2/TestExpectations:
    * LayoutTests/platform/ios-wk2/fast/attachment/cocoa/wide-attachment-rendering-expected.txt: Added.
    * LayoutTests/platform/mac-wk2/TestExpectations:
    * LayoutTests/platform/mac-wk2/fast/attachment/cocoa/wide-attachment-rendering-expected.txt: Added.
    * Source/WebCore/html/HTMLAttachmentElement.cpp:
    (WebCore::HTMLAttachmentElement::ensureModernShadowTree):
    When first constructed, only relevant attributes are copied into the inner attachment.
    
    (WebCore::HTMLAttachmentElement::setFile):
    File details may be set through this function (instead of through element attributes), so the call must be duplicated into the inner attachment.
    
    (WebCore::HTMLAttachmentElement::parseAttribute):
    When attributes are modified, only the ones relevant to the attachment display are forwarded to the inner attachment.
    
    Canonical link: https://commits.webkit.org/262067@main
    squelart committed Mar 24, 2023
  19. [GStreamer] Harness: Support for output stream caps changes

    https://bugs.webkit.org/show_bug.cgi?id=254332
    
    Reviewed by Xabier Rodriguez-Calvar.
    
    The harness was internally caching output stream pad caps but additional caps events were not taken
    in account. We now clear the cached caps when the pad receives a caps event.
    
    * Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp:
    (WebCore::GStreamerElementHarness::Stream::outputCaps):
    (WebCore::GStreamerElementHarness::Stream::sinkEvent):
    * Source/WebCore/platform/gstreamer/GStreamerElementHarness.h:
    
    Canonical link: https://commits.webkit.org/262066@main
    philn committed Mar 24, 2023
  20. [MediaStream][GStreamer] Add support for InputDeviceInfo

    https://bugs.webkit.org/show_bug.cgi?id=254040
    
    Reviewed by Carlos Garcia Campos.
    
    The GLib UIProcess->WebProcess IPC now takes in account the desire for the UIProcess to reveal
    device IDs and labels.
    
    * LayoutTests/platform/glib/TestExpectations:
    * Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:
    (WebKit::UserMediaPermissionRequestManagerProxy::platformGetMediaStreamDevices):
    * Source/WebKit/WebProcess/glib/UserMediaCaptureManager.cpp:
    (WebKit::UserMediaCaptureManager::getMediaStreamDevices):
    * Source/WebKit/WebProcess/glib/UserMediaCaptureManager.h:
    * Source/WebKit/WebProcess/glib/UserMediaCaptureManager.messages.in:
    
    Canonical link: https://commits.webkit.org/262065@main
    philn committed Mar 24, 2023
  21. [media-controls] volume slider should animate when mute button is tog…

    …gled
    
    https://bugs.webkit.org/show_bug.cgi?id=254350
    rdar://102427937
    
    Reviewed by Dean Jackson.
    
    We used to simply snap the volume slider value as the mute button is toggled. Now we use a short animation
    by checking we have an event passed to syncControl(), which indicates this is not the initial call to syncControl()
    where we do not want to animate as we just want to match the initial state of the media element.
    
    * LayoutTests/media/modern-media-controls/volume-support/volume-support-media-api-expected.txt:
    * LayoutTests/media/modern-media-controls/volume-support/volume-support-media-api-mute-expected.txt:
    * LayoutTests/media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
    * LayoutTests/media/modern-media-controls/volume-support/volume-support-media-api.html:
    * Source/WebCore/Modules/modern-media-controls/controls/slider-base.js:
    (SliderBase.prototype.set value):
    (SliderBase.prototype.setValueAnimated):
    (SliderBase.prototype._setValueInternal):
    (SliderBase.prototype._handlePointerdownEvent):
    * Source/WebCore/Modules/modern-media-controls/media/media-controller-support.js:
    (MediaControllerSupport.prototype.handleEvent):
    * Source/WebCore/Modules/modern-media-controls/media/volume-support.js:
    (VolumeSupport.prototype.syncControl):
    (VolumeSupport):
    
    Canonical link: https://commits.webkit.org/262064@main
    graouts committed Mar 24, 2023
  22. [WGSL] Add support for textures

    https://bugs.webkit.org/show_bug.cgi?id=254278
    <rdar://problem/107067119>
    
    Reviewed by Mike Wyrzykowski.
    
    Still needs the functions that use textures to make it useful, but this patch
    adds support for textures in the parser, type checker and code generator.
    
    * Source/WebGPU/WGSL/AST/ASTTypeName.h:
    (WGSL::AST::ParameterizedTypeName::stringViewToKind):
    * Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp:
    (WGSL::Metal::FunctionDefinitionWriter::visit):
    * Source/WebGPU/WGSL/TypeStore.cpp:
    (WGSL::TextureKey::extra const):
    (WGSL::TypeStore::TypeStore):
    (WGSL::TypeStore::textureType):
    * Source/WebGPU/WGSL/TypeStore.h:
    * Source/WebGPU/WGSL/Types.cpp:
    (WGSL::Type::dump const):
    * Source/WebGPU/WGSL/Types.h:
    
    Canonical link: https://commits.webkit.org/262063@main
    tadeuzagallo committed Mar 24, 2023
  23. make all remaining { No, Yes } and { Yes, No } enums use bool as unde…

    …rlying type
    
    https://bugs.webkit.org/show_bug.cgi?id=254358
    
    Reviewed by Chris Dumez.
    
    Missed a few, such as multiline declarations, in 262018@main.
    
    * Source/JavaScriptCore/assembler/AssemblerBuffer.h:
    * Source/JavaScriptCore/bytecode/CallLinkInfo.h:
    * Source/ThirdParty/libwebrtc/Source/webrtc/pc/channel_unittest.cc:
    * Source/WTF/wtf/playstation/FileSystemPlayStation.cpp:
    * Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.h:
    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    * Source/WebCore/accessibility/AccessibilityNodeObject.h:
    * Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h:
    * Source/WebCore/css/parser/CSSParserEnum.h:
    * Source/WebCore/css/parser/CSSParserImpl.h:
    * Source/WebCore/dom/DocumentStorageAccess.h:
    * Source/WebCore/dom/ScriptExecutionContext.h:
    * Source/WebCore/loader/FrameLoaderTypes.h:
    * Source/WebCore/loader/ResourceLoaderOptions.h:
    * Source/WebCore/page/LocalFrameView.h:
    * Source/WebCore/platform/ScrollAnimator.h:
    * Source/WebCore/platform/ScrollTypes.h:
    * Source/WebCore/platform/gamepad/libwpe/GamepadProviderLibWPE.h:
    * Source/WebCore/platform/graphics/FontCache.h:
    * Source/WebCore/platform/graphics/GraphicsContextGL.h:
    * Source/WebCore/platform/graphics/ShouldLocalizeAxisNames.h:
    * Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h:
    * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h:
    * Source/WebCore/platform/network/HTTPParsers.h:
    * Source/WebCore/platform/text/TextFlags.h:
    * Source/WebCore/rendering/BreakLines.h:
    * Source/WebCore/rendering/RenderBox.h:
    * Source/WebCore/rendering/RenderLayerCompositor.h:
    * Source/WebCore/rendering/style/StyleCursorImage.h:
    * Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
    * Source/WebCore/style/StyleBuilderState.h:
    * Source/WebDriver/Session.h:
    * Source/WebDriver/WebDriverService.cpp:
    * Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.h:
    * Source/WebKit/Platform/IPC/StreamClientConnectionBuffer.h:
    * Source/WebKit/Platform/IPC/StreamServerConnectionBuffer.h:
    * Source/WebKit/Shared/TextFlags.serialization.in:
    * Source/WebKit/Shared/ios/GestureTypes.h:
    * Source/WebKit/UIProcess/API/glib/IconDatabase.h:
    * Source/WebKit/UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
    * Source/WebKit/UIProcess/PageClient.h:
    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidConnection.h:
    * Source/WebKit/UIProcess/WebProcessProxy.h:
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
    * Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.h:
    * Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
    
    Canonical link: https://commits.webkit.org/262062@main
    graouts committed Mar 24, 2023
  24. [GTK] font-size-adjust does not work for non-Ahem fonts

    https://bugs.webkit.org/show_bug.cgi?id=254145
    
    Reviewed by Carlos Garcia Campos.
    
    The GTK port does not properly handle the font-size-adjust CSS property.
    This is because xHeight is not retrieved with FreeType in Font::platformInit()
    at SimpleFontDataFreeType.cpp. We attempt to get the xHeight from FreeType first,
    then do the same from Cairo. If we get 0 of xHeight in the first trial and
    set it to `std::optional<float> xHeight`, the second trial never happens
    as `if (!xHeight)` does not hit. That condition just checks if xHeight has
    a value or not. Our intention is to retry to get xHeight by an alternative way
    (i.e., Cairo) where the xHeight is not normal (i.e., 0). To fix this, we test
    if xHeight has a value and that is a non-zero value for the second trial.
    Otherwise, we get the xHeight from Cairo.
    
    The following results are updated since the xHeight value was not reflected.
    
    * LayoutTests/platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
    * LayoutTests/platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
    * LayoutTests/platform/wpe/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
    * Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:
    (WebCore::Font::platformInit):
    
    Canonical link: https://commits.webkit.org/262061@main
    shivamidow committed Mar 24, 2023
  25. Custom highlight creation behind marked text should not be gated on i…

    …nput sources supporting live conversion only
    
    https://bugs.webkit.org/show_bug.cgi?id=254354
    rdar://107142115
    
    Reviewed by Wenson Hsieh.
    
    Previously, we gated custom highlight creation with a check on the
    `NSMarkedClauseSegmentAttributeName` attribute. This allowed us to honor
    background color only in the case of live conversion. Since that is
    no longer the case, it is undesirable to gate our behavior to the live
    conversion case.
    
    As such, we remove this attribute check and allow custom highlight
    creation for other IMEs.
    
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
    (compositionHighlights):
    
    Canonical link: https://commits.webkit.org/262060@main
    aprotyas authored and hortont424 committed Mar 24, 2023
  26. [Gardening] http/tests/priority-hints/fetch-api-priority.html

    https://bugs.webkit.org/show_bug.cgi?id=254259
    
    Unreviewed test gardening.
    http/tests/priority-hints/fetch-api-priority.html is randomly failing
    since it was added.
    
    * LayoutTests/TestExpectations:
    
    Canonical link: https://commits.webkit.org/262059@main
    fujii committed Mar 24, 2023
  27. Block unused resources in v3 sandbox

    https://bugs.webkit.org/show_bug.cgi?id=254291
    rdar://106827256
    
    Reviewed by Brent Fulgham.
    
    Block unused resources in v3 sandbox in the WebContent process on macOS and iOS. For Catalyst, we will
    enforce separately.
    
    * Source/WebKit/Shared/Sandbox/common.sb:
    
    Canonical link: https://commits.webkit.org/262058@main
    pvollan committed Mar 24, 2023
  28. Re-import image-set() WPT

    https://bugs.webkit.org/show_bug.cgi?id=254390
    rdar://107167728
    
    Reviewed by Cameron McCormack.
    
    Upstream revision: web-platform-tests/wpt@c49cf0a
    
    * LayoutTests/TestExpectations:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-calc-x-rendering-2-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2-expected.html.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-calc-x-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-calc-x-rendering-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-expected.html.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-calc-x-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering.html: Removed.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-negative-resolution-rendering-2-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2-expected.html.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-negative-resolution-rendering-2.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2.html.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-negative-resolution-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-negative-resolution-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/w3c-import.log:
    
    Canonical link: https://commits.webkit.org/262057@main
    nt1m committed Mar 24, 2023
  29. [IFC] InlineFormattingContextIntegrationEnabled belongs to CSS category

    https://bugs.webkit.org/show_bug.cgi?id=254345
    
    Reviewed by Antti Koivisto.
    
    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    
    Canonical link: https://commits.webkit.org/262056@main
    alanbaradlay committed Mar 24, 2023
  30. [WinCairo] Unreviewed test gardening

    * LayoutTests/platform/wincairo/TestExpectations:
    * LayoutTests/platform/wincairo/editing/selection/selection-display-block-sibling-expected.txt: Added.
    * LayoutTests/platform/wincairo/editing/selection/selection-display-flex-expected.txt: Added.
    * LayoutTests/platform/wincairo/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/html/details-marker-style-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/html/details-writing-mode-mixed-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/text/combining-enclosing-keycap-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/text/han-generic-font-families-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/text/hangul-generic-font-families-expected.txt: Added.
    * LayoutTests/platform/wincairo/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
    
    Canonical link: https://commits.webkit.org/262055@main
    fujii committed Mar 24, 2023
  31. [JSC] Refine DFG AI type speculations for GetInternalField when calle…

    …d on ProxyObject
    
    https://bugs.webkit.org/show_bug.cgi?id=254271
    <rdar://problem/107056889>
    
    Reviewed by Yusuke Suzuki.
    
    This change refines type speculations for [[ProxyTarget]] and [[ProxyHandler]] internal fields
    as their types are guaranteed by the ECMA-262, getting rid of SpecBytecodeTop, which enables downstream
    optimizations in IC helpers for ProxyObject's "has" and "get" traps, progressing microbenchmarks by 6-10%.
    
    microbenchmarks/proxy-get-miss-handler.js speedup probably slighly affects Speedometer2/Flight-TodoMVC.
    
    This very optimization may be applied to other object types, including Promise.
    
                                        ToT                     patch
    
    proxy-has-hit                 4.9520+-0.0588     ^      4.6705+-0.0609        ^ definitely 1.0603x faster
    proxy-has-miss-handler        5.0585+-0.0674     ^      4.7937+-0.0778        ^ definitely 1.0552x faster
    proxy-get-miss-handler       17.1412+-0.1817     ^     15.5256+-0.1962        ^ definitely 1.1041x faster
    
    * Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
    
    Canonical link: https://commits.webkit.org/262054@main
    Alexey Shvayka committed Mar 24, 2023
  32. Only apply certain UA styles to HTML elements

    https://bugs.webkit.org/show_bug.cgi?id=254380
    rdar://107162842
    
    Reviewed by Simon Fraser.
    
    Some of these styles should not apply to elements with other namespaces than HTML (e.g. SVG).
    
    * LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-and-svg-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-and-svg-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-and-svg.html: Added.
    * Source/WebCore/css/captions.css:
    (@namespace "http://www.w3.org/1999/xhtml";):
    * Source/WebCore/css/dialog.css:
    (@namespace "http://www.w3.org/1999/xhtml";):
    * Source/WebCore/css/mediaControls.css:
    (#if defined(ENABLE_VIDEO) && ENABLE_VIDEO && !(defined(ENABLE_MODERN_MEDIA_CONTROLS) && ENABLE_MODERN_MEDIA_CONTROLS)):
    * Source/WebCore/css/plugIns.css:
    (@namespace "http://www.w3.org/1999/xhtml";):
    (embed::-webkit-snapshotted-plugin-content,): Deleted.
    * Source/WebCore/css/popover.css:
    (@namespace "http://www.w3.org/1999/xhtml";):
    ([popover]:closed:not(dialog[open])): Deleted.
    * Source/WebCore/css/quirks.css:
    (@namespace "http://www.w3.org/1999/xhtml";):
    (img[align="left"]): Deleted.
    
    Canonical link: https://commits.webkit.org/262053@main
    nt1m committed Mar 24, 2023
  33. Attempting to release memory from RemoteResourceCacheProxy can create…

    … a new GPU Process connection.
    
    https://bugs.webkit.org/show_bug.cgi?id=254369
    <rdar://106852656>
    
    Reviewed by Geoffrey Garen.
    
    If we don't have a connection, then all the GPUP-side memory must already be released, and creating a new connection isn't helpful.
    
    * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
    (WebKit::RemoteRenderingBackendProxy::releaseAllRemoteResources):
    (WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
    
    Canonical link: https://commits.webkit.org/262052@main
    mattwoodrow committed Mar 24, 2023
  34. Assertion failure in CompositeEditCommand::moveParagraph via InsertLi…

    …stCommand::listifyParagraph
    
    https://bugs.webkit.org/show_bug.cgi?id=254375
    
    Reviewed by Wenson Hsieh.
    
    https://commits.webkit.org/70668@main made InsertListCommand::listifyParagraph to cross editing boundaries
    to look for the start & the end of the current paragraph so that we can include non-editable inline content.
    This, however, is inconsistent with CompositeEditCommand::moveParagraph's precondition that startOfParagraph
    is the start of paragraph without crossing editing boundaries.
    
    This patch addresses this precondition by calling startOfParagraph and endOfParagraph for the second time
    without specifying CanSkipOverEditingBoundary.
    
    * LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt: Added.
    * LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html: Added.
    * Source/WebCore/editing/InsertListCommand.cpp:
    (WebCore::InsertListCommand::listifyParagraph):
    
    Canonical link: https://commits.webkit.org/262051@main
    rniwa committed Mar 24, 2023
  35. The HTML fast parser may not parse HTML entities correctly

    https://bugs.webkit.org/show_bug.cgi?id=254370
    
    Reviewed by Ryosuke Niwa.
    
    The code was assuming consumeHTMLEntity() consumes all the input, which is not
    necessarily the case. This fixes cases where the reference is only part of the
    text.
    
    This is a cherry-pick from Blink:
    - https://chromium-review.googlesource.com/c/chromium/src/+/4305159
    
    * LayoutTests/fast/parser/fast-html-parser-consume-entity-expected.txt: Added.
    * LayoutTests/fast/parser/fast-html-parser-consume-entity.html: Added.
    * Source/WebCore/html/parser/HTMLDocumentParserFastPath.cpp:
    (WebCore::HTMLFastPathParser::scanHTMLCharacterReference):
    
    Canonical link: https://commits.webkit.org/262050@main
    cdumez committed Mar 24, 2023
Older