{
  "commits": {
    "317649@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "317649@main",
      "clUrl": "https://commits.webkit.org/317649@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320796\n\nReviewed by Rob Buis.\n\nThe LBSE resource resolvers in ReferencedSVGResources only looked up the\nfragment in the local document, so external (url(file.svg#id)) and data:\nURL references to clip-paths, markers and paint servers never resolved.\nThe legacy engine already handles these through externalResourceDocument()\nin SVGResources.cpp, and referencedFilterElement already did the same here.\n\nThis forward-ports to LBSE the external/data: URL resolution the legacy\nengine gained in:\n\n  https://commits.webkit.org/317649@main Support external and data: URL clip-path references on SVG elements\n  https://commits.webkit.org/317774@main Support external and data: URL clip-path references on HTML elements\n  https://commits.webkit.org/317614@main Support external and data: URL marker references on SVG elements\n  https://commits.webkit.org/317199@main Introduce IsolatedSVGDocumentContext\n\nFollowing tests are now fixed:\n\n  svg/clip-path/clip-path-invalid-reference-002.svg\n  svg/paint-servers/external-paint-server-css.html\n  svg/paint-servers/external-paint-server-gradient.html\n  svg/paint-servers/external-paint-server-pattern.html\n  imported/w3c/web-platform-tests/svg/painting/reftests/marker-external-reference.svg\n  imported/w3c/web-platform-tests/svg/painting/reftests/marker-data-uri-reference.svg\n  imported/w3c/web-platform-tests/svg/painting/reftests/pattern-external-reference.svg\n\n* Source/WebCore/rendering/ReferencedSVGResources.cpp:\n(WebCore::ReferencedSVGResources::referencedClipPathElement):\n(WebCore::ReferencedSVGResources::referencedMarkerElement):\n(WebCore::ReferencedSVGResources::referencedPaintServerElement):\n\nCanonical link: https://commits.webkit.org/318412@main",
      "email": "nzimmermann@igalia.com",
      "hash": "8c5024f26d63d29271869b2a0833832a95eb452f",
      "subject": "[LBSE] Support external and data: URL clip-path, marker and paint-server references"
    },
    "318410@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318410@main",
      "clUrl": "https://commits.webkit.org/318410@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320813\n\nReviewed by Rob Buis.\n\nEvery SVG child was painted twice per frame: once for the foreground and\nonce for the outline phase, the latter constructing a PaintInfo and\ncalling paint() even when the renderer has no outline (the common case!).\nThe outline phase is a no-op without an outline, so the extra pass\nwas wasted work on every shape.\n\nGuard the outline/self-outline pass behind hasOutline() in the three\nplaces that drive it: paintChildrenInDOMOrderForSVG() and\npaintRendererByApplyingTransformForSVG() for layer-painted children, and\nRenderSVGContainer::paint() for the non-layer child walk.\n\nCovered by existing tests.\n\n* Source/WebCore/rendering/RenderLayerSVGAdditions.cpp:\n(WebCore::RenderLayer::paintChildrenInDOMOrderForSVG):\n(WebCore::RenderLayer::paintRendererByApplyingTransformForSVG):\n* Source/WebCore/rendering/svg/RenderSVGContainer.cpp:\n(WebCore::RenderSVGContainer::paint):\n\nCanonical link: https://commits.webkit.org/318410@main",
      "email": "nzimmermann@igalia.com",
      "hash": "94caace776745ba04ac48a565b3f43145a33cd06",
      "subject": "[LBSE] Skip the outline paint pass for outline-free SVG renderers"
    },
    "318411@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318411@main",
      "clUrl": "https://commits.webkit.org/318411@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320815\n\nReviewed by Rob Buis.\n\nTransformPaintScope mapped the paint dirty rect back through the inverse\nof the full 4x4 TransformationMatrix on every transformed SVG paint. For\nthe common SVG case the transform is a 2D affine (e.g. translate/rotate/\nscale), for which the 2x3 AffineTransform we already computed can be\ninverted far more cheaply than the general 4x4 matrix.\n\nInvert the AffineTransform when the transform isAffine(), falling back to\nthe 4x4 inverse for non-affine, 3D transforms. Same result, less work per\npaint.\n\nCovered by existing tests.\n\n* Source/WebCore/rendering/TransformPaintScope.h:\n(WebCore::TransformPaintScope::TransformPaintScope):\n\nCanonical link: https://commits.webkit.org/318411@main",
      "email": "nzimmermann@igalia.com",
      "hash": "5132ac6063434aa89f46175a9872c60f2ecc9dd4",
      "subject": "[LBSE] Invert the 2D affine transform when mapping the paint dirty rect"
    },
    "318413@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318413@main",
      "clUrl": "https://commits.webkit.org/318413@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320806\nrdar://183823079\n\nReviewed by Yijia Huang.\n\nThis patch tightening JSBigInt add / sub / mul.\n\n1. We add size-fixed streamlined implementations to add and sub as the\n   same to mul.\n2. Removed unnecessary absoluteCompare for sub. Before doing sub, we\n   already did absoluteCompare.\n3. Multiply streamlined implementations should have square optimization.\n4. DigitColumnAccumulator now picks where a column's carry lives per\n   consumer. Keeping it in the condition flags is the shortest sequence, but\n   there is only one flag register, so in the fully unrolled Comba kernels,\n   where two mac chains end up interleaved, the compiler spilled it with\n   mrs / msr NZCV: 6 times in multiplyCombaFixed\u003c4\u003e and 14 times in \u003c8\u003e.\n   CombaAccumulator now materializes the carry as a value with\n   __builtin_addcll, which removes those spills and 6 instructions per\n   4-digit multiply. The Barrett / folding helpers keep the flag form on\n   purpose: switching them over too pushes 8 flag spills into cachedMod,\n   which is three times hotter, and cancels the win.\n\nIn squire multiplication, Comba multiplication can leverage the fact\nthat the same value multiplication is happening. a[i] * b[j] and\na[j] * b[i] will be the same since a[i] == b[i] in squire case.\n\n          a0      a1      a2      a3\n    a0  [0,0]   (0,1)   (0,2)   (0,3)\n    a1  (1,0)   [1,1]   (1,2)   (1,3)      [i,i] diagonal - counted once\n    a2  (2,0)   (2,1)   [2,2]   (2,3)      (i,j) off-diagonal - equal in pairs\n    a3  (3,0)   (3,1)   (3,2)   [3,3]\n\nSo, half of multilication is not necessary. So then in the Comba multiplication,\n\n                                  a6   a5   a4   a3   a2   a1   a0\n                            x     a6   a5   a4   a3   a2   a1   a0\n                            --------------------------------------\n                                a6a0 a5a0 a4a0 a3a0 a2a0 a1a0 a0a0\n                           a6a1 a5a1 a4a1 a3a1 a2a1 a1a1 a0a1\n                      a6a2 a5a2 a4a2 a3a2 a2a2 a1a2 a0a2\n                 a6a3 a5a3 a4a3 a3a3 a2a3 a1a3 a0a3\n            a6a4 a5a4 a4a4 a3a4 a2a4 a1a4 a0a4\n       a6a5 a5a5 a4a5 a3a5 a2a5 a1a5 a0a5\n  a6a6 a5a6 a4a6 a3a6 a2a6 a1a6 a0a6\n -----------------------------------------------------------------\n\nNow we can find that, in each column (that's how Comba multiplication computes),\nbasically you only need to compute the half way. And you can double the\nresult and that's what you need. Like, a6a0 == a0a6, so only diagonal\ncase, a3a3, needs to be additionally done. But other ones should just\nuse a6a0 * 2, and then, you do not need to compute a0a6.\n\nTests: JSTests/stress/bigint-add-sub-fixed-size.js\n       JSTests/stress/bigint-square-comba.js\n\n* JSTests/stress/bigint-add-sub-fixed-size.js: Added.\n(shouldBe):\n(nextDigit):\n(fromDigits):\n(randomOfLength):\n(check):\n* JSTests/stress/bigint-square-comba.js: Added.\n(shouldBe):\n(checkSquare):\n(nextDigit):\n(fromDigits):\n(a.a.2n.a.copy):\n* Source/JavaScriptCore/runtime/JSBigInt.cpp:\n(JSC::DigitColumnAccumulator::mac):\n(JSC::DigitColumnAccumulator::macDoubled):\n(JSC::DigitColumnAccumulator::addCarrying):\n(JSC::CombaAccumulator::computeSquareColumn):\n(JSC::CombaAccumulator::squarePass):\n(JSC::JSBigInt::squareCombaFixed):\n(JSC::JSBigInt::multiplySpecialLow):\n(JSC::JSBigInt::multiplySpecialHigh):\n(JSC::JSBigInt::multiplyComba):\n(JSC::multiplySpecialColumn):\n(JSC::JSBigInt::multiplySpecialHighFixed):\n(JSC::JSBigInt::multiplySpecialLowFixed):\n(JSC::JSBigInt::multiplyDigitsInto):\n(JSC::JSBigInt::multiplyImpl):\n(JSC::JSBigInt::addDigits):\n(JSC::JSBigInt::multiplyDigits):\n(JSC::JSBigInt::addImpl):\n(JSC::JSBigInt::subImpl):\n(JSC::JSBigInt::addSchoolbookFixed):\n(JSC::JSBigInt::addDigitsInto):\n(JSC::JSBigInt::absoluteAdd):\n(JSC::JSBigInt::subSchoolbookFixed):\n(JSC::JSBigInt::subDigitsInto):\n(JSC::JSBigInt::absoluteSub):\n* Source/JavaScriptCore/runtime/JSBigInt.h:\n\nCanonical link: https://commits.webkit.org/318413@main",
      "email": "ysuzuki@apple.com",
      "hash": "deb0d2fa4be6ecd15bf67bf44613db50820999d7",
      "subject": "[JSC] Deply add / sub / mul tightening to JSBigInt"
    },
    "318414@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318414@main",
      "clUrl": "https://commits.webkit.org/318414@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320794\nrdar://183803054\n\nReviewed by Simon Fraser.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/a1b7d24dec7163c59f3ab5554a40b68ba5f7ccbe\n\n* LayoutTests/imported/w3c/resources/import-expectations.json:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/60x60-green.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/bidi-005-ref.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/bidi-007-ref.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/border-seams-001.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/boxes_same_color_100px_black_50px_margin.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/filler-text-below-green.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/float-applies-to-001-ref.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/inline-svg-100-percent-in-body-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/inline-svg-margin-padding-border-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/margin-collapse-002-ref.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/no-red-filler-text-ref.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/no-red-on-blank-page-ref.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/no_red_bold_italic_small-caps_ahem.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/pass-if-number-0-30px.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/pass_if_box_ahem.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-black-96px-square-no-red.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-green-background.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-if-there-is-no-red.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-no-vert-space-between.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-nothing-below.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-this-text-should-be-green.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-filled-green-100px-square.xht.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-transparent-or-black-square-black.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/ref-transparent-or-black-square-transparent.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/reference/w3c-import.log: Added.\n\nCanonical link: https://commits.webkit.org/318414@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "0479d2141241ec355bec6021e05361427020f6b8",
      "subject": "Sync `css/CSS2/reference` from WPT Upstream"
    },
    "318415@main": {
      "author": "Kai Tamkun",
      "avatar": "https://www.gravatar.com/avatar/dff073cba21885df4d9f73ed3cc493c2?d=identicon\u0026s=64",
      "cl": "318415@main",
      "clUrl": "https://commits.webkit.org/318415@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315887\nrdar://178287060\n\nReviewed by Yusuke Suzuki.\n\nThis patch adds support for regexp buffer boundary assertions (\\A, \\z, \\Z).\nSee https://github.com/tc39/proposal-regexp-buffer-boundaries for details.\n\nTest: JSTests/stress/regexp-boundary-assertions.js\n\n* JSTests/stress/regexp-boundary-assertions.js: Added.\n(assertEqual):\n* Source/JavaScriptCore/yarr/Yarr.h:\n* Source/JavaScriptCore/yarr/YarrDisassembler.h:\n(JSC::Yarr::YarrJITInfo::~YarrJITInfo): Deleted.\n* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:\n(JSC::Yarr::Interpreter::matchAssertionBOI):\n(JSC::Yarr::Interpreter::matchAssertionEOI):\n(JSC::Yarr::Interpreter::matchDisjunction):\n(JSC::Yarr::ByteCompiler::assertionBOI):\n(JSC::Yarr::ByteCompiler::assertionEOI):\n(JSC::Yarr::ByteCompiler::emitDisjunction):\n(JSC::Yarr::ByteTermDumper::dumpTerm):\n* Source/JavaScriptCore/yarr/YarrInterpreter.h:\n(JSC::Yarr::ByteTerm::ByteTerm):\n(JSC::Yarr::ByteTerm::BOI):\n(JSC::Yarr::ByteTerm::EOI):\n* Source/JavaScriptCore/yarr/YarrJIT.cpp:\n* Source/JavaScriptCore/yarr/YarrParser.h:\n(JSC::Yarr::requires):\n(JSC::Yarr::Parser::Parser):\n(JSC::Yarr::Parser::CharacterClassParserDelegate::assertionBOI):\n(JSC::Yarr::Parser::CharacterClassParserDelegate::assertionEOI):\n(JSC::Yarr::Parser::ClassSetParserDelegate::assertionBOI):\n(JSC::Yarr::Parser::ClassSetParserDelegate::assertionEOI):\n(JSC::Yarr::Parser::ClassStringDisjunctionParserDelegate::assertionBOI):\n(JSC::Yarr::Parser::ClassStringDisjunctionParserDelegate::assertionEOI):\n(JSC::Yarr::Parser::parseEscape):\n(JSC::Yarr::parse):\n* Source/JavaScriptCore/yarr/YarrPattern.cpp:\n(JSC::Yarr::YarrPatternConstructor::assertionBOI):\n(JSC::Yarr::YarrPatternConstructor::assertionEOI):\n(JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets):\n(JSC::Yarr::YarrPattern::compile):\n(JSC::Yarr::PatternTerm::dump):\n* Source/JavaScriptCore/yarr/YarrPattern.h:\n(JSC::Yarr::PatternTerm::PatternTerm):\n(JSC::Yarr::PatternTerm::BOI):\n(JSC::Yarr::PatternTerm::EOI):\n* Source/JavaScriptCore/yarr/YarrSyntaxChecker.cpp:\n(JSC::Yarr::SyntaxChecker::assertionBOI):\n(JSC::Yarr::SyntaxChecker::assertionEOI):\n(JSC::Yarr::checkSyntax):\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/contentextensions/URLFilterParser.cpp:\n(WebCore::ContentExtensions::PatternParser::assertionBOI):\n(WebCore::ContentExtensions::PatternParser::assertionEOI):\n(WebCore::ContentExtensions::URLFilterParser::addPattern):\n\nCanonical link: https://commits.webkit.org/318415@main",
      "email": "k_tamkun@apple.com",
      "hash": "2f66f5ed23f9a3ce154e7b5745861f76eeda67f0",
      "subject": "[JSC] Add support for Regular Expression Buffer Boundaries proposal"
    },
    "318416@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318416@main",
      "clUrl": "https://commits.webkit.org/318416@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320720\n\nReviewed by Yusuke Suzuki.\n\nCharacterClassConstructor tracked m_characterWidths incrementally in\naddSorted / addSortedRange, but the UnicodeSets set-op and inversion paths\n(latin1Op, nonLatin1OpSorted, invertMatches) rebuild the match / range\nvectors by swapping in new ones without touching the width bits. So the\nbits went stale: unions dropped the rhs widths (wrong fixed offsets and an\nassertion failure in hasSharedLeadSurrogate), and intersections /\nsubtractions left over-wide widths behind.\n\n    new RegExp(\"^[\\\\u{10001}-\\\\u{10002}\\\\p{Ll}]$\", \"v\").test(\"a\")\n    // was false\n\nInstead, derive CharacterClass::m_characterWidths from the final vectors\nin charClass(). The widths are just an O(1) summary of the sorted match /\nrange vectors (emptiness plus first / last code point), so deriving them\nonce at the constructor's exit is cheaper and simpler than keeping an\nincremental copy in sync at every set-op site.\n\nTest: JSTests/stress/regexp-v-flag-class-set-op-character-widths.js\n\n* JSTests/stress/regexp-v-flag-class-set-op-character-widths.js: Added.\n(shouldBe):\n* Source/JavaScriptCore/yarr/YarrPattern.cpp:\n(JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):\n(JSC::Yarr::CharacterClassConstructor::reset):\n(JSC::Yarr::CharacterClassConstructor::charClass):\n(JSC::Yarr::CharacterClassConstructor::addSorted):\n(JSC::Yarr::CharacterClassConstructor::addSortedRange):\n(JSC::Yarr::CharacterClassConstructor::characterWidths):\n(JSC::Yarr::CharacterClassConstructor::hasNonBMPCharacters): Deleted.\n\nCanonical link: https://commits.webkit.org/318416@main",
      "email": "sosuke@bun.sh",
      "hash": "540f0965c655f2b6a78683c12ea43fd269978886",
      "subject": "[YARR] v-mode class set operations produce stale character widths"
    },
    "318417@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318417@main",
      "clUrl": "https://commits.webkit.org/318417@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320845\nrdar://183873163\n\nReviewed by Yijia Huang.\n\nARMv7 JIT is dropped. So upstream JIT we care is only ARM64 and X86_64\n(RISCV64 is unmaintained). We can clean up many of YarrJIT flags so that\nit makes code much cleaner.\n\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:\n(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):\n* Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:\n(JSC::DFG::StrengthReductionPhase::handleNode):\n* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:\n(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):\n* Source/JavaScriptCore/runtime/RegExp.cpp:\n(JSC::RegExp::compile):\n(JSC::RegExp::compileMatchOnly):\n* Source/JavaScriptCore/yarr/YarrJIT.cpp:\n(JSC::Yarr::tryReadUnicodeCharSlowThunkGenerator):\n(JSC::Yarr::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):\n(JSC::Yarr::dumpCompileFailure):\n(JSC::Yarr::jitCompileInlinedTest):\n* Source/JavaScriptCore/yarr/YarrJIT.h:\n* Source/JavaScriptCore/yarr/YarrJITRegisters.h:\n* Source/WTF/wtf/PlatformEnable.h:\n\nCanonical link: https://commits.webkit.org/318417@main",
      "email": "ysuzuki@apple.com",
      "hash": "ac2afd10b8ac26ed79a3781501cc1ea1381d3bd9",
      "subject": "[YARR] Clean up YarrJIT ifdefs"
    },
    "318418@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318418@main",
      "clUrl": "https://commits.webkit.org/318418@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320722\n\nReviewed by Yusuke Suzuki.\n\n    /(?\u003c=(?=^)a)b|c/.exec(\"ab\") // null, should be [\"b\"]\n\noptimizeBOL()'s loop copy drops alternatives that can only match at the start of\nthe input. A lookbehind walks backwards from the match position, so a ^ inside it\ncan reach position 0 even when the match itself starts later.\n\ncopyDisjunction() exempted Backward alternatives, but a lookahead nested inside a\nlookbehind is parsed as Forward again, so its ^-anchored alternative was filtered\nout and the whole lookbehind-containing alternative got dropped from the loop copy.\n\ncopyTerm() now stops filtering at any Backward term instead, which subsumes the\nper-alternative exemption in copyDisjunction().\n\nTest: JSTests/stress/regexp-lookahead-with-bol-inside-lookbehind-is-not-dropped.js\n\n* JSTests/stress/regexp-lookahead-with-bol-inside-lookbehind-is-not-dropped.js: Added.\n(shouldBe):\n(check):\n(step):\n* Source/JavaScriptCore/yarr/YarrPattern.cpp:\n(JSC::Yarr::YarrPatternConstructor::copyDisjunction):\n(JSC::Yarr::YarrPatternConstructor::copyTerm):\n\nCanonical link: https://commits.webkit.org/318418@main",
      "email": "sosuke@bun.sh",
      "hash": "29d016fbd9f466795ace2e38d9508523633202e7",
      "subject": "[YARR] Do not filter the contents of a lookbehind in `optimizeBOL`"
    },
    "318419@main": {
      "author": "Ian Grunert",
      "avatar": "https://www.gravatar.com/avatar/6a676cf1bcb9ff83c6cd867a0e3a0fa4?d=identicon\u0026s=64",
      "cl": "318419@main",
      "clUrl": "https://commits.webkit.org/318419@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318867\n\nReviewed by Justin Michaud.\n\nfireTimers() posted a FireTimerMessage carrying a raw TimerBase*, but stop()/~TimerBase()\nnever cancelled an already-posted message, so wndProc() could use a timer that was\ndestroyed before the message was dispatched (e.g. across a nested modal run loop).\n\nPost a pointer-free FireTimerMessage instead: fireTimers() enqueues the timer on a new\nm_timersToFire deque guarded by m_loopLock, wndProc() fires the next live one, and stop()\nremoves itself from the deque.\n\nThe no-javascript-* Windows crash expectations are removed so the testers can confirm.\n\n* Source/WTF/wtf/RunLoop.h:\n* Source/WTF/wtf/win/RunLoopWin.cpp:\n(WTF::RunLoop::wndProc):\n(WTF::RunLoop::fireTimers):\n(WTF::RunLoop::TimerBase::stop):\n* LayoutTests/platform/win/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318419@main",
      "email": "ian.grunert@gmail.com",
      "hash": "559622a9eb506a6562041f96eb2c09f3d6b577ee",
      "subject": "[Win] RunLoopWin Timer can be destroyed before its FireTimerMessage is dispatched"
    },
    "318420@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318420@main",
      "clUrl": "https://commits.webkit.org/318420@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320819\nrdar://183831859\n\nReviewed by Chris Dumez.\n\nupdateAnimations() is the per-frame entry point for SMIL, and it deep-copies\nm_scheduledAnimations twice: once via processScheduledAnimations() for the\nlazy connectConditions() pass, and again for the loop that progresses the\nanimations. Since the map value type is a Vector\u003cWeakRef\u003cSVGSMILElement\u003e\u003e,\neach copyToVector() allocates the outer vector plus one inner vector per\nelement/attribute group, and ref/derefs every scheduled animation's\nWeakPtrImpl. All of that happens twice on every animation tick.\n\nTake one snapshot and share it between the two passes. The copy itself has\nto stay: 225240@main added it because progressing an animation can run\nscript that calls schedule()/unschedule() and invalidates the map's\niterators. Connecting conditions cannot do that, though. connectConditions()\ncan reach addTimeDependent() -\u003e createInstanceTimesFromSyncbase() -\u003e\naddInstanceTime() -\u003e beginListChanged()/endListChanged(), but nothing on\nthat path schedules or unschedules, and SMIL events are queued through\nSMILEventSender::dispatchEventSoon() rather than dispatched synchronously.\nSo the first pass cannot invalidate the snapshot the second pass relies on.\n\nThe connect pass is inlined rather than left in processScheduledAnimations(),\nsince sharing a snapshot means iterating a vector the caller owns.\nprocessScheduledAnimations() is still used by setElapsed().\n\nNo change in behavior.\n\n* Source/WebCore/svg/animation/SMILTimeContainer.cpp:\n(WebCore::SMILTimeContainer::updateAnimations):\n\nCanonical link: https://commits.webkit.org/318420@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "93a88853044da9b0fa1c3f07a42945b909fb68b7",
      "subject": "SMILTimeContainer::updateAnimations() copies the scheduled animations map twice per frame"
    },
    "318421@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318421@main",
      "clUrl": "https://commits.webkit.org/318421@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320713\nrdar://183699140\n\nReviewed by Chris Dumez.\n\nmemoryCost() only counted m_responseBuilder, the decoded-text buffer.\n\"arraybuffer\" and \"blob\" responses accumulate into m_binaryResponseBuilder\ninstead, so they reported 0 to Heap::reportExtraMemoryAllocated() at DONE\nand applied no GC pressure. Sum both buffers; didReceiveData() populates\nexactly one of them per response type, so nothing is double counted.\n\nNo new tests, as memoryCost() has no web-exposed observable -- its only\nconsumer is a JSC GC heuristic.\n\n* Source/WebCore/xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::memoryCost const):\n\nCanonical link: https://commits.webkit.org/318421@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "fe933794faba09e65adac61b0f862560186a8247",
      "subject": "XMLHttpRequest::memoryCost() ignores binary response data"
    },
    "318422@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318422@main",
      "clUrl": "https://commits.webkit.org/318422@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320817\nrdar://183830503\n\nReviewed by Chris Dumez.\n\nSMILTime::operator== tested isFinite() before comparing, but operator\u003c=\u003e compares the raw\nvalues, and since 291172 the compiler rewrites \u003c, \u003e, \u003c= and \u003e= from operator\u003c=\u003e. For the\nunresolved and the indefinite value that makes the two disagree: \"a == a\" is false while\n\"a \u003c= a\", \"a \u003e= a\" and \"a != a\" are all true at the same time.\n\nDrop the isFinite() test so equality matches the ordering. Callers that need to reject the\nsentinel values already ask for isFinite(), isUnresolved() or isIndefinite() explicitly.\n\nThis fixes several comparisons that were dead or wrong for open-ended intervals:\n\n- resolveInterval() refined the end time under \"tempEnd == lastIntervalTempEnd\" and\n  \"tempEnd == m_intervalEnd\". lastIntervalTempEnd starts at infinity and m_intervalEnd at\n  unresolved, so neither could ever match and the refinement never ran for indefinite\n  intervals.\n- PriorityCompare fell through its \"aBegin == bBegin\" tie-break whenever both animations had\n  an unresolved interval begin, so their relative order came out of an unstable sort instead\n  of document order.\n- beginListChanged() compared the new interval begin against the old one to decide whether to\n  notify dependents, and notified unconditionally when both were unresolved.\n- insertSortedAndUnique() stopped scanning for a duplicate at the first entry whenever the\n  time being inserted was not finite.\n\nresolveFirstInterval() worked around the old behaviour by comparing SMILTime::value() by hand;\nit can now use operator== again.\n\n* Source/WebCore/svg/animation/SMILTime.h:\n(WebCore::operator==):\n* Source/WebCore/svg/animation/SVGSMILElement.cpp:\n(WebCore::SVGSMILElement::resolveFirstInterval):\n\nCanonical link: https://commits.webkit.org/318422@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "41943f3329fc8057bce65a4aa05403454cc54013",
      "subject": "SMILTime::operator== is inconsistent with spaceship operator for the unresolved and indefinite values"
    },
    "318423@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "318423@main",
      "clUrl": "https://commits.webkit.org/318423@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320853\n\nIt appears those were fixed by Justin in 318382@main but he did not unskip\nthe files.\n\n* Source/WebKit/SaferCPPExpectations/NoDeleteCheckerExpectations:\n* Source/WebKit/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:\n\nCanonical link: https://commits.webkit.org/318423@main",
      "email": "cdumez@apple.com",
      "hash": "e8a79da47d5639979f534bfdf7193ad278a11dbd",
      "subject": "[Safer CPP] Unreviewed, unskip files that are unexpectedly passing on the macOS bot"
    },
    "318424@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318424@main",
      "clUrl": "https://commits.webkit.org/318424@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320791\nrdar://183801778\n\nReviewed by Chris Dumez.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nsend(URLSearchParams) set `Content-Type: application/x-www-form-urlencoded;charset=UTF-8`\nbefore doing anything else, and without the `m_method != GET/HEAD` check that every\nsibling send() overload has. Per step 3 of the send() algorithm the body is set to null\nfor GET and HEAD, so step 4 — which is what sets Content-Type — never runs for those\nmethods. We sent the header on a request that carries no body, which Blink and Gecko\nboth get right.\n\nSetting the header ahead of prepareToSend() also meant it was set even when send()\nwent on to throw InvalidStateError or hit a CSP failure.\n\nRoute send(URLSearchParams) through prepareToSend() first and then through a new\nsendStringData() helper factored out of send(String\u0026\u0026), so both string-serialized\nbodies share one copy of the method guard, the author-supplied Content-Type charset\nreconciliation, and the m_upload streaming path. Only the default MIME type differs.\n\nExtends the imported send-usp.any.js with Content-Type and request-body coverage for\nPOST (with and without an author-set Content-Type), GET and HEAD; previously it only\ncovered POST. The charset-reconciliation subtest asserts what Blink, Gecko and WebKit\nall do rather than what the spec literally says, since the spec restricts that step to\nDocument and string bodies but no engine implements it that way.\n\n* LayoutTests/imported/w3c/web-platform-tests/xhr/send-usp.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/xhr/send-usp.any.js:\n(x.send):\n(forEach):\n* LayoutTests/imported/w3c/web-platform-tests/xhr/send-usp.any.worker-expected.txt:\n* Source/WebCore/xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::send):\n(WebCore::XMLHttpRequest::sendStringData):\n* Source/WebCore/xml/XMLHttpRequest.h:\n\nCanonical link: https://commits.webkit.org/318424@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "24b2504818089f0c82eb3c4e3a235a6805464194",
      "subject": "XMLHttpRequest.send(URLSearchParams) sets a Content-Type request header on GET and HEAD requests"
    },
    "318425@main": {
      "author": "Said Abou-Hallawa",
      "avatar": "https://www.gravatar.com/avatar/ae80a929a378a055822829ae63903296?d=identicon\u0026s=64",
      "cl": "318425@main",
      "clUrl": "https://commits.webkit.org/318425@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320677\nrdar://183661820\n\nReviewed by Simon Fraser.\n\nThis change implements the IDL additions which are required for HTML-in-Canvas[1].\nThe WebCore sources were changed just to allow compiling. New functionalities will\nbe filled later. Here is the summary of this change:\n\n1. The attribute layoutSubtree is added to HTMLCanvasElement. This attribute will\n   force the layout for the canvas children.\n\n2. The interface ElementImage is added. It represents a the drawing of an Element\n   into a DisplayList\n\n3. The event Paint is added. This event will fire any time, a canvas child is\n   repainted.\n\n4. The ElementImage drawing functions to HTMLCanvasElement, OffscreenCanvas, WebGL\n   and WebGPU are added.\n\n5. Capturing a canvas child Element to ElementImage is added.\n\n[1] https://github.com/WICG/html-in-canvas\n\n* Source/WebCore/DerivedSources.make:\n* Source/WebCore/Modules/WebGPU/GPUCopyElementImageDestination.h: Added.\n* Source/WebCore/Modules/WebGPU/GPUCopyElementImageDestination.idl: Added.\n* Source/WebCore/Modules/WebGPU/GPUCopyElementImageSource.h: Added.\n* Source/WebCore/Modules/WebGPU/GPUCopyElementImageSource.idl: Added.\n* Source/WebCore/Modules/WebGPU/GPUQueue.cpp:\n(WebCore::GPUQueue::copyElementImageToTexture):\n* Source/WebCore/Modules/WebGPU/GPUQueue.h:\n* Source/WebCore/Modules/WebGPU/GPUQueue.idl:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/bindings/js/WebCoreBuiltinNames.h:\n* Source/WebCore/dom/EventInterfaces.in:\n* Source/WebCore/dom/EventNames.json:\n* Source/WebCore/html/HTMLAttributeNames.in:\n* Source/WebCore/html/HTMLCanvasElement.cpp:\n(WebCore::HTMLCanvasElement::setLayoutSubtree):\n(WebCore::HTMLCanvasElement::layoutSubtree const):\n(WebCore::HTMLCanvasElement::requestPaint):\n(WebCore::HTMLCanvasElement::getElementTransform):\n(WebCore::HTMLCanvasElement::captureElementImage):\n* Source/WebCore/html/HTMLCanvasElement.h:\n* Source/WebCore/html/HTMLCanvasElement.idl:\n* Source/WebCore/html/canvas/CanvasDrawElementImage.idl: Added.\n* Source/WebCore/html/canvas/CanvasElementImage.cpp: Added.\n(WebCore::CanvasElementImage::create):\n(WebCore::CanvasElementImage::CanvasElementImage):\n(WebCore::CanvasElementImage::width const):\n(WebCore::CanvasElementImage::height const):\n(WebCore::CanvasElementImage::close):\n* Source/WebCore/html/canvas/CanvasElementImage.h: Added.\n* Source/WebCore/html/canvas/CanvasElementImage.idl: Added.\n* Source/WebCore/html/canvas/CanvasPaintEvent.cpp: Added.\n(WebCore::CanvasPaintEvent::create):\n(WebCore::CanvasPaintEvent::CanvasPaintEvent):\n(WebCore::CanvasPaintEvent::changedElements const):\n* Source/WebCore/html/canvas/CanvasPaintEvent.h: Added.\n* Source/WebCore/html/canvas/CanvasPaintEvent.idl: Added.\n* Source/WebCore/html/canvas/CanvasRenderingContext2D.idl:\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::drawElementImage):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:\n* Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl:\n* Source/WebCore/html/canvas/WebGLCopyElementImageConfig.h: Added.\n* Source/WebCore/html/canvas/WebGLCopyElementImageConfig.idl: Added.\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:\n(WebCore::WebGLRenderingContextBase::texElementImage2D):\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.idl:\n* Source/WebCore/inspector/InspectorCanvasArguments.cpp:\n(WebCore::InspectorCanvasArgumentProcessor\u003cIDLDictionary\u003cWebGLCopyElementImageConfig\u003e\u003e::operator):\n(WebCore::InspectorCanvasArgumentProcessor\u003cIDLInterface\u003cCanvasElementImage\u003e\u003e::operator):\n(WebCore::InspectorCanvasArgumentProcessor\u003cIDLCanvasElementImageSourceUnion\u003e::operator):\n* Source/WebCore/inspector/InspectorCanvasArguments.h:\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/CMakeLists.txt:\n* Source/WebCore/html/OffscreenCanvas.cpp:\n(WebCore::OffscreenCanvas::getElementTransform):\n* Source/WebCore/html/OffscreenCanvas.h:\n* Source/WebCore/html/OffscreenCanvas.idl:\n\nCanonical link: https://commits.webkit.org/318425@main",
      "email": "said@apple.com",
      "hash": "94e061f54bdab7b585afe1445375d14103ba50b6",
      "subject": "[HTML-in-Canvas] Implement the IDL changes for HTML-in-Canvas"
    },
    "318426@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "318426@main",
      "clUrl": "https://commits.webkit.org/318426@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320859\n\nUnreviewed test gardening.\n\n* WebDriverTests/TestExpectations.json:\n\nCanonical link: https://commits.webkit.org/318426@main",
      "email": "lmoura@igalia.com",
      "hash": "4f2ba3b3a281a985ebe89719094ef30c05d8b855",
      "subject": "[WebDriver] Gardening user-prompt failures"
    },
    "318427@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318427@main",
      "clUrl": "https://commits.webkit.org/318427@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320752\nrdar://183751460\n\nReviewed by Chris Dumez.\n\ncreate() adds to spaceSplitStringTable() before it knows the token count, then\nreturns nullptr for whitespace-only input, leaving an entry that is never filled in.\ndestroy() only removes keys that got a SpaceSplitStringData, so nothing reclaims\nthese, and the table is a NeverDestroyed. Since the constructor filters empty\nstrings but not whitespace-only ones, script grows it for the lifetime of the\nprocess, retaining one AtomString per entry:\n\n    for (let i = 1; i \u003c 100000; ++i)\n        element.className = \" \".repeat(i);\n\nRemove the entry before returning nullptr. No behavior change: a cached null was\nalready the right answer for such a key, it just could not be freed.\n\nNo test, because the table is a file-local NeverDestroyed with no size accessor and\nthe leaked entries are unreachable from any existing testing hook. A regression test\nwould need a SpaceSplitStringData size accessor plus an Internals counter, as\nmemoryCacheSize() has.\n\nAlso replace containsAll()'s do/while, which read other[0] before testing\nother.m_size, with a range-based for; zero-token instances are ruled out by both the\nconstructor and create(), so this is hardening, not a fix. While here, make\ncontainsAll() and contains() const.\n\n* Source/WebCore/dom/SpaceSplitString.cpp:\n(WebCore::SpaceSplitStringData::containsAll const):\n(WebCore::SpaceSplitStringData::create):\n(WebCore::SpaceSplitStringData::containsAll): Deleted.\n* Source/WebCore/dom/SpaceSplitString.h:\n(WebCore::SpaceSplitStringData::contains const):\n(WebCore::SpaceSplitStringData::contains): Deleted.\n\nCanonical link: https://commits.webkit.org/318427@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "1bbc068de5dae4fa194a1c705aeada4d4641baa6",
      "subject": "SpaceSplitStringData::create() leaks a table entry for every distinct whitespace-only class attribute value"
    },
    "318428@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "318428@main",
      "clUrl": "https://commits.webkit.org/318428@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319855\nrdar://182753821\n\nReviewed by Yusuke Suzuki.\n\nImplement the Stage 4 proposal-intl-era-monthcode[1] end-to-end and drop the\nuseIntlEraMonthcode transition flag.\n\nCalendarICUBridge is consolidated around the intl-era spec ops. A canonical\neraTable() replaces per-calendar if-ladders in CanonicalizeEraInCalendar,\nCalendarDateArithmeticYearForEraYear, and RemapNonPositiveEraYear.\n\nNew IsValidMonthCodeForCalendar, YearContainsMonthCode, ConstrainMonthCode\n(with ~constrain~/~reject~ overflow), and MonthCodeOrdinalInYear share\nalgorithms via cursor-taking Internal variants to avoid withCalendar\ncache-lock re-entry.\n\nEra emission is unified via emitEraProleptic and\nemitEraFromICU. Calendar-category predicates and ICU boilerplate helpers\nreplace repeated inline patterns.\n\nAudited 7 distinct calendar-behavior clusters in CalendarICUBridge.cpp and\nIntlDateTimeFormat.cpp against standalone ICU repros and icu4x/temporal_rs\ncross-checks. 6 of the 7 trace to a confirmed, filable ICU4C calendar-data\nbug; the 7th (Hebrew never setting UCAL_IS_LEAP_MONTH) is confirmed\nintentional API design, not a bug, and needs no radar. Of the 6 confirmed\nbugs, 5 are tagged ICU4C-WORKAROUND in code and are pure stopgaps that fully\ndisappear once ICU ships a fix; the 6th (Chinese/Dangi, rdar://182965648) is\ndeliberately left untagged as a workaround, since its ±10000-year ISO\nfallback is a permanent design choice independent of that specific bug (see\nbelow).\n\n- rdar://182952830 (stale ucal_getLimit after ucal_add(MONTH, -1)),\n  rdar://182960658 (Indian/Saka extreme-year round-trip), and\n  rdar://182963532 (Buddhist/ROC/Japanese pre-1582 Julian arithmetic)\n  already had correct, complete workarounds; no changes needed. All three\n  fully disappear once ICU fixes the underlying behavior.\n\n- rdar://182965648 (Chinese/Dangi: ucal_getMillis succeeds but the paired\n  ucal_get(UCAL_EXTENDED_YEAR) fails at extreme years) was only handled on\n  the construction side (NonISOCalendarDateToISO). Every calendar field\n  accessor (year, month, day, monthCode, dayOfYear, daysInMonth, daysInYear,\n  monthsInYear) is now fixed to fall back to the ISO calendar's own fields\n  beyond the same ±10000 threshold, instead of throwing (RangeError: Failed\n  to read calendar fields from ICU) or silently returning stale, incorrect\n  values. Unlike the other five, this fallback does NOT go away once ICU\n  fixes the ucal_getMillis/ucal_get inconsistency: the ±10000 threshold\n  matches icu4x's own WELL_BEHAVED_ASTRONOMICAL_RANGE and is required by\n  test262 extreme-dates.js regardless of that specific ICU bug, since\n  Chinese/Dangi astronomical calculations are unreliable that far out on\n  any implementation.\n\n- rdar://182953351 (Islamic calendar era architecturally locked at 0, no\n  pre-Hijra era; Coptic never emits its second era for pre-AM dates) is\n  partially fixed: the era-text override now only fires when the caller\n  actually requested an era field (it previously spliced era text into\n  format()/formatToParts() output unconditionally). formatRange() and\n  formatRangeToParts() still don't apply the override at all; fixing that\n  properly needs per-endpoint override text (a range whose ends fall on\n  opposite sides of the era boundary can't be expressed with one override\n  string), which is complexity not worth adding to a workaround that fully\n  disappears once ICU selects the correct era natively.\n\n- rdar://182958553 (Hebrew calendar year 0 classified \"Deficient\" leap year\n  instead of \"Regular\", giving Kislev 29 days instead of 30) remains only\n  partially addressed: the existing workaround relabels ICU's single native\n  Tevet D1 slot as the fabricated Kislev D30, but never shifts the rest of\n  the year by the day it inserts, so dayOfYear under-counts by 1 from Tevet\n  D1 onward and the true Tevet D1 is unreachable. A correct fix means\n  re-deriving every field for the remainder of year 0, which isn't worth\n  hand-rolling for a workaround that fully disappears once ICU's\n  classification matches icu4x.\n\nThe last two are left as FIXMEs with regression tests gated behind\n`if (false)` (temporal-hebrew-year0-kislev.js, intl-datetimeformat.js),\nto be flipped on once ICU ships the underlying fixes, rather than growing\nmore workaround logic in this codebase. intl-datetimeformat.js also gained\ncoverage pinning down the era-text override's known compatibility boundary\n(hardcoded English text, era width ignored, wrong pattern position for\nnon-English locales) so it stays visible without expanding the override's\nscope.\n\n[1] https://github.com/tc39/proposal-intl-era-monthcode\n\nTests: JSTests/stress/intl-datetimeformat.js\n       JSTests/stress/temporal-era-aliases.js\n       JSTests/stress/temporal-era-boundaries.js\n       JSTests/stress/temporal-extreme-proleptic.js\n       JSTests/stress/temporal-hebrew-year0-kislev.js\n       JSTests/stress/temporal-lunisolar-and-wrappers.js\n       JSTests/stress/temporal-nonISO-arithmetic.js\n       JSTests/stress/temporal-nonISO-with.js\n       JSTests/stress/temporal-nonisoresolvefields-monthcode-validation.js\n       JSTests/stress/temporal-resolvefields-error-ordering.js\n       Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp\n\nCanonical link: https://commits.webkit.org/318428@main",
      "email": "yijia_huang@apple.com",
      "hash": "99473681ff5ee5bc7d666904274b1491a81c5196",
      "subject": "[JSC][Temporal][Intl.Era] Implement intl-era-monthcode"
    },
    "318429@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318429@main",
      "clUrl": "https://commits.webkit.org/318429@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320849\nrdar://183881009\n\nReviewed by Keith Miller.\n\nRemove USE(BUILTIN_FRAME_ADDRESS) as all JIT platfroms should implement it now.\n\n* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:\n(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):\n* Source/JavaScriptCore/interpreter/CallFrame.h:\n* Source/JavaScriptCore/interpreter/FrameTracers.h:\n(JSC::JITOperationPrologueCallFrameTracer::JITOperationPrologueCallFrameTracer):\n* Source/JavaScriptCore/jit/AssemblyHelpers.cpp:\n(JSC::AssemblyHelpers::prepareWasmCallOperation):\n* Source/JavaScriptCore/jit/AssemblyHelpers.h:\n(JSC::AssemblyHelpers::prepareCallOperation):\n* Source/JavaScriptCore/jit/JITOperations.cpp:\n(JSC::ICSlowPathCallFrameTracer::ICSlowPathCallFrameTracer):\n* Source/JavaScriptCore/llint/InPlaceInterpreter.asm:\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::emitPrepareWasmOperation):\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h:\n* Source/WTF/wtf/PlatformUse.h:\n\nCanonical link: https://commits.webkit.org/318429@main",
      "email": "ysuzuki@apple.com",
      "hash": "2a8926009f4582ee79a99ddc2ab83a21aa29476c",
      "subject": "[JSC] Remove USE_BUILTIN_FRAME_ADDRESS, as it should be always enabled on JIT platforms"
    },
    "318430@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "318430@main",
      "clUrl": "https://commits.webkit.org/318430@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320862\n\nUnreviewed test gardening.\n\nAlongside selenium, drive-by gardening of a number of persistent\nfailures.\n\n* WebDriverTests/TestExpectations.json:\n\nCanonical link: https://commits.webkit.org/318430@main",
      "email": "lmoura@igalia.com",
      "hash": "77331782b1ab3393dcd786e99f94131ffbfbdd4e",
      "subject": "[WebDriver] Gardening selenium BiDi event failures and other leftovers"
    },
    "318431@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318431@main",
      "clUrl": "https://commits.webkit.org/318431@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320789\n\nReviewed by Yusuke Suzuki.\n\nSince 172894@main, parseProperty calls setInnerArrowFunctionUsesEval() for every\nshorthand property inside an arrow function, so the enclosing function materializes\n`arguments` into its lexical environment and closures returned from it retain all\ncall arguments.\n\n    function make(opts) {\n        const worker = (r) =\u003e ({ r });\n        return { worker };\n    }\n    // `make` emits create_direct_arguments + put_to_scope; `opts` stays alive\n\nuseVariable() already sets m_usesEval for `{ eval }`, which\nsetInnerArrowFunctionUsesEvalAndUseArgumentsIfNeeded() propagates at scope pop,\nso drop the unconditional call.\n\nTest: JSTests/stress/arrow-function-object-literal-shorthand-should-not-capture-arguments.js\n\n* JSTests/stress/arrow-function-object-literal-shorthand-should-not-capture-arguments.js: Added.\n(shouldBe):\n(make.inner):\n(make):\n(shorthandEvalAndArguments):\n(shorthandWithDirectEval):\n(setTimeout):\n* Source/JavaScriptCore/parser/Parser.cpp:\n(JSC::Parser\u003cLexerType\u003e::parseProperty):\n\nCanonical link: https://commits.webkit.org/318431@main",
      "email": "sosuke@bun.sh",
      "hash": "5d6747ef60d4327f25547d55277cb7735a623854",
      "subject": "[JSC] Object-literal shorthand in an arrow function should not force the enclosing function to capture arguments"
    },
    "318432@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318432@main",
      "clUrl": "https://commits.webkit.org/318432@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320799\n\nReviewed by Yusuke Suzuki.\n\nThe LLInt prologue's frame-clearing loop from 199147@main zeroes the frame 8 bytes\nper top-tested iteration, and on ARM64 the immediate store re-materializes zero\nevery iteration: 12 instructions per 16 bytes.\n\nBoth bounds are stack-aligned (numCalleeLocals is always rounded to\nstackAlignmentRegisters and sp is aligned before the loop), so hoist the zero\nregister and store 16 bytes per bottom-tested iteration (stp on ARM64, two\nstoreq on X86_64): 4 instructions per 16 bytes on ARM64, 5 on X86_64.\n\n* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:\n\nCanonical link: https://commits.webkit.org/318432@main",
      "email": "sosuke@bun.sh",
      "hash": "f40dcdd0730da87608e5eec3469d8abbb513b681",
      "subject": "[JSC] LLInt prologue should zero the new frame 16 bytes per iteration"
    },
    "318433@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "318433@main",
      "clUrl": "https://commits.webkit.org/318433@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320847\nrdar://183875371\n\nReviewed by Abrar Rahman Protyasha.\n\nRefactor how text extraction handles PDF data to properly handle link URLs; see below for more info.\n\nTest: TextExtractionTests.ExtractFromPDFLink\n\n* Source/WebCore/page/text-extraction/TextExtraction.cpp:\n(WebCore::TextExtraction::shortenedURLString):\n(WebCore::TextExtraction::extractRecursive):\n(WebCore::TextExtraction::extractItem):\n* Source/WebCore/page/text-extraction/TextExtraction.h:\n* Source/WebCore/page/text-extraction/TextExtractionTypes.h:\n\nRemove `pdfMarkdownContent`, and push existing PDF text extraction logic into `UnifiedPDFPlugin`,\nwhere we can more easily include structured data (like links with link URLs).\n\n* Source/WebKit/Shared/TextExtractionToStringConversion.cpp:\n(WebKit::formatPDFMarkdownForOutput): Deleted.\n* Source/WebKit/Shared/TextExtractionToStringConversion.h:\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView+TextExtraction.mm:\n(-[WKWebView _extractDebugTextWithConfigurationWithoutUpdatingFilterRules:assertionScope:completionHandler:]):\n* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:\n(WebKit::PDFPluginBase::textExtractionContent const):\n\nAdd a helper method that returns a textual representation of the extracted PDF that includes URLs\n(in the future, we can augment this to include more metadata, such as lists and images).\n\n* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:\n* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:\n(WebKit::UnifiedPDFPlugin::textExtractionContent const):\n* Source/WebKit/WebProcess/Plugins/PluginView.cpp:\n(WebKit::PluginView::textExtractionContent const):\n* Source/WebKit/WebProcess/Plugins/PluginView.h:\n* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:\n(WebKit::itemsForPDFTextAndLinks):\n(WebKit::WebFrame::requestTextExtraction):\n* Tools/TestWebKitAPI/Helpers/cocoa/PDFTestHelpers.h:\n* Tools/TestWebKitAPI/Helpers/cocoa/PDFTestHelpers.mm:\n(TestWebKitAPI::appendPDFBytes):\n(TestWebKitAPI::testPDFDataWithLink):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:\n(TestWebKitAPI::(TextExtractionTests, ExtractFromPDFLink)):\n\nCanonical link: https://commits.webkit.org/318433@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "34437eecfc86da42a5bc7de40f1090e30c988fdd",
      "subject": "[Text Extraction] Include links and link URLs in extracted PDFs"
    },
    "318434@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "318434@main",
      "clUrl": "https://commits.webkit.org/318434@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320854\n\nReviewed by David Kilzer.\n\n* Source/WebKit/Platform/IPC/HandleMessage.h:\n(IPC::handleMessage):\n(IPC::handleMessageSynchronous):\n* Source/WebKit/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:\n\nCanonical link: https://commits.webkit.org/318434@main",
      "email": "cdumez@apple.com",
      "hash": "516a3d01292e0b428841de106b3345f95165a9e0",
      "subject": "[Safer CPP] Address warnings in Source/WebKit/Platform/IPC/HandleMessage.h"
    },
    "318435@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318435@main",
      "clUrl": "https://commits.webkit.org/318435@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320824\nrdar://183834334\n\nReviewed by Keith Miller.\n\nThis patch replaces existing HandleBlock / HandleSet with new StrongBlock and\nStrongSet. The mechanism is significantly more efficient in terms of memory\nand faster performance.\n\nThe purpose of StrongBlock and StrongSet are offering Strong\u003c\u003e root slots.\nUnlike MarkedBlock and WeakBlock, StrongBlock's Strong\u003c\u003e's Slot can be\ndeallocated synchronously at any point, while MarkedBlock and WeakBlock's slots\nbecome dead only when GC runs. This means that StrongBlock and StrongSet\nshould follow to the design like high-performance malloc/free. Based on\nthat, our new design is based on segregated page implementation in libpas.\n\nEach StrongBlock has control header and slots. Initially it starts with\nbump allocation mode, so StrongSet maintains bump cursor and allocate slots.\nIt is possible that some slots get deallocated while using this\nStrongBlock, so deallocated slots are constructing intrusive freelist:\neach slot is pointing at the previous freelist's head. And StrongSet\nfirst allocate a slot from this freelist, and then continue bump allocation.\nWhen all slots become deallocated while StrongSet is using this\nStrongBlock, then we reset the bump cursor to use this block from the beginning.\n\nStrongSet retires the currently used block when freelist and bump cursor\nboth exhausted. This means that StrongBlock is full and all slots are active.\nThen, StrongSet retires this block and use the next block.\n\nOnce retired block will eventually get deallocated slots. Each\ndeallocation constructs a freelist inside a StrongBlock, and StrongBlock\nis monitoring the ratio of deallocated / active. And when it crossed the\nthreshold, we move this StrongBlock state \"available\" for the reuse.\nStrongSet will eventually look for a new block for allocation and find\nit from available linked-list.\n\nOnce StrongBlock becomes available, we reduce the threshold further and\nstill attempt to detect when StrongBlock becomes fully empty. Then we\ndestroy the freelist as now we can use bump allocation for this block.\nAnd we remove it from available linked-list and move it to one spare block slot.\nIf we already have a spare block (which guarantees it is empty), then we\ndeallocate the whole StrongBlock to reduce memory footprint. We keep one\nempty block as a spare block, and StrongSet will reuse it when available\n(freelist mode) blocks are exhausted.\n\nTests: JSTests/stress/strong-handle-gc.js\n       Tools/TestWebKitAPI/Tests/JavaScriptCore/StrongBlock.cpp\n\n* JSTests/stress/strong-handle-gc.js: Added.\n(shouldBe):\n(churn):\n* Source/JavaScriptCore/CMakeLists.txt:\n* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:\n* Source/JavaScriptCore/Sources.txt:\n* Source/JavaScriptCore/heap/Handle.h:\n* Source/JavaScriptCore/heap/HandleBlock.h: Removed.\n* Source/JavaScriptCore/heap/HandleBlockInlines.h: Removed.\n* Source/JavaScriptCore/heap/HandleSet.cpp: Removed.\n* Source/JavaScriptCore/heap/HandleSet.h: Removed.\n* Source/JavaScriptCore/heap/Heap.cpp:\n(JSC::Heap::Heap):\n(JSC::Heap::clearConcurrentRetainedDataIfPossible):\n* Source/JavaScriptCore/heap/Heap.h:\n* Source/JavaScriptCore/heap/HeapInlines.h:\n(JSC::Heap::forEachProtectedCell):\n* Source/JavaScriptCore/heap/Strong.h:\n* Source/JavaScriptCore/heap/StrongBlock.h: Added.\n(JSC::StrongBlock::BlockListNode::block):\n(JSC::StrongBlock::strongSet const):\n(JSC::StrongBlock::usedCount const):\n(JSC::StrongBlock::isEmpty const):\n(JSC::StrongBlock::isFull const):\n(JSC::StrongBlock::isAvailable const):\n(JSC::StrongBlock::isCurrent const):\n(JSC::StrongBlock::freeListHead const):\n(JSC::StrongBlock::freeNotifyThreshold const):\n(JSC::StrongBlock::blocksNode):\n(JSC::StrongBlock::availableNode):\n(JSC::StrongBlock::setCurrent):\n(JSC::StrongBlock::pushFreeSlot):\n(JSC::StrongBlock::setFreeNotifyThreshold):\n(JSC::StrongBlock::~StrongBlock):\n(JSC::StrongBlock::blockContaining):\n(JSC::StrongBlock::blockFor):\n(JSC::StrongBlock::payload const):\n(JSC::StrongBlock::payloadEnd const):\n(JSC::StrongBlock::indexOf const):\n(JSC::StrongBlock::slotAtIndex const):\n(JSC::StrongBlock::encodeFreeListEntry):\n(JSC::StrongBlock::decodeFreeListEntry):\n(JSC::StrongBlock::setFreeListHead):\n(JSC::StrongBlock::incrementUsedCount):\n(JSC::StrongBlock::decrementUsedCount):\n(JSC::StrongBlock::resetToBumpMode):\n* Source/JavaScriptCore/heap/StrongInlines.h:\n(JSC::shouldStrongDestructorGrabLock\u003e::Strong):\n(JSC::shouldStrongDestructorGrabLock\u003e::set):\n(JSC::=):\n* Source/JavaScriptCore/heap/StrongSet.cpp: Added.\n(JSC::StrongBlock::StrongBlock):\n(JSC::StrongBlock::create):\n(JSC::StrongSet::StrongSet):\n(JSC::StrongSet::~StrongSet):\n(JSC::StrongSet::destroyBlock):\n(JSC::StrongSet::appendAvailable):\n(JSC::StrongSet::takeAvailable):\n(JSC::StrongSet::retireCurrentBlock):\n(JSC::StrongSet::installCurrentBlock):\n(JSC::StrongSet::allocateSlow):\n(JSC::StrongSet::didFreeSlot):\n(JSC::StrongSet::didBecomeEmpty):\n(JSC::StrongSet::visitAggregateImpl):\n* Source/JavaScriptCore/heap/StrongSet.h: Added.\n(JSC::StrongSet::vm):\n(JSC::StrongSet::blockCount const):\n(JSC::StrongSet::availabilityCount const):\n(JSC::StrongSet::availableBlockCount const):\n(JSC::StrongSet::setFor):\n(JSC::StrongSet::tryAllocateFromCurrent):\n(JSC::StrongSet::allocate):\n(JSC::StrongSet::deallocate):\n(JSC::StrongSet::deallocateFromCurrentBlock):\n(JSC::StrongSet::forEachSlot):\n(JSC::StrongSet::forEachLiveCell):\n(JSC::StrongSet::forEachStrongHandle):\n* Source/WebCore/WebCorePrefix.h:\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/JavaScriptCore/StrongBlock.cpp: Added.\n(TestWebKitAPI::TEST(JavaScriptCore_StrongBlock, Geometry)):\n(TestWebKitAPI::TEST(JavaScriptCore_StrongBlock, FreeListEntriesAreTaggedNonCells)):\n(TestWebKitAPI::StrongSetTest::vm):\n(TestWebKitAPI::StrongSetTest::set):\n(TestWebKitAPI::StrongSetTest::fill):\n(TestWebKitAPI::StrongSetTest::drain):\n(TestWebKitAPI::StrongSetTest::drainScattered):\n(TestWebKitAPI::TEST_F(StrongSetTest, Addressing)):\n(TestWebKitAPI::TEST_F(StrongSetTest, FirstBlockIsLazy)):\n(TestWebKitAPI::TEST_F(StrongSetTest, GrowsAcrossBlocks)):\n(TestWebKitAPI::TEST_F(StrongSetTest, FreeWhileStillBumpIsReusedImmediately)):\n(TestWebKitAPI::TEST_F(StrongSetTest, FreeListHandsBackEverySlotExactlyOnce)):\n(TestWebKitAPI::TEST_F(StrongSetTest, DrainToEmptyRestoresBumpMode)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ReclamationHysteresis)):\n(TestWebKitAPI::TEST_F(StrongSetTest, NonCurrentEmptyBlockBecomesSpare)):\n(TestWebKitAPI::TEST_F(StrongSetTest, CurrentEmptyBeforeSpareLeavesOnlyOneIdleBlock)):\n(TestWebKitAPI::TEST_F(StrongSetTest, EmptyBlocksBeyondSpareAreFreed)):\n(TestWebKitAPI::TEST_F(StrongSetTest, FreeIntoNonCurrentBlockLeavesCurrentBlockAlone)):\n(TestWebKitAPI::TEST_F(StrongSetTest, RetiredFullBlockRejoinsOnlyAtWatermark)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ReAdmittedBlockAllocatesOnlyFreedSlots)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ReinstalledSpareBumpsFromTheStart)):\n(TestWebKitAPI::TEST_F(StrongSetTest, AvailableChainDrainsInAppendOrder)):\n(TestWebKitAPI::TEST_F(StrongSetTest, AvailableChainUnlinksBlockThatEmptiesWhileAvailable)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ChainIsEmptyAfterLinkedBlocksAreDestroyed)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ThrashPatternCausesNoRepeatedEligibilityTransitions)):\n(TestWebKitAPI::TEST_F(StrongSetTest, CursorHandoffAcrossBlockSwitchLosesNoSlot)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ForEachStrongHandleAcrossBlocks)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ForEachStrongHandleSkipsEmptySlots)):\n(TestWebKitAPI::TEST_F(StrongSetTest, StrongHandlesSurviveGCAcrossBlocks)):\n(TestWebKitAPI::TEST_F(StrongSetTest, SetTransitionsAreMarkedCorrectly)):\n(TestWebKitAPI::TEST_F(StrongSetTest, ChurnDoesNotGrowBlockCount)):\n\nCanonical link: https://commits.webkit.org/318435@main",
      "email": "ysuzuki@apple.com",
      "hash": "ff64aee116d45c7475acd8f59e087ace63af548f",
      "subject": "[JSC] Introduce StrongBlock"
    },
    "318436@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318436@main",
      "clUrl": "https://commits.webkit.org/318436@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320835\nrdar://183854176\n\nReviewed by Frédéric Wang Nélar.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/c7fdee80f3f17b4e9813964916afdfd57ace863f\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/crashtests/mathml-in-svg-001.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/crashtests/mozilla/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/crashtests/mtd-blockify-children.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/direction/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/menclose/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/semantics-001-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/semantics-001.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/semantics-004-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/semantics-004.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/semantics-005-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/semantics-005.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/tokens/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/floats/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/out-of-flow/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/overflow/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/parsing/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/writing-mode/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-hreflang-getter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-hreflang-getter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-hreflang-setter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-hreflang-setter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-ping-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-ping.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-type-getter-001-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-type-getter-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-type-getter-002-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-type-getter-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-type-setter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-type-setter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/anchor-hyperlinkutils-getter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/anchor-hyperlinkutils-getter-setter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/anchor-hyperlinkutils-getter-setter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/anchor-hyperlinkutils-getter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/anchor-visited-privacy-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/anchor-visited-privacy.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/attributeStyleMap-getter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/attributeStyleMap-getter-setter-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/attributeStyleMap-getter-setter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/attributeStyleMap-getter.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-001-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-002-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-003-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-003.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-004-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/autofocus-004.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/canvas-visited-privacy-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/canvas-visited-privacy.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative-ref.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-001-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-001.tentative-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-001-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-001.tentative-ref.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-001.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-002.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-href-002.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/focus-blur-001-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/focus-blur-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-001-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-001.tentative-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-001-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-001.tentative-ref.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-001.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-002-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-002.tentative-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-002-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-002.tentative-ref.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-002.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-003.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-003.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-004.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-004.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-navigation-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-navigation.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-svg-or-mathml-element-interfaces-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-svg-or-mathml-element-interfaces.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-1.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-4.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-5.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-001.tentative-expected-mismatch.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-001-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-001.tentative-ref.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-001.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-002-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-002.tentative-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-002-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-002.tentative-ref.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/link-color-002.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/required-extensions-2.html:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/support/target.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/overflow/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/non-mathml-children-in-annotation.tentative-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/non-mathml-children-in-annotation.tentative-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/non-mathml-children-in-annotation.tentative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/tools/utils/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/tools/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/w3c-import.log:\n* LayoutTests/tests-options.json:\n\nCanonical link: https://commits.webkit.org/318436@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "e9bb887b3911f3005f6d507220709d897ae430f7",
      "subject": "Resync `mathml` from WPT Upstream"
    },
    "318437@main": {
      "author": "Rob Buis",
      "avatar": "https://www.gravatar.com/avatar/74fb5af173895d2a7814b0aed1238a39?d=identicon\u0026s=64",
      "cl": "318437@main",
      "clUrl": "https://commits.webkit.org/318437@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320084\nrdar://183606151\n\nReviewed by Alan Baradlay.\n\nStyle the block-overflow ellipsis based on the root block formatting context style instead of the first line style as per [1]:\n\"The block overflow ellipsis must not be included in either the ::first-letter nor the ::first-line pseudo-elements.\"\n\n[1] https://drafts.csswg.org/css-overflow-4/#block-ellipsis\n\n* LayoutTests/TestExpectations:\n* Source/WebCore/rendering/EllipsisBoxPainter.cpp:\n(WebCore::EllipsisBoxPainter::paint):\n\nCanonical link: https://commits.webkit.org/318437@main",
      "email": "rbuis@igalia.com",
      "hash": "99611a9b664e29254de0b0cd791a544a17e21ccd",
      "subject": "Style the block-overflow ellipsis based on the root block fc"
    },
    "318440@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318440@main",
      "clUrl": "https://commits.webkit.org/318440@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320814\n\nReviewed by Rob Buis.\n\nThe container paint cull compared the dirty rect against\nvisualOverflowRectEquivalent(), which recomputes the cached visual\noverflow on a miss by unioning all descendant bounds. That cache is\ninvalidated whenever any descendant changes its transform, so for\ncontainer leafs that have their transform changed, the union was\nrecomputed every frame - O(descendants) of overhead for content\nthat rarely culls anyway.\n\nAdd cachedVisualOverflowRectIfAvailable(), which peeks at the cached rect\nwithout computing it on a miss, and only run the cull when the rect is\nalready cached.\n\nCovered by existing tests.\n\n* Source/WebCore/rendering/svg/RenderSVGContainer.cpp:\n(WebCore::RenderSVGContainer::paint):\n* Source/WebCore/rendering/svg/RenderSVGModelObject.h:\n(WebCore::RenderSVGModelObject::cachedVisualOverflowRectIfAvailable const):\n\nCanonical link: https://commits.webkit.org/318440@main",
      "email": "nzimmermann@igalia.com",
      "hash": "fe47548b9528d184af449c5e744b0e291533b2df",
      "subject": "[LBSE] Skip per-frame visual-overflow recompute in RenderSVGContainer paint cull"
    },
    "318441@main": {
      "author": "Adrian Perez de Castro",
      "avatar": "https://www.gravatar.com/avatar/30ffea8cf404586741a8f5f7110c0914?d=identicon\u0026s=64",
      "cl": "318441@main",
      "clUrl": "https://commits.webkit.org/318441@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320840\n\nReviewed by Adrian Taylor and Nikolas Zimmermann.\n\n* Tools/Scripts/swift/swiftc-wrapper.sh: Prefix LTO flags (both plain\n  -flto and -flto=\u003cparam\u003e) with -Xcc to have those passed to clang and\n  prevent swiftc from trying to use them.\n\nCanonical link: https://commits.webkit.org/318441@main",
      "email": "aperez@igalia.com",
      "hash": "de831160fc15ca6d798b834e5ae8e87c88fa1470",
      "subject": "[Swift] LTO linker flags unrecognezed by swiftc"
    },
    "318442@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "318442@main",
      "clUrl": "https://commits.webkit.org/318442@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320764\nrdar://183711076\n\nUnreviewed, reverting 316049@main\n\nReverted change:\n\n    x.com: Software keyboard delete key is unresponsive after using dictation\n    https://bugs.webkit.org/show_bug.cgi?id=317864\n    rdar://163454428\n\nRevert \"x.com: Software keyboard delete key is unresponsive after using dictation\"\n\nThis reverts commit ec004b440d887772ccf6b4b7a5f57a75cf317cf8.\n\nCanonical link: https://commits.webkit.org/318442@main",
      "email": "sammy.gill@apple.com",
      "hash": "0b462501b25f8ab2f46afd7a6869505c187c070d",
      "subject": "REGRESSION(316049@main): iPhone Mirroring Mail erroneously marks autocorrected text"
    },
    "318443@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318443@main",
      "clUrl": "https://commits.webkit.org/318443@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320679\nrdar://183663124\n\nReviewed by Chris Dumez.\n\nXMLHttpRequest declares ten bitfields that were all initialized in the constructor's\ninitializer list, which puts the default state of each flag far from its declaration.\nAll ten were declared as plain unsigned, and the two multi-bit ones, m_readyState and\nm_responseType, carried a trailing comment naming the enum they actually hold, so\nevery read and write had to launder the value through a static_cast.\n\nMove the defaults to default member initializers and give each field its real type:\nbool for the eight single-bit flags, State and ResponseType for the two multi-bit\nfields, which lets the accessors and assignments use the values directly. State and\nResponseType both have uint8_t as their underlying type and still fit in three bits,\nso sizeof(XMLHttpRequest) is unchanged.\n\n* Source/WebCore/xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::XMLHttpRequest): Drop the ten bitfield initializers.\n(WebCore::XMLHttpRequest::setResponseType): Assign the enum directly.\n(WebCore::XMLHttpRequest::changeState): Ditto.\n(WebCore::XMLHttpRequest::abort): Ditto.\n(WebCore::XMLHttpRequest::didReachTimeout): Ditto.\n* Source/WebCore/xml/XMLHttpRequest.h:\n(WebCore::XMLHttpRequest::readyState const): Return m_readyState without a cast.\n(WebCore::XMLHttpRequest::responseType const): Ditto for m_responseType.\n\nCanonical link: https://commits.webkit.org/318443@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "3224b48bd584c46f47834f8935371ea84f570481",
      "subject": "Use default member initializers for XMLHttpRequest's bitfields"
    },
    "318444@main": {
      "author": "Fady Farag",
      "avatar": "https://www.gravatar.com/avatar/0ac5127c69f90d0c57054173ae4c3108?d=identicon\u0026s=64",
      "cl": "318444@main",
      "clUrl": "https://commits.webkit.org/318444@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320855\nrdar://183887604\n\nReviewed by Chris Dumez.\n\nInitially, `VisibleRectContext` was passed by value throughout the render tree which\ntriggered `NoDeleteChecker`'s parameter rule where it counts a by-value parameter\nwith a non-trivially-destructible member against the callee. This introduces an architectural\nchange where the `VisibleRectContext` struct keeps the traversal-constant configuration\nand is now passed by const reference and mutable per-step state moves to\na new trivially-destructible `VisibleRectState` struct. This makes the `NODELETE` annotations\non the SVG hidden container overrides provably correct.\n\n* Source/WebCore/SaferCPPExpectations/NoDeleteCheckerExpectations:\n* Source/WebCore/page/IntersectionObserver.cpp:\n(WebCore::computeClippedRectInRootContentsSpace):\n(WebCore::IntersectionObserver::computeIntersectionState const):\n* Source/WebCore/page/LargestContentfulPaintData.cpp:\n(WebCore::LargestContentfulPaintData::computeViewportIntersectionRect):\n* Source/WebCore/page/LocalFrameView.cpp:\n(WebCore::LocalFrameView::visibleRectOfChild const):\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::applyCachedClipAndScrollPosition const):\n(WebCore::RenderBox::computeVisibleRectsInContainer const):\n* Source/WebCore/rendering/RenderBox.h:\n* Source/WebCore/rendering/RenderInline.cpp:\n(WebCore::RenderInline::clippedOverflowRect const):\n(WebCore::RenderInline::computeVisibleRectsInContainer const):\n* Source/WebCore/rendering/RenderInline.h:\n* Source/WebCore/rendering/RenderLayerModelObject.cpp:\n(WebCore::RenderLayerModelObject::applyCachedClipAndScrollPosition const):\n(WebCore::RenderLayerModelObject::computeVisibleRectsInSVGContainer const):\n* Source/WebCore/rendering/RenderLayerModelObject.h:\n* Source/WebCore/rendering/RenderObject.cpp:\n(WebCore::RenderObject::clippedOverflowRect const):\n(WebCore::RenderObject::computeRects const):\n(WebCore::RenderObject::computeFloatRectForRepaint const):\n(WebCore::RenderObject::computeVisibleRectsInContainer const):\n(WebCore::RenderObject::computeFloatVisibleRectInContainer const):\n(WebCore::RenderObject::hasEmptyVisibleRectRespectingParentFrames const):\n(WebCore::borderAndTextRects):\n* Source/WebCore/rendering/RenderObject.h:\n* Source/WebCore/rendering/RenderObjectInlines.h:\n(WebCore::RenderObject::visibleRectContextForRepaint):\n(WebCore::RenderObject::visibleRectContextForSpatialNavigation):\n(WebCore::RenderObject::visibleRectContextForRenderTreeAsText):\n* Source/WebCore/rendering/RenderTableCell.cpp:\n(WebCore::RenderTableCell::computeVisibleRectsInContainer const):\n* Source/WebCore/rendering/RenderTableCell.h:\n* Source/WebCore/rendering/RenderTableCol.cpp:\n(WebCore::RenderTableCol::clippedOverflowRect const):\n* Source/WebCore/rendering/RenderTableCol.h:\n* Source/WebCore/rendering/RenderTableRow.cpp:\n(WebCore::RenderTableRow::clippedOverflowRect const):\n* Source/WebCore/rendering/RenderTableRow.h:\n* Source/WebCore/rendering/RenderView.cpp:\n(WebCore::RenderView::computeVisibleRectsInContainer const):\n* Source/WebCore/rendering/RenderView.h:\n* Source/WebCore/rendering/VisibleRectContext.h:\n* Source/WebCore/rendering/svg/RenderSVGBlock.cpp:\n(WebCore::RenderSVGBlock::clippedOverflowRect const):\n(WebCore::RenderSVGBlock::computeVisibleRectsInContainer const):\n(WebCore::RenderSVGBlock::computeFloatVisibleRectInContainer const):\n* Source/WebCore/rendering/svg/RenderSVGBlock.h:\n* Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp:\n(WebCore::RenderSVGHiddenContainer::clippedOverflowRect const):\n(WebCore::RenderSVGHiddenContainer::computeVisibleRectsInContainer const):\n* Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h:\n* Source/WebCore/rendering/svg/RenderSVGInline.cpp:\n(WebCore::RenderSVGInline::clippedOverflowRect const):\n(WebCore::RenderSVGInline::computeFloatVisibleRectInContainer const):\n* Source/WebCore/rendering/svg/RenderSVGInline.h:\n* Source/WebCore/rendering/svg/RenderSVGModelObject.cpp:\n(WebCore::RenderSVGModelObject::computeVisibleRectsInContainer const):\n(WebCore::RenderSVGModelObject::applyCachedClipAndScrollPosition const):\n* Source/WebCore/rendering/svg/RenderSVGModelObject.h:\n* Source/WebCore/rendering/svg/RenderSVGRoot.cpp:\n(WebCore::RenderSVGRoot::computeFloatVisibleRectInContainer const):\n* Source/WebCore/rendering/svg/RenderSVGRoot.h:\n* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:\n(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):\n(WebCore::SVGRenderSupport::computeFloatVisibleRectInContainer):\n* Source/WebCore/rendering/svg/SVGRenderSupport.h:\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.cpp:\n(WebCore::LegacyRenderSVGHiddenContainer::clippedOverflowRect const):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.h:\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp:\n(WebCore::LegacyRenderSVGModelObject::clippedOverflowRect const):\n(WebCore::LegacyRenderSVGModelObject::computeFloatVisibleRectInContainer const):\n(WebCore::LegacyRenderSVGModelObject::computeVisibleRectsInContainer const):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h:\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:\n(WebCore::LegacyRenderSVGRoot::clippedOverflowRect const):\n(WebCore::LegacyRenderSVGRoot::computeFloatVisibleRectInContainer const):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h:\n\nCanonical link: https://commits.webkit.org/318444@main",
      "email": "com.webkit.iidmsa@gmail.com",
      "hash": "b1e52cdf594f3a929ef57147f432a711d2516458",
      "subject": "Pass `VisibleRectContext` by const reference so visible rect computation can be `NODELETE`"
    },
    "318445@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "318445@main",
      "clUrl": "https://commits.webkit.org/318445@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320890\n\nReviewed by Nikolas Zimmermann.\n\nIn CoordinatedPlatformLayer m_skiaTarget is not pretected by any lock\nbecause it's only expected to be used from the compositing thread, but\nit's used from hasCommittedContentsBuffer() that can be called from gst\nthreads. Add a bool flag protected by m_lock to note when the layer has\na committed contents buffer and use it instead of hasCommittedContentsBuffer().\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:\n(WebCore::CoordinatedPlatformLayer::invalidateTarget):\n(WebCore::CoordinatedPlatformLayer::setContentsBuffer):\n(WebCore::CoordinatedPlatformLayer::replaceCurrentContentsBufferWithCopy):\n(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnTarget):\n(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnSkiaTarget):\n(WebCore::CoordinatedPlatformLayer::hasCommittedContentsBuffer const): Deleted.\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:\n\nCanonical link: https://commits.webkit.org/318445@main",
      "email": "cgarcia@igalia.com",
      "hash": "68b163ff10b4fd22635480485907df5de9e6bc7a",
      "subject": "[GTK][WPE] Skia compositor: CoordinatedPlatformLayer::hasCommittedContentsBuffer() uses m_skiaTarget and can be called from different threads"
    },
    "318446@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "318446@main",
      "clUrl": "https://commits.webkit.org/318446@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320881\n\nReviewed by Carlos Garcia Campos.\n\nCoordinatedBackingStoreTile::processPendingUpdates() has the fast path for the\ncase the whole tile content is changed. In this case, a texture was allocated,\nthen it was just freed in the case m_texture is null.\n\nSkiaBackingStore also has this fast path, but it doesn't have this problem.\nFollow the style of SkiaBackingStore.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreTile.cpp:\n(WebCore::CoordinatedBackingStoreTile::ensureTexture): Added.\n(WebCore::CoordinatedBackingStoreTile::processPendingUpdates):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreTile.h:\n\nCanonical link: https://commits.webkit.org/318446@main",
      "email": "fujii@igalia.com",
      "hash": "6580afcaf2cd700c78e415ec852b2c37227fce88",
      "subject": "[Coordinated Graphics] Unnecessary texture allocation in the fast path of CoordinatedBackingStoreTile::processPendingUpdates"
    },
    "318447@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "318447@main",
      "clUrl": "https://commits.webkit.org/318447@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=320879\u003e\n\u003crdar://183899413\u003e\n\nUnreviewed build fix.\n\nMove `try await` inside the `#expect(...)` macro in\n`applyingContentEnvironmentAffectsPageSemantics`.  The async, throwing\n`isContentEditable()` call is evaluated inside the macro's autoclosure,\nwhich is neither an async nor a throwing context, so placing `try await`\noutside the macro fails to compile.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebViewTests.swift:\n(WebViewTests.applyingContentEnvironmentAffectsPageSemantics):\n\nCanonical link: https://commits.webkit.org/318447@main",
      "email": "ddkilzer@apple.com",
      "hash": "c2108a1ff19421107b45402a89468a0dcf356456",
      "subject": "Build failure: WebViewTests.swift uses try/await outside of #expect"
    },
    "318448@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318448@main",
      "clUrl": "https://commits.webkit.org/318448@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320045\n\nReviewed by Yusuke Suzuki.\n\nStringSubstring was always lowered to operationStringSubstring(WithEnd) in\nboth tiers, while its siblings StringSlice and StringSubstr have inline fast\npaths.\n\nsubstring only differs from slice in how the range is computed: a negative\nindex clamps to 0 instead of counting from the end, and the range is reversed\nwhen start is greater than end. Clamping is monotonic, so the indices can be\nordered before it, which lets B3 fold the ordering away for constant indices.\n\nThis patch computes that range inline and shares the rest of the lowering with\nStringSlice in compileStringSliceOrSubstring, so substring now gets the empty\nstring, single character, whole string and inline substring rope fast paths\nthat slice already had.\n\n                                     Baseline                  Patched\n\n    string-substring-one-char     6.2668+-0.1659     ^      3.0261+-0.0439        ^ definitely 2.0709x faster\n    string-substring-no-end       6.6585+-0.1495     ^      3.8226+-0.0724        ^ definitely 1.7419x faster\n    string-substring-multi-chars  6.9944+-0.1302     ^      4.1724+-0.0762        ^ definitely 1.6763x faster\n    string-substring-reversed     6.9336+-0.1514     ^      4.2162+-0.0876        ^ definitely 1.6445x faster\n    string-substring-empty        4.1059+-0.0706     ^      2.5331+-0.0572        ^ definitely 1.6209x faster\n\nTests: JSTests/microbenchmarks/string-substring-empty.js\n       JSTests/microbenchmarks/string-substring-multi-chars.js\n       JSTests/microbenchmarks/string-substring-no-end.js\n       JSTests/microbenchmarks/string-substring-one-char.js\n       JSTests/microbenchmarks/string-substring-reversed.js\n       JSTests/stress/string-substring-jit-constant-indices.js\n       JSTests/stress/string-substring-jit.js\n\n* JSTests/microbenchmarks/string-substring-empty.js: Added.\n(substring):\n* JSTests/microbenchmarks/string-substring-multi-chars.js: Added.\n(substring):\n* JSTests/microbenchmarks/string-substring-no-end.js: Added.\n(substring):\n* JSTests/microbenchmarks/string-substring-one-char.js: Added.\n(substring):\n* JSTests/microbenchmarks/string-substring-reversed.js: Added.\n(substring):\n* JSTests/stress/string-substring-jit-constant-indices.js: Added.\n(shouldBe):\n(reversed):\n(negative):\n(huge):\n(tail):\n* JSTests/stress/string-substring-jit.js: Added.\n(shouldBe):\n(substring):\n(substringNoEnd):\n(makeRope):\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:\n(JSC::DFG::SpeculativeJIT::compileStringSliceOrSubstring):\n(JSC::DFG::SpeculativeJIT::compileStringSlice): Deleted.\n(JSC::DFG::SpeculativeJIT::compileStringSubstring): Deleted.\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:\n(JSC::DFG::SpeculativeJIT::compile):\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:\n(JSC::DFG::SpeculativeJIT::compile):\n* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:\n(JSC::FTL::DFG::LowerDFGToB3::compileNode):\n(JSC::FTL::DFG::LowerDFGToB3::populateSubstringRange):\n(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):\n\nCanonical link: https://commits.webkit.org/318448@main",
      "email": "sosuke@bun.sh",
      "hash": "465d5ab28c60bc2521fb30cdce3c68dc289f5d71",
      "subject": "[JSC] Inline `String#substring` in DFG/FTL"
    },
    "318449@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "318449@main",
      "clUrl": "https://commits.webkit.org/318449@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320888\n\nReviewed by Nikolas Zimmermann.\n\nWe only do it for texture mapper. With skia compositor the committed\nbuffer is owned by SkiaCompositingLayer that is also going to be\ndestroyed on invalidate, so we need to transfer the ownership of the\nhole punch buffer to CoordinatedPlatformLayer.\n\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:\n(WebCore::CoordinatedPlatformLayer::invalidateTarget):\n(WebCore::shouldReleaseBuffer):\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp:\n(WebCore::SkiaCompositingLayer::takeContentsBuffer):\n\nCanonical link: https://commits.webkit.org/318449@main",
      "email": "cgarcia@igalia.com",
      "hash": "fbc68d0f05e7dccd1800cc0639f0a8a487f31004",
      "subject": "[GTK][WPE] Skia compositor: do not early release hole punch buffers on layer invalidation"
    },
    "318450@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "318450@main",
      "clUrl": "https://commits.webkit.org/318450@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320590\n\nRewrite declaration of 'fitCoefficients' from native C array to\n'std::arrray' to prevent fatal build error when build flags\n'-Werror,-Wunsafe-buffer-usage' are used.\n\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:\n\nCanonical link: https://commits.webkit.org/318450@main",
      "email": "dpino@igalia.com",
      "hash": "fd1f368774f96b437acfad9b0ef24c18fe7518b9",
      "subject": "[WPE][Clang] Unreviewed, fix build error after 318287@main"
    },
    "318451@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "318451@main",
      "clUrl": "https://commits.webkit.org/318451@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314998\n\nReviewed by Keith Miller.\n\nConstExprGenerator held a raw reference to ModuleInformation, which\ntrips NoUncountedMemberChecker. Hold it as const Ref, and mark the\nclass WTF_FORBID_HEAP_ALLOCATION since it is stack-only.\n\n* Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:\n\nCanonical link: https://commits.webkit.org/318451@main",
      "email": "chi187@gmail.com",
      "hash": "4c01e1b810582bf2081e1ffc70af6d3d70385b0c",
      "subject": "[JSC] Fix NoUncountedMember in WasmConstExprGenerator"
    },
    "318452@main": {
      "author": "Frédéric Wang Nélar",
      "avatar": "https://www.gravatar.com/avatar/2c634be4515bda5959ed1d7138b17d48?d=identicon\u0026s=64",
      "cl": "318452@main",
      "clUrl": "https://commits.webkit.org/318452@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320874\n\nReviewed by Patrick Griffis.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/8ff51b7de9b569733c5be7d0636c92c258ffdd27\n\n* LayoutTests/imported/w3c/web-platform-tests/preload/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-already-in-module-map-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-already-in-module-map.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-consumed-by-script-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-consumed-by-script.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-fires-before-dependencies-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-fires-before-dependencies.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-sri-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-sri-importmap-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-sri-importmap.html:\n* LayoutTests/imported/w3c/web-platform-tests/preload/modulepreload-sri.html:\n* LayoutTests/imported/w3c/web-platform-tests/preload/preload-imagesrcset-in-markup-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/preload-imagesrcset-in-markup.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/preload/resources/preload-module-helper.js: Added.\n(moduleUrl):\n(makeModulePreload):\n(eventFor):\n(resourceLoaded):\n* LayoutTests/imported/w3c/web-platform-tests/preload/resources/preload-module.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/preload/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/preload/w3c-import.log:\n* LayoutTests/tests-options.json:\n\nCanonical link: https://commits.webkit.org/318452@main",
      "email": "fwang@igalia.com",
      "hash": "3863ad3b7bf73a5374eec6ac2a558f77c7607eec",
      "subject": "Sync WPT tests for preload/"
    },
    "318453@main": {
      "author": "Alejandro G. Castro",
      "avatar": "https://www.gravatar.com/avatar/c8c6e17acbdf0549b05d6f7fc2c1c4dc?d=identicon\u0026s=64",
      "cl": "318453@main",
      "clUrl": "https://commits.webkit.org/318453@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320895\n\nReviewed by Carlos Garcia Campos.\n\nSince 318402@main the Skia compositor decides whether a layer's contents\nbuffer needs blending from the buffer's TextureMapperFlags::ShouldBlend\nflag. CoordinatedPlatformLayerBufferSkiaImage, the buffer type used for\naccelerated 2D canvas contents and image backing stores on the Skia\ncompositor path, never set that flag. Set ShouldBlend from the SkImage\nopacity when creating the buffer.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferSkiaImage.cpp:\n(WebCore::CoordinatedPlatformLayerBufferSkiaImage::create):\n(WebCore::CoordinatedPlatformLayerBufferSkiaImage::CoordinatedPlatformLayerBufferSkiaImage):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferSkiaImage.h:\n\nCanonical link: https://commits.webkit.org/318453@main",
      "email": "alex@igalia.com",
      "hash": "b55ef6c140a60c2c8dde1df6294e310238fa4955",
      "subject": "[WPE][GTK] REGRESSION(318402@main): canvas and image layer contents composited without blending"
    },
    "318454@main": {
      "author": "Adrian Perez de Castro",
      "avatar": "https://www.gravatar.com/avatar/30ffea8cf404586741a8f5f7110c0914?d=identicon\u0026s=64",
      "cl": "318454@main",
      "clUrl": "https://commits.webkit.org/318454@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320887\n\nReviewed by Keith Miller.\n\n* Source/JavaScriptCore/runtime/JSStringInlines.h:\n(JSC::JSString::tryFindLastOneChar const): Change plain arrays to use\nbounds-checked std::array instances.\n\nCanonical link: https://commits.webkit.org/318454@main",
      "email": "aperez@igalia.com",
      "hash": "a5c78b4fff5c9924361287388ca95ee718a760be",
      "subject": "REGRESSION(312307@main): [JSC] Clang reports unsafe buffer usage in JSStringInlines.h"
    },
    "318455@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "318455@main",
      "clUrl": "https://commits.webkit.org/318455@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320902\n\nReviewed by Nikolas Zimmermann.\n\nReplace the lock requirement by main thread requirement. Also remove the\nvisibleRect() getter, since it's only ued by CoordinatedBackingStoreProxy::updateIfNeeded()\nand we can just pass the unscaled viewport size instead.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:\n(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:\n(WebCore::CoordinatedPlatformLayer::setOwner):\n(WebCore::CoordinatedPlatformLayer::owner const):\n(WebCore::CoordinatedPlatformLayer::didUpdateLayerTransform):\n(WebCore::CoordinatedPlatformLayer::setVisibleRect):\n(WebCore::CoordinatedPlatformLayer::setTransformedVisibleRect):\n(WebCore::CoordinatedPlatformLayer::setContentsScale):\n(WebCore::CoordinatedPlatformLayer::setDirtyRegion):\n(WebCore::CoordinatedPlatformLayer::setShowRepaintCounter):\n(WebCore::CoordinatedPlatformLayer::updateBackingStore):\n(WebCore::CoordinatedPlatformLayer::updateContents):\n(WebCore::CoordinatedPlatformLayer::paint):\n(WebCore::CoordinatedPlatformLayer::record):\n(WebCore::CoordinatedPlatformLayer::replay):\n(WebCore::CoordinatedPlatformLayer::visibleRect const): Deleted.\n(WebCore::CoordinatedPlatformLayer::setDrawsContent):\n(WebCore::CoordinatedPlatformLayer::needsBackingStore const):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:\n(WebCore::CoordinatedPlatformLayer::WTF_GUARDED_BY_CAPABILITY):\n(WebCore::CoordinatedPlatformLayer::hasPendingTilesCreation const):\n\nCanonical link: https://commits.webkit.org/318455@main",
      "email": "cgarcia@igalia.com",
      "hash": "4b1174b93a43ccfb1edd0792bf636c4c12dabb4e",
      "subject": "[CoordinatedGraphics] Remove the lock requirement for CoordinatedPlatformLayer members that are only accessed from the main thread"
    },
    "318456@main": {
      "author": "Rob Buis",
      "avatar": "https://www.gravatar.com/avatar/74fb5af173895d2a7814b0aed1238a39?d=identicon\u0026s=64",
      "cl": "318456@main",
      "clUrl": "https://commits.webkit.org/318456@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316788\n\nReviewed by Nikolas Zimmermann.\n\nOnce intermediate force-layers disappear, SVG filter and resource buffers must\nposition their content and child layers explicitly, since a buffer's coordinate\nspace starts at the host's nominalSVGLayoutLocation rather than offsetFromRoot.\n\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/W3C-SVG-1.1/filters-felem-01-b-expected.png: Removed.\n* Source/WebCore/platform/graphics/filters/Filter.h:\n* Source/WebCore/rendering/CSSFilterRenderer.cpp:\n(WebCore::CSSFilterRenderer::create):\n(WebCore::createReferenceFilter):\n(WebCore::CSSFilterRenderer::expandFilterRegionForSVGReferences):\n(WebCore::CSSFilterRenderer::computeEnclosingFilterRegion):\n* Source/WebCore/rendering/CSSFilterRenderer.h:\n* Source/WebCore/rendering/RenderLayer.cpp:\n(WebCore::RenderLayer::paintLayerContents):\n* Source/WebCore/rendering/RenderLayer.h:\n* Source/WebCore/rendering/RenderLayerFilters.cpp:\n(WebCore::RenderLayerFilters::beginFilterEffect):\n* Source/WebCore/rendering/RenderLayerFilters.h:\n* Source/WebCore/rendering/RenderLayerModelObject.cpp:\n(WebCore::RenderLayerModelObject::computeVisibleRectsInSVGContainer const):\n* Source/WebCore/rendering/RenderLayerSVGAdditions.cpp:\n(WebCore::RenderLayer::hasVisibleContentForPaintingForSVG const):\n(WebCore::RenderLayer::paintForegroundChildrenForSVG):\n(WebCore::RenderLayer::hasFailedFilterForSVG const):\n(WebCore::RenderLayer::paintResourceCorrectedChildLayerForSVG const):\n(WebCore::RenderLayer::paintChildrenInDOMOrderForSVG):\n(WebCore::RenderLayer::paintSubtreeWithinTransformScopeForSVG):\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n\nCanonical link: https://commits.webkit.org/318456@main",
      "email": "rbuis@igalia.com",
      "hash": "df5c4872895fb8f69cb3c4bc09d4fecad7adf647",
      "subject": "[LBSE] Correct SVG filter and resource-buffer painting for non-layered renderers"
    },
    "318457@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "318457@main",
      "clUrl": "https://commits.webkit.org/318457@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320843\n\nReviewed by Carlos Garcia Campos.\n\nThis allows fetching and clearing file system storage.\n\nSome documentation was moved from GTK to a shared header\nsince they are common glib APIs.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebsiteData.cpp\n\n* Source/WebKit/UIProcess/API/glib/WebKitWebsiteData.cpp:\n(recordContainsSupportedDataTypes):\n(toWebKitWebsiteDataTypes):\n* Source/WebKit/UIProcess/API/glib/WebKitWebsiteData.h.in:\n* Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.cpp:\n(toWebsiteDataTypes):\n* Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk3.cpp:\n* Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk4.cpp:\n* Tools/MiniBrowser/gtk/main.c:\n(gotWebsiteDataCallback):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebsiteData.cpp:\n(testWebsiteDataSizes):\n(testWebsiteDataFileSystem):\n(beforeAll):\n\nCanonical link: https://commits.webkit.org/318457@main",
      "email": "pgriffis@igalia.com",
      "hash": "bc363a82cf22f21fbe5472135e5bafc9b67b0bb3",
      "subject": "[GLib] Add WEBKIT_WEBSITE_DATA_FILE_SYSTEM API"
    },
    "318458@main": {
      "author": "Ben Nham",
      "avatar": "https://www.gravatar.com/avatar/dc0914eabf69047ee3397794c2d17bf7?d=identicon\u0026s=64",
      "cl": "318458@main",
      "clUrl": "https://commits.webkit.org/318458@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320790\nrdar://183676310\n\nReviewed by Per Arne Vollan.\n\nWe are seeing that remote frame processes are running too long after a main frame navigation due to\nthe remote frame processes holding a page load activity (m_networkActivity in\nWebProcessActivityState).\n\nThe reason for this is that 304180@main removed the line that resets the page load activity in\n`WebProcessActivityState::reset`. It notes that this is not necessary because NavigationState has a\ntimer that resets the page load activity. However, that timer doesn't work, since it resets the\nactivity on all remote pages associated with the browsing context group post-navigation. The page\nload activity is actually held by remote pages associated with the old pre-navigation browsing\ncontext group.\n\nThe old BrowsingContextGroup is kept alive by the multi-process back/forward cache (via\nSuspendedPageProxy), so remote frame processes end up running with this orphaned page load activity\nfor much longer than expected (until they get evicted out of the B/F cache).\n\nFix this by dropping the page load activity in `WebProcessActivityState::reset`.\n\nThis shouldn't re-regress the original issue 304180@main was trying to fix, since the other part of\n304180@main (checking for isLoading instead of checking hasValidNetworkActivity) should be\nsufficient for fixing the original issue.\n\n* Source/WebKit/UIProcess/WebProcessActivityState.cpp:\n(WebKit::WebProcessActivityState::reset):\n\nCanonical link: https://commits.webkit.org/318458@main",
      "email": "nham@apple.com",
      "hash": "7d0d43fa56ea5b4b7d036bfac65ad19dfcf0f92e",
      "subject": "Site-isolated iframe processes keep a page load assertion after a cross-site navigation"
    },
    "318459@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318459@main",
      "clUrl": "https://commits.webkit.org/318459@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320875\nrdar://183894755\n\nReviewed by Simon Fraser.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/8ff51b7de9b569733c5be7d0636c92c258ffdd27\n\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/lint.py:\n(check_script_metadata):\n(check_web_features_file):\n(main):\n(_run_main):\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/rules.py:\n(MissingLink):\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/match/support/tools/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/match/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/match/tools/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/match/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/not-match/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/not-match/tools/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/not-match/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/selectors/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/support/tools/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/tools/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/css/css-unique/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/ref/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/tests/dir1/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/tests/dir2/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/tests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/dummy/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/test_file_lints.py:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/test_lint.py:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/tools/lint/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/318459@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "9919a89ca15a249b0fa07e90c059d82c3b7c9752",
      "subject": "Sync `tools/lint` from WPT Upstream"
    },
    "318460@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "318460@main",
      "clUrl": "https://commits.webkit.org/318460@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320546\nrdar://problem/183718878\n\nReviewed by Marcos Caceres.\n\n318122@main moved the transient activation consumption before request\nserialization so that a page cannot probe whether its request data is\nserializable without spending its user activation.  The OpenID4VP\nrequest-parsing tests relied on the TypeError from malformed dictionary\nmembers firing before the activation gate -- which is no longer the\ncase.  Provide user activation via test_driver.bless() so the tests\nreach the convertDictionary() validation path.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing.https.html:\n* LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing-disabled.https.html:\n\nCanonical link: https://commits.webkit.org/318460@main",
      "email": "pascoe@apple.com",
      "hash": "01f921063def4b0c20a70d8d54d1c207a2311e2e",
      "subject": "REGRESSION(318122@main): http/wpt/identity/digital-credential-openid4vp-request-parsing.https.html is consistently failing"
    },
    "318461@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "318461@main",
      "clUrl": "https://commits.webkit.org/318461@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320906\nrdar://183928932\n\nReviewed by Mike Wyrzykowski.\n\nMatch the WebGPU Swift build flags used in the Xcode build, as they pertain to\nsafety.\n\nCanonical link: https://commits.webkit.org/318461@main",
      "email": "adrian_taylor@apple.com",
      "hash": "aab197d57e109b13fe90137bed2a427a921190a5",
      "subject": "Enable Swift strict safety for WebGPU cmake"
    },
    "318462@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "318462@main",
      "clUrl": "https://commits.webkit.org/318462@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319087\n\nReviewed by Keith Miller.\n\nThe jsc and $vm ensureArrayStorage test helpers passed any object to\nensureArrayStorage. Wasm GC objects have no butterfly, so that path\ntransitioned Structure and hit RELEASE_ASSERT on WebAssemblyGCStructure.\nOnly call it for JSObjectWithButterfly.\n\n* Source/JavaScriptCore/jsc.cpp:\n(JSC_DEFINE_HOST_FUNCTION):\n* Source/JavaScriptCore/tools/JSDollarVM.cpp:\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n* JSTests/wasm/gc/no-gc-structure-transition.js:\n(testEnsureArrayStorage):\n(testEnsureArrayStorageViaWasmImport):\n\nCanonical link: https://commits.webkit.org/318462@main",
      "email": "chi187@gmail.com",
      "hash": "13ada10535a452a15c0734938f3c3e5eb1390a0e",
      "subject": "[JSC] Avoid ensureArrayStorage transition on Wasm GC objects"
    },
    "318463@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318463@main",
      "clUrl": "https://commits.webkit.org/318463@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320894\nrdar://183910863\n\nReviewed by Frédéric Wang Nélar.\n\nProperty::form was the only member of the struct left without a default member\ninitializer, so a default-constructed Property had an indeterminate form until\neach field was assigned. Give it Form::Infix, which is both the spec's default\nform and what MathMLOperatorElement::computeDictionaryProperty() already assumed\nwhen default-constructing a Property before selecting the form.\n\nNo change in behavior: Property is never aggregate-initialized; every\nconstruction site default-constructs and then assigns each field.\n\n* Source/WebCore/mathml/MathMLOperatorDictionary.h:\n\nCanonical link: https://commits.webkit.org/318463@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "eeac234329e99b241fc77dd9e069a6f8e7dbc83d",
      "subject": "Use a default member initializer for MathMLOperatorDictionary::Property::form"
    },
    "318464@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "318464@main",
      "clUrl": "https://commits.webkit.org/318464@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320900\nrdar://183916297\n\nUnreviewed, import from upstream.\n\n* LayoutTests/http/tests/webgl/resources/webgl_test_files/js/js-test-pre.js:\n(range):\n(return.new.Array.fill.map):\n(crossCombine.crossCombine2):\n(crossCombine):\n(shr_u32):\n(const.bitcast_u32.call.return.bitcast_u32):\n(const.bitcast_u32.call):\n(const.bitcast_f32_from_u32.call.return.bitcast_f32_from_u32):\n(const.bitcast_f32_from_u32.call):\n(PrngXorwow):\n(PrngXorwow.prototype.seed):\n(PrngXorwow.prototype.state):\n(PrngXorwow.prototype.next_u32):\n(PrngXorwow.prototype.next_unorm):\n(PrngXorwow.prototype.getRandomValues):\n(abv_cast):\n(getDrng):\n* LayoutTests/http/tests/webgl/resources/webgl_test_files/js/webgl-test-utils.js:\n(accumKeysByValue):\n(accumGlEnumsByValue):\n(getDefault3DContextVersion):\n(create3DContext):\n(async startPlayingAndWaitForVideo):\n(userAgentEngineClaims):\n(async waitVideoUploadable):\n(WebGLTestUtils):\n(glEnumStr):\n(return.WebGLTestUtils.glEnumToString):\n(glEnumToString): Deleted.\n* LayoutTests/webgl/1.0.x/conformance/attribs/gl-get-attrib-location-errors-expected.txt: Added.\n* LayoutTests/webgl/1.0.x/conformance/attribs/gl-get-attrib-location-errors.html: Added.\n* LayoutTests/webgl/1.0.x/conformance/glsl/misc/extension-enable-and-disable-expected.txt: Added.\n* LayoutTests/webgl/1.0.x/conformance/glsl/misc/extension-enable-and-disable.html: Added.\n* LayoutTests/webgl/1.0.x/conformance/glsl/misc/shader-with-double-underscore-expected.txt: Added.\n* LayoutTests/webgl/1.0.x/conformance/glsl/misc/shader-with-double-underscore.html: Added.\n* LayoutTests/webgl/1.0.x/conformance/textures/misc/tex-image-svg-image-no-natural-width-and-height-expected.txt: Added.\n* LayoutTests/webgl/1.0.x/conformance/textures/misc/tex-image-svg-image-no-natural-width-and-height.html: Added.\n* LayoutTests/webgl/1.0.x/conformance/uniforms/gl-get-uniform-location-errors-expected.txt: Added.\n* LayoutTests/webgl/1.0.x/conformance/uniforms/gl-get-uniform-location-errors.html: Added.\n* LayoutTests/webgl/2.0.y/conformance/attribs/gl-get-attrib-location-errors-expected.txt: Added.\n* LayoutTests/webgl/2.0.y/conformance/attribs/gl-get-attrib-location-errors.html: Added.\n* LayoutTests/webgl/2.0.y/conformance/glsl/misc/shader-with-double-underscore-expected.txt: Added.\n* LayoutTests/webgl/2.0.y/conformance/glsl/misc/shader-with-double-underscore.html: Added.\n* LayoutTests/webgl/2.0.y/conformance/textures/misc/tex-image-svg-image-no-natural-width-and-height-expected.txt: Added.\n* LayoutTests/webgl/2.0.y/conformance/textures/misc/tex-image-svg-image-no-natural-width-and-height.html: Added.\n* LayoutTests/webgl/2.0.y/conformance/uniforms/gl-get-uniform-location-errors-expected.txt: Added.\n* LayoutTests/webgl/2.0.y/conformance/uniforms/gl-get-uniform-location-errors.html: Added.\n* LayoutTests/webgl/2.0.y/conformance2/textures/misc/pbo-texture-uploads-expected.txt: Added.\n* LayoutTests/webgl/2.0.y/conformance2/textures/misc/pbo-texture-uploads.html: Added.\n* LayoutTests/webgl/2.0.y/conformance2/transform_feedback/switching-programs-expected.txt: Added.\n* LayoutTests/webgl/2.0.y/conformance2/transform_feedback/switching-programs.html: Added.\n* LayoutTests/webgl/resources/js-test-pre.js:\n(window.console.warn):\n(initNonKhronosFramework):\n* LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-get-attrib-location-errors.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-astc.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/webgl-multi-draw.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/extension-enable-and-disable.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/conformance/glsl/misc/shader-with-double-underscore.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/conformance/misc/shader-precision-format.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance/textures/misc/tex-image-svg-image-no-natural-width-and-height.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/conformance/textures/misc/texture-active-bind.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance/uniforms/gl-get-uniform-location-errors.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/extensions/webgl-render-shared-exponent.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/extensions/webgl-shader-pixel-local-storage.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/renderbuffers/readbuffer.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/rendering/framebuffer-render-to-layer.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/textures/misc/pbo-texture-uploads.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/transform_feedback/switching-objects.html:\n* LayoutTests/webgl/resources/webgl_test_files/conformance2/transform_feedback/switching-programs.html: Added.\n* LayoutTests/webgl/resources/webgl_test_files/js/js-test-pre.js:\n(range):\n(return.new.Array.fill.map):\n(crossCombine.crossCombine2):\n(crossCombine):\n(shr_u32):\n(const.bitcast_u32.call.return.bitcast_u32):\n(const.bitcast_u32.call):\n(const.bitcast_f32_from_u32.call.return.bitcast_f32_from_u32):\n(const.bitcast_f32_from_u32.call):\n(PrngXorwow):\n(PrngXorwow.prototype.seed):\n(PrngXorwow.prototype.state):\n(PrngXorwow.prototype.next_u32):\n(PrngXorwow.prototype.next_unorm):\n(PrngXorwow.prototype.getRandomValues):\n(abv_cast):\n(getDrng):\n* LayoutTests/webgl/resources/webgl_test_files/js/tests/compressed-tex-image.js:\n* LayoutTests/webgl/resources/webgl_test_files/js/tests/drawingbuffer-storage-test.js:\n(runTest.testMaxSize):\n* LayoutTests/webgl/resources/webgl_test_files/js/tests/gl-vertex-attrib.js:\n(else.debug):\n* LayoutTests/webgl/resources/webgl_test_files/js/tests/no-over-optimizations-on-uniform-array.js:\n(testUniformOptimizationIssues.isSame):\n(testUniformOptimizationIssues):\n* LayoutTests/webgl/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-video.js:\n(runTest.async runTexImageTest.async loadVideo):\n(runTest.async runTexImageTest.async testVideo):\n(runTest.async runTexImageTest):\n(runTest):\n(runTest.runTexImageTest.): Deleted.\n(runTest.runTexImageTest): Deleted.\n(generateTest): Deleted.\n* LayoutTests/webgl/resources/webgl_test_files/js/tests/tex-image-and-sub-image-3d-with-video.js:\n(runTest.async runTexImageTest.async loadVideo):\n(runTest.async runTexImageTest.async testVideo):\n(runTest.async runTexImageTest):\n(runTest):\n(runTest.runTexImageTest.): Deleted.\n(runTest.runTexImageTest): Deleted.\n(generateTest): Deleted.\n* LayoutTests/webgl/resources/webgl_test_files/js/webgl-test-utils.js:\n(accumKeysByValue):\n(accumGlEnumsByValue):\n(getDefault3DContextVersion):\n(create3DContext):\n(async startPlayingAndWaitForVideo):\n(userAgentEngineClaims):\n(async waitVideoUploadable):\n(WebGLTestUtils):\n(glEnumStr):\n(return.WebGLTestUtils.glEnumToString):\n(glEnumToString): Deleted.\n\nCanonical link: https://commits.webkit.org/318464@main",
      "email": "kkinnunen@apple.com",
      "hash": "2d1b3f546b9da2a5526df90f60558d40b33ba8f0",
      "subject": "Update WebGL conformance tests 2026-07-18 (f15a73f727d8ee66a3ec6d0bed9f02f08cacc2c1)"
    },
    "318465@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "318465@main",
      "clUrl": "https://commits.webkit.org/318465@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=320321\u003e\n\u003crdar://183262390\u003e\n\nReviewed by Kimmo Kinnunen.\n\nStore message names into the ring buffer atomically.  Threads that\ndispatch IPC never synchronize with one another, and the relaxed\nincrement of `m_index` orders only the index, so successive writers of\na slot are unordered once the buffer wraps.  A relaxed store compiles\nto the same instruction as the plain assignment.  `std::atomic` is not\nconstexpr-assignable, so expand the constructor's initializer over an\nindex sequence to keep `gMessageLog` constant-initialized.\n\nCovered by existing tests.  With the element store reverted to a plain\nassignment, ThreadSanitizer reports the race in\nMessageLogTests.ConcurrentAddWithWrapping.\n\n* Source/WebKit/Platform/IPC/MessageLog.cpp:\n* Source/WebKit/Platform/IPC/MessageLog.h:\n(IPC::MessageLog::MessageLog):\n(IPC::MessageLog::add):\n(IPC::MessageLog::atForTesting const): Add.\n(IPC::MessageLog::bufferForTesting const): Remove.\n(IPC::MessageLog::bufferSize const): Add.\n(IPC::MessageLog::capacity const): Add.\n(IPC::MessageLog::elementSize const): Add.\n* Tools/TestWebKitAPI/Tests/IPC/MessageLogEndToEndTests.cpp:\n(TestWebKitAPI::MessageLogEndToEndTest::messageLogContains const):\n(TestWebKitAPI::MessageLogEndToEndTest::countMessagesInLog const):\n(TestWebKitAPI::MessageLogStreamTest::messageLogContains const):\n* Tools/TestWebKitAPI/Tests/IPC/MessageLogTests.cpp:\n(TestWebKitAPI::TEST(MessageLogTests, InitialState)):\n(TestWebKitAPI::TEST(MessageLogTests, AddSingleMessage)):\n(TestWebKitAPI::TEST(MessageLogTests, AddMultipleMessages)):\n(TestWebKitAPI::TEST(MessageLogTests, WrapAroundAtCapacity)):\n(TestWebKitAPI::TEST(MessageLogTests, MultipleWraps)):\n(TestWebKitAPI::TEST(MessageLogTests, ConcurrentAddFromTwoThreads)):\n(TestWebKitAPI::TEST(MessageLogTests, ConcurrentAddFromMultipleThreads)):\n(TestWebKitAPI::TEST(MessageLogTests, ConcurrentAddWithWrapping)):\n\nCanonical link: https://commits.webkit.org/318465@main",
      "email": "ddkilzer@apple.com",
      "hash": "152f921e9acfac813163cc430abb7409280d9f91",
      "subject": "IPC::MessageLog::add() has a data race on the ring buffer element store"
    },
    "318466@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "318466@main",
      "clUrl": "https://commits.webkit.org/318466@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320825\nrdar://183779215\n\nReviewed by Abrar Rahman Protyasha.\n\nMake two small adjustments here:\n- Drop any query parameters from the href attribute (i.e., after the first `?`).\n- Cap the overall length to be no more than 80 characters.\n\n…to prevent noisy query parameters from causing the supervisor agent to be overly strict.\n\n* Source/WebCore/page/text-extraction/TextExtraction.cpp:\n(WebCore::TextExtraction::shortenedHREFAttributeForDescription):\n(WebCore::TextExtraction::textDescription):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:\n(TestWebKitAPI::TEST(TextExtractionTests, InteractionDebugDescription)):\n\nCanonical link: https://commits.webkit.org/318466@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "ad5d75262d4f212ed24831e145ca88adbca7f28d",
      "subject": "[Text Extraction] Enforce a stricter truncation policy for link href attribute when describing interactions"
    },
    "318467@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318467@main",
      "clUrl": "https://commits.webkit.org/318467@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320876\n\nReviewed by Mike Wyrzykowski.\n\n* Source/WebCore/html/HTMLCanvasElement.cpp:\n(WebCore::HTMLCanvasElement::getContext):\nUse `navigator.gpu` when creating a WebGPU context for internal callers such as `document.getCSSCanvasContext`.\n\n* Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm:\n(WebCore::GPUCanvasContextCocoa::didUpdateCanvasSizeProperties):\n(WebCore::GPUCanvasContextCocoa::configure):\nDo not report the configured `GPUDevice` as temporarily detached while an internal resize reconfigures its `GPUCanvasContext`.\nOnly report it if reconfiguration fails.\n\n* Source/WebCore/inspector/InspectorCanvas.h:\n* Source/WebCore/inspector/InspectorCanvas.cpp:\n(WebCore::InspectorCanvas::canvasElement const):\n(WebCore::InspectorCanvas::sizes const): Added.\n(WebCore::InspectorCanvas::cssCanvasNames const): Added.\n(WebCore::InspectorCanvas::clientNodes const):\n(WebCore::InspectorCanvas::buildObjectForCanvas):\nCollect distinct sizes, a single `HTMLCanvasElement`, and CSS canvas names across every configured `GPUCanvasContext` using a `GPUDevice`.\n\n* Source/JavaScriptCore/inspector/protocol/GenericTypes.json:\n* Source/JavaScriptCore/inspector/protocol/Canvas.json:\n* Source/WebCore/inspector/InspectorInstrumentation.cpp:\n(WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl):\n(WebCore::InspectorInstrumentation::didChangeCanvasSizeImpl):\n(WebCore::InspectorInstrumentation::didChangeGPUDeviceClientNodesImpl):\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:\n(WebCore::InspectorCanvasAgent::didChangeCanvasSize):\n(WebCore::InspectorCanvasAgent::didChangeGPUDeviceClientNodes): Added.\n(WebCore::InspectorCanvasAgent::bindCanvas):\n(WebCore::InspectorCanvasAgent::buildObjectForCanvas): Added.\n(WebCore::InspectorCanvasAgent::dispatchCanvasSizeChanged): Added.\nRepresent canvas `width` and `height` as an array of `GenericTypes.Size` since a single `GPUDevice` can be configured for multiple `\u003ccanvas\u003e`.\nRename `cssCanvasName` to `cssCanvasNames`.\n\n* Source/WebCore/inspector/agents/page/PageCanvasAgent.h:\n* Source/WebCore/inspector/agents/page/PageCanvasAgent.cpp:\n(WebCore::PageCanvasAgent::requestClientNodes):\n(WebCore::PageCanvasAgent::frameNavigated):\n(WebCore::PageCanvasAgent::didChangeCSSCanvasClientNodes):\n(WebCore::PageCanvasAgent::didChangeGPUDeviceClientNodes):\n(WebCore::PageCanvasAgent::buildObjectForCanvas): Added.\n(WebCore::PageCanvasAgent::nodeIdForCanvas): Added.\n(WebCore::PageCanvasAgent::dispatchClientNodesChanged): Added.\n* Source/WebCore/inspector/agents/worker/WorkerCanvasAgent.h:\n* Source/WebCore/inspector/agents/worker/WorkerCanvasAgent.cpp:\n(WebCore::WorkerCanvasAgent::requestClientNodes):\nReturn the current client nodes and CSS `\u003ccanvas\u003e` names with `Canvas.requestClientNodes`.\nProvide an initial `nodeId` only when a `GPUDevice` has exactly one `\u003ccanvas\u003e`.\n\n* Source/WebInspectorUI/UserInterface/Protocol/CanvasObserver.js:\n(WI.CanvasObserver.prototype.canvasSizeChanged):\n* Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:\n(WI.CanvasManager.prototype.canvasSizeChanged):\n* Source/WebInspectorUI/UserInterface/Models/Canvas.js:\n(WI.Canvas):\n(WI.Canvas.fromPayload):\n(WI.Canvas._domNodeForId): Added.\n(WI.Canvas.prototype.get size): Removed.\n(WI.Canvas.prototype.get sizes): Added.\n(WI.Canvas.prototype.get cssCanvasNames): Renamed from `cssCanvasName`.\n(WI.Canvas.prototype.get displayName):\n(WI.Canvas.prototype.requestNode):\n(WI.Canvas.prototype.requestClientNodes):\n(WI.Canvas.prototype.saveIdentityToCookie):\n(WI.Canvas.prototype.sizeChanged):\n(WI.Canvas.prototype.clientNodesChanged):\n(WI.Canvas.prototype._calculateSize):\nStore every distinct size instead of assuming that there's only a single size.\nCoalesce concurrent `Canvas.requestClientNodes` calls into one backend request and deliver its result to every callback.\n\n* Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js:\n(WI.CanvasContentView):\n(WI.CanvasContentView.prototype.attached):\n(WI.CanvasContentView.prototype.detached):\n(WI.CanvasContentView.prototype._updateSize):\n(WI.CanvasContentView.prototype._updateCanvasNode): Added.\n* Source/WebInspectorUI/UserInterface/Views/CanvasDetailsSidebarPanel.js:\n(WI.CanvasDetailsSidebarPanel):\n(WI.CanvasDetailsSidebarPanel.prototype.set canvas):\n(WI.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):\n(WI.CanvasDetailsSidebarPanel.prototype._refreshClientsSection):\n(WI.CanvasDetailsSidebarPanel.prototype._handleClientNodesChanged): Added.\n* Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js:\n(WI.CanvasOverviewContentView.prototype._contentViewMouseEnter):\n* Source/WebInspectorUI/UserInterface/Views/CanvasTreeElement.js:\n(WI.CanvasTreeElement.prototype._handleMouseOver):\n* Source/WebInspectorUI/UserInterface/Views/CanvasDetailsSidebarPanel.css:\n(.sidebar \u003e .panel.details.canvas .details-section \u003e .content .row.simple.multiple \u003e .value): Added.\nShow \"(multiple)\" in the details sidebar \"Width\" and \"Height\" rows when there are multiple sizes.\nRequest invalidated client metadata before refreshing source links and canvas highlighting.\nDrive-by: use `WI.Canvas.prototype.get sizes` instead of inspecting DOM attributes or resolving a remote object.\nDrive-by: listen for `WI.Canvas.Event.SizeChanged` instead of observing DOM attribute changes.\n\n* LayoutTests/inspector/canvas/resources/create-context-utilities.js:\n* LayoutTests/inspector/canvas/requestClientNodes-css.html:\n* LayoutTests/inspector/canvas/requestClientNodes-webgpu.html:\n* LayoutTests/inspector/canvas/requestClientNodes-webgpu-expected.txt:\n* LayoutTests/inspector/canvas/worker-webgpu.html:\n* LayoutTests/inspector/canvas/worker-webgpu-expected.txt:\n\nCanonical link: https://commits.webkit.org/318467@main",
      "email": "hi@devinrousso.com",
      "hash": "4ccb3f3a1c85f1983007f8721f5696f88266a0dc",
      "subject": "Web Inspector: Canvas: expose client metadata for WebGPU devices"
    },
    "318468@main": {
      "author": "Josh Hernandez",
      "avatar": "https://www.gravatar.com/avatar/e268e9ba8d96006649c1745a48db2f73?d=identicon\u0026s=64",
      "cl": "318468@main",
      "clUrl": "https://commits.webkit.org/318468@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320769\nrdar://183776073\n\nReviewed by Eric Carlson.\n\nSelecting \"On\" in the media controls captions menu sometimes does nothing and subtitles\nnever appear. The only way to turn them on is to pick a specific language from the\nLanguages submenu. Once a language has been chosen, toggling \"On\" while the subtitles\nare active will toggle them Off, and selecting \"On\" afterwards will do nothing again.\n\nThis happens when the caption display mode is already `AlwaysOn` but no text track\nis showing. When we make a \"On\" selection all tracks get disabled and due to the AlwaysOn state\nbeing the same, we never re-run the track configuration that would pick one to display.\nSelecting a specific language works because that path enables the chosen track directly.\n\nSelecting \"On\" now enables the best-matching text track directly, and we no longer\ndisable all tracks when the selection is \"On\", so a track that's already showing is left alone.\n\nTest: media/modern-media-controls/tracks-support/on-off-text-track.html\n\nAdded test case when display mode is already AlwaysOn, that selecting \"On\" will enable a track\n\n* LayoutTests/media/modern-media-controls/tracks-support/on-off-text-track-expected.txt:\n* LayoutTests/media/modern-media-controls/tracks-support/on-off-text-track.html:\n* Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:\n(WebCore::MediaControlsHost::mediaControlsContextMenuItems):\n(WebCore::MediaControlsHost::showMediaControlsContextMenu):\n* Source/WebCore/html/HTMLMediaElement.cpp:\n(WebCore::HTMLMediaElement::setSelectedTextTrack):\n* Source/WebCore/page/CaptionUserPreferences.cpp:\n(WebCore::CaptionUserPreferences::bestTextTrackToEnable const):\n* Source/WebCore/page/CaptionUserPreferences.h:\n\nCanonical link: https://commits.webkit.org/318468@main",
      "email": "jhernandez89@apple.com",
      "hash": "762e22b2a4d40381bc92f07fb45ccb28fbfe843d",
      "subject": "Subtitles don't always turn on when selecting \"On\" in the media controls"
    },
    "318469@main": {
      "author": "Ian Grunert",
      "avatar": "https://www.gravatar.com/avatar/6a676cf1bcb9ff83c6cd867a0e3a0fa4?d=identicon\u0026s=64",
      "cl": "318469@main",
      "clUrl": "https://commits.webkit.org/318469@main",
      "description": "Unreviewed test gardening.\n\nUpdate Windows expectations from the last 20 Win-Tests-EWS runs.\n\nCanonical link: https://commits.webkit.org/318469@main",
      "email": "ian.grunert@gmail.com",
      "hash": "3d14c5eb7ecd35f7cbe74e5a6a13e8fd666f55cf",
      "subject": "[Win] Unreviewed test gardening"
    },
    "318471@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "318471@main",
      "clUrl": "https://commits.webkit.org/318471@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320072\nrdar://182995822\n\nReviewed by Richard Robinson, Mike Wyrzykowski, Tim Horton, and Aditya Keerthi.\n\n`os_variant_is_basesystem(\"WebKit\")` is found 5 times in the codebase.\nEach caller needed to remember the `\"WebKit\"` magic string; the method\nname is not necessarily the most intuitive, either.\n\nThis patch introduces a WTF::isInBaseSystem() wrapper, that lives in\nwtf/cooca/RuntimeApplicationChecksCococa.h, providing callers an easy\nand intuitive way to query if the application is running in macOS\nBaseSystem.\n\n* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:\n* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.mm:\n(WTF::isInBaseSystem):\n* Source/WebKit/UIProcess/PDF/WKPDFHUDView.swift:\n(isInRecoveryOS): Deleted.\n* Source/WebKit/UIProcess/mac/WebViewImpl.mm:\n(WebKit::m_flagsChangedEventMonitorTrackingArea):\n* Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp:\n(WebKit::WebModelPlayerProvider::isAvailable const):\n(WebKit::isRunningInRecoveryOS): Deleted.\n* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:\n(WebKit::UnifiedPDFPlugin::createContextMenu const):\n(WebKit::isInRecoveryOS): Deleted.\n\nCanonical link: https://commits.webkit.org/318471@main",
      "email": "a_protyasha@apple.com",
      "hash": "c17b54571809190c1c4607e91afca5a5d3807e72",
      "subject": "Consolidate os_variant_is_basesystem() callers to a common WTF wrapper"
    },
    "318472@main": {
      "author": "Keith Miller",
      "avatar": "https://www.gravatar.com/avatar/bddc1595b29098429a6ce7c8bf4aced2?d=identicon\u0026s=64",
      "cl": "318472@main",
      "clUrl": "https://commits.webkit.org/318472@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320905\nrdar://183922497\n\nReviewed by Yusuke Suzuki and Dan Hecht.\n\nAdd an explainer for how to run JSTests and the expected rules for new\ntests. Also, add AGENTS.md/CLAUDE.md import file so coding assistants\nfind the expectations.\n\nCanonical link: https://commits.webkit.org/318472@main",
      "email": "keith_miller@apple.com",
      "hash": "d38fb084a6a3a8ff9a9f1a2b9b3fca5c81146fb2",
      "subject": "Add JSTests README.md / agent imports"
    },
    "318473@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "318473@main",
      "clUrl": "https://commits.webkit.org/318473@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320777\nrdar://183765548\n\nReviewed by Abrar Rahman Protyasha.\n\nAdjust the text extraction `looksVisuallyClickable` heuristic, to not require potential targets to\nhave `cursor: pointer;` as long as:\n\n- The target is short\n- The target contains a small amount of rendered text\n- The target passes the `hasVisuallyDistinctStyling` check.\n\nTest: fast/text-extraction/debug-text-extraction-button-like-div.html\n\n* LayoutTests/fast/text-extraction/debug-text-extraction-button-like-div-expected.txt: Added.\n* LayoutTests/fast/text-extraction/debug-text-extraction-button-like-div.html: Added.\n* Source/WebCore/page/text-extraction/TextExtraction.cpp:\n(WebCore::TextExtraction::containsInteractiveDescendant):\n(WebCore::TextExtraction::looksLikeButton):\n(WebCore::TextExtraction::looksVisuallyClickable):\n* Source/WebKit/Shared/TextExtractionToStringConversion.cpp:\n(WebKit::shouldEmitClickableToken):\n(WebKit::addPartsForItem):\n\nAlso make a slight adjustment here, to avoid emitting `clickable` for visually-clickable elements if\nthey already have an accessibility role that clearly suggests it's clickable.\n\nCanonical link: https://commits.webkit.org/318473@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "777dd2c83c0ea4748670a4ab0a06bef0581f1a4a",
      "subject": "[Text Extraction] Treat small, visually-distinct elements as clickable for the purpose of simulating clicks"
    },
    "318474@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318474@main",
      "clUrl": "https://commits.webkit.org/318474@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320863\n\nReviewed by Mike Wyrzykowski.\n\n* Source/WebCore/html/canvas/ANGLEInstancedArrays.idl:\n* Source/WebCore/html/canvas/EXTBlendMinMax.idl:\n* Source/WebCore/html/canvas/EXTClipControl.idl:\n* Source/WebCore/html/canvas/EXTColorBufferFloat.idl:\n* Source/WebCore/html/canvas/EXTColorBufferHalfFloat.idl:\n* Source/WebCore/html/canvas/EXTConservativeDepth.idl:\n* Source/WebCore/html/canvas/EXTDepthClamp.idl:\n* Source/WebCore/html/canvas/EXTDisjointTimerQuery.idl:\n* Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.idl:\n* Source/WebCore/html/canvas/EXTFloatBlend.idl:\n* Source/WebCore/html/canvas/EXTFragDepth.idl:\n* Source/WebCore/html/canvas/EXTPolygonOffsetClamp.idl:\n* Source/WebCore/html/canvas/EXTRenderSnorm.idl:\n* Source/WebCore/html/canvas/EXTShaderTextureLOD.idl:\n* Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl:\n* Source/WebCore/html/canvas/EXTTextureCompressionRGTC.idl:\n* Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl:\n* Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.idl:\n* Source/WebCore/html/canvas/EXTTextureNorm16.idl:\n* Source/WebCore/html/canvas/EXTsRGB.idl:\n* Source/WebCore/html/canvas/KHRParallelShaderCompile.idl:\n* Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.idl:\n* Source/WebCore/html/canvas/OESDrawBuffersIndexed.idl:\n* Source/WebCore/html/canvas/OESElementIndexUint.idl:\n* Source/WebCore/html/canvas/OESFBORenderMipmap.idl:\n* Source/WebCore/html/canvas/OESSampleVariables.idl:\n* Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.idl:\n* Source/WebCore/html/canvas/OESStandardDerivatives.idl:\n* Source/WebCore/html/canvas/OESTextureFloat.idl:\n* Source/WebCore/html/canvas/OESTextureFloatLinear.idl:\n* Source/WebCore/html/canvas/OESTextureHalfFloat.idl:\n* Source/WebCore/html/canvas/OESTextureHalfFloatLinear.idl:\n* Source/WebCore/html/canvas/OESVertexArrayObject.idl:\n* Source/WebCore/html/canvas/WebGLBlendFuncExtended.idl:\n* Source/WebCore/html/canvas/WebGLBuffer.idl:\n* Source/WebCore/html/canvas/WebGLClipCullDistance.idl:\n* Source/WebCore/html/canvas/WebGLColorBufferFloat.idl:\n* Source/WebCore/html/canvas/WebGLCompressedTextureASTC.idl:\n* Source/WebCore/html/canvas/WebGLCompressedTextureETC.idl:\n* Source/WebCore/html/canvas/WebGLCompressedTextureETC1.idl:\n* Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl:\n* Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl:\n* Source/WebCore/html/canvas/WebGLCompressedTextureS3TCsRGB.idl:\n* Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl:\n* Source/WebCore/html/canvas/WebGLDebugShaders.idl:\n* Source/WebCore/html/canvas/WebGLDepthTexture.idl:\n* Source/WebCore/html/canvas/WebGLDrawBuffers.idl:\n* Source/WebCore/html/canvas/WebGLDrawInstancedBaseVertexBaseInstance.idl:\n* Source/WebCore/html/canvas/WebGLFramebuffer.idl:\n* Source/WebCore/html/canvas/WebGLLoseContext.idl:\n* Source/WebCore/html/canvas/WebGLMultiDraw.idl:\n* Source/WebCore/html/canvas/WebGLMultiDrawInstancedBaseVertexBaseInstance.idl:\n* Source/WebCore/html/canvas/WebGLPolygonMode.idl:\n* Source/WebCore/html/canvas/WebGLProgram.idl:\n* Source/WebCore/html/canvas/WebGLProvokingVertex.idl:\n* Source/WebCore/html/canvas/WebGLQuery.idl:\n* Source/WebCore/html/canvas/WebGLRenderSharedExponent.idl:\n* Source/WebCore/html/canvas/WebGLRenderbuffer.idl:\n* Source/WebCore/html/canvas/WebGLSampler.idl:\n* Source/WebCore/html/canvas/WebGLShader.idl:\n* Source/WebCore/html/canvas/WebGLStencilTexturing.idl:\n* Source/WebCore/html/canvas/WebGLSync.idl:\n* Source/WebCore/html/canvas/WebGLTexture.idl:\n* Source/WebCore/html/canvas/WebGLTimerQueryEXT.idl:\n* Source/WebCore/html/canvas/WebGLTransformFeedback.idl:\n* Source/WebCore/html/canvas/WebGLUniformLocation.idl:\n* Source/WebCore/html/canvas/WebGLVertexArrayObject.idl:\n* Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl:\nRoute all of these through `InspectorCanvasCallTracer`.\nNote that many of these do not have attributes/methods, but adding it ensures that future changes automatically get instrumented.\n\n* Source/WebCore/html/canvas/WebGLExtension.h:\n(WebCore::WebGLExtension::hasActiveInspectorCanvasCallTracer): Added.\n* Source/WebCore/html/canvas/WebGLObject.h:\n* Source/WebCore/html/canvas/WebGLObject.cpp:\n(WebCore::WebGLObject::hasActiveInspectorCanvasCallTracer): Added.\nForward the active `CallTracer` check through the owner `WebGLRenderingContextBase`.\n\n* Source/WebCore/inspector/InspectorCanvas.h:\n* Source/WebCore/inspector/InspectorCanvas.cpp:\n(WebCore::shouldSnapshotWebGLAction):\n(WebCore::shouldSnapshotWebGL2Action):\n(WebCore::buildActionReceiver):\n(WebCore::InspectorCanvas::recordAction):\n* Source/WebCore/inspector/InspectorCanvasArguments.h:\n(WebCore::recordingSwizzleTypeForWebGPUReceiver): Added.\n(WebCore::InspectorCanvasArgumentProcessor\u003cIDLInterface\u003cIDLType\u003e\u003e::operator()): Added.\n* Source/WebCore/inspector/InspectorCanvasArguments.cpp:\n(WebCore::recordingSwizzleTypeForWebGLExtension): Added.\n(WebCore::InspectorCanvasArgumentProcessor\u003cIDLInterface\u003cWebGLTimerQueryEXT\u003e\u003e::operator()): Added.\n(WebCore::InspectorCanvasArgumentProcessor\u003cIDLInterface\u003cWebGLVertexArrayObjectOES\u003e\u003e::operator()): Added.\n* Source/WebCore/inspector/InspectorCanvasCallTracer.h:\n(WebCore::InspectorCanvasCallTracer::processArgument):\n(WebCore::InspectorCanvasCallTracer::recordAction):\n(WebCore::InspectorCanvasCallTracer::receiverSwizzleTypeImpl): Removed.\n(WebCore::InspectorCanvasCallTracer::receiverSwizzleType): Removed.\n* Source/WebCore/inspector/InspectorCanvasCallTracer.cpp:\n(WebCore::InspectorCanvasCallTracer::recordAction):\n* Source/WebCore/inspector/RecordingSwizzleType.h:\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:\n(WebCore::InspectorCanvasAgent::recordAction):\n* Source/WebInspectorUI/UserInterface/Models/Recording.js:\n(WI.Recording.displayNameForReceiver):\n(WI.Recording.displayNameForSwizzleType):\n(WI.Recording.prototype.swizzle):\n* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:\n(WI.RecordingAction.prototype.swizzle):\n* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:\n(WI.RecordingActionTreeElement._generateDOM):\nReuse the existing `IDLInt32ListUnion` and `IDLUint32ListUnion` processors for WebGL extension methods whose argument unions do not use `[AllowShared]`.\nReuse `WebGLObject::object` so the same instance receives the same name when used as an argument or receiver.\nCapture snapshots for extension drawing operations, including instanced, multi-draw, and base-instance methods.\nDrive-by: represent the `\u003ccanvas\u003e` receiver for `width` and `height` actions with `InspectorCanvasProcessedArgument` so it reuses the same plumbing.\n\n* LayoutTests/inspector/canvas/recording-webgl-receivers.html: Added.\n* LayoutTests/inspector/canvas/recording-webgl-receivers-expected.txt: Added.\n* LayoutTests/platform/mac/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318474@main",
      "email": "hi@devinrousso.com",
      "hash": "beeb3915b77bda768586d3c116a1ec3a7697f96f",
      "subject": "Web Inspector: Canvas: record WebGL extension actions"
    },
    "318475@main": {
      "author": "Sam Sneddon",
      "avatar": "https://www.gravatar.com/avatar/99f6b56d9db9d32920dfcc56deae86fc?d=identicon\u0026s=64",
      "cl": "318475@main",
      "clUrl": "https://commits.webkit.org/318475@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319923\nrdar://182850897\n\nReviewed by Abrar Rahman Protyasha and BJ Burg.\n\nSince the previous commit, the Touch case in transitionInputSourceToState\ndispatches off b.mouseInteraction exactly like the Mouse/Pen case, so the\ntwo switch cases now differ only in a few small platform-specific\ndetails. Keeping the logic duplicated across two cases is exactly what\nlet the Touch case regress in the first place: a change to the shared\ndispatch logic was applied to Mouse/Pen and silently forgotten in Touch.\nMerge them into a single case to remove that duplication.\n\n* Source/WebCore/dom/PointerEventTypeNames.h:\n* Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.cpp:\n(WebKit::pointerTypeForInputSource):\n(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):\n\nCanonical link: https://commits.webkit.org/318475@main",
      "email": "gsnedders@apple.com",
      "hash": "7c90505b4e531de4fdc64f48af63cc45ca041478",
      "subject": "Unify mouse/pen/touch code paths in SimulatedInputDispatcher::transitionInputSourceToState"
    },
    "318476@main": {
      "author": "Pawel Lampe",
      "avatar": "https://www.gravatar.com/avatar/3c9bf19417c230eff7ade252118deb7a?d=identicon\u0026s=64",
      "cl": "318476@main",
      "clUrl": "https://commits.webkit.org/318476@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319590\n\nReviewed by Carlos Garcia Campos.\n\nThis change adds a small cache for font variation typefaces, so that\nvariation-specific typefaces can be shared. This way, a lot of memory\ncan be saved if font variations are used often.\n\nCanonical link: https://commits.webkit.org/318476@main",
      "email": "plampe@igalia.com",
      "hash": "6b324fb4b79e6cfc561f22ee331eda4c520631c7",
      "subject": "[Skia] Memory growth on every page load when fonts with variations are used"
    },
    "318477@main": {
      "author": "Trial",
      "avatar": "https://www.gravatar.com/avatar/7650b3c1c38bb4c926a3514449062c32?d=identicon\u0026s=64",
      "cl": "318477@main",
      "clUrl": "https://commits.webkit.org/318477@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320871\nrdar://183892768\n\nReviewed by Keith Miller.\n\nEnable joint-iteration proposal[1], it is already stage-4.\n\n[1]: https://github.com/tc39/proposal-joint-iteration\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/318477@main",
      "email": "trial@local",
      "hash": "934bb002485a62b71e818fea5c56330e7704e052",
      "subject": "[JSC] Enable joint-iteration proposal"
    },
    "318478@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "318478@main",
      "clUrl": "https://commits.webkit.org/318478@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320907\nrdar://183929867\n\nReviewed by Mike Wyrzykowski.\n\nThis change makes no functional difference but slightly reduces the number of\n`unsafe` loci in the WebGPU Swift code, by centralising the construction of an\nempty span.\n\nCanonical link: https://commits.webkit.org/318478@main",
      "email": "adrian_taylor@apple.com",
      "hash": "c3634bcc04f70159c5331ba64121399ba4237e53",
      "subject": "Slightly reduce unsafe in WebGPU Buffer"
    },
    "318479@main": {
      "author": "Trial",
      "avatar": "https://www.gravatar.com/avatar/7650b3c1c38bb4c926a3514449062c32?d=identicon\u0026s=64",
      "cl": "318479@main",
      "clUrl": "https://commits.webkit.org/318479@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320868\nrdar://183892687\n\nReviewed by Keith Miller.\n\nEnable iterator chunking proposal[1] as it reaches to stage-3.\n\n[1]: https://github.com/tc39/proposal-iterator-chunking\n\n* JSTests/stress/iterator-prototype.js:\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/318479@main",
      "email": "trial@local",
      "hash": "793e36fb835e849f31e76ae57d01a35ad8fab319",
      "subject": "[JSC] Enable iterator chunking"
    },
    "318480@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "318480@main",
      "clUrl": "https://commits.webkit.org/318480@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319490\nrdar://182221871\n\nReviewed by Geoffrey Garen.\n\nSome of our tests are \"death tests\" which rely on spawning a new process to\nensure that it crashes as expected. Some of them, in turn, are \"threadsafe\"\nwhich means that the test runner launches an entire new test executable\n(instead of just using 'fork()').\n\nThese tests have recently become broken because of a problem passing through\narguments to those new child processes. This resulted in an infinite cascade of\nnew TestWTF processes, each immediately spawning another, until we got resource\nexhaustion on the Mac, which removed it from the EWS pool.\n\nThis adds support for the required command-line arguments.\n\nTo reproduce this problem,\n Tools/Scripts/run-api-tests --debug TestWTF.WTF_RunLoopDeathTest.CapabilityIsCurrentFailureAssertsDeathTest\nwhile running something like\n watch 'ps ax | grep -c \"[T]estWTF\"'\nand be ready to killall -9 TestWTF before your Mac is taken down.\nBefore this fix, you will see hundreds of processes being spawned within\nmoments.\n\nCanonical link: https://commits.webkit.org/318480@main",
      "email": "adrian_taylor@apple.com",
      "hash": "e7dc9797f7ed88f66a2ebb94f8d920968a9d2c05",
      "subject": "Fix threadsafe deathtest explosion"
    },
    "318481@main": {
      "author": "Trial",
      "avatar": "https://www.gravatar.com/avatar/7650b3c1c38bb4c926a3514449062c32?d=identicon\u0026s=64",
      "cl": "318481@main",
      "clUrl": "https://commits.webkit.org/318481@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320867\nrdar://183892394\n\nReviewed by Keith Miller.\n\nEnable import defer proposal[1] as it is reaching to stage-3.\n\n[1]: https://github.com/tc39/proposal-defer-import-eval\n\n* JSTests/modules/import-meta-syntax.js:\n(shouldThrow):\n* JSTests/stress/import-syntax.js:\n* JSTests/stress/modules-syntax-error.js:\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/318481@main",
      "email": "trial@local",
      "hash": "85e82ceefe1b2754706cf0def3eca10557d39384",
      "subject": "[JSC] Enable import defer proposal"
    },
    "318482@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "318482@main",
      "clUrl": "https://commits.webkit.org/318482@main",
      "description": "rdar://87884897\nhttps://bugs.webkit.org/show_bug.cgi?id=235400\n\nReviewed by Tim Nguyen.\n\nImplement @supports at-rule(\u003cat-rule\u003e), which evaluates to Supported if\nthe CSS at-rule is supported.\n\nTest: imported/w3c/web-platform-tests/css/css-conditional/js/supports-at-rule.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/js/supports-at-rule-expected.txt:\n* Source/WebCore/css/CSSValueKeywords.in:\n* Source/WebCore/css/parser/CSSSupportsParser.cpp:\n(WebCore::CSSSupportsParser::consumeSupportsFunction):\n(WebCore::CSSSupportsParser::consumeSupportsAtRuleFunction):\n(WebCore::CSSSupportsParser::consumeSupportsFontTechFunction):\n* Source/WebCore/css/parser/CSSSupportsParser.h:\n\nCanonical link: https://commits.webkit.org/318482@main",
      "email": "kiet.ho@apple.com",
      "hash": "2554611264c43093962c273f23a634ae437a0bde",
      "subject": "Implement at-rule function for use with @supports"
    },
    "318483@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "318483@main",
      "clUrl": "https://commits.webkit.org/318483@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320923\nrdar://183954230\n\nUnreviewed.\n\n318101@main made it so we don't expose errors from sending datagrams to JS.\nThis intentional change caused the test, which expected an NSError from\nevaulateJavaScript, to fail.  This updates the test expectation to pass.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebTransport.mm:\n(TestWebKitAPI::TEST(WebTransport, NetworkProcessCrash)):\n\nCanonical link: https://commits.webkit.org/318483@main",
      "email": "achristensen@apple.com",
      "hash": "2354d140a41b76c17a36026bfb9b9b302dc64167",
      "subject": "Fix TestWebKitAPI.WebTransport.NetworkProcessCrash after 318101@main"
    },
    "318484@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "318484@main",
      "clUrl": "https://commits.webkit.org/318484@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320909\nrdar://183910439\n\nReviewed by Abrar Rahman Protyasha.\n\nThere are race conditions where a web process can send a message before the UI process\nhas told it to tear down its iframes with site isolation enabled.  This is currently\ncausing the MESSAGE_CHECK_COMPLETION in WebProcessProxy::didPostMessage to be hit.\nWe want to just ignore the message if it was sent by a process that was recently\ndisassociated with the page.\n\n* Source/WebKit/UIProcess/WebProcessProxy.cpp:\n(WebKit::WebProcessProxy::didPostMessage):\n\nCanonical link: https://commits.webkit.org/318484@main",
      "email": "achristensen@apple.com",
      "hash": "384f747df59003fc1aab666f81ea2fd521ee5232",
      "subject": "Turn MESSAGE_CHECK_COMPLETION in WebProcessProxy::didPostMessage into early return"
    },
    "318485@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "318485@main",
      "clUrl": "https://commits.webkit.org/318485@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320680\nrdar://problem/183664987\n\nReviewed by Alan Baradlay.\n\nWhen a grid item is placed with a negative line that resolves before the start of\nthe explicit grid, leading implicit tracks must be generated before the explicit\ngrid. GridFormattingContext already computes a count of those tracks and shifts\nevery item's line forward so that its DefinitePosition, if it has one,\nis non-negative during layout (relative to the implicit grid). However,\ngrid layout does not know how many of those leading implicit tracks\nthere are which is an additional piece of information that it will need\nto keep track of.\n\nIn GridFormattingContext we compute the number of implicit tracks and\npass that as input to GridLayout just like how the number of explicit\ntracks is already a part of the input. It can then use those when\ncreating the ImplicitGrid and also generate the track sizing functions\nfor them.\n\n* Source/WebCore/layout/formattingContexts/grid/GridFormattingContext.cpp:\n(WebCore::Layout::GridFormattingContext::computeLeadingImplicitTracks const):\nRefactor out the logic that computes the number of leading implicit\ntracks into a dedicated function since it does not really belong to\nunplaced grid item construction. Also rename the values from columnNegativeLineOffset\nto LeadingImplicitColumns with a column/track count since that is a bit\nmore descriptive of what it represents.\n\n* Source/WebCore/layout/formattingContexts/grid/GridLayout.cpp:\n(WebCore::Layout::GridLayout::calculateInitialImplicitGridDimensions):\nNow the initial dimensions of the ImplicitGrid will be the number of\nexplicit tracks + the number of leading implicit tracks instead of it\njust being the explicit ones.\n\n(WebCore::Layout::GridLayout::constructInitialImplicitGrid):\n(WebCore::Layout::GridLayout::placeGridItems):\n(WebCore::Layout::GridLayout::layout):\n(WebCore::Layout::GridLayout::generateImplicitTrackSizingFunctions):\nTakes in the number of implicit tracks directly rather then computing it\nitself based off the number of total tracks and explicit ones. This\ncurrently is really only correct when grid-auto-columns/rows contains a\nsingle value (e.g. grid-auto-columns: 100px rather than grid-auto-columns: 100px min-content)\nbut we gate taking GFC on this anyways so it isn't a problem. Before we\nrelax that condition we will need to implement this to handle that case.\n\n(WebCore::Layout::GridLayout::trackSizingFunctions):\n* Source/WebCore/layout/formattingContexts/grid/GridLayout.h:\n* Source/WebCore/layout/formattingContexts/grid/UnplacedGridItem.cpp:\n(WebCore::Layout::UnplacedGridItem::GridPosition::create):\n(WebCore::Layout::UnplacedGridItem::UnplacedGridItem):\n* Source/WebCore/layout/formattingContexts/grid/UnplacedGridItem.h:\nBasically just making sure we are consistent and are using the new\n\"leading implicit columns/rows,\" term rather than \"negative line offset.\"\n\nCanonical link: https://commits.webkit.org/318485@main",
      "email": "sammy.gill@apple.com",
      "hash": "a64300296c7752fbd4ae85a9621f2f277a4ebb59",
      "subject": "[GFC] Generate leading implicit tracks for negative line placements"
    },
    "318486@main": {
      "author": "Tim Nguyen",
      "avatar": "https://www.gravatar.com/avatar/208c05ac2decdf818a4a08ada568328e?d=identicon\u0026s=64",
      "cl": "318486@main",
      "clUrl": "https://commits.webkit.org/318486@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319831\nrdar://182739052\n\nReviewed by Antti Koivisto.\n\n(This is based on Tim Nguyen initial PR)\n\nThe syntax for the white-space shorthand is:\n\nnormal | pre | pre-wrap | pre-line | \u003c'white-space-collapse'\u003e || \u003c'text-wrap-mode'\u003e || \u003c'white-space-trim'\u003e\n\nSee: https://drafts.csswg.org/css-text-4/#white-space-property\n\nAdd 'white-space-trim' as the third longhand of the 'white-space' shorthand. The\nlegacy single-keyword forms (normal / pre / pre-wrap / pre-line) map to\n'white-space-trim: none' per the normative table in the spec, so they never combine\nwith a discard-* keyword. Serialization -- both of a declaration block\n(ShorthandSerializer) and of the computed value (Style::Extractor) -- only collapses\nto those legacy keywords when 'white-space-trim' is 'none'; otherwise it appends the\ntrim value and omits the other two longhands when they hold their initial value.\n\n'white-space-trim' is gated on the CSSWhiteSpaceTrimEnabled setting while\n'white-space' is not, so the shorthand parser gates only the consumption of the\ndiscard-* keywords and always sets the 'white-space-trim' longhand. That keeps the\nshorthand round-tripping when the setting is off, and matches how 'font' and\n'font-variant' handle the settings-gated 'font-variant-emoji' longhand.\n\nEditing copies 'white-space-trim' alongside the other two longhands. All three have\nto travel together: a partial longhand set makes the 'white-space' shorthand\nunserializable, so editing would start emitting 'white-space-collapse' /\n'text-wrap-mode' where it used to emit 'white-space'. It is therefore listed with the\ninheritable editing properties even though it is not an inherited property -- if only\nthe context style carries it, the white-space longhands never compare equal to the\ncontext and editing wraps content in redundant spans. The context comparison in\nremoveStyleInContextNotOverridenByMatchedRules also compares values rather than\nCSSValue identity, since 'white-space-trim' serializes to a list for any value other\nthan 'none'.\n\nTests: imported/w3c/web-platform-tests/css/css-text/parsing/white-space-shorthand-longhands.html\n       imported/w3c/web-platform-tests/css/css-text/parsing/white-space-shorthand.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/white-space-shorthand-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/white-space-shorthand-longhands-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/white-space-shorthand-longhands.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/white-space-shorthand.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-trim-white-space.html:\n* Source/WebCore/css/CSSProperties.json:\n* Source/WebCore/css/ShorthandSerializer.cpp:\n(WebCore::ShorthandSerializer::serializeWhiteSpace const):\n* Source/WebCore/css/parser/CSSPropertyParserCustom.h:\n(WebCore::CSS::PropertyParserCustom::consumeWhiteSpaceShorthand):\n* Source/WebCore/editing/EditingStyle.cpp:\n(WebCore::EditingStyle::init):\n(WebCore::EditingStyle::conflictsWithInlineStyleOfElement const):\n(WebCore::EditingStyle::removeStyleInContextNotOverridenByMatchedRules):\n(WebCore::StyleChange::StyleChange):\n* Source/WebCore/style/StyleExtractorCustom.h:\n(WebCore::Style::PropertyExtractorAdaptor\u003cCSSPropertyWhiteSpace\u003e::computedValue const):\n\nCanonical link: https://commits.webkit.org/318486@main",
      "email": "ntim@apple.com",
      "hash": "dd490d605c8f089877ac86a95aa348387e514892",
      "subject": "[white-space-trim] Add to white-space shorthand syntax"
    },
    "318487@main": {
      "author": "Carlos Alberto Lopez Perez",
      "avatar": "https://www.gravatar.com/avatar/05326c1dbe06f486e884975e73f25179?d=identicon\u0026s=64",
      "cl": "318487@main",
      "clUrl": "https://commits.webkit.org/318487@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320559\n\nReviewed by Yusuke Suzuki and Justin Michaud.\n\nVM::pushCheckpointOSRSideState() has an ASSERT_ENABLED block that checks\nthat the side state stack remains ordered. To do so, it needs the current\nthread stack bounds.\n\nIt obtained them using StackBounds::currentThreadStackBounds(), which does\nnot cache the result. On Linux, this calls pthread_getattr_np(), which glibc\nimplements for the main thread by opening and parsing /proc/self/maps.\nEach call makes the kernel generate a list of the process memory mappings\nand then makes glibc parse that list.\n\nWhile running wasm/stress/type-index-abstract-heap-types-nulls-and-casts.js\nin wasm-eager mode, profiling showed about ~45% of samples in kernel code\ngenerating /proc/self/maps and another ~30% in libc parsing it. The test\nopened /proc/self/maps hundreds of times through repeated calls to\nVM::pushCheckpointOSRSideState().\n\nThread::m_stack is initialized using StackBounds::currentThreadStackBounds()\nand cached for the lifetime of the thread. Thread::currentSingleton().stack()\ntherefore provides the cached bounds without repeating the OS query.\nlogSanitizeStack() in the same file already uses this cached value.\n\nSwitch both call sites in VM.cpp to the cached bounds. This keeps the\nrelevant stack consistency assertions checks without asking the operating\nsystem to recalculate information that the thread already stores.\n\npopAllCheckpointOSRSideStateUntil() is not assertion-only: it uses the\nbounds as part of its normal operation. This change therefore also avoids\nthe same cost in release builds.\n\nWith this change, on a Release+Asserts WPE build, `run-jsc-stress-tests \\\n--filter wasm.yaml/wasm/stress/type-index-abstract-heap-types` completes\nin about five minutes. Previously, it could take around one hour, and the\ntests would usually time out.\n\n* JSTests/wasm/stress/type-index-abstract-heap-types-concrete-vs-abstract.js:\n* JSTests/wasm/stress/type-index-abstract-heap-types-globals-and-tables.js:\n* JSTests/wasm/stress/type-index-abstract-heap-types-nulls-and-casts.js:\n* JSTests/wasm/stress/type-index-abstract-heap-types-subtype-validation.js:\n* Source/JavaScriptCore/runtime/VM.cpp:\n(JSC::VM::pushCheckpointOSRSideState):\n(JSC::VM::popAllCheckpointOSRSideStateUntil):\n\nCanonical link: https://commits.webkit.org/318487@main",
      "email": "clopez@igalia.com",
      "hash": "bff3814d76f74308c64bd502b0630afa08c8d59b",
      "subject": "[JSC][Linux] Don't re-read /proc/self/maps when handling checkpoint OSR side state"
    },
    "318488@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "318488@main",
      "clUrl": "https://commits.webkit.org/318488@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320762\nrdar://183763840\n\nReviewed by Tyler Wilcock and Andres Gonzalez.\n\nOn Mac, we want to run most of our accessibility layout tests with both the\nisolated tree flags on and off, because Safari runs with it on, whereas embedded\nWebKit (e.g. Mail) runs with it off. Having two copies of most tests is the most\npractical way to do this:\n\n- It ensures full coverage on EWS\n- It ensures that any developer who runs all accessibility layout tests gets the\n  full coverage by default\n- It lets us manage expectations separately in case only one path regresses\n\nThis change adds a README and migrates a few tests to have a copy in the\nisolated-tree directory, and does some other cleanups and fixes found\nalong the way.\n\nWe will follow up with more migrations.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/accessibility/ARIA-reflection.html:\n* LayoutTests/accessibility/aria-hidden-negates-no-visibility-expected.txt: Removed.\n* LayoutTests/accessibility/corresponding-control-deleted-crash-expected.txt: Removed.\n* LayoutTests/accessibility/isolated-tree/ARIA-reflection-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/ARIA-reflection.html: Copied from LayoutTests/accessibility/ARIA-reflection.html.\n* LayoutTests/accessibility/isolated-tree/README.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-crash-focused-element-change-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-crash-focused-element-change.html: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-crash-setattribute-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-crash-setattribute.html: Added.\n* LayoutTests/accessibility/isolated-tree/editable-word-navigation.html:\n* LayoutTests/accessibility/isolated-tree/simple-word-navigation.html:\n* LayoutTests/accessibility/isolated-tree/soft-line-breaks-include-space.html:\n* LayoutTests/accessibility/mac/clipped-radio-input-frame.html:\n* LayoutTests/accessibility/mac/draggable-expected.txt: Removed.\n* LayoutTests/accessibility/mac/line-range-at-soft-breaks.html:\n* LayoutTests/accessibility/mac/text-marker-range-across-soft-break-includes-space.html:\n* LayoutTests/accessibility/mac/webkit-alt-for-css-content-expected.txt: Removed.\n* LayoutTests/accessibility/plugin-expected.txt: Removed.\n* LayoutTests/platform/mac/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318488@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "15688910d1f921b3cc400b3cf0dc5b09326e83a0",
      "subject": "AX: start running more tests with isolated-tree flag on, more LayoutTest cleanup"
    },
    "318489@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "318489@main",
      "clUrl": "https://commits.webkit.org/318489@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320771\nrdar://183777273\n\nReviewed by Tyler Wilcock.\n\nThis patch is to handle the straightforward ones. No other\nreformatting is done, these are mostly older layout tests but it\nallows for minor changes in the future without hitting the style\nwarning.\n\n* LayoutTests/accessibility/activation-of-input-field-inside-other-element.html:\n* LayoutTests/accessibility/adjacent-continuations-cause-assertion-failure.html:\n* LayoutTests/accessibility/alt-tag-on-image-with-nonimage-role.html:\n* LayoutTests/accessibility/aria-busy.html:\n* LayoutTests/accessibility/aria-cellspans-with-native-cellspans.html:\n* LayoutTests/accessibility/aria-checkbox-checked.html:\n* LayoutTests/accessibility/aria-checkbox-text.html:\n* LayoutTests/accessibility/aria-current-global-attribute.html:\n* LayoutTests/accessibility/aria-current-state-changed-notification.html:\n* LayoutTests/accessibility/aria-current.html:\n* LayoutTests/accessibility/aria-disabled-propagated-to-children.html:\n* LayoutTests/accessibility/aria-disabled.html:\n* LayoutTests/accessibility/aria-grid-column-span.html:\n* LayoutTests/accessibility/aria-help.html:\n* LayoutTests/accessibility/aria-hidden-hides-all-elements.html:\n* LayoutTests/accessibility/aria-hidden-with-elements.html:\n* LayoutTests/accessibility/aria-hidden.html:\n* LayoutTests/accessibility/aria-inherits-presentational.html:\n* LayoutTests/accessibility/aria-label.html:\n* LayoutTests/accessibility/aria-labeled-with-hidden-node.html:\n* LayoutTests/accessibility/aria-labelledby-on-input.html:\n* LayoutTests/accessibility/aria-labelledby-overrides-aria-labeledby.html:\n* LayoutTests/accessibility/aria-labelledby-stay-within.html:\n* LayoutTests/accessibility/aria-labelledby-with-descendants.html:\n* LayoutTests/accessibility/aria-list-and-listitem.html:\n* LayoutTests/accessibility/aria-listbox-clear-selection-crash.html:\n* LayoutTests/accessibility/aria-listbox-no-selection.html:\n* LayoutTests/accessibility/aria-liveregion-marquee-default.html:\n* LayoutTests/accessibility/aria-mappings.html:\n* LayoutTests/accessibility/aria-menubar-menuitems.html:\n* LayoutTests/accessibility/aria-modal.html:\n* LayoutTests/accessibility/aria-namefrom-author.html:\n* LayoutTests/accessibility/aria-none-role.html:\n* LayoutTests/accessibility/aria-presentational-role.html:\n* LayoutTests/accessibility/aria-readonly.html:\n* LayoutTests/accessibility/aria-required.html:\n* LayoutTests/accessibility/aria-role-on-label.html:\n* LayoutTests/accessibility/aria-selected.html:\n* LayoutTests/accessibility/aria-slider-value-change.html:\n* LayoutTests/accessibility/aria-sort-changed-notification.html:\n* LayoutTests/accessibility/aria-sort.html:\n* LayoutTests/accessibility/aria-switch-text.html:\n* LayoutTests/accessibility/aria-table-content.html:\n* LayoutTests/accessibility/aria-table-hierarchy.html:\n* LayoutTests/accessibility/aria-table-with-presentational-elements.html:\n* LayoutTests/accessibility/aria-text-role.html:\n* LayoutTests/accessibility/aria-used-on-image-maps.html:\n* LayoutTests/accessibility/attachment-element.html:\n* LayoutTests/accessibility/axpress-on-aria-button.html:\n* LayoutTests/accessibility/braille-label-role.html:\n* LayoutTests/accessibility/button-title-uses-inner-img-alt.html:\n* LayoutTests/accessibility/button-with-aria-haspopup-role.html:\n* LayoutTests/accessibility/canvas-accessibilitynodeobject.html:\n* LayoutTests/accessibility/canvas-description-and-role.html:\n* LayoutTests/accessibility/canvas-fallback-content-2.html:\n* LayoutTests/accessibility/combobox/aria-combobox-hierarchy.html:\n* LayoutTests/accessibility/combobox/aria-combobox.html:\n* LayoutTests/accessibility/combobox/mac/combobox-value.html:\n* LayoutTests/accessibility/container-node-delete-causes-crash.html:\n* LayoutTests/accessibility/content-changed-notification-causes-crash.html:\n* LayoutTests/accessibility/content-editable-set-inner-text-generates-axvalue-notification.html:\n* LayoutTests/accessibility/contenteditable-hidden-div.html:\n* LayoutTests/accessibility/contenteditable-table-check-causes-crash.html:\n* LayoutTests/accessibility/crash-determining-aria-role-when-label-present.html:\n* LayoutTests/accessibility/crash-with-noelement-selectbox.html:\n* LayoutTests/accessibility/crashing-a-tag-in-map.html:\n* LayoutTests/accessibility/css-content-attribute.html:\n* LayoutTests/accessibility/css-table-ignored.html:\n* LayoutTests/accessibility/datalist.html:\n* LayoutTests/accessibility/datetime-attribute.html:\n* LayoutTests/accessibility/display-table-cell-causes-crash.html:\n* LayoutTests/accessibility/div-within-anchors-causes-crash.html:\n* LayoutTests/accessibility/double-nested-inline-element-missing-from-tree.html:\n* LayoutTests/accessibility/duplicate-axrenderobject-crash.html:\n* LayoutTests/accessibility/duplicate-child-nodes.html:\n* LayoutTests/accessibility/ellipsis-text.html:\n* LayoutTests/accessibility/embedded-image-description.html:\n* LayoutTests/accessibility/empty-image-with-title.html:\n* LayoutTests/accessibility/fieldset-element.html:\n* LayoutTests/accessibility/first-letter-text-transform-causes-crash.html:\n* LayoutTests/accessibility/form-control-value-settable.html:\n* LayoutTests/accessibility/generated-content-with-display-table-crash.html:\n* LayoutTests/accessibility/global-aria-attributes-invalidate-presentational.html:\n* LayoutTests/accessibility/hang-in-isignored.html:\n* LayoutTests/accessibility/heading-crash-after-hidden.html:\n* LayoutTests/accessibility/hidden-object-text-value-crash.html:\n* LayoutTests/accessibility/hidden-th-still-column-header.html:\n* LayoutTests/accessibility/html-html-element-is-ignored.html:\n* LayoutTests/accessibility/image-load-on-delay.html:\n* LayoutTests/accessibility/image-role-is-synonomous-with-img-role.html:\n* LayoutTests/accessibility/img-alt-attribute-unassigned-empty.html:\n* LayoutTests/accessibility/img-alt-tag-only-whitespace.html:\n* LayoutTests/accessibility/img-aria-button-alt-tag.html:\n* LayoutTests/accessibility/img-fallsback-to-title.html:\n* LayoutTests/accessibility/input-file-causes-crash.html:\n* LayoutTests/accessibility/input-image-alt.html:\n* LayoutTests/accessibility/insert-selected-option-into-select-causes-crash.html:\n* LayoutTests/accessibility/keyevents-for-actions-mimic-real-key-events.html:\n* LayoutTests/accessibility/keyevents-for-increment-actions-with-node-removal.html:\n* LayoutTests/accessibility/keyevents-posted-for-dismiss-action.html:\n* LayoutTests/accessibility/keyevents-posted-for-increment-actions.html:\n* LayoutTests/accessibility/link-inside-button-accessible-text.html:\n* LayoutTests/accessibility/links-activation.html:\n* LayoutTests/accessibility/list-detection.html:\n* LayoutTests/accessibility/list-item-with-pseudo-element-crash.html:\n* LayoutTests/accessibility/listbox-clear-selection.html:\n* LayoutTests/accessibility/listbox-enabled-states.html:\n* LayoutTests/accessibility/loading-iframe-sends-notification.html:\n* LayoutTests/accessibility/mac/accessibility-make-first-responder.html:\n* LayoutTests/accessibility/mac/alt-for-css-content.html:\n* LayoutTests/accessibility/mac/apple-pay-labels.html:\n* LayoutTests/accessibility/mac/apple-pay-session-v4.html:\n* LayoutTests/accessibility/mac/aria-alerts.html:\n* LayoutTests/accessibility/mac/aria-columnrowheaders.html:\n* LayoutTests/accessibility/mac/aria-current-attribute-exposed.html:\n* LayoutTests/accessibility/mac/aria-describedby-fieldset.html:\n* LayoutTests/accessibility/mac/aria-details.html:\n* LayoutTests/accessibility/mac/aria-directory.html:\n* LayoutTests/accessibility/mac/aria-divs-not-ignored.html:\n* LayoutTests/accessibility/mac/aria-expanded-not-exposed-when-undefined.html:\n* LayoutTests/accessibility/mac/aria-expanded-standard-items.html:\n* LayoutTests/accessibility/mac/aria-grouping-roles.html:\n* LayoutTests/accessibility/mac/aria-image-emits-object-replacement.html:\n* LayoutTests/accessibility/mac/aria-labelledby-multiple-child-crash.html:\n* LayoutTests/accessibility/mac/aria-liveregions-notifications-always-sent.html:\n* LayoutTests/accessibility/mac/aria-liveregions-notifications.html:\n* LayoutTests/accessibility/mac/aria-menu-closed-notification.html:\n* LayoutTests/accessibility/mac/aria-menu-item-selected-notification.html:\n* LayoutTests/accessibility/mac/aria-menu-open-notification.html:\n* LayoutTests/accessibility/mac/aria-menu-role-descriptions.html:\n* LayoutTests/accessibility/mac/aria-menubar.html:\n* LayoutTests/accessibility/mac/aria-menuitem-checked-value.html:\n* LayoutTests/accessibility/mac/aria-multiple-liveregions-notification.html:\n* LayoutTests/accessibility/mac/aria-popup.html:\n* LayoutTests/accessibility/mac/aria-radiobutton-text.html:\n* LayoutTests/accessibility/mac/aria-radiogroup.html:\n* LayoutTests/accessibility/mac/aria-required-popup-button.html:\n* LayoutTests/accessibility/mac/aria-spinbutton-crash.html:\n* LayoutTests/accessibility/mac/aria-table-with-colspan-cells.html:\n* LayoutTests/accessibility/mac/aria-toolbar.html:\n* LayoutTests/accessibility/mac/aria-tree-index-of-items.html:\n* LayoutTests/accessibility/mac/aria-tree-item-children.html:\n* LayoutTests/accessibility/mac/aria-tree-item-name.html:\n* LayoutTests/accessibility/mac/aria-tree-with-presentation-role.html:\n* LayoutTests/accessibility/mac/aria-valuetext-on-native-slider.html:\n* LayoutTests/accessibility/mac/aria-valuetext.html:\n* LayoutTests/accessibility/mac/async-increment-decrement-action.html:\n* LayoutTests/accessibility/mac/attributed-string-includes-highlighting.html:\n* LayoutTests/accessibility/mac/attributed-string-includes-misspelled-with-selection.html:\n* LayoutTests/accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable.html:\n* LayoutTests/accessibility/mac/bounds-for-range-crash.html:\n* LayoutTests/accessibility/mac/button-shouldnot-have-axvalue.html:\n* LayoutTests/accessibility/mac/checkbox-posts-value-change-notification-after-activation-with-space.html:\n* LayoutTests/accessibility/mac/checked-status-tree-items.html:\n* LayoutTests/accessibility/mac/children-in-navigation-order-returns-children.html:\n* LayoutTests/accessibility/mac/clipped-text-under-element.html:\n* LayoutTests/accessibility/mac/crash-bounds-for-range.html:\n* LayoutTests/accessibility/mac/crash-invalid-text-marker-node.html:\n* LayoutTests/accessibility/mac/css-first-letter-children.html:\n* LayoutTests/accessibility/mac/css-speech-speak.html:\n* LayoutTests/accessibility/mac/definition-list-term.html:\n* LayoutTests/accessibility/mac/descriptionlist-not-ignored.html:\n* LayoutTests/accessibility/mac/details-summary-role-description.html:\n* LayoutTests/accessibility/mac/div-containing-div-with-aria.html:\n* LayoutTests/accessibility/mac/editable-webarea-context-menu-point.html:\n* LayoutTests/accessibility/mac/element-busy-changed.html:\n* LayoutTests/accessibility/mac/element-focus.html:\n* LayoutTests/accessibility/mac/element-level.html:\n* LayoutTests/accessibility/mac/estimated-progress.html:\n* LayoutTests/accessibility/mac/file-upload-button-subrole.html:\n* LayoutTests/accessibility/mac/focus-crash.html:\n* LayoutTests/accessibility/mac/footer-roledescription.html:\n* LayoutTests/accessibility/mac/footer.html:\n* LayoutTests/accessibility/mac/frame-with-title.html:\n* LayoutTests/accessibility/mac/hr-element.html:\n* LayoutTests/accessibility/mac/html-section-elements.html:\n* LayoutTests/accessibility/mac/id-class-attributes.html:\n* LayoutTests/accessibility/mac/iframe-with-title-correct-hierarchy.html:\n* LayoutTests/accessibility/mac/inherited-presentational-lists.html:\n* LayoutTests/accessibility/mac/inline-text-attribute.html:\n* LayoutTests/accessibility/mac/input-string-for-range-crash.html:\n* LayoutTests/accessibility/mac/input-title.html:\n* LayoutTests/accessibility/mac/internal-link-when-document-has-fragment.html:\n* LayoutTests/accessibility/mac/label-element-all-text-string-value.html:\n* LayoutTests/accessibility/mac/label-element-with-hidden-control.html:\n* LayoutTests/accessibility/mac/label-element-with-link-string-value.html:\n* LayoutTests/accessibility/mac/label-elements-exposed-as-title-ui-elements.html:\n* LayoutTests/accessibility/mac/landmark-not-ignored.html:\n* LayoutTests/accessibility/mac/linkrel.html:\n* LayoutTests/accessibility/mac/list-items-ignored.html:\n* LayoutTests/accessibility/mac/listbox-hit-test.html:\n* LayoutTests/accessibility/mac/live-region-creation-notification.html:\n* LayoutTests/accessibility/mac/live-region-on-span.html:\n* LayoutTests/accessibility/mac/loaded-notification.html:\n* LayoutTests/accessibility/mac/main-element.html:\n* LayoutTests/accessibility/mac/malformed-tree.html:\n* LayoutTests/accessibility/mac/math-alttext.html:\n* LayoutTests/accessibility/mac/mathml-elements.html:\n* LayoutTests/accessibility/mac/mathml-line-fraction.html:\n* LayoutTests/accessibility/mac/mathml-multiscript.html:\n* LayoutTests/accessibility/mac/media-query-values-change.html:\n* LayoutTests/accessibility/mac/media-role-descriptions.html:\n* LayoutTests/accessibility/mac/menu-item-values.html:\n* LayoutTests/accessibility/mac/menu-selection-notification-crash.html:\n* LayoutTests/accessibility/mac/meter-gauge-value-description.html:\n* LayoutTests/accessibility/mac/meter-subrole.html:\n* LayoutTests/accessibility/mac/meter-with-label-element.html:\n* LayoutTests/accessibility/mac/misspelled-attributed-string.html:\n* LayoutTests/accessibility/mac/mixed-checkbox.html:\n* LayoutTests/accessibility/mac/native-list-item-should-not-expose-label.html:\n* LayoutTests/accessibility/mac/nested-inline-elements-children.html:\n* LayoutTests/accessibility/mac/no-unknown-objects-when-title-attribute-present.html:\n* LayoutTests/accessibility/mac/option-with-arialabel.html:\n* LayoutTests/accessibility/mac/option-with-lang.html:\n* LayoutTests/accessibility/mac/output-element.html:\n* LayoutTests/accessibility/mac/parent-of-table-row-is-table.html:\n* LayoutTests/accessibility/mac/popup-button-exposes-axvalue.html:\n* LayoutTests/accessibility/mac/press-action-for-presentational-descendants.html:\n* LayoutTests/accessibility/mac/press-action-is-first.html:\n* LayoutTests/accessibility/mac/press-not-work-for-disabled-menu-list.html:\n* LayoutTests/accessibility/mac/primary-screen-height.html:\n* LayoutTests/accessibility/mac/progress-element-min-max.html:\n* LayoutTests/accessibility/mac/progress-with-label-element.html:\n* LayoutTests/accessibility/mac/progressbar-indeterminate.html:\n* LayoutTests/accessibility/mac/pseudo-element-text-markers.html:\n* LayoutTests/accessibility/mac/radio-button-no-name-crash.html:\n* LayoutTests/accessibility/mac/range-for-contenteditable-newline.html:\n* LayoutTests/accessibility/mac/range-for-line-textarea.html:\n* LayoutTests/accessibility/mac/range-for-position.html:\n* LayoutTests/accessibility/mac/range-orientation.html:\n* LayoutTests/accessibility/mac/relative-frame.html:\n* LayoutTests/accessibility/mac/removing-textarea-after-edit-crash.html:\n* LayoutTests/accessibility/mac/rowheader-outside-table-role.html:\n* LayoutTests/accessibility/mac/search-field-cancel-button.html:\n* LayoutTests/accessibility/mac/search-predicate-container-not-included.html:\n* LayoutTests/accessibility/mac/search-predicate-crash.html:\n* LayoutTests/accessibility/mac/search-predicate-element-count.html:\n* LayoutTests/accessibility/mac/search-predicate-immediate-descendants-only.html:\n* LayoutTests/accessibility/mac/search-predicate-plaintext.html:\n* LayoutTests/accessibility/mac/search-predicate-start-not-specified.html:\n* LayoutTests/accessibility/mac/search-predicate-visible-button.html:\n* LayoutTests/accessibility/mac/search-predicate.html:\n* LayoutTests/accessibility/mac/search-subrole.html:\n* LayoutTests/accessibility/mac/search-text/search-text.html:\n* LayoutTests/accessibility/mac/search-when-element-starts-in-table.html:\n* LayoutTests/accessibility/mac/secure-text-field-supports-fast-search.html:\n* LayoutTests/accessibility/mac/select-element-selection-with-optgroups.html:\n* LayoutTests/accessibility/mac/select-text-should-match-whole-words.html:\n* LayoutTests/accessibility/mac/select-text-stays-inside-text-controls.html:\n* LayoutTests/accessibility/mac/select-text/select-text-1.html:\n* LayoutTests/accessibility/mac/select-text/select-text-135546.html:\n* LayoutTests/accessibility/mac/select-text/select-text-2.html:\n* LayoutTests/accessibility/mac/select-text/select-text-3.html:\n* LayoutTests/accessibility/mac/select-text/select-text-4.html:\n* LayoutTests/accessibility/mac/select-text/select-text-5.html:\n* LayoutTests/accessibility/mac/select-text/select-text-6.html:\n* LayoutTests/accessibility/mac/selected-rows-table.html:\n* LayoutTests/accessibility/mac/selected-tab-crash.html:\n* LayoutTests/accessibility/mac/selected-text-range-for-empty-textarea.html:\n* LayoutTests/accessibility/mac/selected-visible-position-range.html:\n* LayoutTests/accessibility/mac/selection-initial.html:\n* LayoutTests/accessibility/mac/selection-sync.html:\n* LayoutTests/accessibility/mac/set-value-editable-dispatch-events.html:\n* LayoutTests/accessibility/mac/set-value-editable-types.html:\n* LayoutTests/accessibility/mac/setting-attributes-is-asynchronous.html:\n* LayoutTests/accessibility/mac/slider-allows-title-ui-element.html:\n* LayoutTests/accessibility/mac/slider-supports-actions.html:\n* LayoutTests/accessibility/mac/spinbutton-valuedescription.html:\n* LayoutTests/accessibility/mac/static-text-role-uses-text-under-element.html:\n* LayoutTests/accessibility/mac/static-text-with-aria-label.html:\n* LayoutTests/accessibility/mac/string-range-contains-listmarker.html:\n* LayoutTests/accessibility/mac/subroles-for-formatted-groups.html:\n* LayoutTests/accessibility/mac/supports-focus-setting.html:\n* LayoutTests/accessibility/mac/tab-focus-post-notification.html:\n* LayoutTests/accessibility/mac/table-column-and-row-count.html:\n* LayoutTests/accessibility/mac/table-visible-rows.html:\n* LayoutTests/accessibility/mac/table-with-row-col-of-headers.html:\n* LayoutTests/accessibility/mac/table-with-zebra-rows.html:\n* LayoutTests/accessibility/mac/text-marker-for-index.html:\n* LayoutTests/accessibility/mac/text-marker-line-boundary.html:\n* LayoutTests/accessibility/mac/text-marker-string-excludes-generated-content.html:\n* LayoutTests/accessibility/mac/text-marker-string-for-document-end-replaced-node.html:\n* LayoutTests/accessibility/mac/text-marker-string-for-document-range.html:\n* LayoutTests/accessibility/mac/text-marker-word-nav-collapsed-whitespace.html:\n* LayoutTests/accessibility/mac/text-markers-for-input-with-placeholder.html:\n* LayoutTests/accessibility/mac/title-attribute-not-used-as-axtitle.html:\n* LayoutTests/accessibility/mac/treeitem-row-delegation-poorly-formed.html:\n* LayoutTests/accessibility/mac/treeitem-row-delegation.html:\n* LayoutTests/accessibility/mac/unexpected-help-text.html:\n* LayoutTests/accessibility/mac/unsupported-attribute-does-not-crash.html:\n* LayoutTests/accessibility/mac/updating-attribute-in-table-row-crash.html:\n* LayoutTests/accessibility/mac/webarea-can-set-focus.html:\n* LayoutTests/accessibility/mac/webarea-size-equals-content-size.html:\n* LayoutTests/accessibility/mac/webkit-scrollarea.html:\n* LayoutTests/accessibility/mac/wk1-set-selected-text-marker-range-input-element.html:\n* LayoutTests/accessibility/math-fenced.html:\n* LayoutTests/accessibility/math-foreign-content.html:\n* LayoutTests/accessibility/math-mo-fences-and-separators.html:\n* LayoutTests/accessibility/math-multiscript-attributes.html:\n* LayoutTests/accessibility/math-text.html:\n* LayoutTests/accessibility/media-controls.html:\n* LayoutTests/accessibility/menu-item-crash.html:\n* LayoutTests/accessibility/menu-list-sends-change-notification.html:\n* LayoutTests/accessibility/meter-element.html:\n* LayoutTests/accessibility/minimal-table-with-aria-is-data-table.html:\n* LayoutTests/accessibility/narrow-tables-ignored.html:\n* LayoutTests/accessibility/native-listbox-no-selection.html:\n* LayoutTests/accessibility/negative-tabindex-does-not-expose-label.html:\n* LayoutTests/accessibility/non-native-image-crash.html:\n* LayoutTests/accessibility/noscript-ignored.html:\n* LayoutTests/accessibility/poorly-formed-aria-table.html:\n* LayoutTests/accessibility/popup-button-title.html:\n* LayoutTests/accessibility/presentational-children.html:\n* LayoutTests/accessibility/presentational-elements-with-focus.html:\n* LayoutTests/accessibility/press-target-uses-text-descendant-node.html:\n* LayoutTests/accessibility/press-targets-center-point.html:\n* LayoutTests/accessibility/press-works-on-control-types.html:\n* LayoutTests/accessibility/removed-anonymous-block-child-causes-crash.html:\n* LayoutTests/accessibility/removed-continuation-element-causes-crash.html:\n* LayoutTests/accessibility/roles-computedRoleString.html:\n* LayoutTests/accessibility/row-with-aria-role-in-native-table.html:\n* LayoutTests/accessibility/selected-state-changed-notifications.html:\n* LayoutTests/accessibility/selected-text-range-aria-elements.html:\n* LayoutTests/accessibility/self-referencing-aria-labelledby.html:\n* LayoutTests/accessibility/separator-values.html:\n* LayoutTests/accessibility/set-selected-text-range-contenteditable.html:\n* LayoutTests/accessibility/spinbutton-crash.html:\n* LayoutTests/accessibility/spinbutton-implicit-values.html:\n* LayoutTests/accessibility/svg-element-press.html:\n* LayoutTests/accessibility/svg-element-with-aria-role.html:\n* LayoutTests/accessibility/svg-group-element-with-title.html:\n* LayoutTests/accessibility/svg-image.html:\n* LayoutTests/accessibility/svg-shape-labelled.html:\n* LayoutTests/accessibility/svg-text.html:\n* LayoutTests/accessibility/tabindex-elements-are-accessible.html:\n* LayoutTests/accessibility/table-column-headers-with-captions.html:\n* LayoutTests/accessibility/table-destroyed-crash.html:\n* LayoutTests/accessibility/table-fallback-roles-expose-element-attributes.html:\n* LayoutTests/accessibility/table-header-calculation-for-header-rows.html:\n* LayoutTests/accessibility/table-hierarchy.html:\n* LayoutTests/accessibility/table-incorrect-colspan-cell.html:\n* LayoutTests/accessibility/table-missing-column-header-crash.html:\n* LayoutTests/accessibility/table-remove-cell-crash.html:\n* LayoutTests/accessibility/table-scope.html:\n* LayoutTests/accessibility/table-title.html:\n* LayoutTests/accessibility/table-with-empty-thead-causes-crash.html:\n* LayoutTests/accessibility/table-with-footer-section-above-body.html:\n* LayoutTests/accessibility/table-with-hidden-head-section.html:\n* LayoutTests/accessibility/table-with-mismatch-column-count-in-initial-section.html:\n* LayoutTests/accessibility/table-with-missing-aria-role-rows.html:\n* LayoutTests/accessibility/text-alternative-calculation-from-listbox.html:\n* LayoutTests/accessibility/text-element-path.html:\n* LayoutTests/accessibility/text-marker/media-emits-object-replacement.html:\n* LayoutTests/accessibility/text-marker/text-marker-range-stale-node-crash.html:\n* LayoutTests/accessibility/text-marker/text-marker-range-with-removed-node-crash.html:\n* LayoutTests/accessibility/text-role-with-aria-hidden-inside.html:\n* LayoutTests/accessibility/textarea-selected-text-range.html:\n* LayoutTests/accessibility/title-tag-on-unimportant-elements-is-help-text.html:\n* LayoutTests/accessibility/transformed-bounds.html:\n* LayoutTests/accessibility/treeitem-child-exposed.html:\n* LayoutTests/accessibility/updating-attribute-in-table-causes-crash.html:\n* LayoutTests/accessibility/w3c-svg-content-language-attribute.html:\n* LayoutTests/accessibility/w3c-svg-description-calculation.html:\n* LayoutTests/accessibility/w3c-svg-elements-not-exposed.html:\n* LayoutTests/accessibility/w3c-svg-presentational-role.html:\n* LayoutTests/accessibility/w3c-svg-roles.html:\n\nCanonical link: https://commits.webkit.org/318489@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "16581afcfc34ae31a36e157159a6a7a15c789383",
      "subject": "AX: replace js-test-pre/js-test-post with js-test in accessibility layout tests"
    },
    "318490@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "318490@main",
      "clUrl": "https://commits.webkit.org/318490@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320913\nrdar://183941470\n\nUnreviewed test gardening\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318490@main",
      "email": "darbinyan@apple.com",
      "hash": "8ec5fd94b614958583185caf21bfa3d6669a6565",
      "subject": "[Gardening]: REGRESSION(318278@main?)[macOS]: ASSERTION FAILED: !m_waitingForContentPolicy /Volumes/Data/worker/Apple-Tahoe-Debug-Build/build/Source/WebCore/loader/DocumentLoader.cpp"
    },
    "318492@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318492@main",
      "clUrl": "https://commits.webkit.org/318492@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320916\nrdar://183943385\n\nReviewed by Yijia Huang.\n\nWe have various handler IC thunks and others, but most of them do not\nneed to have embedded VM*, which means they are VM-independent. Let's\nshare them globally among multiple VMs.\n\n* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:\n(JSC::loadHandlerImpl):\n(JSC::getByIdLoadHandlerImpl):\n(JSC::getByIdLoadOwnPropertyHandler):\n(JSC::getByIdLoadPrototypePropertyHandler):\n(JSC::getByIdMissHandler):\n(JSC::getterHandlerImpl):\n(JSC::getByIdGetterHandler):\n(JSC::getByIdProxyObjectLoadHandler):\n(JSC::getByIdModuleNamespaceLoadHandler):\n(JSC::putByIdReplaceHandler):\n(JSC::setterHandlerImpl):\n(JSC::putByIdSetterHandlerImpl):\n(JSC::putByIdStrictSetterHandler):\n(JSC::putByIdSloppySetterHandler):\n(JSC::inByIdInHandlerImpl):\n(JSC::inByIdHitHandler):\n(JSC::inByIdMissHandler):\n(JSC::deleteByIdDeleteHandler):\n(JSC::deleteByIdIgnoreHandlerImpl):\n(JSC::deleteByIdDeleteNonConfigurableHandler):\n(JSC::deleteByIdDeleteMissHandler):\n(JSC::instanceOfHandlerImpl):\n(JSC::instanceOfHitHandler):\n(JSC::instanceOfMissHandler):\n(JSC::getByValLoadHandlerImpl):\n(JSC::getByValWithStringLoadOwnPropertyHandler):\n(JSC::getByValWithStringLoadPrototypePropertyHandler):\n(JSC::getByValWithSymbolLoadOwnPropertyHandler):\n(JSC::getByValWithSymbolLoadPrototypePropertyHandler):\n(JSC::getByValMissHandlerImpl):\n(JSC::getByValWithStringMissHandler):\n(JSC::getByValWithSymbolMissHandler):\n(JSC::getByValNonStringPrimitiveKeyLoadHandlerImpl):\n(JSC::getByValNonStringPrimitiveKeyMissHandlerImpl):\n(JSC::putByValNonStringPrimitiveKeyReplaceHandlerImpl):\n(JSC::getByValGetterHandlerImpl):\n(JSC::getByValWithStringGetterHandler):\n(JSC::getByValWithSymbolGetterHandler):\n(JSC::putByValReplaceHandlerImpl):\n(JSC::putByValWithStringReplaceHandler):\n(JSC::putByValWithSymbolReplaceHandler):\n(JSC::putByValSetterHandlerImpl):\n(JSC::putByValWithStringStrictSetterHandler):\n(JSC::putByValWithSymbolStrictSetterHandler):\n(JSC::putByValWithStringSloppySetterHandler):\n(JSC::putByValWithSymbolSloppySetterHandler):\n(JSC::inByValInHandlerImpl):\n(JSC::inByValWithStringHitHandler):\n(JSC::inByValWithStringMissHandler):\n(JSC::inByValWithSymbolHitHandler):\n(JSC::inByValWithSymbolMissHandler):\n(JSC::deleteByValDeleteHandlerImpl):\n(JSC::deleteByValIgnoreHandlerImpl):\n(JSC::deleteByValWithStringDeleteHandler):\n(JSC::deleteByValWithStringDeleteNonConfigurableHandler):\n(JSC::deleteByValWithStringDeleteMissHandler):\n(JSC::deleteByValWithSymbolDeleteHandler):\n(JSC::deleteByValWithSymbolDeleteNonConfigurableHandler):\n(JSC::deleteByValWithSymbolDeleteMissHandler):\n(JSC::checkPrivateBrandHandler):\n(JSC::setPrivateBrandHandler):\n* Source/JavaScriptCore/bytecode/InlineCacheCompiler.h:\n* Source/JavaScriptCore/jit/JITThunks.cpp:\n(JSC::sharedCommonThunks):\n(JSC::JITThunks::initialize):\n(JSC::JITThunks::ctiStub):\n* Source/JavaScriptCore/jit/JITThunks.h:\n* Source/JavaScriptCore/jit/ThunkGenerators.cpp:\n(JSC::polymorphicThunkFor):\n(JSC::polymorphicThunk):\n(JSC::polymorphicThunkForClosure):\n(JSC::polymorphicTopTierThunk):\n(JSC::polymorphicTopTierThunkForClosure):\n(JSC::returnFromBaselineGenerator):\n* Source/JavaScriptCore/jit/ThunkGenerators.h:\n\nCanonical link: https://commits.webkit.org/318492@main",
      "email": "ysuzuki@apple.com",
      "hash": "0d25934d08a80e7338018fb98ddcf7a8a5c27f77",
      "subject": "[JSC] Share VM-independent JIT thunks"
    },
    "318493@main": {
      "author": "Kiara Rose",
      "avatar": "https://www.gravatar.com/avatar/cbfa3709de8e533bdc6505c6c4e83e24?d=identicon\u0026s=64",
      "cl": "318493@main",
      "clUrl": "https://commits.webkit.org/318493@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320767\nrdar://183770530\n\nReviewed by Timothy Hatcher.\n\nThis patch addresses a few of inconsistencies with the browser.alarms API:\n- alarms.create() should return a promise as specified in the MDN documentation.\n- alarms.create() should allow for a \"name\" key to be specified in the info options. https://github.com/w3c/webextensions/issues/999\n- alarms.get() for an unknown alarm should return undefined, not nil.\n- alarms.clear() and alarms.clearAll() should return a promise that resolves with a boolean.\n\nNote: Chrome returns true always for clearAll() whereas Firefox only returns true if an alarm was\nactually cleared. This patch matches Firefox's behavior since this implementation follows the MDN\ndocumentation. I filed https://github.com/w3c/webextensions/issues/1055 to address this in the WECG.\n\nWith these changes, all of the currently running WPT tests for browser.alarms pass.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIAlarms.mm\n\n* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm:\n(WebKit::WebExtensionContext::alarmsCreate):\n(WebKit::WebExtensionContext::alarmsClear):\n(WebKit::WebExtensionContext::alarmsClearAll):\n* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:\n* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:\n* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm:\n(WebKit::WebExtensionAPIAlarms::createAlarm):\n(WebKit::WebExtensionAPIAlarms::get):\n(WebKit::WebExtensionAPIAlarms::clear):\n(WebKit::WebExtensionAPIAlarms::clearAll):\n* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAlarms.h:\n* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAlarms.idl:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIAlarms.mm:\n(TestWebKitAPI::TEST(WKWebExtensionAPIAlarms, Errors)):\n(TestWebKitAPI::TEST(WKWebExtensionAPIAlarms, ClearSingleAlarm)):\n(TestWebKitAPI::TEST(WKWebExtensionAPIAlarms, GetSingleAlarm)):\n(TestWebKitAPI::TEST(WKWebExtensionAPIAlarms, ClearAllAlarms)):\n(TestWebKitAPI::TEST(WKWebExtensionAPIAlarms, CreateAlarms)):\n\nCanonical link: https://commits.webkit.org/318493@main",
      "email": "kiara_rose@apple.com",
      "hash": "07565287df4a952e02a052d06125123d24ffcebd",
      "subject": "Address inconsistencies with the browser.alarms API"
    },
    "318494@main": {
      "author": "Gerald Squelart",
      "avatar": "https://www.gravatar.com/avatar/894904f08d85651bf2a76868a4d2f1b3?d=identicon\u0026s=64",
      "cl": "318494@main",
      "clUrl": "https://commits.webkit.org/318494@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320848\nrdar://183878218\n\nReviewed by Mike Wyrzykowski.\n\nOn platforms where PixelFormat::RGBA16F is not available (because\nENABLE_PIXEL_FORMAT_RGBA16F is 0), allowing float16 canvas and ImageData\nis not helpful:\n- A 2D canvas context with colorType \"float16\" would not be able to\n  interpret its data. It could probably be faked by immediately\n  converting float16 data into unorm8 behind the scene, but that would\n  lose the extra precision and out-of-gamut values.\n- While it would be possible to store a Float16Array in an ImageData\n  with pixelFormat \"rgba-float16\", actually using it in a unorm8 canvas\n  (or fake float16) would also lose precision and higher values.\n\nSo it's best to just disallow these values, so as not to give wrong\nexpectations.\n\nThis limitation can be detected, e.g.:\n`canvas.getContext(\"2d\", {colorType:\"float16\"})` would throw a TypeError;\nso websites can know when not to try and use HDR canvas.\n\nThe relevant full float16 tests have been copied to fast/canvas/hdr for\nplatforms that do support RGBA16F. And the original tests in fast/canvas\n(for all platforms) have been reduced to not test float16 cases anymore,\nexcept to verify that trying float16 either works or throws the\nexpected TypeError.\n\n* LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-colorSpace-disabled.html:\n* LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-colorSpace-enabled.html:\n* LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-pixelFormat-disabled.html:\n* LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-pixelFormat-enabled-expected.txt:\n* LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-pixelFormat-enabled.html:\n* LayoutTests/fast/canvas/hdr/CanvasRenderingContext2DSettings-pixelFormat-enabled-expected.txt: Copied from LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-pixelFormat-enabled-expected.txt.\n* LayoutTests/fast/canvas/hdr/CanvasRenderingContext2DSettings-pixelFormat-enabled.html: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-imagedata.js:\n(areEqualImageData):\n* LayoutTests/fast/canvas/hdr/imagedata-storageformat-enabled-expected.txt: Copied from LayoutTests/fast/canvas/imagedata-storageformat-enabled-expected.txt.\n* LayoutTests/fast/canvas/hdr/imagedata-storageformat-enabled.html: Copied from LayoutTests/fast/canvas/imagedata-storageformat-enabled.html.\n* LayoutTests/fast/canvas/imagedata-storageformat-enabled-expected.txt:\n* LayoutTests/fast/canvas/imagedata-storageformat-enabled.html:\n* Source/WebCore/html/ImageData.cpp:\n(WebCore::ImageData::pixelBuffer const):\n* Source/WebCore/html/ImageDataArray.cpp:\n(WebCore::ImageDataArray::tryCreate):\n(WebCore::ImageDataArray::extractBufferViewWithPixelFormat):\n* Source/WebCore/html/ImageDataPixelFormat.h:\n(WebCore::toPixelFormat):\n(WebCore::toImageDataPixelFormat):\n* Source/WebCore/html/ImageDataPixelFormat.idl:\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::pixelFormat const):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.h:\n* Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.idl:\n* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:\n(WebKit::RemoteGPU::createRenderBuffers):\n* Source/WebKit/WebProcess/Model/WebModelPlayer.mm:\n(WebKit::WebModelPlayer::load):\n(WebKit::WebModelPlayer::render):\n\nCanonical link: https://commits.webkit.org/318494@main",
      "email": "g_squelart@apple.com",
      "hash": "b29f6e40dca930fbde3ab958180dc9f0e10655b9",
      "subject": "Float16 canvas and ImageData require RGBA16F"
    },
    "318495@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "318495@main",
      "clUrl": "https://commits.webkit.org/318495@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320765\nrdar://183768315\n\nReviewed by Chris Dumez.\n\n317375@main had a few issues.\n\nIt introduced a bool to prevent waitForAndDispatchImmediately re-entry,\nbut at the cost of sometimes not having the correct certificate info.\nThe real bug was that after a COOP-initiated process swap, we weren't\ntaking the certificate info received by the old main frame and giving\nit to the new main frame.\n\nI added a unit test that times out waiting for a server trust that\nnever appears before this fix, showing clearly the functional regression\nfrom 316854@main that this PR fixes and 317375@main did not.\n\n* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:\n* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:\n(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):\n* Source/WebKit/UIProcess/WebFrameProxy.cpp:\n(WebKit::WebFrameProxy::certificateInfoFromNetworkProcess const):\n(WebKit::WebFrameProxy::commitCertificateInfo):\n(WebKit::WebFrameProxy::copyCertificateInfoForProcessSwapOnNavigationResponse):\n(WebKit::WebFrameProxy::waitForCertificateInfoFromNetworkProcess):\n* Source/WebKit/UIProcess/WebFrameProxy.h:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewServerTrustKVC.mm:\n(TEST(WKWebView, ServerTrustKVCWithCOOP)):\n\nCanonical link: https://commits.webkit.org/318495@main",
      "email": "achristensen@apple.com",
      "hash": "702c6b7899c5c83843ec2df1dc9531e0e32130e1",
      "subject": "Fix imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html to have correct certificate info"
    }
  },
  "date": "2026-08-03",
  "days": 1,
  "generatedAt": "2026-08-03T22:06:19Z",
  "markdown": "## Highlights\n- **Web Platform** JavaScriptCore turned on three TC39 proposals in one sweep: `import defer`, iterator chunking, and joint iteration, expanding the experimental JS surface significantly. [commit 318481@main](https://commits.webkit.org/318481@main) [commit 318479@main](https://commits.webkit.org/318479@main) [commit 318477@main](https://commits.webkit.org/318477@main)\n- **Perf** JSC now shares VM-independent JIT thunks, a real code-size and startup efficiency win for multi-VM workloads. [commit 318492@main](https://commits.webkit.org/318492@main)\n- **Rendering** Layout and SVG work landed across Grid, white-space, ellipsis, filters, and external SVG references, tightening spec behavior in several visible areas at once. [commit 318486@main](https://commits.webkit.org/318486@main) [commit 318485@main](https://commits.webkit.org/318485@main) [commit 318456@main](https://commits.webkit.org/318456@main) [commit 318437@main](https://commits.webkit.org/318437@main) [commit 317649@main](https://commits.webkit.org/317649@main)\n- **DevTools** Web Inspector's Canvas tooling got deeper GPU visibility with WebGL extension action recording and WebGPU device client metadata. [commit 318474@main](https://commits.webkit.org/318474@main) [commit 318467@main](https://commits.webkit.org/318467@main)\n- **GPU** WebGPU saw a safety-focused pass, reducing unsafe Rust in buffers and enabling Swift strict safety in the build. [commit 318478@main](https://commits.webkit.org/318478@main) [commit 318461@main](https://commits.webkit.org/318461@main)\n- **Media** Subtitle selection in native media controls is more reliable, fixing cases where choosing \"On\" still failed to enable captions. [commit 318468@main](https://commits.webkit.org/318468@main)\n- **A11y** Accessibility testing moved further toward isolated-tree coverage, which should catch more real AX regressions before they ship. [commit 318488@main](https://commits.webkit.org/318488@main) [commit 318489@main](https://commits.webkit.org/318489@main)\n- **Privacy** Text extraction now includes links in PDFs and better click simulation, while also trimming exposed href text more aggressively to avoid oversharing. [commit 318433@main](https://commits.webkit.org/318433@main) [commit 318473@main](https://commits.webkit.org/318473@main) [commit 318466@main](https://commits.webkit.org/318466@main)\n- **Networking** A cross-site navigation assertion in site-isolated iframes was fixed, plus XHR behavior got closer to spec on header setting and memory accounting. [commit 318458@main](https://commits.webkit.org/318458@main) [commit 318424@main](https://commits.webkit.org/318424@main) [commit 318421@main](https://commits.webkit.org/318421@main)\n\n## What landed by area\n\n### JavaScriptCore and WebAssembly\n- **V8** JSC enabled `import defer`, advancing support for staged module loading semantics. [commit 318481@main](https://commits.webkit.org/318481@main)\n- **V8** JSC enabled iterator chunking, adding another proposal behind the engine's experimental surface. [commit 318479@main](https://commits.webkit.org/318479@main)\n- **V8** JSC enabled joint iteration, continuing a dense day of proposal bring-up. [commit 318477@main](https://commits.webkit.org/318477@main)\n- **Perf** JSC shares VM-independent JIT thunks instead of duplicating them per VM. [commit 318492@main](https://commits.webkit.org/318492@main)\n- **Perf** Linux checkpoint OSR side-state handling stops re-reading `/proc/self/maps`, removing unnecessary work on a hot path. [commit 318487@main](https://commits.webkit.org/318487@main)\n- **Perf** DFG and FTL can now inline `String#substring`, which should help common string-heavy JS. [commit 318448@main](https://commits.webkit.org/318448@main)\n- **Perf** Wasm GC objects avoid an `ensureArrayStorage` transition that never made sense for them. [commit 318462@main](https://commits.webkit.org/318462@main)\n- **Refactor** JSC introduced `StrongBlock`, likely simplifying ownership around block objects. [commit 318435@main](https://commits.webkit.org/318435@main)\n- **V8** Temporal gained `intl-era-monthcode`, filling in Intl-era support. [commit 318428@main](https://commits.webkit.org/318428@main)\n- **V8** JSC added the Regular Expression Buffer Boundaries proposal. [commit 318415@main](https://commits.webkit.org/318415@main)\n- **V8** YARR fixed stale character widths for v-mode class set operations. [commit 318416@main](https://commits.webkit.org/318416@main)\n- **V8** YARR stopped filtering lookbehind contents in `optimizeBOL`, fixing incorrect regexp optimization behavior. [commit 318418@main](https://commits.webkit.org/318418@main)\n- **Refactor** YarrJIT ifdefs were cleaned up. [commit 318417@main](https://commits.webkit.org/318417@main)\n- **Perf** LLInt prologue now zeroes new frames 16 bytes per iteration. [commit 318432@main](https://commits.webkit.org/318432@main)\n- **V8** Arrow functions with object-literal shorthand no longer force the enclosing function to capture `arguments`. [commit 318431@main](https://commits.webkit.org/318431@main)\n- **Perf** JSBigInt got more tightly deployed add, sub, and mul operations. [commit 318413@main](https://commits.webkit.org/318413@main)\n- **Build** `USE_BUILTIN_FRAME_ADDRESS` was removed as a conditional on JIT platforms and treated as always-on. [commit 318429@main](https://commits.webkit.org/318429@main)\n- **Build** Unsafe buffer usage in `JSStringInlines.h` was fixed for Clang. [commit 318454@main](https://commits.webkit.org/318454@main)\n- **Refactor** `WasmConstExprGenerator` got a `NoUncountedMember` fix. [commit 318451@main](https://commits.webkit.org/318451@main)\n- **Build** JSTests gained a README and agent imports, which should help test organization and reuse. [commit 318472@main](https://commits.webkit.org/318472@main)\n\n### Rendering, CSS, and layout\n- **Web Platform** `white-space-trim` was added to the `white-space` shorthand syntax. [commit 318486@main](https://commits.webkit.org/318486@main)\n- **Rendering** Grid formatting context now generates leading implicit tracks for negative line placements. [commit 318485@main](https://commits.webkit.org/318485@main)\n- **Web Platform** WebKit implemented the at-rule function for use with `@supports`. [commit 318482@main](https://commits.webkit.org/318482@main)\n- **Rendering** Block overflow ellipsis styling now follows the root block formatting context. [commit 318437@main](https://commits.webkit.org/318437@main)\n- **Rendering** `VisibleRectContext` is passed by const reference so visible-rect computation can stay `NODELETE`. [commit 318444@main](https://commits.webkit.org/318444@main)\n- **Rendering** `SpaceSplitStringData::create()` no longer leaks table entries for whitespace-only class values. [commit 318427@main](https://commits.webkit.org/318427@main)\n- **Refactor** `XMLHttpRequest` bitfields were converted to default member initializers. [commit 318443@main](https://commits.webkit.org/318443@main)\n\n### SVG, canvas, and graphics\n- **Rendering** LBSE corrected SVG filter and resource-buffer painting for non-layered renderers. [commit 318456@main](https://commits.webkit.org/318456@main)\n- **Rendering** LBSE added support for external and `data:` URL clip-path, marker, and paint-server references. [commit 317649@main](https://commits.webkit.org/317649@main)\n- **Rendering** LBSE now inverts the 2D affine transform when mapping paint dirty rects. [commit 318411@main](https://commits.webkit.org/318411@main)\n- **Perf** LBSE skips the outline paint pass for SVG renderers with no outline. [commit 318410@main](https://commits.webkit.org/318410@main)\n- **Perf** LBSE skips per-frame visual-overflow recompute in `RenderSVGContainer` paint cull. [commit 318440@main](https://commits.webkit.org/318440@main)\n- **Web Platform** Float16 canvas and `ImageData` now require `RGBA16F`, tightening API behavior. [commit 318494@main](https://commits.webkit.org/318494@main)\n- **Web Platform** HTML-in-Canvas landed the IDL changes for the feature. [commit 318425@main](https://commits.webkit.org/318425@main)\n- **Perf** Skia fixed memory growth on each page load when using variable fonts. [commit 318476@main](https://commits.webkit.org/318476@main)\n- **Perf** Coordinated Graphics removed unnecessary texture allocation in the fast path of tile updates. [commit 318446@main](https://commits.webkit.org/318446@main)\n- **Refactor** CoordinatedGraphics dropped a lock requirement for `CoordinatedPlatformLayer` members that are only touched on the main thread. [commit 318455@main](https://commits.webkit.org/318455@main)\n- **GPU** GTK and WPE Skia compositor no longer early-release hole-punch buffers on layer invalidation. [commit 318449@main](https://commits.webkit.org/318449@main)\n- **GPU** A cross-thread access issue around `m_skiaTarget` in `hasCommittedContentsBuffer()` was fixed. [commit 318445@main](https://commits.webkit.org/318445@main)\n- **Rendering** GTK and WPE fixed a regression where canvas and image layer contents were composited without blending. [commit 318453@main](https://commits.webkit.org/318453@main)\n\n### Networking, loading, and storage\n- **Networking** Site-isolated iframe processes no longer keep a page-load assertion after cross-site navigation. [commit 318458@main](https://commits.webkit.org/318458@main)\n- **Networking** `XMLHttpRequest.send(URLSearchParams)` stops setting `Content-Type` on GET and HEAD. [commit 318424@main](https://commits.webkit.org/318424@main)\n- **Perf** `XMLHttpRequest::memoryCost()` now accounts for binary response data. [commit 318421@main](https://commits.webkit.org/318421@main)\n- **Security** `WebProcessProxy::didPostMessage` now turns `MESSAGE_CHECK_COMPLETION` into an early return, simplifying a sensitive control path. [commit 318484@main](https://commits.webkit.org/318484@main)\n- **Security** `IPC::MessageLog::add()` fixed a data race on ring-buffer element store. [commit 318465@main](https://commits.webkit.org/318465@main)\n- **Build** GLib gained `WEBKIT_WEBSITE_DATA_FILE_SYSTEM`, extending website data API coverage. [commit 318457@main](https://commits.webkit.org/318457@main)\n- **Refactor** `os_variant_is_basesystem()` callers were consolidated behind a common WTF wrapper. [commit 318471@main](https://commits.webkit.org/318471@main)\n- **Networking** WebTransport network-process crash coverage was repaired after an earlier change. [commit 318483@main](https://commits.webkit.org/318483@main)\n- **Networking** A `DocumentLoader` content-policy assertion regression on macOS was fixed. [commit 318490@main](https://commits.webkit.org/318490@main)\n\n### DevTools, Web APIs, and automation\n- **DevTools** Canvas inspection now records WebGL extension actions. [commit 318474@main](https://commits.webkit.org/318474@main)\n- **DevTools** Canvas tooling now exposes client metadata for WebGPU devices. [commit 318467@main](https://commits.webkit.org/318467@main)\n- **Web Platform** The `browser.alarms` API was aligned to fix browser inconsistencies. [commit 318493@main](https://commits.webkit.org/318493@main)\n- **A11y** Simulated input now uses unified mouse, pen, and touch transition code paths. [commit 318475@main](https://commits.webkit.org/318475@main)\n- **Web Platform** WebDriver BiDi event failures got another gardening pass. [commit 318430@main](https://commits.webkit.org/318430@main)\n- **Web Platform** WebDriver user-prompt failures were cleaned up. [commit 318426@main](https://commits.webkit.org/318426@main)\n\n### Accessibility, text extraction, and editing\n- **A11y** Accessibility layout tests replaced `js-test-pre/js-test-post` with `js-test`. [commit 318489@main](https://commits.webkit.org/318489@main)\n- **A11y** More AX tests now run with isolated-tree enabled. [commit 318488@main](https://commits.webkit.org/318488@main)\n- **Privacy** Small but visually distinct elements are now treated as clickable when simulating clicks during text extraction. [commit 318473@main](https://commits.webkit.org/318473@main)\n- **Privacy** Text extraction applies stricter truncation to link hrefs when describing interactions. [commit 318466@main](https://commits.webkit.org/318466@main)\n- **Privacy** Extracted PDFs now include links and link URLs. [commit 318433@main](https://commits.webkit.org/318433@main)\n- **UI** iPhone Mirroring Mail no longer incorrectly marks autocorrected text. [commit 318442@main](https://commits.webkit.org/318442@main)\n\n### Media, platform ports, and build\n- **Media** Media controls now reliably enable subtitles when the user selects \"On\". [commit 318468@main](https://commits.webkit.org/318468@main)\n- **Mobile** Windows `RunLoopWin` timers are now safe if destroyed before `FireTimerMessage` dispatch. [commit 318419@main](https://commits.webkit.org/318419@main)\n- **Build** A threadsafe deathtest explosion was fixed. [commit 318480@main](https://commits.webkit.org/318480@main)\n- **Build** Swift strict safety was enabled for the WebGPU CMake build. [commit 318461@main](https://commits.webkit.org/318461@main)\n- **Build** WebViewTests.swift was fixed for `try/await` usage outside `#expect`. [commit 318447@main](https://commits.webkit.org/318447@main)\n- **Build** Swift LTO linker flags were fixed after being rejected by `swiftc`. [commit 318441@main](https://commits.webkit.org/318441@main)\n- **Build** WPE fixed a build break after 318287. [commit 318450@main](https://commits.webkit.org/318450@main)\n- **Build** Safer C++ warnings in `HandleMessage.h` were addressed. [commit 318434@main](https://commits.webkit.org/318434@main)\n- **Build** Safer C++ passing files were unskipped on macOS bots. [commit 318423@main](https://commits.webkit.org/318423@main)\n- **Build** Windows test gardening landed. [commit 318469@main](https://commits.webkit.org/318469@main)\n\n### Tests and upstream sync\n- **Web Platform** The COOP popup WPT was fixed to use correct certificate info. [commit 318495@main](https://commits.webkit.org/318495@main)\n- **Web Platform** WebGL conformance tests were updated to the 2026-07-18 upstream snapshot. [commit 318464@main](https://commits.webkit.org/318464@main)\n- **Web Platform** `preload/` WPTs were synced from upstream. [commit 318452@main](https://commits.webkit.org/318452@main)\n- **Web Platform** `mathml` WPTs were resynced from upstream. [commit 318436@main](https://commits.webkit.org/318436@main)\n- **Web Platform** `css/CSS2/reference` WPTs were synced from upstream. [commit 318414@main](https://commits.webkit.org/318414@main)\n- **Build** `tools/lint` was synced from WPT upstream. [commit 318459@main](https://commits.webkit.org/318459@main)\n- **Web Platform** A digital-credentials WPT regression was fixed. [commit 318460@main](https://commits.webkit.org/318460@main)\n- **Refactor** `MathMLOperatorDictionary::Property::form` now uses a default member initializer. [commit 318463@main](https://commits.webkit.org/318463@main)\n- **Perf** `SMILTimeContainer::updateAnimations()` stops copying the scheduled animations map twice per frame. [commit 318420@main](https://commits.webkit.org/318420@main)\n- **Web Platform** `SMILTime::operator==` was fixed to match the spaceship operator for unresolved and indefinite values. [commit 318422@main](https://commits.webkit.org/318422@main)\n\n## Reverts \u0026 Reapplies",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Unreviewed",
      "count": 4
    }
  ],
  "since": "2026-08-03",
  "totals": {
    "commits": 86,
    "features": 82,
    "rolls": 4
  },
  "until": "2026-08-03"
}