{
  "commits": {
    "315936@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "315936@main",
      "clUrl": "https://commits.webkit.org/315936@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317962\nrdar://180754626\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/315936@main",
      "email": "jespinal23@apple.com",
      "hash": "e2898729aecb23993320d8266a13c36f16f752a8",
      "subject": "[GARDENING] ipc/networksessioncocoa-empty-resource-request.html is a constant text failure on debug for both iOS and macOS."
    },
    "315937@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315937@main",
      "clUrl": "https://commits.webkit.org/315937@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317953\nrdar://180752038\n\nReviewed by Abrar Rahman Protyasha and Adrian Taylor.\n\nThe blocking issues no longer exist.\n\n* Source/WebKit/Configurations/WebKit.xcconfig:\n* Source/WebKit/Scripts/generate-plain-cpp-swift-interop-header.sh: Removed.\n* Source/WebKit/Shared/WebKit-Swift.h:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/315937@main",
      "email": "richard_robinson2@apple.com",
      "hash": "548fc132353e2e37c4aa7a421e2fced42e33ec80",
      "subject": "[Swift in WebKit] Remove \"Generate plain C++ Swift interop header\" workaround"
    },
    "315938@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "315938@main",
      "clUrl": "https://commits.webkit.org/315938@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317531\nrdar://180210650\n\nReviewed by Yijia Huang.\n\nThis patch implements Semi-NCA algorithm to compute Dominators\nefficiently. Previously, we were using iterative dominance computation\nalgorithm for smaller graph (and for larger graph, using Lengauer-Tarjan\nalgorithm), but Semi-NCA is faster than iterative dominance computation\nand in general it is near-linear complexity. This algorithm is used in\nLLVM as well.\n\nEmpirically, we observed Semi-NCA is 1.4x - 2.0x faster than iterative\ndominance and it is in general 1.4x faster than Lengauer-Tarjan. However\nsince it has still pathological case which causes O(N^2), we are falling\nback to Lengauer-Tarjan for large graph as a safety measure.\n\n* Source/JavaScriptCore/b3/B3Procedure.cpp:\n* Source/WTF/wtf/Dominators.h:\n(WTF::Dominators::Dominators):\n(WTF::Dominators::SemiNCA::SemiNCA):\n(WTF::Dominators::SemiNCA::compute):\n(WTF::Dominators::SemiNCA::immediateDominator):\n(WTF::Dominators::IterativeDominance::IterativeDominance): Deleted.\n(WTF::Dominators::IterativeDominance::computeReversePostorder): Deleted.\n(WTF::Dominators::IterativeDominance::intersect): Deleted.\n(WTF::Dominators::IterativeDominance::compute): Deleted.\n(WTF::Dominators::IterativeDominance::immediateDominator): Deleted.\n\nCanonical link: https://commits.webkit.org/315938@main",
      "email": "ysuzuki@apple.com",
      "hash": "5e66de200545adb37f2a61b13893b22505143f8c",
      "subject": "[JSC] Implement Semi-NCA for WTF::Dominators"
    },
    "315939@main": {
      "author": "Ling Ho",
      "avatar": "https://www.gravatar.com/avatar/a317955e944b0846697e4a9c8cd28b65?d=identicon\u0026s=64",
      "cl": "315939@main",
      "clUrl": "https://commits.webkit.org/315939@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317897\n\nReviewed by Aakash Jain.\n\n* Tools/WebKitBot/package-lock.json:\n* Tools/WebKitBot/package.json:\n\nCanonical link: https://commits.webkit.org/315939@main",
      "email": "lingho@apple.com",
      "hash": "815736a3b9d0f029618bb1f433a2e10c2ba741e4",
      "subject": "Update transitive dependencies to address security vulnerabilities"
    },
    "315940@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "315940@main",
      "clUrl": "https://commits.webkit.org/315940@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317948\n\nReviewed by Carlos Alberto Lopez Perez.\n\nAs pytest 8 now exposes directories as nodes in the collection report,\nwe need to filter the report for actual files when generating the list\nof items that will actually be run, to avoid entire dirs being run,\nwhich would lead to duplicated test runs. This also fixes duplicate runs\nfor class-based nodes, like in bidi_storage_tests.py.\n\n* Tools/Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:\n(WebDriverTestRunnerSelenium.collect_tests):\n\nCanonical link: https://commits.webkit.org/315940@main",
      "email": "lmoura@igalia.com",
      "hash": "daeed615dbac90118a4eff1136fd4e98428d2e0a",
      "subject": "REGRESSION(315890@main) [WebDriver] Fix test collection for new pytest 8 behavior"
    },
    "315941@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "315941@main",
      "clUrl": "https://commits.webkit.org/315941@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317933\nrdar://180731272\n\nReviewed by Simon Fraser.\n\nThis patch implements all the functions that contained stubs as well as two helpers,\nbuildCornerInputs and buildScaledCornerInputs, that translate a FloatRoundedRect\nand per-corner curvature values into CornerInput structs for borderContourPath.\nbuildScaledCornerInputs additionally applies the oppositeCornerScaleFactor(still a stub)\nshrink when adjacent corners overlap, repositioning each corner rect to keep it\nanchored to the correct edge. The patch also fixes a pre-existing bug in\ncornerCurvaturesFromStyle and hasNonRoundCornerShape where bottomLeft and\nbottomRight were ordered incorrectly in the RectCorners initializer.\n\nPasses existing tests\n\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:\n(WebCore::borderContourPath):\n(WebCore::oppositeCornerScaleFactor):\n* Source/WebCore/platform/graphics/CornerShapeUtilities.h:\n* Source/WebCore/rendering/BorderShape.cpp:\n(WebCore::cornerCurvaturesFromStyle):\n(WebCore::buildCornerInputs):\n(WebCore::buildScaledCornerInputs):\n(WebCore::BorderShape::hasNonRoundCornerShape const):\n(WebCore::addOuterCornerShapeToPath):\n(WebCore::BorderShape::pathForOuterCornerShape const):\n(WebCore::addInnerCornerShapeToPath):\n(WebCore::BorderShape::pathForInnerCornerShape const):\n(WebCore::BorderShape::addOuterShapeToPath const):\n(WebCore::BorderShape::addInnerShapeToPath const):\n(WebCore::BorderShape::pathForBorderArea const):\n(WebCore::BorderShape::fillOuterShape const):\n(WebCore::BorderShape::fillInnerShape const):\n(WebCore::BorderShape::fillRectWithInnerHoleShape const):\n\nCanonical link: https://commits.webkit.org/315941@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "842fe4de0fa5058b06babff939f609eb1ec7dbbb",
      "subject": "BorderShape: Implement corner-shape path generation and painting"
    },
    "315942@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "315942@main",
      "clUrl": "https://commits.webkit.org/315942@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317978\nrdar://180760547\n\nReviewed by Yusuke Suzuki.\n\nAnnotate every Temporal.PlainTime operation against the Stage 4\nspec; fix two dead spec anchors and a misleading ECMA-402 link.\n\nRename the fused IsValidTime + CreateTimeRecord helper from\ntoPlainTime to validateAndCreateTimeRecord, with a header\nexplaining that the fusion mirrors the spec's repeating\n\"if IsValidTime is false throw; else CreateTimeRecord\" pattern.\n\nDrop the dead parse\u003c\u003e template and fromObject() static (declared\nbut never defined or called) and the duplicate\nvalidateTemporalUnitValue call in round().\n\nLock in the operand-swap optimization in DifferenceTemporalPlainTime\nwith a new stress test covering since() across all nine rounding\nmodes — the swap depends on the rounding mode not being flipped\nby extractDifferenceOptions for since.\n\nTest: JSTests/stress/temporal-plain-time-since-operand-swap.js\nCanonical link: https://commits.webkit.org/315942@main",
      "email": "yijia_huang@apple.com",
      "hash": "ef770f685580534704c41621b16f0b4ae41204e1",
      "subject": "[JSC][Temporal] Polish Temporal.PlainTime: spec alignment and helper rename"
    },
    "315943@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "315943@main",
      "clUrl": "https://commits.webkit.org/315943@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=317945\u003e\n\u003crdar://180236977\u003e\n\nReviewed by Qianlang Chen.\n\n`MainThreadBridge::m_networkLoadMetrics` has had no reader since\n246102@main removed the last one.\n\nNo new tests since this removes dead code.\n\n* Source/WebCore/loader/WorkerThreadableLoader.cpp:\n(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishTiming):\n* Source/WebCore/loader/WorkerThreadableLoader.h:\n(WebCore::WorkerThreadableLoader::MainThreadBridge):\n\nCanonical link: https://commits.webkit.org/315943@main",
      "email": "ddkilzer@apple.com",
      "hash": "ed67c11c00c40696360c73b4576a12dc66134a8b",
      "subject": "Remove unused NetworkLoadMetrics member from WorkerThreadableLoader::MainThreadBridge"
    },
    "315944@main": {
      "author": "Kiara Rose",
      "avatar": "https://www.gravatar.com/avatar/cbfa3709de8e533bdc6505c6c4e83e24?d=identicon\u0026s=64",
      "cl": "315944@main",
      "clUrl": "https://commits.webkit.org/315944@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317677\nrdar://174024618\n\nReviewed by Qianlang Chen and Timothy Hatcher.\n\nThe request to create the debuggable for extension service workers is being dropped in\nWorkerMainRunLoop::postTaskForMode because the global scope doesn't exist. Extension service workers\nrun on the main thread so we need to make sure the IPC call to create the debuggable goes out\nsynchronously on the main thread instead of deferring it in handleThreadDebuggerTasksStarted.\n\nWith this change, the debuggables for extension service workers appear, but the title doesn't match\nwhat's set on the extension's context. Instead, it's \"ServiceWorker -- \u003cUUID\u003e\". To fix this, when we\ncreate the debuggable, refer to the extension's context for the correct title.\n\n* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:\n(WebKit::WebProcessProxy::createServiceWorkerDebuggable):\n* Source/WebKit/WebProcess/Inspector/ServiceWorkerDebuggableProxy.h:\n* Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:\n(WebKit::WebSWContextManagerConnection::installServiceWorker):\n\nCanonical link: https://commits.webkit.org/315944@main",
      "email": "kiara_rose@apple.com",
      "hash": "9f843d0964cfb9db4e94257d748dc3c42806f936",
      "subject": "Web Extension Service Workers can't be inspected"
    },
    "315945@main": {
      "author": "Jonathan Bedard",
      "avatar": "https://www.gravatar.com/avatar/24548a6c84377efe7594acc92601e839?d=identicon\u0026s=64",
      "cl": "315945@main",
      "clUrl": "https://commits.webkit.org/315945@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317990\nrdar://180768871\n\nUnreviewed build fix.\n\n* Source/WebCore/platform/graphics/CornerShapeUtilities.h:\n\nCanonical link: https://commits.webkit.org/315945@main",
      "email": "jbedard@apple.com",
      "hash": "3a7b70cbcc342f6192ecd6b96feb65fe20bf6036",
      "subject": "REGRESSION(315941@main): Double-quoted include \"RectCorners.h\" in framework header, expected angle-bracketed instead"
    },
    "315946@main": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "315946@main",
      "clUrl": "https://commits.webkit.org/315946@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=313380\nrdar://175672111\n\nReviewed by Nikolas Zimmermann.\n\nWebKit treated the SVG2 geometry attributes (cx, cy, r, rx, ry,\nx, y, width, height, d) as CSS presentation attributes on every\nSVG element. Per SVG2 each is a presentation attribute only on\nits owning elements; elsewhere getComputedStyle must return the\ninitial value.\n\nFold the element-restriction check inline into\nSVGElement::cssPropertyIdForSVGAttributeName: each geometry case\nreturns its CSS property only when *this is an owning element\ntype, otherwise CSSPropertyInvalid. The mapping stays non-virtual.\n\n* cx, cy: circle, ellipse\n* r: circle\n* rx, ry: ellipse, rect\n* x, y: foreignObject, image, rect, svg, symbol, use\n* width, height: foreignObject, image, rect, outermost svg only\n* d: path (gated by Settings::cssDPropertyEnabled)\n\nDrop now-unnecessary setPresentationalHintStyleIsDirty() from\nSVGFilterElement, SVGMaskElement, SVGPatternElement. Refactor\nparse-length.html / parse-calc-length.html to use spec-correct\nelements (circle for cx/cy/r).\n\nSpec: https://w3c.github.io/svgwg/svg2-draft/geometry.html\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/geometry/parsing/height-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/geometry/parsing/width-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-special-cases.html:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/imported/w3c/web-platform-tests/svg/geometry/parsing/height-computed-expected.txt:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/imported/w3c/web-platform-tests/svg/geometry/parsing/width-computed-expected.txt:\n* LayoutTests/svg/css/parse-calc-length-expected.txt:\n* LayoutTests/svg/css/parse-calc-length.html:\n* LayoutTests/svg/css/parse-length-expected.txt:\n* LayoutTests/svg/css/parse-length.html:\n* Source/WebCore/svg/SVGElement.cpp:\n(WebCore::SVGElement::cssPropertyIdForSVGAttributeName const):\n(WebCore::SVGElement::hasPresentationalHintsForAttribute const):\n(WebCore::SVGElement::collectPresentationalHintsForAttribute):\n(WebCore::SVGElement::svgAttributeChanged):\n(WebCore::SVGElement::cssPropertyIdForSVGAttributeName): Deleted.\n* Source/WebCore/svg/SVGElement.h:\n* Source/WebCore/svg/SVGFilterElement.cpp:\n(WebCore::SVGFilterElement::svgAttributeChanged):\n* Source/WebCore/svg/SVGFontFaceElement.cpp:\n(WebCore::SVGFontFaceElement::attributeChanged):\n* Source/WebCore/svg/SVGMaskElement.cpp:\n(WebCore::SVGMaskElement::svgAttributeChanged):\n* Source/WebCore/svg/SVGPathElement.cpp:\n(WebCore::SVGPathElement::collectDPresentationalHint):\n* Source/WebCore/svg/SVGPatternElement.cpp:\n(WebCore::SVGPatternElement::svgAttributeChanged):\n\nCanonical link: https://commits.webkit.org/315946@main",
      "email": "karlcow@apple.com",
      "hash": "9db42a8aaf4a56d40c3642fbad90599174952696",
      "subject": "SVG2 geometry presentation attributes accepted on wrong elements such as g"
    },
    "315947@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "315947@main",
      "clUrl": "https://commits.webkit.org/315947@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315535\nrdar://176814631\n\nReviewed by Ben Nham.\n\nTwelve DispatchedFrom=WebContent IPC handlers in UIProcess and\nNetworkProcess resolve a WebContent-supplied ObjectIdentifier against a\nprocess-global map (WebFrameProxy::allFrames(), webPageProxyMap(),\nWebBackForwardListItem::allItems(), SWServer::m_registrations,\nNetworkProcess::m_webProcessConnections) and operate on the result\nwithout checking that the resolved object belongs to the sending\nconnection / page / process. The identifiers are small monotonic\nintegers minted in the receiving process, so a compromised WebContent\nprocess can guess a sibling tab's IDs and read or write its\nsecurity-relevant state across the WCP-\u003eUIP / WCP-\u003eNP boundary.\n\nAdd MESSAGE_CHECK(frame-\u003epage() == this) (or the process-ownership\nequivalent) at each affected site so the resolved object is rejected\nwhen it does not belong to the sender, following the existing precedent\nin didNavigateWithNavigationDataShared / didPerformClientRedirectShared\n/ requestDOMPasteAccess / WebLockRegistryProxy.\n\nTest: ipc/decide-policy-for-navigation-action-cross-page-frame.html\n\n* LayoutTests/ipc/decide-policy-for-navigation-action-cross-page-frame-expected.txt: Added.\n* LayoutTests/ipc/decide-policy-for-navigation-action-cross-page-frame.html: Added.\n* LayoutTests/ipc/resources/cross-page-target.html: Added.\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::connectToRTCDataChannelRemoteSource):\n* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:\n(WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame):\n* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:\n(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame):\n(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrameShared):\n* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:\n(WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame):\n* Source/WebKit/UIProcess/ProvisionalPageProxy.h:\n* Source/WebKit/UIProcess/WebBackForwardList.cpp:\n(WebKit::WebBackForwardList::backForwardAddItemShared):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::navigationOriginatingPage):\n(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):\n(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):\n(WebKit::WebPageProxy::decidePolicyForNewWindowAction):\n(WebKit::WebPageProxy::willSubmitForm):\n(WebKit::WebPageProxy::createNewPage):\n(WebKit::WebPageProxy::runJavaScriptAlert):\n(WebKit::WebPageProxy::runJavaScriptConfirm):\n(WebKit::WebPageProxy::runJavaScriptPrompt):\n(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):\n(WebKit::WebPageProxy::runOpenPanel):\n(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):\n(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n\nCanonical link: https://commits.webkit.org/315947@main",
      "email": "cdumez@apple.com",
      "hash": "e9f94fd4c6430f0b308c17c22bac8141a1cfdb41",
      "subject": "[WebKit Process Model] missing sender-ownership validation in 12 process-global identifier-map lookups"
    },
    "315948@main": {
      "author": "Simon Fraser",
      "avatar": "https://www.gravatar.com/avatar/3763324aa0cdfa93be751c6081b8006a?d=identicon\u0026s=64",
      "cl": "315948@main",
      "clUrl": "https://commits.webkit.org/315948@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=309717\nrdar://172863699\n\nReviewed by Abrar Rahman Protyasha.\n\nIn order for snapping to elements with zero size on the scroll axis to work, we need a `\u003c=` comparison\non the max edge.\n\nTest: imported/w3c/web-platform-tests/css/css-scroll-snap/snap-to-zero-height-interior-area.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-to-zero-height-interior-area-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-to-zero-height-interior-area.html: Added.\n* Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:\n(WebCore::offsetHasVisibleSnapArea):\n(WebCore::findCompatibleSnapArea):\n\nCanonical link: https://commits.webkit.org/315948@main",
      "email": "simon.fraser@apple.com",
      "hash": "04dc57e941dba51001a3cc34bc11e40bfd66f642",
      "subject": "snap points inside zero-sized elements don't work correctly"
    },
    "315949@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315949@main",
      "clUrl": "https://commits.webkit.org/315949@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=264537\nrdar://118537155\n\nReviewed by Said Abou-Hallawa.\n\nPer the SMIL Animation specification [1]:\n\n    \"If any values (i.e., the argument-values for from, to, by or\n    values attributes) are not legal, the animation will have no\n    effect.\"\n\nWebKit was proceeding with invalid values (transparent black for\ncolors, zero for lengths), producing incorrect results.\n\nThe bool-returning plumbing through SVGAnimationFunction,\nSVGAttributeAnimator and the animator wrappers, which lets a parse\nfailure propagate up to SVGAnimationElement::m_animationValid and drop\nthe animation, landed in 315549@main (bug 311817). That change updated\nSVGAnimateElementBase::setFromAndByValues() and setToAtEndOfDurationValue()\nbut left setFromAndToValues() unconditionally returning true, since list\nanimators clear their list on a parse failure and thus animate to a\nno-op. Scalar color/length values have no such fallback (an invalid\nlength is coerced to zero and animated), so this commit:\n\n  - Propagates the animator result through\n    SVGAnimateElementBase::setFromAndToValues().\n  - Implements value validity for SVGAnimationColorFunction (rejects an\n    invalid 'to', or a non-empty invalid 'from').\n  - Implements value validity for SVGAnimationLengthFunction by parsing\n    via SVGLengthValue::setValueAsString() and rejecting lengths that\n    fail to parse (e.g. a leading space or other malformed syntax),\n    instead of silently coercing them to zero.\n\nEmpty 'from' strings are still accepted for to-animation mode, since\nthose derive the start value at runtime.\n\n[1] https://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues\n\n* Source/WebCore/svg/SVGAnimateElementBase.cpp:\n(WebCore::SVGAnimateElementBase::setFromAndToValues):\n* Source/WebCore/svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:\n(WebCore::SVGAnimationColorFunction::setFromAndToValues):\n(WebCore::SVGAnimationLengthFunction::setFromAndToValues):\n(WebCore::SVGAnimationLengthFunction::setToAtEndOfDurationValue):\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svgcolor-animation-invalid-value-1-expected.txt: Progression\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-1-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-2-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-3-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-4-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-5-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-6-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/svglength-animation-invalid-value-9-expected.txt: Ditto\n\nCanonical link: https://commits.webkit.org/315949@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "c6c7a784d24f4c65ba587b2aeecb5353521ec063",
      "subject": "SVG SMIL animations should not apply when from/to/by values fail to parse"
    },
    "315950@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "315950@main",
      "clUrl": "https://commits.webkit.org/315950@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317950\nrdar://180704127\n\nReviewed by Dominic Mazzoni.\n\nAXObjectCache defers accessibility notifications in m_notificationsToPost and\nflushes them from a zero-delay timer (m_notificationPostTimer) once control\nreturns to the run loop. When JavaScript forces synchronous layout in a loop\nwithout yielding to the run loop -- for example by repeatedly reading a\nlayout-dependent property like clientWidth inside a MutationObserver callback --\nthe flush timer never fires, yet each completed layout still posts a\nLayoutComplete notification via LocalFrameView::didLayout -\u003e\nAXObjectCache::onLayoutComplete. These redundant, duplicate LayoutComplete\nnotifications accumulate in m_notificationsToPost without bound until the Vector\noverflows and CrashOnOverflow deliberately terminates the WebContent process\n(observed at ~23 million entries, ~1.66 GB).\n\nFix this two ways:\n\n1. Coalesce LayoutComplete notifications. Every pending LayoutComplete for a\ngiven object collapses to a single meaningful notification once flushed, so track\nthe objects that already have a pending LayoutComplete in a companion\nHashSet\u003cAXID\u003e (m_pendingLayoutCompleteObjectIDs) and skip the append when one is\nalready queued. The set is cleared in lockstep with draining m_notificationsToPost\nin notificationPostTimerFired. This eliminates the unbounded duplicate growth\nwhile preserving existing notification semantics and ordering.\n\n2. Add a hard-cap backstop. Route all appends to m_notificationsToPost through a\nnew enqueueNotificationToPost() helper that refuses to grow the queue past a fixed\nmaximum, asserting via AX_ASSERT_NOT_REACHED() and dropping the notification. With\nthe coalescing above, the cap is never reached for LayoutComplete; if it is ever\nhit by another notification type, that is a signal the type is being posted in an\nunbounded loop and needs its own coalescing strategy. The assert is debug-only, so\nrelease builds degrade gracefully (dropping notifications) rather than overflowing\nand crashing.\n\n* LayoutTests/accessibility/mac/layout-complete-notifications-coalesce-expected.txt: Added.\n* LayoutTests/accessibility/mac/layout-complete-notifications-coalesce.html: Added.\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::notificationPostTimerFired):\n(WebCore::AXObjectCache::enqueueNotificationToPost):\n(WebCore::AXObjectCache::postNotification):\n(WebCore::AXObjectCache::postARIANotifyNotification):\n(WebCore::AXObjectCache::postLiveRegionNotification):\n* Source/WebCore/accessibility/AXObjectCache.h:\n\nCanonical link: https://commits.webkit.org/315950@main",
      "email": "tyler_w@apple.com",
      "hash": "88d4f079e156bef26125130bb5d852cd76ee887c",
      "subject": "AX: Coalesce repeated LayoutComplete notifications for the same object within the same runloop cycle"
    },
    "315951@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315951@main",
      "clUrl": "https://commits.webkit.org/315951@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317818\nrdar://180586380\n\nReviewed by Simon Fraser.\n\nLegacyRenderSVGForeignObject::paint() initialized a LayoutPoint from a\ndefault-constructed IntPoint(). LayoutPoint's default constructor already\nzero-initializes, so the IntPoint() temporary and its conversion are\nunnecessary. Default-construct childPoint directly. No behavior change.\n\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGForeignObject.cpp:\n(WebCore::LegacyRenderSVGForeignObject::paint):\n\nCanonical link: https://commits.webkit.org/315951@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "fb38b00d65a7dc6711e44e1698257f5847902cc5",
      "subject": "[LegacySVG] Drop needless IntPoint() conversion in LegacyRenderSVGForeignObject::paint()"
    },
    "315952@main": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "315952@main",
      "clUrl": "https://commits.webkit.org/315952@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=262140\nrdar://116424326\n\nReviewed by Nikolas Zimmermann and Anne van Kesteren.\n\nSVGTests::isValid() did not correctly implement the systemLanguage\nmatching algorithm defined in SVG2 5.6.5 and RFC 4647 3.3.1 (Basic\nFiltering). It had four bugs:\n\n1. Required ALL listed tags to match (should be: true if ANY\nuser preference matches ANY listed tag).\n2. Truncated the user language to 2 characters, losing script\nand region subtags (e.g. \"zh-Hans\" became \"zh\").\n3. Used case-sensitive comparison.\n4. Did not implement BCP 47 prefix matching (user \"en\" should\nmatch listed \"en-US\").\n\nThe fix replaces the broken loop with two static helpers\nmatchesLanguageTag() implementing RFC 4647 Basic Filtering,\nand userLanguageMatchesAnyListedTag() synthesizing parent language tags\nby iterative subtag stripping and iterates over userPreferredLanguages()\ninstead of truncating defaultLanguage().\n\nBUT in a way that preserve the privacy of the end users. This is the way\nWebKit is architectured. The code deviates from the specification on\npurpose.\n\nTests: imported/w3c/web-platform-tests/svg/struct/systemLanguage-matching.html\n       svg/dom/systemLanguage-matching.html\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/struct/systemLanguage-matching-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/struct/systemLanguage-matching.html: Added.\n* LayoutTests/svg/dom/systemLanguage-matching-expected.txt: Added.\n* LayoutTests/svg/dom/systemLanguage-matching.html: Added.\n* Source/WebCore/svg/SVGTests.cpp:\n  (WebCore::matchesLanguageTag):\n  (WebCore::userLanguageMatchesAnyListedTag):\n  (WebCore::SVGTests::isValid const):\n\nCanonical link: https://commits.webkit.org/315952@main",
      "email": "karlcow@apple.com",
      "hash": "bcfac781bec780c78e7ef90f71293d8792a1d517",
      "subject": "SVGTests::isValid() does not correctly implement systemLanguage matching per SVG2"
    },
    "315953@main": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "315953@main",
      "clUrl": "https://commits.webkit.org/315953@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=308949\nrdar://172056830\n\nReviewed by Nikolas Zimmermann.\n\nPer the SVG2 spec algorithm for convertToSpecifiedUnits,\nSee https://w3c.github.io/svgwg/svg2-draft/single-page.html#types-__svg__SVGLength__convertToSpecifiedUnits\n\nwhen an SVGLength has no associated element:\n1. the viewport size basis is 100 for percentages\n2. the font-size basis is the initial value of the font-size property for\n   em/ex units.\n\nCSS defines this initial value as 'medium' but does not specify its\nabsolute size. 16px is a universal UA convention, matching DefaultFontSize\nin UnifiedWebPreferences.yaml.\n\nSince detached SVGLengths have no document to query Settings from, the\nvalue is hardcoded as a file-scope constant (initialFontSizePx).\nPreviously WebKit threw NotSupportedError for these conversions on detached\nelements. This patch implements the spec-defined fallbacks in SVGLengthContext.\n\nAdditionally, SVGLength::convertToSpecifiedUnits was missing a call to\nupdateStyleIfNeeded() before performing the conversion, unlike valueForBindings().\nThis caused em/ex conversions on attached elements with custom font-sizes to\nuse stale style data (initial 16px instead of the element's computed font-size).\n\nAlso fixes the upstream WPT test SVGLength-px.html which called getComputedStyle()\non a detached element (returns empty string per CSSOM spec), producing NaN as\nthe reference font-size. The fix uses a temporary attached probe element instead.\n\nThis was also an opportunity to add more test cases in WPT for handling\ndifferent variations of the convertToSpecifiedUnits method.\n\nTests: imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-font-change.html\n       imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-non-px-source.html\n       imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-percentage-directionality.html\n       imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-readonly.html\n       imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-reserialization.html\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-font-change-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-font-change.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-non-px-source-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-non-px-source.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-percentage-directionality-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-percentage-directionality.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-readonly-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-readonly.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-reserialization-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-convertToSpecifiedUnits-reserialization.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-px-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/scripted/SVGLength-px.html:\n  Fix getComputedStyle on detached element producing NaN; use attached probe element.\n  Fix exact valueAsString comparison for em (trailing zero serialization varies).\n* LayoutTests/svg/dom/SVGLength-px-expected.txt: Removed.\n* LayoutTests/svg/dom/SVGLength-px.html: Removed.\n\n* Source/WebCore/svg/SVGLength.cpp:\n  (WebCore::SVGLength::convertToSpecifiedUnits):\n  Add updateStyleIfNeeded() before conversion, matching valueForBindings().\n\n(WebCore::SVGLength::convertToSpecifiedUnits):\n* Source/WebCore/svg/SVGLengthContext.cpp:\n  (WebCore::SVGLengthContext::computeNonCalcLength):\n  Fall back to initial font-size (16px) for font-relative units when no associated element.\n  (WebCore::SVGLengthContext::convertValueFromUserUnitsToPercentage):\n  Fall back to viewport basis of 100 when no associated element.\n  (WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits):\n  Same fallback for the reverse direction.\n  (WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS):\n  Fall back to 0.5em (8px) x-height when no associated element.\n  (WebCore::SVGLengthContext::convertValueFromEXSToUserUnits):\n  Same fallback for the reverse direction.\n(WebCore::SVGLengthContext::computeNonCalcLength const):\n(WebCore::SVGLengthContext::convertValueFromUserUnitsToPercentage const):\n(WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits const):\n(WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS const):\n(WebCore::SVGLengthContext::convertValueFromEXSToUserUnits const):\n\nCanonical link: https://commits.webkit.org/315953@main",
      "email": "karlcow@apple.com",
      "hash": "b86834d40591aed86d62b57dd4b7dd27aa6d6b7c",
      "subject": "convertToSpecifiedUnits - conversion from px to percentage, em and ex is failing"
    },
    "315954@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "315954@main",
      "clUrl": "https://commits.webkit.org/315954@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317991\nrdar://180771298\n\nReviewed by Dan Hecht.\n\nInst::hasNonArgEffects() is relatively costly operation but this is pure\noperation. When we collected possiblyDead list, they are guaranteed to\nreturn false from Inst::hasNonArgEffects(). So skip calling this.\nAlso after the fix-point iteration, possiblyDead is the set of dead Insts.\nSo if it is empty, we do not need to iterate a graph. And we can nullify\nInst so that elimination becomes quicker.\n\n* Source/JavaScriptCore/b3/air/AirEliminateDeadCode.cpp:\n(JSC::B3::Air::eliminateDeadCode):\n\nCanonical link: https://commits.webkit.org/315954@main",
      "email": "ysuzuki@apple.com",
      "hash": "05e7708cbdfa61ccab541ec3308a2e38d6ef2bfc",
      "subject": "[JSC] Optimize AirEliminateDeadCode"
    },
    "315955@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "315955@main",
      "clUrl": "https://commits.webkit.org/315955@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317997\n\nUnreviewed build fix. GCC 15 (default on the Ubuntu 26.04 SDK) reports\nhundreds of warnings for the Skia raster pipeline:\n\n\u003e skia/src/opts/SkRasterPipeline_opts.h:1628:31: warning: address of\n\u003e     parameter 'base' can escape to 'musttail' call [-Wmaybe-musttail-local-addr]\n\n* Source/ThirdParty/skia/CMakeLists.txt: Added -Wno-maybe-musttail-local-addr switch.\n\nCanonical link: https://commits.webkit.org/315955@main",
      "email": "csaavedra@igalia.com",
      "hash": "53c6c56b9193c08a5ecc2d53ab2b31d23aa3f9bd",
      "subject": "[Skia] Added -Wno-maybe-musttail-local-addr switch"
    },
    "315956@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315956@main",
      "clUrl": "https://commits.webkit.org/315956@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317993\nrdar://180780348\n\nReviewed by Vitor Roriz.\n\nEach of these files included the same header twice. Removed the\nredundant copy that was out of alphabetical/group order, keeping\nthe one in its correct sorted position.\n\n* Source/WebCore/html/parser/HTMLParserOptions.cpp:\n* Source/WebCore/layout/formattingContexts/inline/InlineQuirks.cpp:\n* Source/WebCore/loader/LinkLoader.cpp:\n* Source/WebCore/loader/PrivateClickMeasurement.cpp:\n* Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:\n\nCanonical link: https://commits.webkit.org/315956@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "dda719db21012ddb90b9508784a5273522443f9a",
      "subject": "Remove duplicate #includes in WebCore"
    },
    "315957@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "315957@main",
      "clUrl": "https://commits.webkit.org/315957@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=311790\nrdar://174895437\n\nReviewed by Anne van Kesteren.\n\nReject with NotAllowedError (not InvalidStateError) when a credential request is already in progress, per spec 'prepare credential requests' step 2.\n\n* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:\n(WebCore::CredentialRequestCoordinator::prepareCredentialRequests):\n\nCanonical link: https://commits.webkit.org/315957@main",
      "email": "marcosc@apple.com",
      "hash": "6d96204ed552eafdd74565a8813450ab74ecc0c4",
      "subject": "Digital Credentials: prepare credential requests rejects with wrong error code"
    },
    "315958@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315958@main",
      "clUrl": "https://commits.webkit.org/315958@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317994\nrdar://180052761\n\nReviewed by Abrar Rahman Protyasha.\n\nIn 313624@main, image position information began being computed on macOS, so\nInteractionInformationAtPosition::isImage (and therefore\nrepresentsDraggableElement()) is now true over \u003cimg\u003e elements. As a result,\nwhen a scroll begins over an image in non-scrollable web content, the drag-deferring\ngesture recognizer resolves to the recognized (.ended) state rather than failing.\n\n-[WKAppKitGestureController _gestureRecognizer:canPreventGestureRecognizer:]\nonly exempted our click gesture recognizers from preventing scroll and zoom\ngesture recognizers (313208@main); the deferring gesture recognizers fell\nthrough to the default and were allowed to prevent anything. So once the\ndrag-deferring gesture recognized over an image, it prevented the enclosing\nscroll view's pan gesture recognizer, and a non-scrollable web view's scroll\nwas never handed off to it. Non-draggable content was unaffected because the\ndeferring gesture fails there.\n\nHoist the scroll-or-zoom check above the click-gesture early return so that\nnone of our gesture recognizers — click or deferring — can prevent an\nenclosing scroll view's pan (or any other scroll/zoom) gesture. The deferring\ngesture recognizers still prevent text selection gestures, so\ndrag-and-drop over draggable content is unchanged.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKitGesturesTests.swift\n\n* Source/WebKit/UIProcess/mac/WKAppKitGestureController.mm:\n(-[WKAppKitGestureController _gestureRecognizer:canPreventGestureRecognizer:]):\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/AppKitGesturesTestsSupport.swift: Added.\n(TestWebKitAPILibrary.play(_:)):\n(AppKitGestureTestSuite.text):\n(AppKitGestureTestSuite.recap):\n(AppKitGestureTestSuite.page):\n(AppKitGestureTestSuite.window):\n(convertToCoreGraphicsScreenCoordinates(_:window:)):\n(AppKitGestureTestSuite.screenBoundsOfText(_:)):\n(AppKitGestureTestSuite.screenBounds(ofElementWithID:)):\n(AppKitGestureTestSuite.screenBounds(ofPointInWindowCoordinates:)):\n(AppKitGestureTestSuite.screenBounds(ofRectInViewportCoordinates:)):\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/BasicAppKitGesturesTests.swift: Renamed from Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKitGesturesTests.swift.\n(AppKitGesturesTests.draggingSelectionToWindowEdgeAutoscrolls(_:)):\n(AppKitGesturesTests.pressDragOverRangeInputChangesInputValue(_:)):\n(AppKitGesturesTests.pressDragOnLinkInitiatesDragAndDrop):\n(AppKitGesturesTests.pressDragOnImageInitiatesDragAndDrop):\n(AppKitGesturesTests.pressDragOnExistingSelectionDoesNotExtendSelection):\n(AppKitGesturesTests.loadScrollableText):\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/EmbeddedAppKitGesturesTests.swift: Added.\n(AppKitGesturesTests.scrollOverNonScrollableWebViewPropagatesToEnclosingScrollView):\n(AppKitGesturesTests.pressDragOverTextInWebViewInsideEnclosingScrollViewCreatesSelection):\n(AppKitGesturesTests.quickDragOverTextInWebViewInsideEnclosingScrollViewScrolls):\n\nCanonical link: https://commits.webkit.org/315958@main",
      "email": "richard_robinson2@apple.com",
      "hash": "68e05b741c15d45984b7df829663146d36eeb42e",
      "subject": "REGRESSION(313624@main): [AppKit Gestures] Cannot scroll the enclosing scroll view by scrolling over an image"
    },
    "315959@main": {
      "author": "Pouneh Bahrami",
      "avatar": "https://www.gravatar.com/avatar/c3e7b86f60b5dae1470ceeb5d929f12d?d=identicon\u0026s=64",
      "cl": "315959@main",
      "clUrl": "https://commits.webkit.org/315959@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317959\nrdar://179490783\n\nReviewed by Matthew Finkel.\n\nGlobal Privacy Control API returns the feature’s current state (enabled/disabled).\nThis fix define another feature for the user's opt-in choice and it differents it\nfrom the overall feature’s status.\n\nTests: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebsitePolicies.mm\n       Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageTests.swift\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/page/NavigatorGlobalPrivacyControl.cpp:\n(WebCore::NavigatorGlobalPrivacyControl::globalPrivacyControlStatus):\n(WebCore::NavigatorGlobalPrivacyControl::globalPrivacyControlEnabled): Deleted.\n* Source/WebCore/page/NavigatorGlobalPrivacyControl.h:\n* Source/WebCore/page/NavigatorGlobalPrivacyControl.idl:\n* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h:\n* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in:\n* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:\n(WebKit::NetworkResourceLoader::startNetworkLoad):\n* Source/WebKit/Shared/WebsitePoliciesData.cpp:\n(WebKit::WebsitePoliciesData::applyToDocumentLoader):\n* Source/WebKit/Shared/WebsitePoliciesData.h:\n* Source/WebKit/Shared/WebsitePoliciesData.serialization.in:\n* Source/WebKit/UIProcess/API/APIWebsitePolicies.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences+Extras.swift:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:\n(-[WKWebpagePreferences setGlobalPrivacyControlStatus:]):\n(-[WKWebpagePreferences globalPrivacyControlStatus]):\n(-[WKWebpagePreferences setGlobalPrivacyControlEnabled:]): Deleted.\n(-[WKWebpagePreferences globalPrivacyControlEnabled]): Deleted.\n* Source/WebKit/UIProcess/API/Swift/WebPage+NavigationPreferences.swift:\n(globalPrivacyControlStatus):\n(isGlobalPrivacyControlEnabled): Deleted.\n* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:\n(WebKit::addParametersShared):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebsitePolicies.mm:\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageTests.swift:\n(WebPageTests.globalPrivacyControlStatusForNavigation(_:)):\n(WebPageTests.globalPrivacyControlEnabledForNavigation(_:)): Deleted.\n* Tools/WebKitTestRunner/TestController.cpp:\n(WTR::TestController::resetPreferencesToConsistentValues):\n* Tools/WebKitTestRunner/TestInvocation.cpp:\n(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):\n\nCanonical link: https://commits.webkit.org/315959@main",
      "email": "pbahrami@apple.com",
      "hash": "1e8b30a2cf343c004a68b6d0994ad261f318dc5c",
      "subject": "Separate GlobalPrivacyControlEnabled and user opt-in value"
    },
    "315960@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "315960@main",
      "clUrl": "https://commits.webkit.org/315960@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317921\n\nReviewed by Nikolas Zimmermann.\n\n* Source/WebCore/platform/graphics/PlatformDisplay.h:\n* Source/WebCore/platform/graphics/skia/PlatformDisplaySkia.cpp:\n(WebCore::SkiaGLContext::releaseUnusedResources):\n(WebCore::PlatformDisplay::skiaReleaseUnusedResources):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphicsGLib.cpp:\n(WebKit::DrawingAreaCoordinatedGraphics::releaseMemory):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphicsGLib.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/FrameRenderer.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:\n(WebKit::LayerTreeHost::releaseMemory):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/NonCompositedFrameRenderer.cpp:\n(WebKit::NonCompositedFrameRenderer::releaseMemory):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/NonCompositedFrameRenderer.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp:\n(WebKit::ThreadedCompositor::releaseMemory):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.h:\n* Source/WebKit/WebProcess/WebPage/DrawingArea.h:\n(WebKit::DrawingArea::backgroundColorDidChange):\n(WebKit::DrawingArea::releaseMemory):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::releaseMemory):\n\nCanonical link: https://commits.webkit.org/315960@main",
      "email": "cgarcia@igalia.com",
      "hash": "dab2d0719597c8ad3b131754d3bd9b4b9447d03b",
      "subject": "[GTK][WPE] Release skia resources on memory pressure"
    },
    "315961@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "315961@main",
      "clUrl": "https://commits.webkit.org/315961@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318001\n\nReviewed by Carlos Garcia Campos.\n\nThe layout test runner doubles the layout test timeout for Debug runs,\nso do the same for API tests. This will prevent some tests for timing out\nin Debug without having to mark them slow explicitly.\n\n* Tools/glib/api_test_runner.py:\n(TestRunner.__init__):\n(TestRunner._run_test_glib):\n(TestRunner._run_test_qt):\n(TestRunner._run_google_test):\n(create_option_parser):\n\nCanonical link: https://commits.webkit.org/315961@main",
      "email": "csaavedra@igalia.com",
      "hash": "6ebaa5579156f1e620d7ae7252ec5369cfcb7b0c",
      "subject": "[GLIB] Double the default timeout for API tests in Debug"
    },
    "315962@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "315962@main",
      "clUrl": "https://commits.webkit.org/315962@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317957\n\nReviewed by Carlos Garcia Campos.\n\nThis simplifies SoupNetworkProxySettings by allowing us to\nremove the hand-written copy constructor and assignment operator,\nas well as removing the now unused GUniquePtr serializers.\n\nCovered by existing tests.\n\n* Source/WebCore/platform/network/soup/SoupNetworkProxySettings.h:\n(WebCore::SoupNetworkProxySettings::SoupNetworkProxySettings):\n(WebCore::SoupNetworkProxySettings::isEmpty const):\n(WebCore::SoupNetworkProxySettings::operator=): Deleted.\n* Source/WebCore/platform/network/soup/SoupNetworkSession.cpp:\n(WebCore::SoupNetworkSession::setProxySettings):\n* Source/WebKit/Platform/IPC/ArgumentCoders.h:\n* Source/WebKit/Platform/IPC/glib/ArgumentCodersGUniquePtr.h: Removed.\n* Source/WebKit/Shared/soup/WebCoreArgumentCodersSoup.serialization.in:\n* Source/WebKit/UIProcess/API/glib/WebKitNetworkProxySettings.cpp:\n(webkit_network_proxy_settings_new):\n\nCanonical link: https://commits.webkit.org/315962@main",
      "email": "csaavedra@igalia.com",
      "hash": "b536a961f85c225d29f59528204043a67af2a33b",
      "subject": "[GLIB] Make SoupNetworkProxySettings::ignoreHosts a Vector\u003cCString\u003e"
    },
    "315963@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "315963@main",
      "clUrl": "https://commits.webkit.org/315963@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317837\nrdar://180610691\n\nReviewed by Jer Noble.\n\nWe can now remove all the MediaSource/SourceBuffer remote and their\nGPU process proxies.\n\nCovered by existing tests.\n\n* LayoutTests/media/media-source/media-source-has-audio-video-gpu-expected.txt: Removed.\n* LayoutTests/media/media-source/media-source-has-audio-video-gpu.html: Removed.\n* LayoutTests/media/media-source/media-source-seek-complete-gpu.html: Removed.\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/mac/media/media-source/media-source-seek-complete-gpu-expected.txt: Removed.\n* Source/WebCore/platform/MediaStrategy.cpp:\n(WebCore::MediaStrategy::enableRemoteRenderer):\n* Source/WebCore/platform/graphics/MediaPlayer.cpp:\n(WebCore::WTF_REQUIRES_LOCK):\n(WebCore::MediaPlayer::load):\n* Source/WebCore/platform/graphics/MediaSourcePrivate.h:\n* Source/WebCore/platform/graphics/SourceBufferPrivate.h:\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:\n(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createRenderer):\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:\n(WebCore::MediaSourcePrivateAVFObjC::queueSingleton):\n* Source/WebKit/CMakeLists.txt:\n* Source/WebKit/DerivedSources-input.xcfilelist:\n* Source/WebKit/DerivedSources-output.xcfilelist:\n* Source/WebKit/DerivedSources.make:\n* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:\n(WebKit::GPUConnectionToWebProcess::enableMockMediaSource): Deleted.\n* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:\n* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:\n(WebKit::RemoteMediaPlayerManagerProxy::clear):\n(WebKit::RemoteMediaPlayerManagerProxy::connectionToWebProcessClosed): Deleted.\n(WebKit::RemoteMediaPlayerManagerProxy::registerMediaSource): Deleted.\n(WebKit::RemoteMediaPlayerManagerProxy::invalidateMediaSource): Deleted.\n(WebKit::RemoteMediaPlayerManagerProxy::pendingMediaSource): Deleted.\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h:\n(WebKit::RemoteMediaPlayerManagerProxy::connectionToWebProcessClosed):\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:\n(WebKit::RemoteMediaPlayerProxy::updateCachedState):\n(WebKit::RemoteMediaPlayerProxy::connectionToWebProcessClosed): Deleted.\n(WebKit::RemoteMediaPlayerProxy::loadMediaSource): Deleted.\n(WebKit::RemoteMediaPlayerProxy::mediaPlayerActiveSourceBuffersChanged): Deleted.\n(WebKit::RemoteMediaPlayerProxy::notifyActiveSourceBuffersChanged): Deleted.\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in:\n* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp: Removed.\n* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h: Removed.\n* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.messages.in: Removed.\n* Source/WebKit/GPUProcess/media/RemoteSourceBufferIdentifier.h: Removed.\n* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp: Removed.\n* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h: Removed.\n* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.messages.in: Removed.\n* Source/WebKit/Scripts/webkit/messages.py:\n(serialized_identifiers):\n(types_that_cannot_be_forward_declared):\n(conditions_for_header):\n* Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in:\n* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:\n(IPC::serializedIdentifiers):\n* Source/WebKit/Shared/WTFArgumentCoders.serialization.in:\n* Source/WebKit/Sources.txt:\n* Source/WebKit/SourcesCocoa.txt:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n* Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:\n(WebKit::GPUProcessConnection::dispatchMessage):\n* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:\n(WebKit::MediaPlayerPrivateRemote::duration const):\n(WebKit::MediaPlayerPrivateRemote::currentTime const):\n(WebKit::MediaPlayerPrivateRemote::currentOrPendingSeekTime const):\n(WebKit::MediaPlayerPrivateRemote::setReadyState):\n(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):\n(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):\n(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):\n(WebKit::MediaPlayerPrivateRemote::load):\n(WebKit::MediaPlayerPrivateRemote::currentTimeWithLockHeld const): Deleted.\n(WebKit::MediaPlayerPrivateRemote::notifyActiveSourceBuffersChanged): Deleted.\n(WebKit::MediaPlayerPrivateRemote::activeSourceBuffersChanged): Deleted.\n* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:\n* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:\n* Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp: Removed.\n* Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h: Removed.\n* Source/WebKit/WebProcess/GPU/media/RemoteMediaSourceIdentifier.h: Removed.\n* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp: Removed.\n* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h: Removed.\n* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemoteMessageReceiver.h: Removed.\n* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemoteMessageReceiver.messages.in: Removed.\n* Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp:\n(WebKit::WebMediaStrategy::hasThreadSafeMediaSourceSupport const):\n(WebKit::WebMediaStrategy::enableMockMediaSource):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::updatePreferences):\n\nCanonical link: https://commits.webkit.org/315963@main",
      "email": "jya@apple.com",
      "hash": "600dda9b9ed2b6a52319f706db11f3ba07e1c3ab",
      "subject": "Remove the ability to run the MediaPlayerPrivateMediaSourceAVFObjC in the GPU process"
    },
    "315964@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "315964@main",
      "clUrl": "https://commits.webkit.org/315964@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=310623\nrdar://173228707\n\nReviewed by Chris Fleizach.\n\nWhen content-visibility:hidden changes, it's not sufficient to call childrenChanged,\nwe also need to re-compute is-ignored for the subtree. Failing to do so results in stale\ncontent being served to ATs.\n\n* LayoutTests/accessibility/hidden-until-found-programmatically-revealed-expected.txt: Added.\n* LayoutTests/accessibility/hidden-until-found-programmatically-revealed.html: Added.\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::onStyleChange):\n\nCanonical link: https://commits.webkit.org/315964@main",
      "email": "tyler_w@apple.com",
      "hash": "d3c12c1196b812f7ee73f647453149e9c0874ad4",
      "subject": "AX: `hidden=\"until-found\" causing content to not be able to be found on Safari with VoiceOver"
    },
    "315965@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "315965@main",
      "clUrl": "https://commits.webkit.org/315965@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317903\n\nReviewed by Yusuke Suzuki.\n\nsetupSpecificPattern() bails out early when the pattern has the /u or\n/v flag, so a fixed-string pattern such as /ab/gu does not get its atom\nextracted and hasValidAtom() stays false. This forces String#match,\nString#split, String#replace and RegExp#exec/#test to call into Yarr\nfor every match instead of using the StringSearch / countMatchedCharacters\nbased fast paths in collectGlobalAtomMatches, stringSplitFast and\nRegExp::matchInline.\n\nAllow tryExtractAtom() to run for unicode patterns. The extracted atom\nis restricted to non-surrogate BMP code units (U16_LENGTH == 1 and\n!U_IS_SURROGATE), so a code-unit based StringSearch produces the same\nmatches as a unicode code-point based search: each atom character is a\nsingle code point that can never overlap a surrogate pair in the input,\nand the atom is non-empty so AdvanceStringIndex is never reached. V8\napplies the same condition for its ATOM regexp type.\n\nKeep the eitherUnicode() bail-out for the remaining SpecificPattern\nkinds (leading/trailing spaces, newlines).\n\n                                              Baseline                  Patched\n\nglobal-atom-match-one-char-unicode          5.6361+-0.1098     ^      0.5202+-0.0725        ^ definitely 10.8351x faster\nglobal-atom-match-multi-chars-unicode       1.6494+-0.0645     ^      0.8089+-0.0287        ^ definitely 2.0390x faster\nglobal-atom-match-multi-chars-unicode-sets  1.6130+-0.0512     ^      0.8415+-0.0447        ^ definitely 1.9169x faster\n\nTests: JSTests/microbenchmarks/global-atom-match-multi-chars-unicode-sets.js\n       JSTests/microbenchmarks/global-atom-match-multi-chars-unicode.js\n       JSTests/microbenchmarks/global-atom-match-one-char-unicode.js\n       JSTests/stress/regexp-unicode-atom-fast-path.js\n\n* JSTests/microbenchmarks/global-atom-match-multi-chars-unicode-sets.js: Added.\n(test):\n* JSTests/microbenchmarks/global-atom-match-multi-chars-unicode.js: Added.\n(test):\n* JSTests/microbenchmarks/global-atom-match-one-char-unicode.js: Added.\n(test):\n* JSTests/stress/regexp-unicode-atom-fast-path.js: Added.\n(shouldBe):\n(shouldBeArray):\n(shouldBeArray.str.split):\n(shouldBe.f):\n* Source/JavaScriptCore/yarr/YarrPattern.cpp:\n(JSC::Yarr::YarrPatternConstructor::extractSpecificPattern):\n\nCanonical link: https://commits.webkit.org/315965@main",
      "email": "sosuke@bun.sh",
      "hash": "3dfb0a4b80bec46492dede7339c6b72cbbba436e",
      "subject": "[JSC] Enable RegExp atom fast path for unicode patterns"
    },
    "315966@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "315966@main",
      "clUrl": "https://commits.webkit.org/315966@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317821\n\nReviewed by Yusuke Suzuki.\n\nObject.prototype.isPrototypeOf was registered without an intrinsic, so DFG/FTL\nalways emitted a native call. When |this| is an object, isPrototypeOf(V) performs\nexactly the prototype-chain walk of OrdinaryHasInstance, so we can lower it to the\nexisting InstanceOf node and reuse its inline cache. We speculate ObjectUse on\n|this| and OSR exit to the C++ slow path for primitive receivers; the BadType exit\nprofile prevents recompilation loops.\n\n                                    Baseline                  Patched\n\nis-prototype-of-deep-hit        30.6899+-5.4560     ^      6.5041+-1.1688   ^ definitely 4.7186x faster\nis-prototype-of-sometimes-hit   41.9869+-8.2872     ^     13.9098+-0.7257   ^ definitely 3.0185x faster\nis-prototype-of-deep-miss       35.0449+-2.4496     ^      6.5066+-1.1866   ^ definitely 5.3860x faster\nis-prototype-of-shallow         41.7880+-11.8943    ^     11.9066+-1.5946   ^ definitely 3.5097x faster\n\nTests: JSTests/microbenchmarks/is-prototype-of-deep-hit.js\n       JSTests/microbenchmarks/is-prototype-of-deep-miss.js\n       JSTests/microbenchmarks/is-prototype-of-shallow.js\n       JSTests/microbenchmarks/is-prototype-of-sometimes-hit.js\n       JSTests/stress/object-is-prototype-of-intrinsic.js\n\n* JSTests/microbenchmarks/is-prototype-of-deep-hit.js: Added.\n(test):\n* JSTests/microbenchmarks/is-prototype-of-deep-miss.js: Added.\n(test):\n* JSTests/microbenchmarks/is-prototype-of-shallow.js: Added.\n(Foo):\n(test):\n* JSTests/microbenchmarks/is-prototype-of-sometimes-hit.js: Added.\n(Foo):\n(Bar):\n(test):\n* JSTests/stress/object-is-prototype-of-intrinsic.js: Added.\n(shouldBe):\n(shouldThrow):\n(A):\n(B):\n(C):\n(miss):\n(test):\n(Foo):\n(Bar):\n(getPrototypeOf):\n* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:\n(JSC::DFG::ByteCodeParser::handleIntrinsicCall):\n* Source/JavaScriptCore/runtime/Intrinsic.h:\n* Source/JavaScriptCore/runtime/ObjectPrototype.cpp:\n(JSC::ObjectPrototype::finishCreation):\n\nCanonical link: https://commits.webkit.org/315966@main",
      "email": "sosuke@bun.sh",
      "hash": "0071dfd4f18a9cc5230a2814211ab15d3d43822f",
      "subject": "[JSC] Use `InstanceOf` DFG node for `Object#isPrototypeOf`"
    },
    "315967@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "315967@main",
      "clUrl": "https://commits.webkit.org/315967@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315121\nrdar://177463736\n\nReviewed by Brady Eidson.\n\nUse the RegistrableDomain of m_firstPartyForCookies instead.  This eliminates\nthe possibility of inconsistent values between the two, which should always\nhave the same RegistrableDomain.\n\nIn order to keep existing functionality with regards to StorageBlockingPolicy::BlockThirdParty,\nI needed to add a bool when I removed the duplicate string.  The bool indicates whether to\nhave an empty cache partition instead of a cache partition derived from firstPartyForCookies.\n\nThis also removes support for passing an NSURLRequest in to WKWebView that has a\n_kCFURLCachePartitionKey property attached to it using NSURLProtocol.  There are no\ninternal users of _kCFURLCachePartitionKey above WebKit, and its use could only\ncause the wrong cache partition to be used.  _kCFURLCachePartitionKey is stil used\nas a mechanism of communication between WebKit and NSURLSession in the network process,\nbut we no longer extract the property from an app-supplied NSURLRequest.  Its emptiness\nis checked, though, to determine whether we should block third party storage access,\nwhich is necessary for detecting the bit in NSURLRequests we get from CFNetwork\nsuch as redirects, as tested in http/tests/cache/disk-cache/disk-cache-redirect.html\n\n* LayoutTests/ipc/create-socket-channel-invalid-url-crash.html:\n* LayoutTests/ipc/invalid-url-network-data-task-crash.html:\n* Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:\n(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):\n* Source/WebCore/dom/ScriptExecutionContext.cpp:\n(WebCore::ScriptExecutionContext::domainForCachePartition const):\n(WebCore::ScriptExecutionContext::shouldBlockThirdPartyStorage const):\n* Source/WebCore/dom/ScriptExecutionContext.h:\n(WebCore::ScriptExecutionContext::setDomainForCachePartition): Deleted.\n* Source/WebCore/html/DOMURL.cpp:\n(WebCore::DOMURL::revokeObjectURL):\n* Source/WebCore/inspector/InspectorResourceUtilities.cpp:\n(Inspector::ResourceUtilities::cachedResource):\n* Source/WebCore/loader/DocumentLoader.cpp:\n(WebCore::DocumentLoader::loadMainResource):\n* Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp:\n(WebCore::LegacyWebArchive::createInternal):\n* Source/WebCore/loader/cache/CachedImage.cpp:\n* Source/WebCore/loader/cache/CachedImage.h:\n* Source/WebCore/loader/cache/CachedResource.h:\n(WebCore::CachedResource::cachePartition const):\n* Source/WebCore/loader/cache/CachedResourceLoader.cpp:\n(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):\n(WebCore::CachedResourceLoader::requestResource):\n* Source/WebCore/loader/cache/CachedResourceRequest.cpp:\n(WebCore::CachedResourceRequest::setDomainForCachePartition): Deleted.\n* Source/WebCore/loader/cache/CachedResourceRequest.h:\n* Source/WebCore/loader/cache/MemoryCache.cpp:\n(WebCore::MemoryCache::removeResourcesWithOrigin):\n(WebCore::MemoryCache::removeResourcesWithOrigins):\n* Source/WebCore/page/Page.cpp:\n(WebCore::Page::setupForRemoteWorker):\n* Source/WebCore/platform/network/ResourceRequestBase.cpp:\n(WebCore::ResourceRequestBase::setAsIsolatedCopy):\n(WebCore::ResourceRequestBase::cachePartition const):\n(WebCore::ResourceRequestBase::setCachePartition): Deleted.\n(WebCore::ResourceRequestBase::partitionName): Deleted.\n* Source/WebCore/platform/network/ResourceRequestBase.h:\n(WebCore::ResourceRequestBase::shouldBlockThirdPartyStorage const):\n(WebCore::ResourceRequestBase::setShouldBlockThirdPartyStorage):\n(WebCore::ResourceRequestBase::setDomainForCachePartition): Deleted.\n* Source/WebCore/platform/network/cf/ResourceRequest.h:\n(WebCore::ResourceRequest::ResourceRequest):\n* Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm:\n(WebCore::ResourceRequest::ResourceRequest):\n(WebCore::ResourceRequest::fromResourceRequestData):\n(WebCore::ResourceRequest::doUpdateResourceRequest):\n* Source/WebCore/testing/Internals.cpp:\n(WebCore::Internals::resourceFromMemoryCache):\n* Source/WebCore/workers/service/ServiceWorkerContainer.cpp:\n(WebCore::ServiceWorkerContainer::addRegistration):\n(WebCore::ServiceWorkerContainer::updateRegistration):\n* Source/WebCore/workers/service/ServiceWorkerJobData.cpp:\n(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):\n(WebCore::ServiceWorkerJobData::isolatedCopy const):\n* Source/WebCore/workers/service/ServiceWorkerJobData.h:\n* Source/WebCore/workers/service/server/SWServer.cpp:\n(WebCore::SWServer::createScriptRequest):\n* Source/WebCore/xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::createRequest):\n* Source/WebKit/NetworkProcess/NetworkProcess.cpp:\n(WebKit::NetworkProcess::deleteWebsiteDataForOrigin):\n* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:\n(WebKit::NetworkResourceLoader::continueWillSendRequest):\n* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.cpp:\n(WebKit::NetworkCache::constructRevalidationRequest):\n* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:\n(WebKit::NetworkCache::constructRevalidationRequest):\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n* Source/WebKit/Shared/WebCoreArgumentCodersPlatform.serialization.in:\n\nCanonical link: https://commits.webkit.org/315967@main",
      "email": "achristensen@apple.com",
      "hash": "71730beeaf06cb924a28ba92efe710393c28c740",
      "subject": "Remove ResourceRequest.m_cachePartition"
    },
    "315968@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315968@main",
      "clUrl": "https://commits.webkit.org/315968@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317817\nrdar://180585949\n\nReviewed by Simon Fraser.\n\nwillBeDestroyed() is a non-const member function, so *this is already a\nnon-const LegacyRenderSVGRoot\u0026. The const_cast around it in the call to\nRenderBlock::removePercentHeightDescendant() (which takes a non-const\nRenderBox\u0026) is a no-op. Remove it. No behavior change.\n\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:\n(WebCore::LegacyRenderSVGRoot::willBeDestroyed):\n\nCanonical link: https://commits.webkit.org/315968@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "ac2c500b50e867b945318432177144b18f730916",
      "subject": "[LegacySVG] Remove no-op const_cast in LegacyRenderSVGRoot::willBeDestroyed()"
    },
    "315969@main": {
      "author": "Simon Fraser",
      "avatar": "https://www.gravatar.com/avatar/3763324aa0cdfa93be751c6081b8006a?d=identicon\u0026s=64",
      "cl": "315969@main",
      "clUrl": "https://commits.webkit.org/315969@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317954\nrdar://180751980\n\nReviewed by Alan Baradlay.\n\nWhen snapshotting a Node, code called `frameView-\u003esetNodeToDraw(node)` and `frameView-\u003esetNodeToDraw(null)`,\nmaking LocalFrameView store some temporary state that is better implemented by passing the Node as\na function argument.\n\nSo pass a `Node*` down through to `LocaLFrameView::paintContents()`. `ScopedFramePaintingState` no longer\nneeds to store the node.\n\nNo behavior change.\n\n* Source/WebCore/page/ElementTargetingController.cpp:\n(WebCore::ElementTargetingController::snapshotIgnoringVisibilityAdjustment):\n* Source/WebCore/page/FrameSnapshotting.cpp:\n(WebCore::ScopedFramePaintingState::ScopedFramePaintingState):\n(WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):\n(WebCore::snapshotFrameRect):\n(WebCore::snapshotFrameRectWithClip):\n(WebCore::snapshotNode):\n* Source/WebCore/page/FrameSnapshotting.h:\n* Source/WebCore/page/LocalFrameView.cpp:\n(WebCore::LocalFrameView::paintContents):\n(WebCore::LocalFrameView::paintContentsForSnapshot):\n(WebCore::LocalFrameView::setNodeToDraw): Deleted.\n* Source/WebCore/page/LocalFrameView.h:\n* Source/WebKit/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:\n(WebKit::imageForRect):\n(WebKit::InjectedBundleNodeHandle::renderedImage):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::paintSnapshotAtSize):\n(WebKit::WebPage::snapshotNode):\n(WebKit::WebPage::drawFrameToSnapshot):\n\nCanonical link: https://commits.webkit.org/315969@main",
      "email": "simon.fraser@apple.com",
      "hash": "661ea5b177a90a25581faa820e9ff262de4e6494",
      "subject": "Remove LocalFrameView::m_nodeToDraw"
    },
    "315970@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "315970@main",
      "clUrl": "https://commits.webkit.org/315970@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317858\n\nReviewed by Darin Adler.\n\nThe fontSelector unset/set workaround in SizesAttributeParser is no longer\nneeded now that SizesAttributeParser's conversion data uses Document::initialStyle().\n\n* Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations:\n* Source/WebCore/css/parser/SizesAttributeParser.cpp:\n\nCanonical link: https://commits.webkit.org/315970@main",
      "email": "sam@webkit.org",
      "hash": "2d22c1da95f8164c6a2d57b0e391116ca733ce4d",
      "subject": "Remove unneeded fontSelector workaround in SizesAttributeParser"
    },
    "315971@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "315971@main",
      "clUrl": "https://commits.webkit.org/315971@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318019\n\nReviewed by Sam Sneddon.\n\nThe zope-interface 8.1 release is missing its manylinux aarch64 wheels (only\nx86_64, i686, macOS and Windows wheels were published). Because the package is\nregistered with wheel=True, the autoinstaller finds no matching archive on\narm64 and aborts test-webkitpy before any test runs. x86_64 bots are\nunaffected. The 8.1.1 patch release restored the aarch64 wheels, so bump the\npin to 8.1.1.\n\n* Tools/Scripts/webkitpy/__init__.py:\n\nCanonical link: https://commits.webkit.org/315971@main",
      "email": "nzimmermann@igalia.com",
      "hash": "8faf22a42baf7934b0b281c25e50c3e55531fb56",
      "subject": "[Tools] test-webkitpy fails on WPE/arm64: No archives for zope-interface-8.1 found"
    },
    "315972@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "315972@main",
      "clUrl": "https://commits.webkit.org/315972@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318036\n\nUnreviewed gardening.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/315972@main",
      "email": "nzimmermann@igalia.com",
      "hash": "39b563239864f7854b20fee2c84911d77dda4374",
      "subject": "[GTK][WPE] Gardening of tests - 2026-06-27"
    },
    "315973@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "315973@main",
      "clUrl": "https://commits.webkit.org/315973@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=311722\nrdar://174308268\n\nReviewed by Anne van Kesteren.\n\nMap platform-cancelled and unknown errors to OperationError per spec. WKIdentityDocumentPresentmentErrorCancelled now falls through to the default OperationError case since platform cancellation is distinct from user cancellation (NotAllowedError) and AbortSignal cancellation (AbortError). The default/unknown case changes from UnknownError to OperationError, which is the spec's catch-all for operation-specific failures.\n\n* Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm:\n(-[WKDigitalCredentialsPicker handlePresentmentCompletionWithResponse:error:]):\n(-[WKDigitalCredentialsPicker handleNSError:]):\n\nCanonical link: https://commits.webkit.org/315973@main",
      "email": "marcosc@apple.com",
      "hash": "8085276859d07c227807cc0ea0e765fc3bdfe42b",
      "subject": "Digital Credentials: fix DOMException mapping for platform-cancelled and unknown errors in WKDigitalCredentialsPicker"
    },
    "315974@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "315974@main",
      "clUrl": "https://commits.webkit.org/315974@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=293604\n\u003crdar://problem/152472996\u003e\n\nReviewed by Yusuke Suzuki.\n\nThese methods provide some parity with `Math`, thereby making `BigInt` more easily usable for complex logic.\n\nSpec: \u003chttps://tc39.es/proposal-bigint-math/\u003e\nProposal: \u003chttps://github.com/tc39/proposal-bigint-math\u003e\n\n* Source/JavaScriptCore/runtime/BigIntConstructor.cpp:\n(JSC::BigIntConstructor::finishCreation):\n(JSC::bigIntConstructorAbs): Added.\n(JSC::bigIntConstructorCbrt): Added.\n(JSC::bigIntConstructorMax): Added.\n(JSC::bigIntConstructorMin): Added.\n(JSC::bigIntConstructorPow): Added.\n(JSC::bigIntConstructorSign): Added.\n(JSC::bigIntConstructorSqrt): Added.\n\n* Source/JavaScriptCore/runtime/JSBigInt.h:\n(JSC::JSBigInt::digit const):\n(JSC::JSBigInt::digit): Deleted.\n* Source/JavaScriptCore/runtime/JSBigInt.cpp:\n(JSC::JSBigInt::bitLength const): Added.\n(JSC::JSBigInt::compareDigits): Added.\n(JSC::JSBigInt::multiplyDigits): Added.\n(JSC::JSBigInt::divideDigits): Added.\n(JSC::JSBigInt::addDigits): Added.\n(JSC::JSBigInt::oneShiftedLeft): Added.\n(JSC::JSBigInt::sqrt): Added.\n(JSC::JSBigInt::cbrt): Added.\nAdd digit-array helpers shared by `BigInt.sqrt` and `BigInt.cbrt`.\n\n* Source/JavaScriptCore/runtime/OptionsList.h:\nAdd feature flag for these new methods.\n\n* JSTests/stress/bigint-abs.js: Added.\n* JSTests/stress/bigint-cbrt.js: Added.\n* JSTests/stress/bigint-max.js: Added.\n* JSTests/stress/bigint-min.js: Added.\n* JSTests/stress/bigint-pow.js: Added.\n* JSTests/stress/bigint-sign.js: Added.\n* JSTests/stress/bigint-sqrt.js: Added.\n\nCanonical link: https://commits.webkit.org/315974@main",
      "email": "hi@devinrousso.com",
      "hash": "070591535aa45c45d3bb8a2d89f078250d9e5500",
      "subject": "[JSC] implement BigInt math proposal"
    }
  },
  "date": "2026-06-27",
  "days": 1,
  "generatedAt": "2026-06-27T22:05:41Z",
  "markdown": "## Highlights\n- **Security** Hardened the WebKit process model by adding missing sender-ownership validation to 12 process-global identifier map lookups, closing a real cross-process trust gap. [commit 315947@main](https://commits.webkit.org/315947@main)\n- **Web Platform** JavaScriptCore landed the BigInt Math proposal, expanding modern JS numeric capabilities in the engine. [commit 315974@main](https://commits.webkit.org/315974@main)\n- **Rendering** BorderShape now generates and paints corner-shape paths, moving a new CSS rendering capability from plumbing into visible output. [commit 315941@main](https://commits.webkit.org/315941@main)\n- **Privacy** Global Privacy Control now separates the feature-enabled state from user opt-in state, tightening privacy preference handling. [commit 315959@main](https://commits.webkit.org/315959@main)\n- **DevTools** Web Extension Service Workers can now be inspected, fixing a painful blind spot for extension debugging. [commit 315944@main](https://commits.webkit.org/315944@main)\n- **A11y** VoiceOver can again find content hidden with `hidden=\"until-found\"`, fixing a real discoverability regression in Safari accessibility. [commit 315964@main](https://commits.webkit.org/315964@main)\n- **Media** WebKit removed support for running MediaSource AVFoundation playback in the GPU process, simplifying process boundaries around a sensitive media path. [commit 315963@main](https://commits.webkit.org/315963@main)\n- **Perf** JSC picked up multiple compiler and runtime wins, including RegExp unicode atom fast paths and better dead-code elimination. [commit 315965@main](https://commits.webkit.org/315965@main)\n- **UI** A regression that blocked scrolling an enclosing scroll view when the pointer was over an image on AppKit was fixed. [commit 315958@main](https://commits.webkit.org/315958@main)\n\n## What landed by area\n\n### JavaScriptCore\n- **Web Platform** JavaScriptCore implemented the BigInt Math proposal, adding new spec surface for big integer operations. [commit 315974@main](https://commits.webkit.org/315974@main)\n- **Perf** `Object.prototype.isPrototypeOf` now lowers through the `InstanceOf` DFG node, which should cut overhead on a common prototype-chain check. [commit 315966@main](https://commits.webkit.org/315966@main)\n- **Perf** RegExp unicode patterns now use the atom fast path, improving a hot path for simple unicode matches. [commit 315965@main](https://commits.webkit.org/315965@main)\n- **Perf** AirEliminateDeadCode was optimized, shaving compiler work in the backend. [commit 315954@main](https://commits.webkit.org/315954@main)\n- **Web Platform** Temporal.PlainTime got more spec-aligned behavior plus helper cleanup. [commit 315942@main](https://commits.webkit.org/315942@main)\n- **Perf** WTF::Dominators now uses Semi-NCA, upgrading a core graph algorithm used by compiler analyses. [commit 315938@main](https://commits.webkit.org/315938@main)\n\n### SVG and graphics\n- **Web Platform** `convertToSpecifiedUnits()` now correctly converts px into percentage, em, and ex in SVG unit conversion paths. [commit 315953@main](https://commits.webkit.org/315953@main)\n- **Web Platform** `SVGTests::isValid()` now matches SVG2 `systemLanguage` behavior correctly. [commit 315952@main](https://commits.webkit.org/315952@main)\n- **Refactor** LegacySVG dropped a no-op `const_cast` in `LegacyRenderSVGRoot::willBeDestroyed()`. [commit 315968@main](https://commits.webkit.org/315968@main)\n- **Refactor** LegacySVG also removed a needless `IntPoint()` conversion in `LegacyRenderSVGForeignObject::paint()`. [commit 315951@main](https://commits.webkit.org/315951@main)\n- **Web Platform** SMIL animations no longer apply `from`/`to`/`by` values when parsing fails, which brings failure handling in line with spec expectations. [commit 315949@main](https://commits.webkit.org/315949@main)\n- **Web Platform** SVG2 geometry presentation attributes are no longer accepted on invalid elements like `g`. [commit 315946@main](https://commits.webkit.org/315946@main)\n- **Rendering** BorderShape gained corner-shape path generation and painting support. [commit 315941@main](https://commits.webkit.org/315941@main)\n\n### Accessibility and UI behavior\n- **A11y** Safari with VoiceOver can again find content gated by `hidden=\"until-found\"`. [commit 315964@main](https://commits.webkit.org/315964@main)\n- **A11y** Repeated `LayoutComplete` notifications for the same accessibility object are now coalesced within a runloop cycle, reducing notification spam. [commit 315950@main](https://commits.webkit.org/315950@main)\n- **UI** AppKit gesture handling once again lets users scroll an enclosing scroll view while hovering over an image. [commit 315958@main](https://commits.webkit.org/315958@main)\n- **UI** Snap points inside zero-sized elements now resolve correctly. [commit 315948@main](https://commits.webkit.org/315948@main)\n\n### Networking, privacy, and credentials\n- **Privacy** Global Privacy Control now stores the enabled bit separately from the user's opt-in value. [commit 315959@main](https://commits.webkit.org/315959@main)\n- **Networking** `ResourceRequest.m_cachePartition` was removed, continuing cleanup in request partitioning internals. [commit 315967@main](https://commits.webkit.org/315967@main)\n- **Networking** GLib proxy ignore-host settings now use `Vector\u003cCString\u003e`, tightening the type shape of proxy config handling. [commit 315962@main](https://commits.webkit.org/315962@main)\n- **Web Platform** Digital Credentials now maps platform-cancelled and unknown picker failures to the right DOMExceptions. [commit 315973@main](https://commits.webkit.org/315973@main)\n- **Web Platform** Credential request preparation no longer rejects with the wrong error code. [commit 315957@main](https://commits.webkit.org/315957@main)\n- **Refactor** An unused `NetworkLoadMetrics` member was removed from `WorkerThreadableLoader::MainThreadBridge`. [commit 315943@main](https://commits.webkit.org/315943@main)\n\n### Media, memory, and rendering internals\n- **Media** WebKit removed the ability to run `MediaPlayerPrivateMediaSourceAVFObjC` in the GPU process. [commit 315963@main](https://commits.webkit.org/315963@main)\n- **Mobile** GTK and WPE now release Skia resources under memory pressure, which should help survival on constrained systems. [commit 315960@main](https://commits.webkit.org/315960@main)\n- **Refactor** `LocalFrameView::m_nodeToDraw` was removed, trimming dead rendering state. [commit 315969@main](https://commits.webkit.org/315969@main)\n- **Refactor** An unneeded `fontSelector` workaround was removed from `SizesAttributeParser`. [commit 315970@main](https://commits.webkit.org/315970@main)\n\n### DevTools, testing, and build\n- **DevTools** Web Extension Service Workers can now be inspected. [commit 315944@main](https://commits.webkit.org/315944@main)\n- **Build** WebDriver test collection was fixed for pytest 8 behavior. [commit 315940@main](https://commits.webkit.org/315940@main)\n- **Build** `test-webkitpy` on WPE arm64 was fixed after `zope-interface-8.1` archive resolution failures. [commit 315971@main](https://commits.webkit.org/315971@main)\n- **Build** Debug API test timeouts were doubled by default on GLib bots, a practical stability tweak for slower configs. [commit 315961@main](https://commits.webkit.org/315961@main)\n- **Build** Skia builds picked up `-Wno-maybe-musttail-local-addr` to get past a toolchain warning issue. [commit 315955@main](https://commits.webkit.org/315955@main)\n- **Build** A framework-header include regression around `RectCorners.h` was fixed. [commit 315945@main](https://commits.webkit.org/315945@main)\n- **Build** Swift in WebKit removed the plain C++ Swift interop header workaround. [commit 315937@main](https://commits.webkit.org/315937@main)\n- **Build** GTK and WPE test gardening landed for the day. [commit 315972@main](https://commits.webkit.org/315972@main)\n- **Build** A constant debug text failure in `ipc/networksessioncocoa-empty-resource-request.html` was gardened. [commit 315936@main](https://commits.webkit.org/315936@main)\n\n### Cleanup and security maintenance\n- **Refactor** Duplicate `#include`s were removed in WebCore. [commit 315956@main](https://commits.webkit.org/315956@main)\n- **Security** Transitive dependencies were updated to address known vulnerabilities. [commit 315939@main](https://commits.webkit.org/315939@main)",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [],
  "since": "2026-06-27",
  "totals": {
    "commits": 39,
    "features": 39,
    "rolls": 0
  },
  "until": "2026-06-27"
}