{
  "commits": {
    "315890@main": {
      "author": "Razvan Caliman",
      "avatar": "https://www.gravatar.com/avatar/e35c40637d6bc28b86585f2cf1b2e1ca?d=identicon\u0026s=64",
      "cl": "315890@main",
      "clUrl": "https://commits.webkit.org/315890@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319498\nrdar://182302139\n\nReviewed by BJ Burg and Sam Sneddon.\n\nhttps://commits.webkit.org/315890@main bumped `pytest-asyncio` to version 1.1.1\nfor python 3.14 compatibility. But under python 3.8, 3.9 and 3.10 interpreters,\nthat version requires `backports-asyncio-runner` as a dependency.\n\nDrive-by fix in webkitcorepy:\n\nThe wheel-install path in AutoInstall moved each top-level directory from an\nunpacked wheel into the autoinstall cache, deleting any existing directory of\nthe same name first. This broke PEP 420 namespace packages that are shared\nacross distributions: installing `backports-asyncio-runner` (which ships\n`backports/asyncio/`) wiped the `backports/` directory previously populated by\n`configparser` (which ships `backports/configparser/`).\n\nReplace the destructive move with a recursive `_merge_move` helper that merges\ninto existing directories instead of replacing them, so co-located namespace\nsub-packages survive. Bump webkitcorepy to 1.0.3.\n\nThis is the destructive-unpack problem previously described in\nhttps://bugs.webkit.org/show_bug.cgi?id=263392 and https://bugs.webkit.org/show_bug.cgi?id=263589\nThe wheel path clobbers shared directories while the legacy\ndist/setuptools path merges into them. As suggested there, make the wheel path\nbehave like the legacy path by merging into existing directories instead of\nreplacing them, so co-located namespace sub-packages survive regardless of\ninstall order.\n\n* Tools/Scripts/webkitpy/__init__.py:\n* Tools/Scripts/libraries/webkitcorepy/setup.py:\n* Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py:\n* Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:\n(Package):\n(Package._merge_move):\n(Package.install):\n* Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/autoinstall_unittest.py:\n(MergeMoveTest):\n(MergeMoveTest.setUp):\n(MergeMoveTest.tearDown):\n(MergeMoveTest._unpack):\n(MergeMoveTest._contents):\n(MergeMoveTest.test_install_order_does_not_matter):\n(MergeMoveTest.test_file_is_replaced_by_directory):\n\nCanonical link: https://commits.webkit.org/317620@main",
      "email": "rcaliman@apple.com",
      "hash": "807fb465d753ffd473a6ada02a563f9daf20e43d",
      "subject": "[Tools] Add backports-asyncio-runner dependency for pytest-asyncio for python versions \u003c 3.11"
    },
    "317568@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "317568@main",
      "clUrl": "https://commits.webkit.org/317568@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319795\n\nReviewed by Yusuke Suzuki.\n\n281118@main added maxThunkGenerator / minThunkGenerator for ARM64, which have fast paths for\nInt32-Int32 / Int32-Double / Double-Int32 / Double-Double using fmax / fmin, but did not\nadd cases for MaxIntrinsic / MinIntrinsic in thunkGeneratorForIntrinsic. So the thunks were\nnever installed and Math.max / Math.min calls from LLInt / Baseline always went to the C++\nhost functions. This patch wires them up.\n\nWith DFG / FTL disabled (LLInt / Baseline):\n\n                                              Baseline                  Patched\n\n    math-max                              31.9392+-0.6313     ^     23.8925+-0.2638        ^ definitely 1.3368x faster\n    math-min                              31.7652+-0.3611     ^     23.8972+-0.1425        ^ definitely 1.3292x faster\n    int-or-other-max-then-get-by-val       6.4980+-0.0923     ^      5.3080+-0.1749        ^ definitely 1.2242x faster\n    int-or-other-min-then-get-by-val       6.4999+-0.0749     ^      5.2814+-0.0590        ^ definitely 1.2307x faster\n\nNeutral in the default configuration since DFG / FTL handle ArithMin / ArithMax by themselves.\n\nTests: JSTests/microbenchmarks/math-max-3args.js\n       JSTests/microbenchmarks/math-min.js\n\n* JSTests/microbenchmarks/math-max-3args.js: Added.\n(max3):\n* JSTests/microbenchmarks/math-min.js: Added.\n(min):\n* Source/JavaScriptCore/runtime/VM.cpp:\n(JSC::thunkGeneratorForIntrinsic):\n\nCanonical link: https://commits.webkit.org/317568@main",
      "email": "sosuke@bun.sh",
      "hash": "a6f9b723771ef40d176aaae2cd3f3e3f99e9750c",
      "subject": "[JSC] Wire ARM64 min / max specialized thunks into `thunkGeneratorForIntrinsic`"
    },
    "317569@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "317569@main",
      "clUrl": "https://commits.webkit.org/317569@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318956\nrdar://181808420\n\nReviewed by Antti Koivisto.\n\nUpdate 'ruby-overhang' to the current CSS Ruby Layout grammar 'auto | spaces',\nwith 'none' as a legacy value alias of 'spaces'. Previously the property was\n'auto | none', where 'none' fully disabled overhang.\nhttps://drafts.csswg.org/css-ruby-1/#propdef-ruby-overhang\n\n'ruby-overhang: spaces' allows a ruby annotation that is wider than its base to\noverhang adjacent content only over \"spaces\": preserved white space, no-break\nspace and other space separators, half of the advance of a fullwidth opening\n(inline-start) or closing (inline-end) punctuation, and a quarter of the advance\nof a fullwidth middle dot punctuation (either side). 'auto' keeps the\nuser-agent-defined behavior. Because 'none' is now an alias of 'spaces', it no\nlonger fully disables overhang.\n\n'none' is aliased to 'spaces' at parse time, so both the specified and computed\nvalues serialize as 'spaces'. In layout, RubyFormattingContext caps the overhang\ncomputed for the 'spaces' value to the overhangable advance at the adjacent edge,\ncomputed by overhangableSpaceAdvance() from the adjacent edge character's class\nplus already-laid-out geometry and the font size, without re-measuring text:\npreserved white space and tabs use the word-separator box advance; no-break space\nand other space separators use the advance by which the box's visual rect exceeds\nits ink overflow at the edge; and fullwidth opening/closing/middle-dot punctuation\nexpose half/half/quarter of a fullwidth advance (one em), sharing the\nfullWidthAdvance() helper with the existing 0.5ic overhang cap. The only case not\nyet handled is a fullwidth punctuation advance reduced by 'text-spacing-trim'\n(see FIXME).\n\n* Source/WebCore/css/CSSValueKeywords.in: Add the 'spaces' keyword.\n* Source/WebCore/css/CSSProperties.json: Update ruby-overhang to 'auto | spaces | none@(aliased-to=spaces)'.\n* Source/WebCore/rendering/style/RenderStyleConstants.cpp:\n(WebCore::operator\u003c\u003c):\n* Source/WebCore/style/values/primitives/StyleKeyword+Mappings.h: Map the ruby-overhang keywords.\n* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp:\n(WebCore::Layout::fullWidthAdvance): Added; the advance of one fullwidth character (one em).\n(WebCore::Layout::halfOfAFullWidthCharacter): Build on fullWidthAdvance.\n(WebCore::Layout::overhangableSpaceAdvance): Overhangable advance over adjacent spaces/punctuation.\n(WebCore::Layout::RubyFormattingContext::overhangForAnnotationBefore): Cap 'spaces' overhang to the adjacent trailing spaces.\n(WebCore::Layout::RubyFormattingContext::overhangForAnnotationAfter): Cap 'spaces' overhang to the adjacent leading spaces.\n(WebCore::Layout::RubyFormattingContext::applyRubyOverhang): Both 'auto' and 'spaces' overhang.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ruby/parsing/ruby-overhang-valid.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ruby/parsing/ruby-overhang-valid-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ruby/parsing/ruby-overhang-invalid.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ruby/parsing/ruby-overhang-invalid-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ruby/inheritance.html:\n* LayoutTests/fast/ruby/ruby-overhang-computed.html: Added.\n* LayoutTests/fast/ruby/ruby-overhang-computed-expected.txt: Added.\n* LayoutTests/fast/ruby/ruby-overhang-spaces.html: Added.\n* LayoutTests/fast/ruby/ruby-overhang-spaces-expected.html: Added.\n* LayoutTests/fast/ruby/ruby-overhang-spaces-nbsp.html: Added.\n* LayoutTests/fast/ruby/ruby-overhang-spaces-nbsp-expected.html: Added.\n* LayoutTests/fast/ruby/ruby-overhang-none-alias.html: Added.\n* LayoutTests/fast/ruby/ruby-overhang-none-alias-expected.html: Added.\n* Source/WebCore/rendering/style/RenderStyleConstants.h:\n\nCanonical link: https://commits.webkit.org/317569@main",
      "email": "zalan@apple.com",
      "hash": "cf49afd596549fbf1850d1c19a93df8d6e2878eb",
      "subject": "[css-ruby] Implement the 'spaces' value for the ruby-overhang property"
    },
    "317570@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "317570@main",
      "clUrl": "https://commits.webkit.org/317570@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319824\n\nReviewed by Tim Nguyen.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/317570@main",
      "email": "zalan@apple.com",
      "hash": "c721877a0480158d60a1b27fb4519537c914f5dc",
      "subject": "Mark CSSMarkerContentEnabled stable"
    },
    "317571@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "317571@main",
      "clUrl": "https://commits.webkit.org/317571@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319827\n\nReviewed by Tim Nguyen.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/317571@main",
      "email": "zalan@apple.com",
      "hash": "c1c6d4088f0103139eb158dfafc41f6d0ed31dfb",
      "subject": "Mark CSSTextDecorationInsetEnabled stable"
    },
    "317572@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "317572@main",
      "clUrl": "https://commits.webkit.org/317572@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319844\nrdar://182742173\n\nReviewed by Yusuke Suzuki.\n\nThe tests located in JSTests/wasm/memory64-spec-tests are copies of the WPT\ntests located in LayoutTests/imported/w3c/web-platform-tests/wasm/core/js/memory64/.\n\nThey are completely redundant after 317464@main.\n\n* JSTests/wasm.yaml:\n* JSTests/wasm/memory64-spec-tests/address64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/align64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/binary_leb128_64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/bulk64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/call_indirect64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/endianness64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/float_memory64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/load64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory64-imports.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory_copy64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory_fill64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory_grow64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory_init64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory_redundancy64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/memory_trap64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_copy64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_copy_mixed.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_fill64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_get64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_grow64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_init64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_set64.wast.js: Removed.\n* JSTests/wasm/memory64-spec-tests/table_size64.wast.js: Removed.\n* Tools/Scripts/run-jsc-stress-tests:\n\nCanonical link: https://commits.webkit.org/317572@main",
      "email": "ccarley2@apple.com",
      "hash": "38a05acc2409d14282887e75b09a2d6430e1093c",
      "subject": "Remove memory64-spec-tests after 317464@main"
    },
    "317573@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "317573@main",
      "clUrl": "https://commits.webkit.org/317573@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319828\n\nReviewed by Tim Nguyen.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/317573@main",
      "email": "zalan@apple.com",
      "hash": "766710f0b917ea8f8a1b3f4e99a80a483bcc1133",
      "subject": "Mark CSSWhiteSpaceTrimEnabled stable"
    },
    "317574@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "317574@main",
      "clUrl": "https://commits.webkit.org/317574@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319829\n\nReviewed by Tim Nguyen.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/317574@main",
      "email": "zalan@apple.com",
      "hash": "21d2df63204d6d3b887f2f237840d7d46d2f0b06",
      "subject": "Mark CSSWrapInsideEnabled stable"
    },
    "317575@main": {
      "author": "Timothy Hatcher",
      "avatar": "https://www.gravatar.com/avatar/d0f8f949749d89ed152fa835ede38c5b?d=identicon\u0026s=64",
      "cl": "317575@main",
      "clUrl": "https://commits.webkit.org/317575@main",
      "description": "https://webkit.org/b/319821\nrdar://problem/182720339\n\nReviewed by Wenson Hsieh.\n\nThe `.textTree` output collapses generic blocks such as headings and paragraphs into bare quoted text, which\nreads well but discards the element type, leaving structure-aware clients no way to recover it.\n\nAdd an `includeTagName` option that prefixes each such block's line in `.textTree` output with its lowercased\ntag name (e.g. `h1 'Title'`). Semantic containers already carry a descriptive label, so the option only tags\notherwise-generic blocks that render their own inline content (renderer has inline children); block-level\nwrappers still collapse and empty blocks are still pruned. Off by default; affects only `.textTree`.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm\n\n* Source/WebCore/page/text-extraction/TextExtraction.cpp:\n(WebCore::TextExtraction::extractRecursive): When includeTagName is set, extract a generic block whose\nrenderer has inline children so its tag prefixes the text; block-level wrappers still collapse.\n* Source/WebCore/page/text-extraction/TextExtractionTypes.h: Add the includeTagName request flag.\n* Source/WebKit/Shared/TextExtractionToStringConversion.cpp:\n(WebKit::TextExtractionAggregator::includeTagName const): True only for .textTree output with the flag set.\n(WebKit::addPartsForItem): Emit the lowercased tag name as a generic container's line prefix when it has no label.\n* Source/WebKit/Shared/TextExtractionToStringConversion.h: Add the IncludeTagName option flag.\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: Serialize the new request flag.\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView+TextExtraction.mm:\n(-[WKWebView _extractDebugTextWithConfigurationWithoutUpdatingFilterRules:assertionScope:completionHandler:]):\nMap the configuration property onto the IncludeTagName option flag.\n(-[WKWebView _requestTextExtractionInternal:completion:]): Thread the configuration property into the request.\n* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.h: Declare the includeTagName property.\n* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.mm:\n(-[_WKTextExtractionConfiguration init]): Default includeTagName to NO.\n(-[_WKTextExtractionConfiguration configureForMinimalOutput]): Leave includeTagName off for minimal output.\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNamePrefixesContentBlocks)): Added.\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNameTagsBlockWithOnlyInlineContent)): Added.\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNameDisabledByDefault)): Added.\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNameCollapsesMixedInlineAndBlockContent)): Added.\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNameDropsEmptyAndWhitespaceBlocks)): Added.\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNameKeepsSemanticLabelForStructuralContainers)): Added.\n(TestWebKitAPI::TEST(TextExtractionTests, IncludeTagNameFlattensInlineElementsIntoBlockText)): Added.\n\nCanonical link: https://commits.webkit.org/317575@main",
      "email": "timothy@apple.com",
      "hash": "2a2cb3b391a49d217d46149a72dda16107a8e33e",
      "subject": "[Text Extraction] Add option to include tag names for blocks with inline children."
    },
    "317576@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317576@main",
      "clUrl": "https://commits.webkit.org/317576@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319720\nrdar://182554714\n\nReviewed by Sammy Gill.\n\ntotalGuttersSize() computed `tracksCount - 1` on a size_t guarded only\nby ASSERT(tracksCount), so an empty grid (tracksCount == 0) underflows\nto SIZE_MAX in release builds, producing a garbage gutters size instead\nof zero. Guard the computation and return 0 directly when there are no\ntracks. The ASSERT is kept so debug builds still flag callers that\nreach this function with an empty grid unexpectedly.\n\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.cpp:\n(WebCore::Layout::GridLayoutUtils::totalGuttersSize):\n\nCanonical link: https://commits.webkit.org/317576@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "a5528ec19a422e32f285548427385e098e7dbf39",
      "subject": "Fix size_t underflow in GridLayoutUtils::totalGuttersSize for empty grids"
    },
    "317577@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "317577@main",
      "clUrl": "https://commits.webkit.org/317577@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319830\nrdar://182731684\n\nReviewed by Basuke Suzuki.\n\nThis matches the latest spec.  In the spec it is required for using byob buffers when reading datagrams.\nI'm planning to submit a PR to wpt with my wpt changes from this PR.\n\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.js:\n(promise_test.async t):\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.serviceworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.sharedworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.worker-expected.txt:\n* Source/WebCore/CMakeLists.txt:\n* Source/WebCore/DerivedSources-input.xcfilelist:\n* Source/WebCore/DerivedSources-output.xcfilelist:\n* Source/WebCore/DerivedSources.make:\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/Modules/streams/ReadableStreamType.h:\n(): Deleted.\n* Source/WebCore/Modules/webtransport/DatagramsReadableMode.h: Removed.\n* Source/WebCore/Modules/webtransport/DatagramsReadableMode.idl: Removed.\n* Source/WebCore/Modules/webtransport/WebTransport.cpp:\n(WebCore::WebTransport::create):\n* Source/WebCore/Modules/webtransport/WebTransportOptions.h:\n* Source/WebCore/Modules/webtransport/WebTransportOptions.idl:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebKit/NetworkProcess/webtransport/WebTransport.serialization.in:\n\nCanonical link: https://commits.webkit.org/317577@main",
      "email": "achristensen@apple.com",
      "hash": "1ef4b4153f446b8b0718379b3220f6867fe5fccf",
      "subject": "Rename WebTransportOptions.datagramsReadableMode to datagramsReadableType"
    },
    "317578@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "317578@main",
      "clUrl": "https://commits.webkit.org/317578@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319839\nrdar://182736574\n\nReviewed by Basuke Suzuki.\n\nThey've been renamed to incomingMaxBufferedDatagrams and outgoingMaxBufferedDatagrams.\n\n* LayoutTests/imported/w3c/web-platform-tests/interfaces/webtransport.idl:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.serviceworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.sharedworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/datagrams.https.any.worker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/historical.https.sub.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/historical.https.sub.any.serviceworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/historical.https.sub.any.sharedworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/historical.https.sub.any.worker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any.serviceworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any.sharedworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any.worker-expected.txt:\n* Source/WebCore/Modules/webtransport/WebTransportDatagramDuplexStream.cpp:\n(WebCore::WebTransportDatagramDuplexStream::setIncomingMaxBufferedDatagrams):\n(WebCore::WebTransportDatagramDuplexStream::setOutgoingMaxBufferedDatagrams):\n(WebCore::WebTransportDatagramDuplexStream::setIncomingHighWaterMark): Deleted.\n(WebCore::WebTransportDatagramDuplexStream::setOutgoingHighWaterMark): Deleted.\n* Source/WebCore/Modules/webtransport/WebTransportDatagramDuplexStream.h:\n(WebCore::WebTransportDatagramDuplexStream::incomingMaxBufferedDatagrams const):\n(WebCore::WebTransportDatagramDuplexStream::outgoingMaxBufferedDatagrams const):\n(WebCore::WebTransportDatagramDuplexStream::incomingHighWaterMark const): Deleted.\n(WebCore::WebTransportDatagramDuplexStream::outgoingHighWaterMark const): Deleted.\n* Source/WebCore/Modules/webtransport/WebTransportDatagramDuplexStream.idl:\n* Source/WebCore/Modules/webtransport/WebTransportSession.h:\n* Source/WebCore/Modules/webtransport/WorkerWebTransportSession.cpp:\n(WebCore::WorkerWebTransportSession::incomingMaxBufferedDatagramsUpdated):\n(WebCore::WorkerWebTransportSession::outgoingMaxBufferedDatagramsUpdated):\n(WebCore::WorkerWebTransportSession::datagramIncomingHighWaterMarkUpdated): Deleted.\n(WebCore::WorkerWebTransportSession::datagramOutgoingHighWaterMarkUpdated): Deleted.\n* Source/WebCore/Modules/webtransport/WorkerWebTransportSession.h:\n* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.cpp:\n(WebKit::NetworkTransportSession::incomingMaxBufferedDatagramsUpdated):\n(WebKit::NetworkTransportSession::outgoingMaxBufferedDatagramsUpdated):\n(WebKit::NetworkTransportSession::datagramIncomingHighWaterMarkUpdated): Deleted.\n(WebKit::NetworkTransportSession::datagramOutgoingHighWaterMarkUpdated): Deleted.\n* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.h:\n* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.messages.in:\n* Source/WebKit/WebProcess/Network/WebTransportSession.cpp:\n(WebKit::WebTransportSession::incomingMaxBufferedDatagramsUpdated):\n(WebKit::WebTransportSession::outgoingMaxBufferedDatagramsUpdated):\n(WebKit::WebTransportSession::datagramIncomingHighWaterMarkUpdated): Deleted.\n(WebKit::WebTransportSession::datagramOutgoingHighWaterMarkUpdated): Deleted.\n* Source/WebKit/WebProcess/Network/WebTransportSession.h:\n\nCanonical link: https://commits.webkit.org/317578@main",
      "email": "achristensen@apple.com",
      "hash": "2db431710a39c040770bd2617eaef61f471fa864",
      "subject": "Rename WebTransportDatagramDuplexStream.incomingHighWaterMark and outgoingHighWaterMark"
    },
    "317579@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "317579@main",
      "clUrl": "https://commits.webkit.org/317579@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=254222\nrdar://107261068\n\nReviewed by Youenn Fablet.\n\nCodec delay was added in 262837@main (2023-04-11).\n\n* LayoutTests/platform/glib/media/media-source/media-webm-opus-codecdelay-expected.txt: FFmpeg's gstreamer calculate differently the duration of the last frame (webm doesn't define it)\n* LayoutTests/TestExpectations:\n* LayoutTests/media/media-source/media-webm-opus-codecdelay-expected.txt:\n* LayoutTests/media/media-source/media-webm-opus-codecdelay.html:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/glib/media/media-source/media-webm-opus-codecdelay-expected.txt: Copied from LayoutTests/media/media-source/media-webm-opus-codecdelay-expected.txt.\n\nCanonical link: https://commits.webkit.org/317579@main",
      "email": "jya@apple.com",
      "hash": "334f673f46746a9f95b3f4663262853b740ca4e6",
      "subject": "[mac][ios][win] CodecDelay webm field isn't being honored"
    },
    "317580@main": {
      "author": "Megan Gardner",
      "avatar": "https://www.gravatar.com/avatar/b466a5bcbfabf4d82a8ecc595db5a531?d=identicon\u0026s=64",
      "cl": "317580@main",
      "clUrl": "https://commits.webkit.org/317580@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319848\nrdar://182745407\n\nReviewed by Abrar Rahman Protyasha and Wenson Hsieh.\n\nTextBoxPainter::paintBackgroundFill added the selection to the same marked-text set as document markers and custom highlights,\nso the selection background was coalesced and pre-blended with them in software rather than composited on top. Paint the\nmarker/highlight backgrounds first and the selection as a separate overlay fill (selection is the topmost highlight overlay),\nso its color composites correctly.\n\nimported/w3c/web-platform-tests/css/css-pseudo/active-selection-011.html\nimported/w3c/web-platform-tests/css/css-pseudo/active-selection-016.html\nimported/w3c/web-platform-tests/css/css-pseudo/highlight-cascade/highlight-currentcolor-painting-text-shadow-001.html\n\n* LayoutTests/TestExpectations:\n* Source/WebCore/rendering/TextBoxPainter.cpp:\n(WebCore::TextBoxPainter::paintBackgroundFill):\n\nCanonical link: https://commits.webkit.org/317580@main",
      "email": "megan_gardner@apple.com",
      "hash": "9aec53920a161fa725028326b5fa0b456585c02c",
      "subject": "[Selection] Paint the selection background as a separate overlay instead of merging it with other highlight backgrounds."
    },
    "317581@main": {
      "author": "Mike Wyrzykowski",
      "avatar": "https://www.gravatar.com/avatar/4b1bc9e238714f95e22d5d2454c07066?d=identicon\u0026s=64",
      "cl": "317581@main",
      "clUrl": "https://commits.webkit.org/317581@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319840\nrdar://177547927\n\nReviewed by Tim Nguyen.\n\nIgnore CSS specification for dynamic-range-limit for model tag.\n\n* Source/WebCore/css/html.css:\n(#if defined(ENABLE_GPU_PROCESS_MODEL) \u0026\u0026 ENABLE_GPU_PROCESS_MODEL):\n(#endif):\n(audio): Deleted.\n* Source/WebKit/WebProcess/Model/WebModelPlayer.h:\n\nCanonical link: https://commits.webkit.org/317581@main",
      "email": "mwyrzykowski@apple.com",
      "hash": "a47f597d7c56f17431144efb32dbb3a02f4ec33f",
      "subject": "Update default inline model appearance"
    },
    "317582@main": {
      "author": "Rupin Mittal",
      "avatar": "https://www.gravatar.com/avatar/3e3de9845931d2dc844afb00056ec94e?d=identicon\u0026s=64",
      "cl": "317582@main",
      "clUrl": "https://commits.webkit.org/317582@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318878\nrdar://181753576\n\nReviewed by Charlie Wolfe.\n\nMerge back:\n\n    WebResourceLoader::WillSendRequest reply may lead to cross-origin cookie access\n    https://bugs.webkit.org/show_bug.cgi?id=313866\n    rdar://180785211\n\n    Reviewed by Charlie Wolfe.\n\n    Consider this sequence of events:\n    1. A compromised web process schedules a load with its own origin used for\n       firstPartyForCookies.\n    2. NetworkConnectionToWebProcess::scheduleResourceLoad() is called and the\n       message check passes.\n    3. The request goes through and the server responds with 302 (redirect).\n    4. NetworkResourceLoader::continueWillSendRedirectedRequest() calls\n       WebResourceLoader::WillSendRequest() which gives the web process the chance\n       to alter the request that will be sent to perform the redirect.\n    5. The compromised web process alters the request so that firstPartyForCookies\n       is now a different origin.\n    6. NetworkResourceLoader::continueWillSendRequest() receives this altered\n       request and passes it off to CFNetwork.\n    7. The result of this request is that the compromised web process receives\n       the cookies of this different origin.\n\n    There are multiple callsites of continueWillSendRequest(), but only one place\n    which allows the web process to alter the request before it's given to\n    continueWillSendRequest(). So we fix this by adding a message check right\n    before that callsite that will double check that the origin contained in this\n    potentially modified request from the web process is in this web process's\n    allowed list. If not, the web process will be killed so that it doesn't recieve\n    the cross-origin cookies.\n\n    We also only do this message check if the web process actually changes the\n    origin. This is because there are cases where the origin is not yet in the\n    allowlist but not because the web process modified it (like in:\n    imported/w3c/web-platform-tests/speculation-rules/prefetch/redirect-url.https.html?origin=cross-site-redirect\n    where there is a cross-site redirect as part of a prefetch, so the cross-site\n    origin is supplied by the server but hasn't made it into the allow list since\n    the navigation to it is not complete).\n\n    When we a previously attempted to add this message check, we found that it\n    resulted in users hitting the message check in the wild. Based on the fault logs,\n    we speculate that the issue could be:\n\n    1. A network load is scheduled with the keep alive option.\n    2. NetworkResourceLoader::continueWillSendRedirectedRequest() sends the IPC\n       WebResourceLoader::WillSendRequest().\n    3. Before the web process can respond, it exits. So the web process does not\n       call the completion handler.\n    4. The IPC connection between the network and web process is torn down by\n       Connection::dispatchDidCloseAndInvalidate().\n    5. This function first calls NetworkProcessConnectionToWebProcess::didClose()\n       which keeps the NetworkResourceLoader alive because of the keepalive option\n       and removes the web process from m_allowedFirstPartiesForCookies.\n    6. Then it calls Connection::invalidate() which calls cancelAsyncReplyHandlers()\n       which calls the completionHandler with a default constructed ResourceRequest.\n    7. In the completionHandler, the NetworkResourceLoader is alive and the default\n       constructed request's firstPartyForCookies is empty (which doesn't match the\n       likely non-empty stored firstPartyForCookiesFromRedirectRequest), so we\n       proceed to the check. Since the web process is no longer in\n       m_allowedFirstPartiesForCookies, allowsFirstPartyForCookies returns Disallow\n       and the message check is hit.\n\n    So if the completionHandler is called because of the web process exiting (and\n    thus the connection being torn down), we early return before doing the check.\n\n    We also early return in the case where WebResourceLoader::willSendRequest()\n    responds with a default constucted ResourceRequest if there is no coreLoader.\n\n    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:\n    (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):\n\n    Identifier: 305413.1058@safari-7624.5-branch\n\nCanonical link: https://commits.webkit.org/317582@main",
      "email": "rupin@apple.com",
      "hash": "524399615e2486b95285b548abfbacf255f4e776",
      "subject": "Random page crashes due to invalid IPC message WebResourceLoader_WillSendRequestReply"
    },
    "317583@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "317583@main",
      "clUrl": "https://commits.webkit.org/317583@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=310559\nrdar://182738080\n\nReviewed by Alex Christensen.\n\nPer the WebTransport spec change (w3c/webtransport commit 37d1d28), sendOrder is\nnon-nullable (defaulting to 0) and WebTransportSendStreamOptions inherits from\nWebTransportSendOptions. WebTransportSendOptions and WebTransportDatagramsWritable already\nused the non-nullable form; this brings the remaining two declarations into line:\n\n- WebTransportSendStream.sendOrder becomes `long long` instead of `long long?`, so assigning\n  null coerces to 0 per the WebIDL rules rather than being retained as null.\n- WebTransportSendStreamOptions now inherits WebTransportSendOptions instead of declaring its\n  own nullable sendOrder, which also gives it the inherited sendGroup member.\n\nThis covers the IDL/attribute nullability conformance only. Actual sendOrder backend plumbing\nis tracked separately in rdar://161685860, so the sendorder.https.any.* WPT tests remain\nskipped.\n\nNo new tests (IDL conformance; existing sendorder WPT tests remain skipped pending backend\nsupport).\n\n* Source/WebCore/Modules/webtransport/WebTransportSendStream.h:\n(WebCore::WebTransportSendStream::sendOrder):\n(WebCore::WebTransportSendStream::setSendOrder):\n* Source/WebCore/Modules/webtransport/WebTransportSendStream.idl:\n* Source/WebCore/Modules/webtransport/WebTransportSendStreamOptions.h:\n* Source/WebCore/Modules/webtransport/WebTransportSendStreamOptions.idl:\n\nCanonical link: https://commits.webkit.org/317583@main",
      "email": "basuke@apple.com",
      "hash": "8e0a1f8b1e39496c4678521c1edf0410b90ab455",
      "subject": "[WebTransport] Make WebTransportSendStream.sendOrder and WebTransportSendStreamOptions non-nullable to match spec"
    },
    "317584@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "317584@main",
      "clUrl": "https://commits.webkit.org/317584@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=310319\nrdar://173458312\n\nReviewed by Sam Sneddon.\n\nReplace the porcelain `git branch | grep | xargs git branch -D` with\nplumbing commands to fix two cascading failures: `git checkout origin/main`\nfailing when the remote tracking ref doesn't exist, and `git branch` output\nincluding `*` which gets passed literally to `git branch -D`.\n\nUse `git switch -d --discard-changes` to safely detach HEAD (falling back\nto local main, then current HEAD if origin/main is missing), delete all\nlocal branches with `git for-each-ref | git update-ref --stdin`, then\nrecreate the default branch with `git branch --no-track`.\n\n* Tools/CISupport/ews-build/steps.py:\n(CleanGitRepo.run): Replace checkout/branch-delete/grep pipeline with\ngit switch and git for-each-ref.\n* Tools/CISupport/ews-build/steps_unittest.py:\n(TestCleanGitRepo.default_remote_commands): Extract shared command\nexpectations into a helper to reduce repetition.\n\nCanonical link: https://commits.webkit.org/317584@main",
      "email": "issacroy05@gmail.com",
      "hash": "a9a0033f28d17aee94c726676f2f8f927f6fd061",
      "subject": "[EWS] Improve git cleanup step"
    },
    "317585@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "317585@main",
      "clUrl": "https://commits.webkit.org/317585@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319851\n\u003crdar://182750019\u003e\n\nReviewed by Sammy Gill.\n\nGFC does not yet support box-sizing: border-box.\n\n* Source/WebCore/layout/integration/grid/LayoutIntegrationGridCoverage.cpp:\n(WebCore::LayoutIntegration::gridLayoutAvoidanceReason):\n(WebCore::LayoutIntegration::printReason):\n\nCanonical link: https://commits.webkit.org/317585@main",
      "email": "yulun_wu@apple.com",
      "hash": "f92bb7cf6855cfb02cd83c1128940612f0dc495b",
      "subject": "[GFC] We should bail out of GFC if a grid item has box-sizing: border-box"
    },
    "317586@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "317586@main",
      "clUrl": "https://commits.webkit.org/317586@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319854\nrdar://182539064\n\nReviewed by Mike Wyrzykowski.\n\nIn downlevel updates, a WebKit client in the OS is loading from the\nStagedFrameworks/ directory without setting a DYLD_LIBRARY_PATH, so it\nfails to find the libswiftCompatibilitySpan.dylib binary needed to use\nSpan types.\n\nThe compatibility library's install name is @rpath-based, so it can be\nloaded relative to the dylib containing the load command. Add an\nappropriate path to WebKit's rpath stack At launch time, dyld uses the\nStagedFrameworks/ directory to resolving dylib dependencies for WebKit.\n\nThis works for the WebKit --\u003e WebGPU --\u003e libSwiftCompatibilitySpan load\npath. If a client were to link against WebGPU directly (without WebKit)\ndyld would not use this rpath. This is fine since WebGPU is a private\nframework and an implementation detail of WebKit, and future-proofed\nsince WebKit itself will soon start using Span.\n\n* Source/WebKit/Configurations/WebKit.xcconfig:\n\nCanonical link: https://commits.webkit.org/317586@main",
      "email": "emw@apple.com",
      "hash": "bd48a12c4f646022b1e8f2efa91672c414da2152",
      "subject": "[Swift] Compatibility library not loadable for some non-Safari clients"
    },
    "317587@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "317587@main",
      "clUrl": "https://commits.webkit.org/317587@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319817\nrdar://182715613\n\nReviewed by Yijia Huang and Sosuke Suzuki.\n\nWhen syntax-level cooperative driving of async generator is used and\npromise watchpoint is valid, iterator result object is non-observable to\nusers. Promise resolution just propagates the object and only done and\nvalue properties are accessed, and they are own properties defined for\nnormal iterator result object.\n\nIn this patch,\n\n1. Clean up some queueing function and move them to\n   JSAsyncGeneratorInlines.h.\n2. Cache iterator result object in JSAsyncGenerator and reuse it so long\n   as promise watchpoint is valid \u0026 cooperative driving is used.\n\nTests: JSTests/stress/async-generator-driver-cached-result-not-aliased.js\n       JSTests/stress/async-generator-manual-next-distinct-results.js\n\n* JSTests/stress/async-generator-driver-cached-result-concurrent-drivers.js: Added.\n(shouldBe):\n(async gen):\n(async for):\n* JSTests/stress/async-generator-driver-cached-result-not-aliased.js: Added.\n(shouldBe):\n(async gen):\n(get if):\n(async for):\n(async let):\n(get then):\n* JSTests/stress/async-generator-driver-cross-realm-iterator-result.js: Added.\n(shouldBe):\n(async let):\n* JSTests/stress/async-generator-manual-next-distinct-results.js: Added.\n(shouldBe):\n(async gen):\n(async let):\n* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:\n* Source/JavaScriptCore/runtime/AsyncGeneratorPrototype.cpp:\n(JSC::asyncGeneratorNext):\n* Source/JavaScriptCore/runtime/JSAsyncFromSyncIterator.cpp:\n(JSC::JSAsyncFromSyncIterator::visitChildrenImpl):\n* Source/JavaScriptCore/runtime/JSAsyncFromSyncIterator.h:\n* Source/JavaScriptCore/runtime/JSAsyncGenerator.cpp:\n(JSC::JSAsyncGenerator::enqueue): Deleted.\n(JSC::JSAsyncGenerator::dequeue): Deleted.\n* Source/JavaScriptCore/runtime/JSAsyncGenerator.h:\n* Source/JavaScriptCore/runtime/JSAsyncGeneratorInlines.h: Added.\n(JSC::JSAsyncGenerator::enqueue):\n(JSC::JSAsyncGenerator::dequeue):\n* Source/JavaScriptCore/runtime/JSMicrotask.cpp:\n(JSC::settleDriverWithIteratorResult):\n(JSC::asyncFromSyncIteratorContinueOrDone):\n(JSC::asyncGeneratorCompleteStep):\n(JSC::enqueueAsyncGeneratorDriver):\n\nCanonical link: https://commits.webkit.org/317587@main",
      "email": "ysuzuki@apple.com",
      "hash": "7cc10147ece2c421705df24543c2c2ec4ef0244a",
      "subject": "[JSC] Use cached iterator result object for async generator cooperative driving"
    },
    "317588@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "317588@main",
      "clUrl": "https://commits.webkit.org/317588@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319801\n\nReviewed by Dan Glastonbury.\n\nRemoteRenderingBackend, which runs its message handlers on a stream work\nqueue, read GPUConnectionToWebProcess::m_sharedPreferencesForWebProcess\ndirectly (via sharedPreferencesForWebProcess(), isDynamicContentScalingEnabled(),\nand the lockdown font-parser check). That member is reassigned on the main\nrun loop by GPUConnectionToWebProcess::updateSharedPreferencesForWebProcess(),\nso the work-queue reads raced with the main-thread write with no\nsynchronization, producing a torn read of the preferences bitfields — one of\nwhich gates selection of the lockdown-safe font parser.\n\nFix this by having RemoteRenderingBackend hold its own copy of\nSharedPreferencesForWebProcess, following the pre-existing pattern already\nused by the sibling graphics work-queue receivers RemoteGraphicsContextGL and\nRemoteGPU: the copy is snapshotted on the main thread at construction (the\nsame thread as the writer, so the read is race-free) and is const thereafter,\nso the work queue only ever reads immutable state. As with those siblings,\nthe backend snapshots preferences at creation and does not observe a later\nSharedPreferencesForWebProcessDidChange; this keeps the three graphics\nreceivers consistent.\n\n* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:\n(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):\n(WebKit::RemoteRenderingBackend::sharedPreferencesForWebProcess const):\n(WebKit::RemoteRenderingBackend::allocateImageBuffer):\n(WebKit::RemoteRenderingBackend::shouldUseLockdownFontParser const):\n* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:\n\nCanonical link: https://commits.webkit.org/317588@main",
      "email": "cdumez@apple.com",
      "hash": "80abed96e2a668d16fe89c67c91a2cd5be5d9a91",
      "subject": "Fix data race on SharedPreferencesForWebProcess read from the RemoteRenderingBackend work queue"
    },
    "317589@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "317589@main",
      "clUrl": "https://commits.webkit.org/317589@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=319846\u003e\n\u003crdar://182743001\u003e\n\nReviewed by Vitor Roriz.\n\n`GlyphBuffer::fontAt()` returns the result of dereferencing a\n`SingleThreadWeakPtr\u003cconst Font\u003e`, whose `operator*` does a\n`RELEASE_ASSERT()` that the font is live, so the returned reference is\nnever nullptr.  Hold it in `Ref\u003cconst Font\u003e` rather than a nullable\n`RefPtr` in `FontCascade::drawGlyphBuffer()` to express that invariant.\n\nAlso promote the bare `const Font\u0026` local in the debug-only\n`WebCore::operator\u003c\u003c(TextStream\u0026, const GlyphBuffer\u0026)` to a stack `Ref`,\nso the font stays live across the non-trivial `boundsForGlyph()` call\ninstead of being borrowed from the weak reference.\n\nNo new tests since no change in behavior.\n\n* Source/WebCore/platform/graphics/Font.cpp:\n(WebCore::operator\u003c\u003c):\n* Source/WebCore/platform/graphics/FontCascade.cpp:\n(WebCore::FontCascade::drawGlyphBuffer):\n\nCanonical link: https://commits.webkit.org/317589@main",
      "email": "ddkilzer@apple.com",
      "hash": "1fd2cd726bd5e479e196ba2ba1829ca4df770d49",
      "subject": "Consistently use Ref instead of RefPtr for non-null GlyphBuffer::fontAt() results"
    },
    "317590@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "317590@main",
      "clUrl": "https://commits.webkit.org/317590@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316710\nrdar://179159629\n\nReviewed by Keith Miller.\n\nIn this patch, I allow parsing of the Table64 functions for tables with i64\naddress types and ensure that the functions work in the IPInt tier.\n\nInPlaceInterpreter64.asm already passes the values as i64, but they\nwere being truncated in the slow path functions. To fix this, I read the\nvalues as i64s in the table64 case. I also added overflow checks.\n\nTest: JSTests/wasm/stress/table64-get-and-set.js\n\n* JSTests/wasm/stress/table64-bulk.js: Added.\n(1.table.tbl):\n(10.funcref.table.tbl2):\n(10.funcref.func.f1.result.i32.i32.const.42.func.f2.result.i32.i32.const.43.elem.element.funcref.ref.func.f1.ref.func.f2.func.tableInit.export.string_appeared_here):\n(count.table.init.tbl.element.func.tableFill.export.string_appeared_here):\n(destination.ref.func.f1):\n(length.table.fill.tbl.func.tableCopy.export.string_appeared_here):\n(length.table.copy.tbl2.tbl.func.resetTables.export.string_appeared_here):\n(const.0.ref.null.func):\n(const.10.table.fill.tbl):\n(test):\n(string_appeared_here.const.instance.await.instantiate.wat):\n* JSTests/wasm/stress/table64-call-indirect.js: Added.\n(const.0.addIndirect.subIndirect.func.add.export.string_appeared_here.param.lhs.i32.param.rhs.i32.result.i32.local.lhs.local.rhs):\n(const.0.call_indirect.tbl.type.func_type.func.sub.export.string_appeared_here.param.lhs.i32.param.rhs.i32.result.i32.local.lhs.local.rhs):\n(test):\n(string_appeared_here.const.instance.await.instantiate.wat):\n* JSTests/wasm/stress/table64-get-and-set.js: Added.\n(test):\n(string_appeared_here.const.instance.await.instantiate.wat):\n* JSTests/wasm/stress/table64-grow-and-size.js: Added.\n(test):\n(string_appeared_here.const.instance.await.instantiate.wat):\n* JSTests/wasm/stress/table64-overflow.js: Added.\n(test):\n* Source/JavaScriptCore/wasm/WasmFunctionParser.h:\n(JSC::Wasm::FunctionParser\u003cContext\u003e::parseExpression):\n* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:\n(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):\n* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h:\n* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:\n(JSC::Wasm::SectionParser::parseTableHelper):\n(JSC::Wasm::SectionParser::parseElement):\n(JSC::Wasm::SectionParser::parseI64InitExprForElementSection):\n* Source/JavaScriptCore/wasm/WasmSectionParser.h:\n\nCanonical link: https://commits.webkit.org/317590@main",
      "email": "ccarley2@apple.com",
      "hash": "9f221020aa88928636be08e34139c47a803f08af",
      "subject": "Implement Table64 in the parser and IPInt tier"
    },
    "317591@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "317591@main",
      "clUrl": "https://commits.webkit.org/317591@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319845\nrdar://182742426\n\nReviewed by Yijia Huang.\n\nLet's just use moveConditionally32 instead of micro-basic-blocks.\n\n* Source/JavaScriptCore/jit/CCallHelpers.h:\n\nCanonical link: https://commits.webkit.org/317591@main",
      "email": "ysuzuki@apple.com",
      "hash": "6f02e51145dfe86eed061d0156833e68a809d0ab",
      "subject": "[JSC] Use moveConditionally32 in prepareForTailCallSlow"
    },
    "317592@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "317592@main",
      "clUrl": "https://commits.webkit.org/317592@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319582\nrdar://problem/182412976\n\nReviewed by Abrar Rahman Protyasha.\n\nA request carrying non-serializable data (for example a BigInt) on an\nunsupported protocol threw a TypeError instead of being skipped, because the\nJSON-serializability check ran before the protocol-support check. Per the\nDigital Credentials specification's validate credential requests steps, a\nrequest with an unsupported protocol is skipped before its data is serialized;\na request with a supported protocol whose data is not serializable still\nthrows. Move the protocol check ahead of the serializability check to match.\n\nCanonical link: https://commits.webkit.org/317592@main",
      "email": "marcosc@apple.com",
      "hash": "4867cdb405b802990af7c2e86f647b4984fc3ebb",
      "subject": "Digital Credentials get() should skip unsupported-protocol requests before serializing their data"
    },
    "317593@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "317593@main",
      "clUrl": "https://commits.webkit.org/317593@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319837\n\nReviewed by Antti Koivisto.\n\nFlex layout had two implementations behind one preference: a render-tree\nfallback in RenderFlexibleBox, and an LFC-based flex formatting context that\nthe integration layer reached by building a Layout::Box tree and running\nLayout::FlexFormattingContext over it.\n\nThis unifies them onto a single, render-tree-driven algorithm while keeping\nthe flex formatting context design. LayoutIntegration::FlexLayout\nno longer builds a Layout::Box tree or a BoxGeometry mirror; instead it\ncollects the flex container's renderers into logical FlexLayoutItems and runs\nthe render-tree flex algorithm directly over them. The render-side algorithm becomes\nWebCore::FlexFormattingContext and is the one and only flex layout implementation.\n\nWith a single algorithm the coverage gate is gone: canUseForFlexLayout and\nits FlexAvoidanceReason machinery are removed (LayoutIntegrationCoverage keeps\nits line/grid coverage), the FlexFormattingContextIntegrationEnabled preference\nis removed, and the now-unused LFC flex core is deleted (Layout::FlexLayout,\nLogicalFlexItem, FlexFormattingConstraints, FlexRect).\n\nThe flex geometry/query helpers are consolidated into a single\nFlexFormattingUtils in the formatting-context directory. The shared,\nrender-reachable helpers are static and called as\nFlexFormattingUtils::foo(flexBox, ...) from both RenderFlexibleBox and the\nformatting context; the handful of render-only helpers become file-local\nstatics in RenderFlexibleBox. The render-side FlexLayoutUtils is deleted.\nNon-flex callers (RenderBlock/RenderBox/RenderBlockFlow/InspectorOverlay)\ncontinue to go through thin RenderFlexibleBox proxies, so nothing outside\nRenderFlexibleBox reaches into the formatting context.\n\nNo new tests: this is a refactor with no intended behavior change. The one\nbehavior-affecting surface is content that canUseForFlexLayout accepted before\n(it now runs the render-tree algorithm instead of the LFC one); everything\ncanUseForFlexLayout rejected was already render-tree-driven and is unchanged,\nso the existing flex tests exercise the change.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Remove FlexFormattingContextIntegrationEnabled.\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/PlatformCocoa.cmake:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp: The single flex layout algorithm (was rendering/RenderFlexLayout).\n(WebCore::FlexFormattingContext::FlexFormattingContext):\n(WebCore::FlexFormattingContext::flexLayoutConstraints):\n(WebCore::FlexFormattingContext::mainAxisAvailableSpace):\n(WebCore::FlexFormattingContext::flexFormattingUtils const):\n(WebCore::FlexFormattingContext::layout):\n(WebCore::flexContainerIsHorizontalFlow):\n(WebCore::FlexLayoutItem::FlexLayoutItem):\n(WebCore::FlexLayoutItem::hypotheticalMainAxisMarginBoxSize const):\n(WebCore::FlexLayoutItem::flexBaseMarginBoxSize const):\n(WebCore::FlexLayoutItem::flexedMarginBoxSize const):\n(WebCore::FlexLayoutItem::style const):\n(WebCore::constrainSizeByMinMax):\n(WebCore::FlexFormattingContext::computeFlexLines):\n(WebCore::FlexFormattingContext::computeMainSizeForFlexItems):\n(WebCore::FlexFormattingContext::resolveFlexibleLengthsForLineItems):\n(WebCore::FlexFormattingContext::mainAxisAvailableSpaceForItemAlignment const):\n(WebCore::FlexFormattingContext::crossAxisAvailableSpaceForLineSizingAndAlignment const):\n(WebCore::FlexFormattingContext::distributeMainAxisFreeSpaceForMultilineColumnIfNeeded):\n(WebCore::FlexFormattingContext::trimCrossAxisMarginsForFlexItems):\n(WebCore::FlexFormattingContext::layoutFlexItems):\n(WebCore::FlexFormattingContext::hypotheticalCrossSizeForFlexItems):\n(WebCore::FlexFormattingContext::crossSizeForFlexLines):\n(WebCore::FlexFormattingContext::handleMainAxisAlignment):\n(WebCore::FlexFormattingContext::computeCrossSizeForFlexItems):\n(WebCore::FlexFormattingContext::handleCrossAxisAlignmentForFlexLines):\n(WebCore::FlexFormattingContext::handleCrossAxisAlignmentForFlexItems):\n(WebCore::FlexFormattingContext::performBaselineAlignment):\n(WebCore::FlexFormattingContext::computeFlexItemRects):\n(WebCore::FlexFormattingContext::placeFlexItems):\n(WebCore::FlexFormattingContext::reverseColumnLinesFromContainerMainEndIfNeeded):\n(WebCore::FlexFormattingContext::layoutColumnReverse):\n(WebCore::FlexFormattingContext::setFlexItemCountsForFirstAndLastLine):\n(WebCore::FlexFormattingContext::flexBaseAndHypotheticalMainSize):\n(WebCore::ScopedFlexBasisAsFlexItemMainSize::ScopedFlexBasisAsFlexItemMainSize):\n(WebCore::ScopedFlexBasisAsFlexItemMainSize::~ScopedFlexBasisAsFlexItemMainSize):\n(WebCore::FlexFormattingContext::flexBaseSizeForFlexItem):\n(WebCore::FlexFormattingContext::flexBaseSizeNeedsBlockAxisContentSize):\n(WebCore::FlexFormattingContext::ensureBlockAxisContentSizeForFlexItemIfNeeded):\n(WebCore::FlexFormattingContext::computeFlexItemMinMaxMainSizes):\n(WebCore::FlexFormattingContext::computeUsedMaxMainSize):\n(WebCore::FlexFormattingContext::computeUsedNonAutoMinMainSize):\n(WebCore::FlexFormattingContext::computeContentBasedMinMainSize):\n(WebCore::FlexFormattingContext::computeMainAxisExtentForFlexItem):\n(WebCore::FlexFormattingContext::computeMainSizeFromAspectRatioUsing const):\n(WebCore::FlexFormattingContext::adjustFlexItemSizeForAspectRatioCrossAxisMinAndMax):\n(WebCore::FlexFormattingContext::crossAxisIntrinsicExtentForFlexItem):\n(WebCore::FlexFormattingContext::flexItemIntrinsicLogicalHeight const):\n(WebCore::FlexFormattingContext::flexItemIntrinsicLogicalWidth):\n(WebCore::FlexFormattingContext::flexItemCrossSizeIsDefinite):\n(WebCore::FlexFormattingContext::flexItemHasComputableAspectRatioAndCrossSizeIsConsideredDefinite):\n(WebCore::FlexFormattingContext::trimMainAxisMarginStart):\n(WebCore::FlexFormattingContext::trimMainAxisMarginEnd):\n(WebCore::FlexFormattingContext::trimCrossAxisMarginStart):\n(WebCore::FlexFormattingContext::trimCrossAxisMarginEnd):\n(WebCore::FlexFormattingContext::canFitItemWithTrimmedMarginEnd const):\n(WebCore::FlexFormattingContext::removeMarginEndFromFlexSizes const):\n(WebCore::FlexFormattingContext::autoMarginOffsetInMainAxis):\n(WebCore::FlexFormattingContext::updateAutoMarginsInMainAxis):\n(WebCore::FlexFormattingContext::updateAutoMarginsInCrossAxis):\n(WebCore::FlexFormattingContext::applyStretchAlignmentToFlexItem):\n(WebCore::FlexFormattingContext::applyStretchMinMaxCrossSize):\n(WebCore::FlexFormattingContext::setFlowAwareLocationForFlexItem):\n(WebCore::FlexFormattingContext::setFlexItemGeometry):\n(WebCore::Layout::FlexFormattingContext::FlexFormattingContext): Deleted.\n(WebCore::Layout::FlexFormattingContext::layout): Deleted.\n(WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraints): Deleted.\n(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace): Deleted.\n(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry): Deleted.\n(WebCore::Layout::FlexFormattingContext::positionOutOfFlowChildren): Deleted.\n(WebCore::Layout::FlexFormattingContext::geometryForFlexItem const): Deleted.\n(WebCore::Layout::FlexFormattingContext::geometryForFlexItem): Deleted.\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:\n(WebCore::Layout::FlexFormattingContext::root const): Deleted.\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.cpp: The single flex geometry/query util.\n(WebCore::isSVGRootWithIntrinsicAspectRatio):\n(WebCore::FlexFormattingUtils::FlexFormattingUtils):\n(WebCore::FlexFormattingUtils::flowAwareBorderStart const):\n(WebCore::FlexFormattingUtils::flowAwareBorderEnd const):\n(WebCore::FlexFormattingUtils::flowAwareBorderBefore const):\n(WebCore::FlexFormattingUtils::flowAwareBorderAfter const):\n(WebCore::FlexFormattingUtils::flowAwarePaddingStart const):\n(WebCore::FlexFormattingUtils::flowAwarePaddingEnd const):\n(WebCore::FlexFormattingUtils::flowAwarePaddingBefore const):\n(WebCore::FlexFormattingUtils::flowAwarePaddingAfter const):\n(WebCore::FlexFormattingUtils::flowAwareMarginStartForFlexItem const):\n(WebCore::FlexFormattingUtils::flowAwareMarginEndForFlexItem const):\n(WebCore::FlexFormattingUtils::flowAwareMarginBeforeForFlexItem const):\n(WebCore::FlexFormattingUtils::crossAxisExtentForFlexItem const):\n(WebCore::FlexFormattingUtils::mainAxisExtentForFlexItem const):\n(WebCore::FlexFormattingUtils::mainAxisExtent const):\n(WebCore::FlexFormattingUtils::crossAxisContentExtent):\n(WebCore::FlexFormattingUtils::computeGap):\n(WebCore::FlexFormattingUtils::mainAxisMarginExtentForFlexItem const):\n(WebCore::FlexFormattingUtils::crossAxisMarginExtentForFlexItem):\n(WebCore::FlexFormattingUtils::crossAxisScrollbarExtent const):\n(WebCore::FlexFormattingUtils::mainAxisScrollbarExtent const):\n(WebCore::FlexFormattingUtils::preferredMainSizeLengthForFlexItem):\n(WebCore::FlexFormattingUtils::minMainSizeLengthForFlexItem):\n(WebCore::FlexFormattingUtils::maxMainSizeLengthForFlexItem const):\n(WebCore::FlexFormattingUtils::preferredCrossSizeLengthForFlexItem):\n(WebCore::FlexFormattingUtils::minCrossSizeLengthForFlexItem const):\n(WebCore::FlexFormattingUtils::maxCrossSizeLengthForFlexItem const):\n(WebCore::FlexFormattingUtils::mainAxisOverflowForFlexItem):\n(WebCore::FlexFormattingUtils::overflowAlignmentForFlexItem const):\n(WebCore::FlexFormattingUtils::hasAutoMarginsInCrossAxis):\n(WebCore::FlexFormattingUtils::useContentBasedMinimumSize):\n(WebCore::FlexFormattingUtils::preferredAspectRatioForFlexItem const):\n(WebCore::FlexFormattingUtils::flexItemHasAspectRatio):\n(WebCore::FlexFormattingUtils::canResolveFullyConstrainedLogicalHeight):\n(WebCore::FlexFormattingUtils::flexItemHasComputableAspectRatio const):\n(WebCore::FlexFormattingUtils::needToStretchFlexItemLogicalHeight const):\n(WebCore::FlexFormattingUtils::innerCrossSizeForFlexItem):\n(WebCore::FlexFormattingUtils::columnInnerMainSize const):\n(WebCore::FlexFormattingUtils::crossAxisDirection const):\n(WebCore::FlexFormattingUtils::isColumnOrRowReverse const):\n(WebCore::FlexFormattingUtils::isWrapReverse):\n(WebCore::FlexFormattingUtils::hasDefiniteLogicalWidthForAspectRatioCrossSize):\n(WebCore::FlexFormattingUtils::leftRightAxisDirectionFromStyle):\n(WebCore::FlexFormattingUtils::shouldTrimMainAxisMarginStart const):\n(WebCore::FlexFormattingUtils::shouldTrimMainAxisMarginEnd const):\n(WebCore::FlexFormattingUtils::shouldTrimCrossAxisMarginStart const):\n(WebCore::FlexFormattingUtils::shouldTrimCrossAxisMarginEnd const):\n(WebCore::FlexFormattingUtils::transformedBlockFlowDirection const):\n(WebCore::FlexFormattingUtils::isLeftToRightFlow const):\n(WebCore::FlexFormattingUtils::isColumnFlow):\n(WebCore::FlexFormattingUtils::availableAlignmentSpaceForFlexItem const):\n(WebCore::FlexFormattingUtils::marginBoxAscentForFlexItem const):\n(WebCore::FlexFormattingUtils::isHorizontalFlow):\n(WebCore::FlexFormattingUtils::mainAxisIsFlexItemInlineAxis):\n(WebCore::FlexFormattingUtils::isMultiline):\n(WebCore::FlexFormattingUtils::flexBasisForFlexItem):\n(WebCore::FlexFormattingUtils::alignmentForFlexItem):\n(WebCore::FlexFormattingUtils::hasDefiniteCrossSizeForFlexItem):\n(WebCore::FlexFormattingUtils::contentAlignmentNormalBehavior):\n(WebCore::FlexFormattingUtils::resolveLeftRightAlignment):\n(WebCore::FlexFormattingUtils::initialJustifyContentOffset):\n(WebCore::FlexFormattingUtils::justifyContentSpaceBetweenFlexItems):\n(WebCore::FlexFormattingUtils::alignmentOffset):\n(WebCore::FlexFormattingUtils::contentAlignmentStartOverflow):\n(WebCore::FlexFormattingUtils::initialAlignContentOffset):\n(WebCore::FlexFormattingUtils::alignContentSpaceBetweenFlexItems):\n(WebCore::Layout::FlexFormattingUtils::FlexFormattingUtils): Deleted.\n(WebCore::Layout::FlexFormattingUtils::isMainAxisParallelWithInlineAxis): Deleted.\n(WebCore::Layout::FlexFormattingUtils::logicalJustifyContentPosition): Deleted.\n(WebCore::Layout::FlexFormattingUtils::isMainReversedToContentDirection): Deleted.\n(WebCore::Layout::FlexFormattingUtils::areFlexLinesReversedInCrossAxis): Deleted.\n(WebCore::Layout::FlexFormattingUtils::mainAxisGapValue): Deleted.\n(WebCore::Layout::FlexFormattingUtils::crossAxisGapValue): Deleted.\n(WebCore::Layout::FlexFormattingUtils::usedMinimumSizeInMainAxis const): Deleted.\n(WebCore::Layout::FlexFormattingUtils::usedMaximumSizeInMainAxis const): Deleted.\n(WebCore::Layout::FlexFormattingUtils::usedMaxContentSizeInMainAxis const): Deleted.\n(WebCore::Layout::FlexFormattingUtils::usedSizeInCrossAxis const): Deleted.\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.h:\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingConstraints.h: Removed.\n* Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp: Removed.\n* Source/WebCore/layout/formattingContexts/flex/FlexLayout.h: Removed.\n* Source/WebCore/layout/formattingContexts/flex/FlexRect.h: Removed.\n* Source/WebCore/layout/formattingContexts/flex/LogicalFlexItem.h: Removed.\n* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp: Thin proxy that collects renderers and runs the formatting context.\n(WebCore::LayoutIntegration::FlexLayout::FlexLayout):\n(WebCore::LayoutIntegration::FlexLayout::prepareFlexItemForPositionedLayout):\n(WebCore::LayoutIntegration::FlexLayout::collectFlexItems):\n(WebCore::LayoutIntegration::FlexLayout::layout):\n(WebCore::LayoutIntegration::FlexLayout::firstLineBaseline const):\n(WebCore::LayoutIntegration::FlexLayout::lastLineBaseline const):\n(WebCore::LayoutIntegration::FlexLayout::flexItemForFirstBaseline const):\n(WebCore::LayoutIntegration::FlexLayout::flexItemForLastBaseline const):\n(WebCore::LayoutIntegration::FlexLayout::firstBaselineCandidateOnLine const):\n(WebCore::LayoutIntegration::FlexLayout::lastBaselineCandidateOnLine const):\n(WebCore::LayoutIntegration::FlexLayout::staticMainAxisPositionForPositionedFlexItem):\n(WebCore::LayoutIntegration::FlexLayout::staticCrossAxisPositionForPositionedFlexItem):\n(WebCore::LayoutIntegration::FlexLayout::staticInlinePositionForPositionedFlexItem):\n(WebCore::LayoutIntegration::FlexLayout::staticBlockPositionForPositionedFlexItem):\n(WebCore::LayoutIntegration::FlexLayout::setStaticPositionForPositionedLayout):\n(WebCore::LayoutIntegration::m_layoutState): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::~FlexLayout): Deleted.\n(WebCore::LayoutIntegration::constraintsForFlexContent): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::updateFormattingContexGeometries): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::updateStyle): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::computeIntrinsicWidthConstraints): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::updateRenderers): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::paint): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::hitTest): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::collectOverflow): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::contentBoxLogicalHeight const): Deleted.\n* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h:\n* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp: Remove canUseForFlexLayout.\n(WebCore::LayoutIntegration::mayHaveScrollbarOrScrollableOverflow): Deleted.\n(WebCore::LayoutIntegration::canUseForFlexLayoutWithReason): Deleted.\n(WebCore::LayoutIntegration::printTextForSubtree): Deleted.\n(): Deleted.\n(WebCore::LayoutIntegration::printReason): Deleted.\n(WebCore::LayoutIntegration::printReasons): Deleted.\n(WebCore::LayoutIntegration::printLegacyFlexReasons): Deleted.\n(WebCore::LayoutIntegration::canUseForFlexLayout): Deleted.\n* Source/WebCore/layout/integration/LayoutIntegrationCoverage.h:\n* Source/WebCore/layout/integration/LayoutIntegrationBoxGeometryUpdater.cpp: Remove the flex-root branch.\n(WebCore::LayoutIntegration::BoxGeometryUpdater::setFormattingContextContentGeometry):\n* Source/WebCore/rendering/RenderFlexLayout.cpp: Removed (moved to FlexFormattingContext).\n* Source/WebCore/rendering/RenderFlexLayout.h: Removed.\n* Source/WebCore/rendering/FlexLayoutUtils.cpp: Removed (consolidated into FlexFormattingUtils).\n* Source/WebCore/rendering/FlexLayoutUtils.h: Removed.\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::crossAxisExtent):\n(WebCore::mainAxisContentExtentForFlexItemIncludingScrollbar):\n(WebCore::computeFlexItemMarginValue):\n(WebCore::RenderFlexibleBox::ScopedCrossAxisOverrideForFlexItem::ScopedCrossAxisOverrideForFlexItem):\n(WebCore::RenderFlexibleBox::layoutBlock):\n(WebCore::RenderFlexibleBox::firstLineBaseline const):\n(WebCore::RenderFlexibleBox::lastLineBaseline const):\n(WebCore::RenderFlexibleBox::willStretchItem const):\n(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths const):\n(WebCore::RenderFlexibleBox::canUseFlexItemForPercentageResolution):\n(WebCore::RenderFlexibleBox::computeBlockAxisContentSizeForFlexItem):\n(WebCore::RenderFlexibleBox::layoutFlexItemWithMainSize):\n(WebCore::RenderFlexibleBox::setOverridingMainSizeForFlexItem):\n(WebCore::RenderFlexibleBox::resetAutoMarginsAndLogicalTopInCrossAxis):\n(WebCore::RenderFlexibleBox::setStaticPositionForPositionedLayout):\n(WebCore::RenderFlexibleBox::useContentBasedMinimumBlockSize const):\n(WebCore::RenderFlexibleBox::hasStretchedFlexItemWithAspectRatio const):\n(WebCore::RenderFlexibleBox::computeGap const):\n(WebCore::RenderFlexibleBox::isHorizontalFlow const):\n(WebCore::RenderFlexibleBox::isMultiline const):\n(WebCore::RenderFlexibleBox::mainAxisIsFlexItemInlineAxis const):\n(WebCore::RenderFlexibleBox::flexBasisForFlexItem const):\n(WebCore::RenderFlexibleBox::alignmentForFlexItem const):\n(WebCore::RenderFlexibleBox::hasDefiniteCrossSizeForFlexItem const):\n(WebCore::RenderFlexibleBox::canComputePercentageFlexBasis):\n(WebCore::RenderFlexibleBox::flexItemMainSizeIsDefinite):\n(WebCore::RenderFlexibleBox::initializeMarginTrimState):\n(WebCore::RenderFlexibleBox::isChildEligibleForMarginTrim const):\n(WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins):\n(WebCore::RenderFlexibleBox::updateFlexContainerLogicalHeight):\n(WebCore::RenderFlexibleBox::staticMainAxisPositionForPositionedFlexItem): Deleted.\n(WebCore::RenderFlexibleBox::staticCrossAxisPositionForPositionedFlexItem): Deleted.\n(WebCore::RenderFlexibleBox::staticInlinePositionForPositionedFlexItem): Deleted.\n(WebCore::RenderFlexibleBox::staticBlockPositionForPositionedFlexItem): Deleted.\n(WebCore::RenderFlexibleBox::flexItemForFirstBaseline const): Deleted.\n(WebCore::RenderFlexibleBox::flexItemForLastBaseline const): Deleted.\n(WebCore::RenderFlexibleBox::firstBaselineCandidateOnLine const): Deleted.\n(WebCore::RenderFlexibleBox::lastBaselineCandidateOnLine const): Deleted.\n(WebCore::RenderFlexibleBox::flexLayoutConstraints): Deleted.\n(WebCore::RenderFlexibleBox::mainAxisAvailableSpace): Deleted.\n(WebCore::RenderFlexibleBox::collectFlexItems): Deleted.\n(WebCore::RenderFlexibleBox::prepareFlexItemForPositionedLayout): Deleted.\n(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext): Deleted.\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n(WebCore::RenderFlexibleBox::hasModernLayout const): Deleted.\n* Source/WebCore/rendering/RenderBlock.cpp:\n(WebCore::RenderBlock::paintDebugBoxShadowIfApplicable const):\n(WebCore::RenderBlock::hasDefiniteLogicalHeightForPercentageResolutionFromStyle const):\n(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::formattingContextRootIntrinsicLogicalWidthsDependOnOwnHeight):\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::computeSizingKeywordLogicalContentHeightUsingGeneric const):\n(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing const):\n(WebCore::RenderBox::isBlockSizeResolvableForStretch const):\n(WebCore::RenderBox::shouldIgnoreLogicalMinMaxWidthSizes const):\n(WebCore::RenderBox::shouldIgnoreLogicalMinMaxHeightSizes const):\n* Source/WebCore/rendering/RenderObject.cpp:\n(WebCore::RenderObject::outputRenderObject const):\n* Source/WebCore/inspector/InspectorOverlay.cpp:\n(WebCore::InspectorOverlay::buildFlexOverlay):\n\nCanonical link: https://commits.webkit.org/317593@main",
      "email": "zalan@apple.com",
      "hash": "09b9e02e57af3dbcb539bff5289225f508f51796",
      "subject": "[Flexbox] Unify the two flex layout codepaths into a single render-tree-driven formatting context"
    },
    "317594@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "317594@main",
      "clUrl": "https://commits.webkit.org/317594@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319647\nrdar://181861452\n\nReviewed by Sihui Liu.\n\nWhereever we allow:\n```\n`SYS_rename`\n`SYS_open_dprotected_np`\n`SYS_open`\n```\n\nWe need to also allow:\n```\n`SYS_renameat`\n`SYS_openat_dprotected_np`\n`SYS_openat`\n```\n\nThis is to unblock an underlying framework.\n\n* Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:\n* Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:\n* Source/WebKit/Shared/Sandbox/iOS/gpu-defines.sb:\n* Source/WebKit/Shared/Sandbox/iOS/networking-defines.sb:\n* Source/WebKit/Shared/Sandbox/iOS/webcontent-defines.sb:\n* Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:\n* Source/WebKit/WebProcess/com.apple.WebProcess.x86.sb.in:\n\nCanonical link: https://commits.webkit.org/317594@main",
      "email": "cdumez@apple.com",
      "hash": "3e277d994fe5fa7482b96d1dd87e0e7643803d42",
      "subject": "[Sandboxing] Update sandbox profiles to allow the `*at` counterparts to some syscalls"
    },
    "317595@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317595@main",
      "clUrl": "https://commits.webkit.org/317595@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319825\nrdar://182723245\n\nReviewed by Chris Dumez.\n\ndeleteReleasedWeakBuckets() and its call to isReleasedWeakBucket()\nwere reintroduced by 304636@main (\"[WTF] Check size in\nWTF::HashTable::expand\"), which had been authored against a tree\nstate that predated 304266@main (\"Push weak null removal logic\ndown into HashTable\", bug 303710). That earlier commit had already\nrenamed isReleasedWeakBucket()/deleteReleasedWeakBuckets() to\nisWeakNullBucket()/deleteWeakNullEntries() and updated the sole\ncall site in expand() accordingly.\n\nAs a result, deleteReleasedWeakBuckets() has had no callers and its\nbody has referenced a name, isReleasedWeakBucket(), that doesn't\nexist anywhere in the tree. This went unnoticed because it's a\ntemplate member function that is never instantiated, so the\ncompiler never has to resolve the dependent, undefined call.\n\n* Source/WTF/wtf/HashTable.h:\n(WTF::Malloc\u003e::deleteReleasedWeakBuckets): Deleted.\n\nCanonical link: https://commits.webkit.org/317595@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "ecf65269d6cb6c696f366500604312be7da0e418",
      "subject": "Remove dead deleteReleasedWeakBuckets()/isReleasedWeakBucket() from WTF::HashTable"
    },
    "317596@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317596@main",
      "clUrl": "https://commits.webkit.org/317596@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319806\nrdar://182690269\n\nReviewed by Dan Glastonbury.\n\napplyGainMapOptions is created with kCFTypeDictionaryValueCallBacks,\nwhose retain/release callbacks are CFRetain/CFRelease. When\nm_colorSpace was empty, CFDictionarySetValue() was called with a\nnull value for kCGImageAuxiliaryDataInfoColorSpace, causing\nCFDictionarySetValue() to invoke CFRetain(NULL), which is invalid.\nOnly set the key when m_colorSpace is present.\n\n* Source/WebCore/platform/graphics/cocoa/ShareableGainMap.cpp:\n(WebCore::ShareableGainMap::applyGainMapToBaseImage const):\n\nCanonical link: https://commits.webkit.org/317596@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "d4eab751dd9fff1730f911f3a0c271e8768bb5b9",
      "subject": "ShareableGainMap::applyGainMapToBaseImage passes a null value to a kCFTypeDictionaryValueCallBacks dictionary"
    },
    "317597@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "317597@main",
      "clUrl": "https://commits.webkit.org/317597@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319430\n\u003crdar://182249991\u003e\n\nReviewed by Sammy Gill.\n\nNarrow and rename the padding avoidance reason (now GridItemHasPercentOrCalcPadding)\nso grid items whose padding is a fixed length (px, em, etc) use GFC instead of the\nlegacy RenderGrid.\n\nFixed-length padding is threaded into item and track sizing as part of the\nitem's border-box size, so it lays out identically to legacy RenderGrid.\n\nPercentage and calc() padding remain on the legacy path for now.\n\n* LayoutTests/fast/css-grid-layout/grid-item-with-em-padding-track-sizing-expected.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-em-padding-track-sizing.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-fixed-padding-and-percent-margin-expected.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-fixed-padding-and-percent-margin.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-fixed-padding-intrinsic-track-sizing-expected.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-fixed-padding-intrinsic-track-sizing.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-fixed-padding-track-sizing-expected.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-fixed-padding-track-sizing.html: Added.\n* Source/WebCore/layout/integration/grid/LayoutIntegrationGridCoverage.cpp:\n(WebCore::LayoutIntegration::gridLayoutAvoidanceReason):\n(WebCore::LayoutIntegration::printReason):\n\nCanonical link: https://commits.webkit.org/317597@main",
      "email": "yulun_wu@apple.com",
      "hash": "d178f20c276b12ca56d653cf3bc3e27e78815ba2",
      "subject": "[GFC] Support fixed-length padding on grid items"
    },
    "317598@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "317598@main",
      "clUrl": "https://commits.webkit.org/317598@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=319735\u003e\n\u003crdar://182576177\u003e\n\nReviewed by Alex Christensen.\n\nRemotePageProxy::create() adopts the object with adoptRef(), but its\nconstructor calls WebPageProxy::didCreateRemotePage(), which takes a\nforeground process activity that can flip the process throttle state\nand re-enter WebProcessProxy to take a Ref to the still-unadopted\nobject.  This trips the Debug RefCountDebugger assertion\n`!m_adoptionIsRequired`.\n\nFix the Debug assertion by moving the object's self-registration and\nprocess-activity setup out of the constructor into\ninitializeAfterAdoption(), which create() runs after adoptRef() has\ntaken ownership.\n\nCovered by existing tests in Debug:\n\n    TestWebKitAPI.SiteIsolation.IframeRedirectCrossSite\n    TestWebKitAPI.SiteIsolation.IframeRedirectSameSite\n    TestWebKitAPI.SiteIsolation.MultipleReloads\n    TestWebKitAPI.SiteIsolation.NavigationWithIFrames\n    TestWebKitAPI.SiteIsolation.ProcessReuse\n    TestWebKitAPI.SiteIsolation.ReuseConfiguration\n    TestWebKitAPI.SiteIsolation.WebsitePoliciesCustomUserAgent\n    TestWebKitAPI.SiteIsolation.WebsitePoliciesCustomUserAgentDuringCrossSiteProvisionalNavigation\n\n* Source/WebKit/UIProcess/RemotePageProxy.cpp:\n(WebKit::RemotePageProxy::create):\n(WebKit::RemotePageProxy::RemotePageProxy):\n(WebKit::RemotePageProxy::initializeAfterAdoption): Add.\n* Source/WebKit/UIProcess/RemotePageProxy.h:\n(WebKit::RemotePageProxy::initializeAfterAdoption): Add.\n\nCanonical link: https://commits.webkit.org/317598@main",
      "email": "ddkilzer@apple.com",
      "hash": "8a2ed1e825c63b12df77348e9be0ba3ac22ab93c",
      "subject": "REGRESSION(309528@main): [Site Isolation] RemotePageProxy is referenced before adoptRef() during construction"
    },
    "317599@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "317599@main",
      "clUrl": "https://commits.webkit.org/317599@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319841\nrdar://182739442\n\nReviewed by Abrar Rahman Protyasha.\n\nAdd the three OpenID4VP protocol identifiers defined by the W3C Digital\nCredentials specification -- \"openid4vp-v1-unsigned\",\n\"openid4vp-v1-signed\", and \"openid4vp-v1-multisigned\" -- alongside the\nexisting \"org-iso-mdoc\" protocol.  This is the first step toward\nsupporting OpenID4VP presentation requests; request validation and\nwallet plumbing follow in later changes.\n\n`DigitalCredentialsEnabled` is a stable, entitlement-gated preference\nthat is on by default in browsers, so advertising these protocols\nunconditionally would make `userAgentAllowsProtocol()` report support\nthat the engine cannot yet fulfill (a request using one of them would\nstill be filtered out).  Introduce a separate off-by-default setting,\n`DigitalCredentialsOpenID4VPEnabled` (internal), to gate the OpenID4VP\nbehavior while it is under development.\n\nExtend the `DigitalCredentialPresentationProtocol` enum, the matching\nIDL enum, and the IPC serialization list, kept in the same order since\nthe IDL enum's generated string mapping is indexed by the C++ enum\nvalue.  `userAgentAllowsProtocol()` now receives the current document\n(`CallWith=CurrentDocument`) and allows the OpenID4VP identifiers only\nwhen the new setting is enabled; \"org-iso-mdoc\" is unaffected.\n\nRequest conversion in `convertProtocolString()` and\n`jsToCredentialRequest()` is deliberately left to a follow-up: mapping\nthese identifiers there has no observable effect until the OpenID4VP\nrequest structures and validation exist.\n\nTests: http/wpt/identity/digital-credential-openid4vp-user-agent-allows-protocol.https.html\n       http/wpt/identity/digital-credential-openid4vp-disabled-by-default.https.html\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/Modules/identity/DigitalCredential.cpp:\n(WebCore::DigitalCredential::userAgentAllowsProtocol):\n* Source/WebCore/Modules/identity/DigitalCredential.h:\n* Source/WebCore/Modules/identity/DigitalCredential.idl:\n* Source/WebCore/Modules/identity/DigitalCredentialPresentationProtocol.h:\n* Source/WebCore/Modules/identity/DigitalCredentialPresentationProtocol.idl:\n* Source/WebKit/Shared/WebCoreArgumentCodersAuth.serialization.in:\n* LayoutTests/http/wpt/identity/digital-credential-openid4vp-disabled-by-default.https.html: Added.\n* LayoutTests/http/wpt/identity/digital-credential-openid4vp-disabled-by-default.https-expected.txt: Added.\n* LayoutTests/http/wpt/identity/digital-credential-openid4vp-user-agent-allows-protocol.https.html: Added.\n* LayoutTests/http/wpt/identity/digital-credential-openid4vp-user-agent-allows-protocol.https-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/317599@main",
      "email": "pascoe@apple.com",
      "hash": "0179ac8fd6ef82163e4a08d41735ff8d0b0e85cd",
      "subject": "Add OpenID4VP presentation protocols behind an off-by-default flag"
    },
    "317600@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "317600@main",
      "clUrl": "https://commits.webkit.org/317600@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319708\n\nReviewed by Alexey Proskuryakov.\n\n`Console.getLoggingChannels` and `Console.setLoggingChannelLevel` are only implemented by `PageConsoleAgent` and `FrameConsoleAgent`.\n\nAs such, a \"not supported\" error will be thrown when invoking either if there's a `WI.WorkerTarget`.\n\n* Source/JavaScriptCore/inspector/protocol/Console.json:\n* Source/WebInspectorUI/UserInterface/Controllers/ConsoleManager.js:\n(WI.ConsoleManager.supportsLogChannels):\n(WI.ConsoleManager.prototype.initializeTarget):\n(WI.ConsoleManager.prototype.initializeLogChannels):\n* Source/WebInspectorUI/UserInterface/Models/LoggingChannel.js:\n(WI.LoggingChannel.prototype.set level):\n\n* Source/WebInspectorUI/Versions/Inspector-iOS-13.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-13.4.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-14.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-14.5.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-15.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-15.4.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-16.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-16.4.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-17.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-17.2.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-17.4.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-18.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-18.2.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-18.4.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-26.0.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-26.2.json:\n* Source/WebInspectorUI/Versions/Inspector-iOS-26.4.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-13.0.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-13.3.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-14.0.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-14.2.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-14.4.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-15.0.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-15.2.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-15.4.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-26.0.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-26.2.json:\n* Source/WebInspectorUI/Versions/Inspector-macOS-26.4.json:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/13.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/13.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/14.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/14.5/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/15.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/15.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/16.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/16.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/17.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/17.2/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/17.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/18.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/18.2/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/18.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/26.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/26.2/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/iOS/26.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/13.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/13.3/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/14.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/14.2/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/14.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/15.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/15.2/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/15.4/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/26.0/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/26.2/InspectorBackendCommands.js:\n* Source/WebInspectorUI/UserInterface/Protocol/Legacy/macOS/26.4/InspectorBackendCommands.js:\nModify legacy protocol files to reflect the reality that these commands only existed for `\"page\"` (and later also `\"frame\"`).\n\n* LayoutTests/inspector/worker/console-basic.html:\n* LayoutTests/inspector/worker/console-basic-expected.txt:\n\nCanonical link: https://commits.webkit.org/317600@main",
      "email": "hi@devinrousso.com",
      "hash": "6ad86bc0929908508cec4c5857055e151908707d",
      "subject": "Web Inspector: `Console.setLoggingChannelLevel` shouldn't exist for `Worker`"
    },
    "317601@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "317601@main",
      "clUrl": "https://commits.webkit.org/317601@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318139\nrdar://180958800\n\nReviewed by Yijia Huang.\n\nWhen constant-folding ObjectDefineProperty, we should emit checks\nattached in the edges to ensure that these filters work. In this case,\ndescriptor's ObjectUse edge filter is missing.\n\nTest: JSTests/stress/object-define-property-fields-merged-non-object-descriptor.js\n\n* JSTests/stress/object-define-property-fields-merged-non-object-descriptor.js: Added.\n(shouldBe):\n(shouldThrow):\n(defineWithMaybeDescriptor):\n(pressure):\n(reviver):\n* Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:\n(JSC::DFG::ConstantFoldingPhase::foldConstants):\n\nCanonical link: https://commits.webkit.org/317601@main",
      "email": "ysuzuki@apple.com",
      "hash": "10b3c7332780d0ebdd37868da4858fee93593cc4",
      "subject": "[JSC] DFG Object.defineProperty descriptor cell confusion (JIT code invalid cell dereference)"
    },
    "317602@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "317602@main",
      "clUrl": "https://commits.webkit.org/317602@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319584\nrdar://182414037\n\nReviewed by Jer Noble.\n\nThe coded frame eviction algorithm (phase 2, past currentTime) protected the\nbuffered segment the playhead was in and only evicted data after it. It worked\nout that segment with a raw TimeRanges::find(), which treated every sub-range\nboundary as the end of the segment.\n\nSince we loosened the gap tolerance during playback in 316146@main, playback now plays\nstraight through small gaps (\u003c= 125ms, or 250ms when audio covers them), so a\nbuffer like [0,2][2.1,5] is really one playable run. But find() still saw two\nranges, so eviction (and evictableSize) happily trimmed into [2.1,5] — throwing\naway data the player would have reached without stalling. In other cases the\nsame logic bailed out early and left evictable data behind.\n\nFix it by asking where playback would actually stall. Added a nextStallTime()\noverload that walks a given set of ranges, bridging gaps the same way the gap\npolicy does, and use it in both evictFrames() and computeEvictionData() against\nthis SourceBuffer's own buffered ranges. We now protect everything up to the\nnext real stall and only evict past it. When currentTime isn't buffered there's\nno segment to protect, so we keep the previous \"currentTime + timeChunk\"\nlook-ahead.\n\nNote this is evaluated per-SourceBuffer, so in the multi-track case we may keep\na bit more than strictly necessary (a gap this track bridges that another track\ndoesn't), but we never truncate data this track can play through.\n\nTest: media/media-source/media-source-evict-ignorable-gap.html\n\n* LayoutTests/media/media-source/media-source-evict-ignorable-gap-expected.txt: Added.\n* LayoutTests/media/media-source/media-source-evict-ignorable-gap.html: Added.\n* Source/WebCore/platform/graphics/MediaSourcePrivate.cpp:\n(WebCore::MediaSourcePrivate::nextStallTime const):\n* Source/WebCore/platform/graphics/MediaSourcePrivate.h:\n* Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:\n(WebCore::SourceBufferPrivate::computeEvictionData):\n(WebCore::SourceBufferPrivate::evictFrames):\n\nCanonical link: https://commits.webkit.org/317602@main",
      "email": "jya@apple.com",
      "hash": "26464484bd534565e631ce3ea7e9ac56dae1138a",
      "subject": "[MSE] Don't evict playable data across gaps small enough to bridge during playback"
    },
    "317603@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "317603@main",
      "clUrl": "https://commits.webkit.org/317603@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319863\nrdar://182521239\n\nReviewed by Abrar Rahman Protyasha.\n\nThis is an attempted mitigation to try and reduce the number of hangs under\n`-_internalInvalidateTextEntryContext` observed on iOS, due to a deadlock in UIKit keyboard code.\nWhile this deadlock isn't new by any means, its frequency seems to have spiked in iOS 27, for\nreasons that are still unknown.\n\nThe new traces show a trend of hanging while the user is also trying to change the selection via\nindirect gesture (e.g. long press on the space bar, or two-finger pan on the software keyboard on\niPad); to try and mitigate this, we avoid going down this codepath altogether if the user is\nactively trying to change the selection via user gesture.\n\nThis codepath was intended to refresh text candidates and other IME-related keyboard state when the\nfocused text field is programmatically cleared, so there's no need to force suggestions to update if\nthe user is changing the selection anyways (which would result in the suggestions being updated as\nthe selection changes).\n\n* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:\n(-[WKContentView _didProgrammaticallyClearFocusedElement:]):\n\nCanonical link: https://commits.webkit.org/317603@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "efe3badc6bfedfc2f00671c489bc5956bc474514",
      "subject": "[iOS 27] Mitigate increased hangs under -[WKContentView _internalInvalidateTextEntryContext]"
    },
    "317604@main": {
      "author": "Roberto Rodriguez",
      "avatar": "https://www.gravatar.com/avatar/45f4995b936231d4893f38e70cbc4805?d=identicon\u0026s=64",
      "cl": "317604@main",
      "clUrl": "https://commits.webkit.org/317604@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319849\nrdar://182745738\n\nReviewed by Dan Glastonbury.\n\nTest cleanup for ANGLE test suites. Skip all tests for now that\ncurrently fail or crash (in many cases due to a Metal validation\nfailure).\n\n* Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txt:\n* Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_test_expectations.txt:\n* Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_test_expectations.txt:\n* Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp:\n\nCanonical link: https://commits.webkit.org/317604@main",
      "email": "roberto_rodriguez2@apple.com",
      "hash": "786ab29f8f885275f20d5a00371838357e825b02",
      "subject": "[ANGLE] Skip ANGLE test suite failing/crashing tests"
    },
    "317605@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "317605@main",
      "clUrl": "https://commits.webkit.org/317605@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319760\nrdar://182614984\n\nReviewed by David Kilzer.\n\nThree independent failures caused failures for the iOS simulator CMake build:\n\n- FindIndicatorIOS.cpp called LocalFrame::editor()/selection() without\n  including LocalFrameInlines.h, leaving the inline accessors undefined at\n  link time. Include it, as other WebKit consumers do.\n\n- The hand-rolled WebKitSwift and _WebKit_SwiftUI Swift targets did not pass\n  -disable-sandbox, so @Entry macro expansion failed when the build ran inside\n  a sandbox (swift-plugin-server cannot nest sandbox-exec). Mirror the flag the\n  shared Swift macro already sets for WebKit / WebGPU / PAL.\n\n- WebKitLegacy's iOS forwarding-header step symlinked Headers/WebKit -\u003e\n  Headers/WebKitLegacy so \u003cWebKit/...\u003e imports resolved to the legacy umbrella.\n  That WebKit1 \u003cWebKit/WebKit.h\u003e (no WKWebView) shadowed modern WebKit2's on the              CMake include path, collapsing WebKitTestRunner's TestRunnerWKWebView to a root\n  class. The shipped SDK's \u003cWebKit/WebKit.h\u003e is WebKit2 and the migrated legacy\n  headers are reachable as \u003cWebKitLegacy/...\u003e, so drop the symlink. Also stop                 pulling WebKitLegacy into WebKitTestRunner on iOS, which uses WebKit2 only.\n\n* Source/WebKit/PlatformIOS.cmake:\n* Source/WebKit/WebProcess/WebPage/ios/FindIndicatorIOS.cpp:\n* Tools/WebKitTestRunner/CMakeLists.txt:\n* Tools/WebKitTestRunner/PlatformIOS.cmake:\n* Source/WebKitLegacy/PlatformIOS.cmake:\n\nCanonical link: https://commits.webkit.org/317605@main",
      "email": "zakr@apple.com",
      "hash": "8af1803f244592309456e88b61fe8cc2fa7cd3d9",
      "subject": "[CMake] Fix the iOS simulator release build"
    },
    "317606@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "317606@main",
      "clUrl": "https://commits.webkit.org/317606@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319876\n\u003crdar://182778603\u003e\n\nReviewed by Zak Ridouh.\n\nFixes build with cmake. Regression point:\n\n317593@main\n\n* Source/WebCore/PlatformCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/317606@main",
      "email": "yulun_wu@apple.com",
      "hash": "f1e2e4383d8beebd0038fcf0a0aafe95dfa0e85c",
      "subject": "[CMake] remove LayoutIntegrationFlexLayout.h from removed header list"
    },
    "317607@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "317607@main",
      "clUrl": "https://commits.webkit.org/317607@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319835\nrdar://182734321\n\nReviewed by Richard Robinson.\n\nThis patch provides testing coverage for the titled interaction support\nthat we are bringing up in webkit.org/b/319832.\n\nFor organization purposes, we introduce a new subsuite `DoubleClick`.\n\nFurthermore, we add reusable JavaScript event-log helpers\n(InstallEventLog/EventLog + DOMEvent) and migrate the AppKit gesture\ntests onto them.\n\nTests:\n  AppKitGesturesTests.clickAfterScrollStillProducesClick\n  AppKitGesturesTests.doubleClickWithListenerFiresDblclick\n  AppKitGesturesTests.doubleClickReportsDetailTwo\n  AppKitGesturesTests.doubleClickWithListenerFiresDblclickAndSelectsWord\n  AppKitGesturesTests.doubleClickWithListenerFiresDblclickRegardlessOfEditability\n  AppKitGesturesTests.singleClickReportsDetailOne\n  AppKitGesturesTests.clickingTwoDifferentWordsDoesNotFireDblclick\n  AppKitGesturesTests.smartMagnificationGestureOnZoomableColumnDoesNotSelectWord\n  AppKitGesturesTests.styleAdjustmentCanBlockSmartMagnification\n  AppKitGesturesTests.doubleClickZoomableColumnWithListenerSelectsWordAndFiresDblclick\n\nCanonical link: https://commits.webkit.org/317607@main",
      "email": "a_protyasha@apple.com",
      "hash": "5352ff234d70513cf8bdaa6266b68fd6c1459492",
      "subject": "[AppKit Gestures] Add test coverage for DOM dblclick and smart magnification support"
    },
    "317608@main": {
      "author": "Nic",
      "avatar": "https://www.gravatar.com/avatar/27efa1782947750a220684e81506ccb7?d=identicon\u0026s=64",
      "cl": "317608@main",
      "clUrl": "https://commits.webkit.org/317608@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319864\n\nReviewed by Carlos Garcia Campos.\n\nBackingStore::incorporateUpdate sets CompositeOperator::Copy on the\nGraphicsContext before painting update rects into the persistent backing\nstore, so that transparent webviews overwrite the previous frame instead of\nblending over it. The Skia ShareableBitmap::paint implementation calls the\nraw SkCanvas with a null SkPaint, which defaults to SrcOver and silently\ndiscards the requested operator.\n\nOn a transparent webview every partial update therefore blends over the\nprevious frame's pixels: opaque content that shrinks or moves leaves\npermanent trails, and semi-transparent content accumulates opacity on every\nrepaint, until the backing store is reallocated. Map CompositeOperator::Copy\nto SkBlendMode::kSrc; all other callers keep the default SrcOver.\n\n* Source/WebCore/platform/graphics/skia/ShareableBitmapSkia.cpp:\n(WebCore::ShareableBitmap::paint): Honor CompositeOperator::Copy.\n\nCanonical link: https://commits.webkit.org/317608@main",
      "email": "162764842+Nic-Polumeyv@users.noreply.github.com",
      "hash": "645ce1764ad44d709b8ddfdcfd564fd06d1d8dc6",
      "subject": "[GTK][Skia] ShareableBitmap::paint ignores CompositeOperator::Copy"
    },
    "317609@main": {
      "author": "Youenn Fablet",
      "avatar": "https://www.gravatar.com/avatar/0a9886e582a7aee1eb908eb59af36da4?d=identicon\u0026s=64",
      "cl": "317609@main",
      "clUrl": "https://commits.webkit.org/317609@main",
      "description": "rdar://181805319\nhttps://bugs.webkit.org/show_bug.cgi?id=318954\n\nReviewed by Jean-Yves Avenard.\n\nWe fix WPT RTCPeerConnection-videoDetectorTest.html for two things:\n- We make sure to call play on a video element that is not attached to the DOM, even though its autoplayu is true.\n- We make sure to start the signal detection once the video element gets a first video frame via requestVideoFrameCallback instead of loadedmetadata, which is flaky in WebKit.\n- We make sure to preserve resolution so that the first video frame is not too small.\n\nWe add a test that is specific to testing that when loadedmetadata event fires, a first video frame should have been received.\nWe mark this test as flakky for now and we will work as a follow-upt to fix this, once we know how to handle the case of audio+video.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-video-element-loadedmetadata-event-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-video-element-loadedmetadata-event.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html:\n\nCanonical link: https://commits.webkit.org/317609@main",
      "email": "youenn@apple.com",
      "hash": "a747500e6dd373163d6f633d7f2a5d6b912d0dca",
      "subject": "WPT webrtc RTCPeerConnection-videoDetectorTest.html is failing due to unattached video element not autoplaying"
    },
    "317610@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "317610@main",
      "clUrl": "https://commits.webkit.org/317610@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319883\n\nReviewed by Adrian Perez de Castro.\n\nSo that it looks dark when system is using dark mode.\n\n* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp:\n(WebKit::WebKitProtocolHandler::handleGPU):\n\nCanonical link: https://commits.webkit.org/317610@main",
      "email": "cgarcia@igalia.com",
      "hash": "3e17f7356473a3ecaf9d44fc00232d721d7fd4eb",
      "subject": "[GTK][WPE] Add dark style to webkt://gpu page"
    },
    "317611@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "317611@main",
      "clUrl": "https://commits.webkit.org/317611@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319886\n\nReviewed by Adrian Perez de Castro.\n\nIn 310630@main all api tests were reorganized. GLib based api tests were\nall moved to WKPage directory, but most of them actually belong to\nWKWebView instead.\n\nCanonical link: https://commits.webkit.org/317611@main",
      "email": "cgarcia@igalia.com",
      "hash": "d4ce14f7386501b1d8a5c072a4fbcb0daa03af86",
      "subject": "[GTK][WPE] Reorganize API test directories"
    },
    "317612@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317612@main",
      "clUrl": "https://commits.webkit.org/317612@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319857\nrdar://182756563\n\nReviewed by Chris Dumez.\n\nVector::reverse() swapped elements via at(), paying a redundant bounds\ncheck on every iteration even though the loop bounds already guarantee\nvalid indices. Use std::ranges::reverse(*this) instead, matching the\nstd::ranges::fill(*this, ...) pattern already used elsewhere in this\nfile (Vector::fill).\n\n* Source/WTF/wtf/Vector.h:\n(WTF::Malloc\u003e::reverse):\n\nCanonical link: https://commits.webkit.org/317612@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "01a95826c99b8f7852ff02e93d27624da8903107",
      "subject": "Vector::reverse() should use std::ranges::reverse() instead of at()"
    },
    "317613@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317613@main",
      "clUrl": "https://commits.webkit.org/317613@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319718\nrdar://182553956\n\nReviewed by Alan Baradlay.\n\nIn InlineContentBuilder::handlePartialDisplayContentUpdate(), the box-index\nadjustment for clean lines following a partial damage repair computed an\nunsigned offset and clamped it with std::max\u003csize_t\u003e(0, ...). Since size_t\nis unsigned, comparison against 0 is always true, so the clamp was a\nno-op: when numberOfDamagedBoxes exceeded numberOfNewBoxes, the subtraction\nunderflowed and the adjusted firstBoxIndex of a clean line silently wrapped\nto a huge garbage value instead of being clamped to 0.\n\nReplace the single unsigned subtraction with per-line logic, scoped to the\nloop, that branches on whether the box count grew or shrank, only\nsubtracting when it cannot underflow and clamping to 0 explicitly otherwise.\n\n* Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp:\n(WebCore::LayoutIntegration::InlineContentBuilder::handlePartialDisplayContentUpdate const):\n\nCanonical link: https://commits.webkit.org/317613@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "5bd4dca3519bced58a50b6adb2d9d1cd8fa311d1",
      "subject": "Fix unsigned underflow when adjusting cached box indexes after partial inline layout damage repair"
    },
    "317614@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "317614@main",
      "clUrl": "https://commits.webkit.org/317614@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=44144\nrdar://181437589\n\nReviewed by Simon Fraser.\n\nmarker-start, marker-mid, and marker-end now resolve \u003cmarker\u003e elements\nreferenced by an external file or a data: URL.\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/painting/reftests/marker-data-uri-reference-expected.svg: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/painting/reftests/marker-data-uri-reference.svg: Added.\n* LayoutTests/TestExpectations:\n* Source/WebCore/rendering/svg/legacy/SVGResources.cpp:\n(WebCore::SVGResources::buildCachedResources):\n* Source/WebCore/style/StylePendingResources.cpp:\n(WebCore::Style::loadPendingExternalSVGMarker):\n(WebCore::Style::loadPendingResources):\n\nCanonical link: https://commits.webkit.org/317614@main",
      "email": "taher_ali@apple.com",
      "hash": "09684fda800063d733730312e56fdd98f5c9d04c",
      "subject": "Support external and data: URL marker references on SVG elements"
    },
    "317615@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "317615@main",
      "clUrl": "https://commits.webkit.org/317615@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=212350\n\nReviewed by Carlos Garcia Campos and Claudio Saavedra.\n\nAdd implementation of method 'setHidden' in 'TestControllerWPE.cpp'.\n\nThe missing implementation prevented the test from toggling visibility,\nwhich eventually caused the test to hang.\n\n* LayoutTests/platform/wpe/TestExpectations:\n* Tools/WebKitTestRunner/wpe/TestControllerWPE.cpp:\n(WTR::TestController::setHidden):\n\nCanonical link: https://commits.webkit.org/317615@main",
      "email": "dpino@igalia.com",
      "hash": "21c00b801db96dc00e0d2f060d871c6c559af53b",
      "subject": "[WPE] fast/dom/timer-throttling-hidden-page.html is timing out"
    },
    "317616@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "317616@main",
      "clUrl": "https://commits.webkit.org/317616@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319129\nrdar://181949743\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/13b19fb7fb3b037001ebf8f6defa6b8888f71530\n\nNew tests with timeouts were skipped. Timeouts were happening because\nthe close event is not fired, due cross-origin leak concerns.\nSee discussion on https://github.com/whatwg/html/issues/10201.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/META.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/broadcastchannel/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/broadcastchannel/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/document-destroyed.tentative.window-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/document-destroyed.tentative.window.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/document-destroyed.tentative.window.js: Added.\n(promise_test.async t):\n(string_appeared_here.promise_test.async t):\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/entangled-after-back-forward-cache-restore.https.tentative.window-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/entangled-after-back-forward-cache-restore.https.tentative.window.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/entangled-after-back-forward-cache-restore.https.tentative.window.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js: Added.\n(promise_test.async t):\n(string_appeared_here.promise_test.async t):\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/garbage-collected.tentative.any-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/garbage-collected.tentative.any.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/garbage-collected.tentative.any.js: Added.\n(createMessageChannelAndWeakReferToPort):\n(promise_test.async t):\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/garbage-collected.tentative.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/garbage-collected.tentative.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/resources/helper.js: Added.\n(expectMessagePortFromWindow):\n(async createMessageChannelAndSendPortFollowedByClose):\n(async createMessageChannelAndSendPort):\n(async addWindow):\n(createCloseEventPromise):\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/resources/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/close-event/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/resources/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/message-channels/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/multi-globals/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/multi-globals/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/multi-globals/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/postMessage-to-target-not-fully-active-on-reload-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/postMessage-to-target-not-fully-active-on-reload.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/support/postMessage-reload-child.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/support/postMessage-reload-parent.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/with-options/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/with-options/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/with-ports/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/with-ports/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/without-ports/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webmessaging/without-ports/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/317616@main",
      "email": "franco_vieira@apple.com",
      "hash": "873ac915b8861b88f146e0ab296f42740727cb31",
      "subject": "[WPT] Re-import webmessaging tests"
    },
    "317617@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "317617@main",
      "clUrl": "https://commits.webkit.org/317617@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319451\nrdar://182259744\n\nReviewed by Sam Sneddon.\n\nIgnore WPT Linter rules that enforce at least one match for\nWEB_FEATURES.yml entries:\n * -wpt/lint/missing_web_features_file' : no match for file inclusion\n * -wpt/lint/unnecessary_exclusion_in_web_features_file' : no match for exclusion\n\nLayoutTests/imported/w3c/web-platform-tests/wpt lint --all flags 15\nviolations of these rules, all unhelpful. These only trip because our\ntree does not have the same files as the one in the wpt repo. Run\n`check-webkit-style LayoutTests/imported/w3c/web-platform-tests/gamepad/WEB_FEATURES.yml`\nfor an example of a violation.\n\n* Tools/Scripts/webkitpy/style/checker.py:\n\nCanonical link: https://commits.webkit.org/317617@main",
      "email": "franco_vieira@apple.com",
      "hash": "dd7bc6ee2d58fa1c17ddb5a29f3ca584fba46e31",
      "subject": "[WPT] [Linter] WEB_FEATURES.yml references WPT files that are not imported"
    },
    "317618@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317618@main",
      "clUrl": "https://commits.webkit.org/317618@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319793\nrdar://182668907\n\nReviewed by Alan Baradlay.\n\nRename misspelled identifiers with no behavior change:\n- InlineContentBreaker: n_hyphenationIsDisabled -\u003e m_hyphenationIsDisabled,\nsimplifiedMinimumInstrinsicWidthBreak -\u003e simplifiedMinimumIntrinsicWidthBreak\n- IntrinsicWidthHandler: lineBuilerRoot -\u003e lineBuilderRoot\n- InlineLineBuilder: *WidthForLineCandiate -\u003e *WidthForLineCandidate\n- InlineLineBoxBuilder: layoutBoundstWith... -\u003e layoutBoundsWith...,\nmarginEndAdjustemnt -\u003e marginEndAdjustment\n- InlineContentAligner: latyoutBox -\u003e layoutBox\n- InlineLine: zeroWidhtInlineItem -\u003e zeroWidthInlineItem\n- InlineDisplayContentBuilder: m_initialContaingBlockSize -\u003e m_initialContainingBlockSize\n- LayoutIntegrationFormattingContextLayout: udpdateIFCLineClamp -\u003e updateIFCLineClamp\n- LayoutIntegrationLineLayout and its caller in RenderBlockFlow:\nupdateFormattingContexGeometries -\u003e updateFormattingContextGeometries\n- LayoutIntegrationPagination: isUsplittable -\u003e isUnsplittable\n- LayoutIntegrationBoxGeometryUpdater: hasAppareance -\u003e hasAppearance\n\n* Source/WebCore/layout/formattingContexts/inline/InlineContentAligner.cpp:\n(WebCore::Layout::alignmentOffset):\n* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp:\n(WebCore::Layout::InlineContentBreaker::processInlineContent):\n(WebCore::Layout::InlineContentBreaker::simplifiedMinimumIntrinsicWidthBreak const):\n(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):\n(WebCore::Layout::InlineContentBreaker::simplifiedMinimumInstrinsicWidthBreak const): Deleted.\n* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.h:\n(WebCore::Layout::InlineContentBreaker::setHyphenationDisabled):\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:\n(WebCore::Layout::layoutBoundsWithEdgeAdjustmentForInlineBox):\n(WebCore::Layout::LineBoxBuilder::setLayoutBoundsForInlineBox const):\n(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):\n(WebCore::Layout::layoutBoundstWithEdgeAdjustmentForInlineBox): Deleted.\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:\n(WebCore::Layout::LineBuilder::leadingPunctuationWidthForLineCandidate const):\n(WebCore::Layout::LineBuilder::trailingPunctuationOrStopOrCommaWidthForLineCandidate const):\n(WebCore::Layout::LineBuilder::candidateContentForLine):\n(WebCore::Layout::LineBuilder::leadingPunctuationWidthForLineCandiate const): Deleted.\n(WebCore::Layout::LineBuilder::trailingPunctuationOrStopOrCommaWidthForLineCandiate const): Deleted.\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:\n* Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.cpp:\n(WebCore::Layout::IntrinsicWidthHandler::minimumContentSize):\n(WebCore::Layout::IntrinsicWidthHandler::maximumContentSize):\n(WebCore::Layout::IntrinsicWidthHandler::lineBuilderRoot const):\n(WebCore::Layout::IntrinsicWidthHandler::lineBuilerRoot const): Deleted.\n* Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.h:\n* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:\n(WebCore::Layout::InlineDisplayContentBuilder::InlineDisplayContentBuilder):\n(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):\n* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:\n* Source/WebCore/layout/integration/LayoutIntegrationBoxGeometryUpdater.cpp:\n(WebCore::LayoutIntegration::setIntegrationBaseline):\n* Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp:\n(WebCore::LayoutIntegration::updateIFCLineClamp):\n(WebCore::LayoutIntegration::layoutWithFormattingContextForBlockInInline):\n(WebCore::LayoutIntegration::udpdateIFCLineClamp): Deleted.\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::updateFormattingContextGeometries):\n(WebCore::LayoutIntegration::LineLayout::updateFormattingContexGeometries): Deleted.\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:\n* Source/WebCore/layout/integration/inline/LayoutIntegrationPagination.cpp:\n(WebCore::LayoutIntegration::computeAdjustmentsForPagination):\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::layoutInlineContent):\n\nCanonical link: https://commits.webkit.org/317618@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "bb98cec65a5bfe7773043cc6103d431dac0474ad",
      "subject": "Fix identifier typos in Layout/LFC inline and integration code"
    },
    "317619@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "317619@main",
      "clUrl": "https://commits.webkit.org/317619@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319887\n\nReviewed by Adrian Perez de Castro.\n\nMainThread is lazy initialized and it usually happens before any other\nthread is created. If another thread is created before\nWTF::initializeMainThread() asserts because the main thread id is not 1\nas expected. In linux we can detect the main thread by comparing the\nprocess id with the thread id that is always the same for the main\nthread.\n\n* Source/WTF/wtf/Threading.cpp:\n* Source/WTF/wtf/posix/ThreadingPOSIX.cpp:\n(WTF::Thread::initializeCurrentTLS):\n\nCanonical link: https://commits.webkit.org/317619@main",
      "email": "cgarcia@igalia.com",
      "hash": "0fb4ad718e17916ddeb64917bf7893e603fef28e",
      "subject": "[Linux] Detect if current thread is the main thread and ensure id is always 1"
    },
    "317621@main": {
      "author": "Timothy Hatcher",
      "avatar": "https://www.gravatar.com/avatar/d0f8f949749d89ed152fa835ede38c5b?d=identicon\u0026s=64",
      "cl": "317621@main",
      "clUrl": "https://commits.webkit.org/317621@main",
      "description": "https://webkit.org/b/319859\nrdar://problem/182757589\n\nReviewed by Wenson Hsieh.\n\nWKWebView._takeSnapshotOfNode() required the node to have a renderer and only accepted DOM nodes, so it couldn't\ncapture an off-screen or not-yet-painted image, nor an image source that isn't a node at all.\n\nSnapshot the node, falling back to its own pixels when it has no renderer, and accept ImageData and\nOffscreenCanvas handles by rasterizing them directly.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewSnapshot.mm\n\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj: Export JSImageData.h and JSOffscreenCanvas.h as private\nheaders so WebKit can resolve those JS wrappers.\n* Source/WebCore/html/CanvasBase.h: Export makeRenderingResultsAvailable() for reading a canvas backing store.\n* Source/WebCore/html/OffscreenCanvas.idl: Export the generated bindings (ExportMacro) so WebKit can call\nJSOffscreenCanvas::toWrapped().\n* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:\n(WebKit::imageDataFromJSHandleIdentifier): Resolve a JS handle to an ImageData.\n(WebKit::offscreenCanvasFromJSHandleIdentifier): Resolve a JS handle to an OffscreenCanvas.\n(WebKit::shareableBitmapFromImageBuffer): Rasterize an ImageBuffer into a ShareableBitmap.\n(WebKit::WebFrame::shareableBitmapFromImageData): Rasterize an ImageData's pixels into a ShareableBitmap.\n(WebKit::WebFrame::shareableBitmapFromOffscreenCanvas): Rasterize an OffscreenCanvas's backing store into a\nShareableBitmap.\n(WebKit::WebFrame::takeSnapshotOfNode): Resolve the handle to a node, ImageData, or OffscreenCanvas and build\na bitmap for each.\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::shareableBitmapForNodeIncludingOffscreen): Snapshot a node, falling back to an \u003cimg\u003e's\ndecoded data or a \u003ccanvas\u003e's backing store when it has no renderer; a \u003cpicture\u003e resolves to its \u003cimg\u003e.\n* Source/WebKit/WebProcess/WebPage/WebPage.h: Declare shareableBitmapForNodeIncludingOffscreen.\n* Tools/TestWebKitAPI/Resources/cocoa/node-snapshotting.html: Add an on-screen and off-screen canvas, an\noff-screen image, and a picture for the new tests.\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewSnapshot.mm:\n(TestWebKitAPI::TEST(WKWebView, SnapshotNodeByJSHandle)): Cover ImageData and OffscreenCanvas handles.\n(TestWebKitAPI::TEST(WKWebView, SnapshotNodeIncludingOffscreen)): Added.\n\nCanonical link: https://commits.webkit.org/317621@main",
      "email": "timothy@apple.com",
      "hash": "4897d5f7c57466f265cb84bf27b7bb0578df6f31",
      "subject": "WKWebView._takeSnapshotOfNode() should support ImageData and OffscreenCanvas."
    },
    "317622@main": {
      "author": "Tetsuharu Ohzeki",
      "avatar": "https://www.gravatar.com/avatar/549cbf8e9e2460763d7248f6266be8af?d=identicon\u0026s=64",
      "cl": "317622@main",
      "clUrl": "https://commits.webkit.org/317622@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319569\n\nReviewed by Keith Miller.\n\nThis is a bug by the wrong implementation in bug 309883.\n\nAccording to [the spec](https://tc39.es/proposal-iterator-includes/),\nin the step 10-d, we should propagate an error happening in `IteratorClose` abstract operation.\n\n* JSTests/stress/iterator-prototype-includes.js:\n    This adds some cases that `IteratorClose` throw an error.\n* Source/JavaScriptCore/runtime/JSIteratorPrototype.cpp:\n\nCanonical link: https://commits.webkit.org/317622@main",
      "email": "tetsuharu.ohzeki@gmail.com",
      "hash": "0a0c75c029a02ac511abaf491e38178e66c931e5",
      "subject": "[JSC] Iterator#includes should propagate a thrown error in |IteratorClose| abstract operation on matching the target value"
    },
    "317623@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317623@main",
      "clUrl": "https://commits.webkit.org/317623@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319424\nrdar://182245860\n\nReviewed by Devin Rousso.\n\nInspectorDOMDebuggerAgent::breakOnURLIfNeeded() runs on every outgoing\nrequest (willSendRequest / willFetch / willSendXMLHttpRequest). For each\ncall it iterated over every URL breakpoint and called\nContentSearchUtilities::createSearcherForString() from scratch, which\ncompiles a JSC::Yarr::RegularExpression. Even plain-text breakpoints hit\nthis, since SearchType::ContainsString escapes the query and compiles a\nregex rather than taking the cheap string path. The result was\nO(breakpoints x requests) Yarr compiles during any inspection session\nwith URL breakpoints active.\n\nCompile each breakpoint's searcher once, when the breakpoint is added,\nand cache it alongside the breakpoint -- mirroring how EventBreakpoint\nalready caches m_eventNameSearcher. breakOnURLIfNeeded() then just reuses\nthe stored searcher.\n\nStore the breakpoints in a single Vector\u003cURLBreakpoint\u003e that carries the\npattern and whether it is a regular expression, mirroring the sibling\nVector\u003cEventBreakpoint\u003e. A map keyed by the pattern string would not\nsuffice: a text breakpoint and a regex breakpoint may share the same\npattern string (the frontend allows both, deduping on type and url), so\nthe isRegex flag is what keeps them distinct. URLBreakpoint gets an\noperator== (comparing only url and isRegex, mirroring EventBreakpoint)\nso setURLBreakpoint/removeURLBreakpoint can rely on appendIfNotContains/\nremoveFirstMatching instead of duplicating the comparison as a lambda.\n\n* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-text-and-regex.html: Added.\n* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-text-and-regex-expected.txt: Added.\nCheck that a text breakpoint and a regex breakpoint sharing the same\npattern string are stored and matched independently: removing one leaves\nthe other still able to pause.\n\n* Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.h:\nStore URL breakpoints in a single Vector\u003cURLBreakpoint\u003e; the struct holds\nthe pattern, an isRegex flag, the breakpoint (specialBreakpoint, mirroring\nEventBreakpoint's naming), its cached Searcher, and an operator== that\ncompares by url and isRegex.\n\n* Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp:\n(WebCore::InspectorDOMDebuggerAgent::setURLBreakpoint): Compile the\nsearcher once here and store it; reject a duplicate breakpoint with the\nsame pattern and type via appendIfNotContains.\n(WebCore::InspectorDOMDebuggerAgent::removeURLBreakpoint): Remove the\nbreakpoint matching the pattern and type.\n(WebCore::InspectorDOMDebuggerAgent::breakOnURLIfNeeded): Match using\neach breakpoint's cached searcher instead of recompiling one per request.\n\nCanonical link: https://commits.webkit.org/317623@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "6c448aeddb27e63740344078d13cfc9fada21a38",
      "subject": "Web Inspector: URL breakpoints recompile their search pattern on every network request"
    },
    "317624@main": {
      "author": "Dan Hecht",
      "avatar": "https://www.gravatar.com/avatar/080f47d912b1b34d0be8293f825d132d?d=identicon\u0026s=64",
      "cl": "317624@main",
      "clUrl": "https://commits.webkit.org/317624@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319861\nrdar://182760919\n\nReviewed by Marcus Plutowski and Yusuke Suzuki.\n\ntestAllocationChaos stamped every object immediately and kept sizes under 1 MB, so\nit never verified that a zeroed allocation came back zero and never reached the\nlarge-heap VA-zeroing path. Extend it to cover both, and to catch a double handout\nonto a large object:\n\n- Route about one in four common-primitive allocations through the zeroed API and\n  verify the buffer reads back zero before stamping it, catching a reused region\n  handed back non-zero. Wired for the iso and bmalloc scopes.\n\n- Inject a rare fraction of those allocations into [1 MB, 16 MB] (threshold from\n  PAS_VA_BASED_ZERO_MEMORY_SHIFT) to exercise the VA zeroing path concurrently.\n  Large objects are sampled -- a leading-word stamp and a whole-page zero scan over\n  a bounded, seed-rotated, shuffled set of pages, faulted out of order -- since\n  touching every byte over millions of actions is infeasible; smaller objects keep\n  the full-buffer path.\n\n- Add a frequent-scavenging variant of the bmalloc scope so decommit races\n  alloc/free and large regions are re-zeroed on reuse, and yield before a random\n  subset of a large region's page faults so they can first-fault on different cores.\n\n- Track live large [base, size) ranges and CHECK that no allocation overlaps one.\n  The stamp catches overlap onto small objects (stamped in full) but not large ones\n  (only sampled); tracking just large ranges keeps this check free.\n\n* Source/bmalloc/libpas/src/test/IsoHeapChaosTests.cpp:\n(std::seededShuffle):\n(std::sampledPageOffsets):\n(std::forEachStampRange):\n(std::forEachZeroCheckRange):\n(std::testAllocationChaos):\n(std::addIsoTests):\n(std::addAllTests):\n\nCanonical link: https://commits.webkit.org/317624@main",
      "email": "dan.hecht@apple.com",
      "hash": "a9c5f5b57b1740de140d8528c98ee8186e024dd8",
      "subject": "[libpas] Check zeroed and large allocations in IsoHeapChaosTests"
    },
    "317625@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "317625@main",
      "clUrl": "https://commits.webkit.org/317625@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316912\n\nReviewed by Youenn Fablet.\n\nIn Firefox and Chromium these APIs work even without a valid context,\nthe WPT tests reproduce this by detaching a frame.\n\nThe YARR interpreter works totally fine in this context and should\nhave feature parity.\n\nTest: Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp\n\n* LayoutTests/fast/url/invalid-url-pattern-context-crash.html:\n* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern-detached-frame-regexp-expected.txt:\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/Modules/url-pattern/URLPattern.cpp:\n(WebCore::URLPattern::create):\n(WebCore::URLPattern::test const):\n(WebCore::URLPattern::exec const):\n(WebCore::URLPattern::compileAllComponents):\n(WebCore::URLPattern::match const):\n* Source/WebCore/Modules/url-pattern/URLPattern.h:\n* Source/WebCore/Modules/url-pattern/URLPattern.idl:\n* Source/WebCore/Modules/url-pattern/URLPatternComponent.cpp:\n(WebCore::URLPatternUtilities::URLPatternComponent::operator=):\n(WebCore::URLPatternUtilities::URLPatternComponent::URLPatternComponent):\n(WebCore::URLPatternUtilities::URLPatternComponent::compile):\n(WebCore::URLPatternUtilities::URLPatternComponent::matchSpecialSchemeProtocol const):\n(WebCore::URLPatternUtilities::URLPatternComponent::componentExec const):\n(WebCore::URLPatternUtilities::URLPatternComponent::createComponentMatchResult const):\n* Source/WebCore/Modules/url-pattern/URLPatternComponent.h:\n* Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.cpp:\n(WebCore::URLPatternConstructorStringParser::computeProtocolMatchSpecialSchemeFlag):\n(WebCore::URLPatternConstructorStringParser::updateState):\n(WebCore::URLPatternConstructorStringParser::performParse):\n(WebCore::URLPatternConstructorStringParser::parse):\n* Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.h:\n* Source/WebCore/dom/SpeculationRulesMatcher.cpp:\n(WebCore::matches):\n* Source/WebCore/workers/service/InstallEvent.cpp:\n(WebCore::verifyRouterCondition):\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp: Added.\n(TestWebKitAPI::URLPatternTest::makePattern):\n(TestWebKitAPI::URLPatternTest::makePattern const):\n(TestWebKitAPI::TEST_F(URLPatternTest, BasicAccessors)):\n(TestWebKitAPI::TEST_F(URLPatternTest, TestMatchesExactURL)):\n(TestWebKitAPI::TEST_F(URLPatternTest, TestNoMatchDifferentHost)):\n(TestWebKitAPI::TEST_F(URLPatternTest, TestNoMatchDifferentProtocol)):\n(TestWebKitAPI::TEST_F(URLPatternTest, ExecReturnsNamedGroup)):\n(TestWebKitAPI::TEST_F(URLPatternTest, ExecNoMatch)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WildcardPathMatches)):\n(TestWebKitAPI::TEST_F(URLPatternTest, IgnoreCaseOption)):\n(TestWebKitAPI::TEST_F(URLPatternTest, HasRegExpGroupsFalseForNamedSegments)):\n(TestWebKitAPI::TEST_F(URLPatternTest, HasRegExpGroupsTrueForExplicitRegex)):\n(TestWebKitAPI::TEST_F(URLPatternTest, ExplicitRegexGroupMatchesAndReturnsCapture)):\n(TestWebKitAPI::TEST_F(URLPatternTest, InvalidPatternReturnsException)):\n(TestWebKitAPI::TEST_F(URLPatternTest, BaseURLRelativePattern)):\n(TestWebKitAPI::TEST_F(URLPatternTest, RelativePatternWithoutBaseURLThrows)):\n\nCanonical link: https://commits.webkit.org/317625@main",
      "email": "pgriffis@igalia.com",
      "hash": "c37e989dd6c6c42aa492c194ace00999ffd0841f",
      "subject": "Remove ScriptExecutionContext requirement from URLPattern matching"
    },
    "317626@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317626@main",
      "clUrl": "https://commits.webkit.org/317626@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=245519\nrdar://100556746\n\nReviewed by Jean-Yves Avenard.\n\nA live HLS stream reports an unbounded duration (positive infinity), which is\nhow WebKit recognizes it as live. When such a stream is played forward into the\nlive edge, AVFoundation posts AVPlayerItemDidPlayToEndTimeNotification, which\nroutes into MediaPlayerPrivateAVFoundation::didEnd(). That method caches the\ncurrent time as the media's duration to correct estimated durations. For a live\nstream this demotes the duration from positive infinity to a finite value, so\nthe next HTMLMediaElement::handlePlaybackPositionChanged() sees currentTime at\nthe (now finite) duration and fires a spurious pause and ended, even though the\nstream has not finished. Changing playbackRate makes this easy to hit because\nplayback reaches the live edge sooner.\n\nSkip caching the duration in didEnd() when the resource is a live stream, so its\nunbounded duration is preserved and endedPlayback() does not treat reaching the\nlive edge as the end of the media. Also log isLiveStream() in didEnd() to make\nthis state visible for future diagnosis.\n\nTest: http/tests/media/hls/hls-live-playbackrate-no-ended.html\n\n* LayoutTests/http/tests/media/hls/hls-live-playbackrate-no-ended-expected.txt: Added.\n* LayoutTests/http/tests/media/hls/hls-live-playbackrate-no-ended.html: Added.\n* Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:\n(WebCore::MediaPlayerPrivateAVFoundation::didEnd):\n\nCanonical link: https://commits.webkit.org/317626@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "c782c456f8ed7fcd7132b1a111e705324be386c8",
      "subject": "Wrong ended event fired on HLS live stream when dealing with playbackRate"
    },
    "317627@main": {
      "author": "Ithril",
      "avatar": "https://www.gravatar.com/avatar/fe2334cb59663d7d45fdcb65e19cc89e?d=identicon\u0026s=64",
      "cl": "317627@main",
      "clUrl": "https://commits.webkit.org/317627@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319804\n\nReviewed by Yijia Huang.\n\nICU calendar arithmetic can clamp at the supported instant boundaries, leaving partially clamped native fields for fixed-solar non-ISO calendars. Construct and verify native year, month, and day fields directly for Coptic, Ethiopic, Ethioaa, Indian, and Persian, balance their 12/13-month years explicitly, and finish weeks and days in ISO space. Use the same checked construction for dateUntil so large month differences remain direct and add/until stay consistent. Keep Ethioaa arithmetic on its calendar-native UCAL_YEAR field.\n\nTest: JSTests/stress/temporal-calendar-icu-bridge-non-iso.js\n\nThe focused stress/JIT coverage and the supported Temporal Test262 suite passed, including boundary and overflow cases; 10 unsupported files remained configured skips.\n\n* JSTests/stress/temporal-calendar-icu-bridge-non-iso.js:\n\n  - Add fixed-solar add/until, overflow, balancing, inverse, and boundary coverage.\n\n* Source/JavaScriptCore/runtime/temporal/core/CalendarICUBridge.cpp:\n\n  (JSC::Temporal::calendarArithmeticYearField):\n\n  (JSC::Temporal::resolveMonthCodeToOrdinal):\n\n  (JSC::Temporal::fixedSolarMonthsInYear):\n\n  (JSC::Temporal::balanceFixedSolarYearMonth):\n\n  (JSC::Temporal::setFixedSolarCalendarToYearMonth):\n\n  (JSC::Temporal::fixedSolarDateAdd):\n\n  (JSC::Temporal::calendarDateAdd):\n\n  (JSC::Temporal::calendarDateUntil):\n\n  - Add direct checked fixed-solar native calendar arithmetic.\n\nCanonical link: https://commits.webkit.org/317627@main",
      "email": "ithril.laydec@gmail.com",
      "hash": "9dd0abc261828479fac8134d26d7138b962df5a3",
      "subject": "[JSC][Temporal] Fix fixed-solar non-ISO calendar arithmetic"
    },
    "317628@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "317628@main",
      "clUrl": "https://commits.webkit.org/317628@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314337\n\nReviewed by Keith Miller.\n\nWe cache new Intl.DateTimeFormat like other engines. A LRU cache keeps\nthe underlying const impl object cached, and JS wrappers share a reference\nto it now.\n\nWe also register a new language change observer to invalidate our cache.\n\nWe restructure the resetting code a bit so that it is clear when\nwe are resetting due to TZ or language, even if the actual reset\nlogic is the same.\n\ndate-time-complex.js goes 200-1000x faster (simple vs complex case).\n\nWhile touching this code, we also fix a related bug: canonicalizeLocaleList\nshould defineOwnProperty on the resulting array, we shouldn't observe\nthis. I added a test for this case too, and now we match v8's behaviour\nwith and without this new cache.\n\nFinally, I have included some llm-generated tests to make sure we hit\na bunch of these edge cases. They are a bit verbose for my tastes,\nbut I figured that including them could still be useful for the fuzzer.\n\nCanonical link: https://commits.webkit.org/317628@main",
      "email": "jmichaud@igalia.com",
      "hash": "8d261de036d46e2f57473eb3c8c65f43bbf77324",
      "subject": "Cache Intl.DateTimeFormat"
    },
    "317629@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "317629@main",
      "clUrl": "https://commits.webkit.org/317629@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319867\nrdar://182767755\n\nReviewed by Yijia Huang.\n\nThis patch extends support of cooperative driving to cover TLA modules.\nThe core change is accepting JSModuleRecord as a driver. And the change\nis really minimum. The benefit is now bytecode generation becomes\nsimpler since we can always use the cooperative driving code.\n\nTests: JSTests/stress/async-iterator-tla-cached-result.js\n       JSTests/stress/async-iterator-tla-fast-consumer.js\n\n* JSTests/stress/async-iterator-tla-cached-result.js: Added.\n(shouldBe):\n(track):\n(track.import.string_appeared_here.then):\n(then):\n* JSTests/stress/async-iterator-tla-fast-consumer.js: Added.\n(assert):\n(assertArrayEq):\n(track):\n(import.string_appeared_here.then):\n(import.string_appeared_here.then.import.string_appeared_here.then):\n* JSTests/stress/resources/async-iterator-tla-basic.js: Added.\n(async g):\n(async g2):\n(async inner):\n(async outer):\n* JSTests/stress/resources/async-iterator-tla-cached-aliasing.js: Added.\n(get if):\n* JSTests/stress/resources/async-iterator-tla-cached-fast.js: Added.\n(async g):\n* JSTests/stress/resources/async-iterator-tla-cached-mid-lifetime.js: Added.\n(async g):\n(get delete):\n* JSTests/stress/resources/async-iterator-tla-error.js: Added.\n(async g):\n* JSTests/stress/resources/async-iterator-tla-ruler-fast.js: Added.\n(async g):\n* JSTests/stress/resources/async-iterator-tla-ruler-generic.js: Added.\n(const.asyncGenProto.Object.getPrototypeOf.Object.getPrototypeOf):\n(asyncGenProto.next):\n(async const):\n(async g):\n* Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:\n(JSC::BytecodeGenerator::emitEnumeration):\n* Source/JavaScriptCore/runtime/JSAsyncGeneratorInlines.h:\n(JSC::JSAsyncGenerator::enqueue):\n* Source/JavaScriptCore/runtime/JSMicrotask.cpp:\n(JSC::asyncModuleExecutionDone):\n(JSC::asyncModuleResolveEvaluation):\n(JSC::asyncModuleExecutionResume):\n(JSC::asyncGeneratorDriverResume):\n(JSC::runInternalMicrotask):\n* Source/JavaScriptCore/runtime/JSMicrotask.h:\n* Source/JavaScriptCore/runtime/JSModuleRecord.cpp:\n(JSC::JSModuleRecord::isTopLevelExecutionFinished const):\n(JSC::JSModuleRecord::evaluate):\n(JSC::JSModuleRecord::execute):\n* Source/JavaScriptCore/runtime/JSModuleRecord.h:\n\nCanonical link: https://commits.webkit.org/317629@main",
      "email": "ysuzuki@apple.com",
      "hash": "771e7c42bc494b463800e4a87a032b99af72800d",
      "subject": "[JSC] Use cooperative driving in TLA modules"
    },
    "317630@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/d0533d52eeb271270df480f37629a407?d=identicon\u0026s=64",
      "cl": "317630@main",
      "clUrl": "https://commits.webkit.org/317630@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319425\nrdar://182247394\n\nReviewed by Simon Fraser.\n\nAdds new wpt tests for corner-shape squircle testing borders\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-squircle-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-squircle-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-squircle.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-squircle-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-squircle-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-squircle.html: Added.\n\nCanonical link: https://commits.webkit.org/317630@main",
      "email": "173393835+cupidsity@users.noreply.github.com",
      "hash": "4e29412bffcfe26613cb9dc0afad798833bd800f",
      "subject": "corner-shape: add squircle tests"
    },
    "317631@main": {
      "author": "Jer Noble",
      "avatar": "https://www.gravatar.com/avatar/6d2cde9be23b98223ca964cb3b7813a0?d=identicon\u0026s=64",
      "cl": "317631@main",
      "clUrl": "https://commits.webkit.org/317631@main",
      "description": "rdar://182373790\nhttps://bugs.webkit.org/show_bug.cgi?id=319544\n\nReviewed by Eric Carlson.\n\nEnable all existing picture-in-picture tests (except mediastream.html,\nleave-picture-in-picture-disable-attribute.optional.html, and permissions-policy.https.sub.html)\nby resolving all issues preventing those tests from passing:\n\n1. Many tests were failing because the \u003cvideo\u003e element did not have video tracks immediately\n   after \"loadedmetadata\" fired. There are two issues here:\n   1.a MediaPlayerPrivateAVFoundationObjC does not create video or audio tracks until the\n       AVPlayerItem is created and AVPlayerItemTracks are available, which is long after the\n       ready state moves to HAVE_METADATA. Rather than requiring video tracks to be non-empty\n       just check haveVideo() instead.\n   1.b The RemoteMediaPlayerProxy doesn't update haveVideo when ready state changes.\n2. requestPictureInPicture() was testing whether the current event was a user gesture, which\n   is a much more stringent requirement than the spec requires. Check instead for a transient\n   user activation.\n3. Flows that don't require a user gesture (such as when another video element is already in\n   PiP) were blocked by downstream code in HTMLVideoElement::setPresentationMode().\n4. The promise was resolving before the \"enterpictureinpicture\" event fired, when it should have\n   resolved after.\n5. WebKitTestRunner did not enable the PiP setting.\n6. HTMLVideoElement did not exit PiP upon entering the back-forward cache.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/css-selector-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/disable-picture-in-picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/enter-picture-in-picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/exit-picture-in-picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/idlharness.window-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/leave-picture-in-picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/picture-in-picture-element-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/picture-in-picture-window-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/request-picture-in-picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/request-picture-in-picture-twice-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/shadow-dom-expected.txt: Added.\n* LayoutTests/resources/testdriver-vendor.js:\n(async if.await.new.Promise): Deleted.\n* Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:\n(WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):\n(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):\n(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):\n* Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.h:\n* Source/WebCore/html/HTMLVideoElement.cpp:\n(WebCore::HTMLVideoElement::setPresentationMode):\n(WebCore::HTMLVideoElement::HTMLVideoElement):\n(WebCore::HTMLVideoElement::rendererIsNeeded):\n(WebCore::HTMLVideoElement::supportsFullscreen const):\n(WebCore::HTMLVideoElement::webkitEnterFullscreen):\n(WebCore::HTMLVideoElement::suspend):\n* Source/WebCore/html/HTMLVideoElement.h:\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:\n(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):\n(WebKit::RemoteMediaPlayerProxy::mediaPlayerCharacteristicChanged):\n(WebKit::RemoteMediaPlayerProxy::updateCachedMediaCharacteristics):\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:\n* Tools/WebKitTestRunner/TestController.cpp:\n(WTR::TestController::resetPreferencesToConsistentValues):\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/META.yml:\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/leave-picture-in-picture-disable-attribute.optional.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/leave-picture-in-picture.html:\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/permissions-policy.https.sub-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/permissions-policy.https.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/removed-from-document-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/removed-from-document.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/request-picture-in-picture-exits-existing-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/request-picture-in-picture-exits-existing.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/resources/permissions-policy-helper.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/resources/permissions-policy-nested-helper.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/resources/unload-document-helper.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/shadow-dom.html:\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/unload-document-exits-picture-in-picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/unload-document-exits-picture-in-picture.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/w3c-import.log:\n* LayoutTests/tests-options.json:\n* Source/WebCore/dom/Document.cpp:\n(WebCore::Document::willBeRemovedFromFrame):\n* Source/WebCore/html/HTMLMediaElement.h:\n\nCanonical link: https://commits.webkit.org/317631@main",
      "email": "jer.noble@apple.com",
      "hash": "397df0f71bfd0136ef1a47a57dffe0b04eb1d814",
      "subject": "[WPT] Enable (most) picture-in-picture tests"
    },
    "317632@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "317632@main",
      "clUrl": "https://commits.webkit.org/317632@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318659\nrdar://181513905\n\nReviewed by Sihui Liu.\n\nA put() that violates a unique index constraint was not atomic: putOrAddAfterSpaceCheck()\ndeleted any existing record with the same primary key before adding the new one, so a failed\nput() left the store with neither the old nor the new record. Fix by folding the\ncheck-then-overwrite sequence into a single new backing store method, overwriteRecord(),\nmatching the spec's storage algorithm: verify the record would not violate a unique index\nbefore mutating anything, then remove any existing record with the same key and store the\nnew key/value with its index entries.\n\nIn SQLiteIDBBackingStore, merge uncheckedHasIndexRecord() and\nuncheckedHasIndexRecordForOtherPrimaryKey() into uncheckedGetExistingPrimaryKeyForIndexKey(),\nso both call sites share one query instead of two nearly-identical ones.\n\nTests: imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.js\n       storage/indexeddb/put-record-unique-index-constraint-is-atomic-private.html\n\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.serviceworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.serviceworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-put-unique-index-constraint-is-atomic.any.worker.html: Added.\n* LayoutTests/storage/indexeddb/put-record-unique-index-constraint-is-atomic-private-expected.txt: Added.\n* LayoutTests/storage/indexeddb/put-record-unique-index-constraint-is-atomic-private.html: Added.\n* LayoutTests/storage/indexeddb/resources/put-record-unique-index-constraint-is-atomic.js: Added.\n* Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h:\n* Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp:\n(WebCore::IDBServer::MemoryIDBBackingStore::overwriteRecord):\n* Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h:\n* Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp:\n(WebCore::IDBServer::MemoryIndex::hasRecordForOtherPrimaryKey):\n* Source/WebCore/Modules/indexeddb/server/MemoryIndex.h:\n* Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp:\n(WebCore::IDBServer::MemoryObjectStore::overwriteRecord):\n(WebCore::IDBServer::MemoryObjectStore::checkIndexConstraintsForPut):\n* Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h:\n* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:\n(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetExistingPrimaryKeyForIndexKey):\n(WebCore::IDBServer::SQLiteIDBBackingStore::overwriteRecord):\n(WebCore::IDBServer::SQLiteIDBBackingStore::checkIndexConstraintsForPut):\n(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexKey):\n* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h:\n* Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:\n(WebCore::IDBServer::UniqueIDBDatabase::putOrAddAfterSpaceCheck):\n\nCanonical link: https://commits.webkit.org/317632@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "6b45d5d99db753d2bc2c3c470b1164bd1839c527",
      "subject": "IndexedDB: put() that fails a unique index constraint deletes the record it would have overwritten"
    },
    "317633@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "317633@main",
      "clUrl": "https://commits.webkit.org/317633@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314444\n\nReviewed by Yusuke Suzuki.\n\ni32.const data offsets are stored in a uint64_t with C++ sign-extension, so\n0x80000000 (e.g. Emscripten GLOBAL_BASE=2GB) became 0xffffffff80000000 and\nfailed active data segment initialization. Treat memory32 offsets as u32\n(zero-extend from the i32 bit pattern). Memory64 keeps full i64 offsets and\nuses i64 globals / const expressions.\n\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:\n* JSTests/wasm/stress/data-segment-offset-2gb.js: Added.\n\nCanonical link: https://commits.webkit.org/317633@main",
      "email": "chi187@gmail.com",
      "hash": "7a71bbb85003c03c9da7c85fa194069bc8992095",
      "subject": "[JSC][Wasm] Zero-extend memory32 data segment offsets"
    },
    "317634@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "317634@main",
      "clUrl": "https://commits.webkit.org/317634@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319819\nrdar://problem/182718020\n\nReviewed by Tim Nguyen.\n\nInitial piece of work for baseline-source that adds the feature flag as\nwell as the initial parsing.\n\nhttps://drafts.csswg.org/css-inline/#baseline-source\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\nFeature flag is currently set to testable since we have some WPTs that\nshould exercise code that was added in this patch.\n\n* Source/WebCore/css/CSSProperties.json:\nHave it live next to vertical-align since this is supposed to be a\nlonghand of it. This is currently not the how that property is\nimplemented but we may want to change that in the future so it might be\nbetter to place it here for now.\n\nCanonical link: https://commits.webkit.org/317634@main",
      "email": "sammy.gill@apple.com",
      "hash": "a6a0396a9e02089a03e589d157692d466273a56b",
      "subject": "[baseline-source] Implement initial parsing support."
    },
    "317635@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "317635@main",
      "clUrl": "https://commits.webkit.org/317635@main",
      "description": "rdar://182530213\nhttps://bugs.webkit.org/show_bug.cgi?id=319683\n\nReviewed by Tim Nguyen.\n\nThe condition in a @container at-rule includes at least one of: container\nname, and container query. When serializing the at-rule for cssText, if\nboth are present, there should be a space in between. But the current\ncode always insert a space after the name, even if the query is empty.\nFix it to only emit a space if both are present.\n\nTest: imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-serialization.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-serialization-expected.txt:\n* Source/WebCore/css/query/ContainerQuery.cpp:\n(WebCore::CQ::serialize):\n\nCanonical link: https://commits.webkit.org/317635@main",
      "email": "kiet.ho@apple.com",
      "hash": "8f1b55f545af549e7795a88e31b94ed62404c242",
      "subject": "[css-conditional-5] Fix serialization of @container condition"
    },
    "317636@main": {
      "author": "Anand Srinivasan",
      "avatar": "https://www.gravatar.com/avatar/84643a20c269974c2df6681742daf0a4?d=identicon\u0026s=64",
      "cl": "317636@main",
      "clUrl": "https://commits.webkit.org/317636@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319389\nrdar://182219080\n\nReviewed by Dan Hecht.\n\nSwitch on --useWasmMultiMemory by default\n\n* JSTests/wasm/function-tests/memory-section-and-import.js:\n* JSTests/wasm/js-api/test_memory.js:\n* JSTests/wasm/js-api/validate.js:\n(assert.eq):\n* JSTests/wasm/spec-tests/imports.wast.js:\n* JSTests/wasm/spec-tests/memory.wast.js:\n* JSTests/wasm/threads-spec-tests/memory.wast.js:\n* JSTests/wasm/v8/js-api.js:\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::emitDirectCall):\n* Source/JavaScriptCore/wasm/debugger/WasmMemoryHandler.cpp:\n(JSC::Wasm::MemoryHandler::readMemoryData):\n(JSC::Wasm::MemoryHandler::handleWasmMemoryRegionInfo):\n(JSC::Wasm::MemoryHandler::write):\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp:\n(JSC::createTypeReflectionObject):\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:\n(JSC::WebAssemblyModuleRecord::initializeExports):\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/317636@main",
      "email": "anand_srinivasan@apple.com",
      "hash": "fcd66f17f455cb8886b11755882ee5853226bca4",
      "subject": "Enable wasm multimemory feature flag"
    },
    "317637@main": {
      "author": "Ruthvik Konda",
      "avatar": "https://www.gravatar.com/avatar/bca33cefcce93017251a8fbc1204cdc4?d=identicon\u0026s=64",
      "cl": "317637@main",
      "clUrl": "https://commits.webkit.org/317637@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319816\nrdar://182714189\n\nReviewed by Megan Gardner and Etienne Segonzac.\n\nModelPlayer.cpp includes Color.h but never references the Color class. No change in behavior.\n\n* Source/WebCore/Modules/model-element/ModelPlayer.cpp:\n\nCanonical link: https://commits.webkit.org/317637@main",
      "email": "rkonda2@apple.com",
      "hash": "e5e88b7b457069a9bc1016433c1be76ac1e86b58",
      "subject": "[model] Remove unused Color.h include in ModelPlayer"
    },
    "317638@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "317638@main",
      "clUrl": "https://commits.webkit.org/317638@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319895\n\nReviewed by Marcus Plutowski.\n\nSince 317420@main PAS_ENABLE_MTE can appear in contexts where the\npreprocessor would output expressions like (0 \u0026\u0026 0 \u0026\u0026 !0), which in turn\ncould trigger the -Wconstant-logical-operand warning. For example, in\ndistributed icecc builds where just the final TU is sent.\n\nCurrently, this appears in FastMalloc.cpp, with errors like:\n\nbmalloc/Headers/bmalloc/bmalloc_heap_config.h:84:24095: error: use of logical '\u0026\u0026' with constant operand [-Werror,-Wconstant-logical-operand]\nbmalloc/Headers/bmalloc/bmalloc_heap_config.h:84:24095: note: use '\u0026' for a bitwise operation\nbmalloc/Headers/bmalloc/bmalloc_heap_config.h:84:24095: note: remove constant to silence this warning\n\n* Source/bmalloc/libpas/src/libpas/pas_config.h: Ensure PAS_ENABLE_MTE\n  resolves to a constant instead of an expression.\n\nCanonical link: https://commits.webkit.org/317638@main",
      "email": "lmoura@igalia.com",
      "hash": "96f8d4e5d16f0cd6dbec8ea71d64bf1361d13998",
      "subject": "REGRESSION(317420@main) PAS_ENABLE_MTE can break preprocessed distributed builds"
    },
    "317639@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "317639@main",
      "clUrl": "https://commits.webkit.org/317639@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318754\nrdar://180662445\n\nReviewed by Sam Sneddon.\n\nAdd a --check-pre-existing-failures flag to run-webkit-tests and run-api-tests.\nWhen set, each unexpected failure is looked up against results.webkit.org after\nthe run completes and classified as either pre-existing (historically failing on\nthe post-commit infrastructure) or possibly new. A test is considered\npre-existing when its combined pass+warning rate is strictly below 80%. A\ncompanion --max-pre-existing-checks option (default: 0, no limit) caps the\nnumber of lookups for use on slow connections or with very large failure sets.\n\n* Tools/Scripts/run-api-tests:\n(parse_args):\n* Tools/Scripts/run-webkit-tests:\n(parse_args):\n* Tools/Scripts/webkitpy/api_tests/manager.py:\n(Manager.run):\n* Tools/Scripts/webkitpy/common/net/results_database.py: Added.\n(get_results_summary):\n(is_pre_existing_failure):\n(check_pre_existing_failures):\n* Tools/Scripts/webkitpy/common/net/results_database_unittest.py: Added.\n* Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:\n(Manager._end_test_run):\n* Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:\n(parse_args):\n\nCanonical link: https://commits.webkit.org/317639@main",
      "email": "issacroy05@gmail.com",
      "hash": "2fcc121ad432b553922ce4a0e23315eb1d998cf8",
      "subject": "run-webkit-tests should optionally consult the results database to identify pre-existing failures when running at desk"
    },
    "317640@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "317640@main",
      "clUrl": "https://commits.webkit.org/317640@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319682\n\nReviewed by Darin Adler.\n\nConverts the animation-range CSS properties to use unzoomed lengths.\n\nNew test added showing animation-range working properly with inherited + zoomed values.\n\nTests: imported/w3c/web-platform-tests/css/css-viewport/zoom/animation-range.html\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/animation-range-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/animation-range.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/animation-range-ref.html: Added.\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/animation/AnimationEffect.cpp:\n* Source/WebCore/animation/AnimationEffect.h:\n* Source/WebCore/animation/CSSAnimation.cpp:\n* Source/WebCore/animation/CSSAnimation.h:\n* Source/WebCore/animation/KeyframeEffect.cpp:\n* Source/WebCore/animation/KeyframeEffect.h:\n* Source/WebCore/animation/ResolvableTimelineRange.h: Added.\n* Source/WebCore/animation/ScrollTimeline.cpp:\n* Source/WebCore/animation/ScrollTimeline.h:\n* Source/WebCore/animation/ViewTimeline.cpp:\n* Source/WebCore/animation/ViewTimeline.h:\n* Source/WebCore/animation/WebAnimation.cpp:\n* Source/WebCore/animation/WebAnimation.h:\n* Source/WebCore/style/Styleable.cpp:\n* Source/WebCore/style/values/animations/StyleSingleAnimationRange.cpp:\n* Source/WebCore/style/values/animations/StyleSingleAnimationRange.h:\n* Source/WebCore/style/values/viewport/StyleZoomPrimitives.h:\n\nCanonical link: https://commits.webkit.org/317640@main",
      "email": "sam@webkit.org",
      "hash": "f6b407dde7b750f4b1bae4db37a94b6caab491d9",
      "subject": "[EvaluationTimeZoom] Convert animation-range properties to use unzoomed lengths"
    },
    "317641@main": {
      "author": "Aakash Jain",
      "avatar": "https://www.gravatar.com/avatar/e82e0cafeeac3a35b7e74206ebe4c536?d=identicon\u0026s=64",
      "cl": "317641@main",
      "clUrl": "https://commits.webkit.org/317641@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319898\nrdar://problem/182817323\n\nReviewed by Ryan Haddad.\n\nAnalyzeAPITestsResults re-fetches and re-parses the json log of each API test run step from the  database,\ninstead of reading the failure lists that the run steps already computed and stored as build properties.\nThis also created various inefficiencies and edge cases bugs.\n\nFor layout-tests we use a much better approach, AnalyzeLayoutTestsResults reads first_run_failures /\nsecond_run_failures / clean_tree_run_failures directly as properties.\n\nThis improves AnalyzeAPITestsResults to use the same pattern.\n\n* Tools/CISupport/ews-build/steps.py:\n(RunAPITests.run): Parse and publish failures, then run results-db analysis.\n(RunAPITests.parse_and_set_failures): Added; parse the json log and set {suffix}_failures.\n(RunAPITests.analyze_failures_using_results_db): Now takes the parsed failures and only does\nresults-db filtering.\n(RunAPITestsWithoutChange): Set suffix to 'clean_tree_run' so parse_and_set_failures publishes\nclean_tree_run_failures; skip results-db filtering.\n(RunAPITestsParallelSafety.analyze_failures_using_results_db): Match the new signature.\n(AnalyzeAPITestsResults.run): Read failure lists from build properties; merge the former\nanalyzeResults logic in and drop the redundant json re-parsing.\n(AnalyzeAPITestsResults.analyzeResults): Removed; folded into run.\n(AnalyzeAPITestsResults.getBuildStepByName): Removed; no longer needed.\n(AnalyzeAPITestsResults.getTestsResults): Removed; no longer needed.\n* Tools/CISupport/ews-build/steps_unittest.py:\n(TestAnalyzeAPITestsResults): Added.\n\nCanonical link: https://commits.webkit.org/317641@main",
      "email": "aakash_jain@apple.com",
      "hash": "436208095697b206723e6b6e30776368ff967ce9",
      "subject": "[EWS] Refactor AnalyzeAPITestsResults to read build properties like layout tests"
    },
    "317642@main": {
      "author": "Anthony Tarbinian",
      "avatar": "https://www.gravatar.com/avatar/ef46154a1a21c6a5ef593e952ebc62f4?d=identicon\u0026s=64",
      "cl": "317642@main",
      "clUrl": "https://commits.webkit.org/317642@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317934\nrdar://180735236\n\nReviewed by Alex Christensen.\n\nWhen a navigation of an iframe is initiated by a different, cross-site\nframe, that iframe should lose its frame-specific storage access. This is\ndescribed by the navigation algorithm of the Storage Access API spec:\nhttps://privacycg.github.io/storage-access/#navigation\n\nWebKit implemented this for the same-process case in\nWebLocalFrameLoaderClient::dispatchDecidePolicyForNavigationAction, but it\ndid not fire when the initiator and target frames were in different\nprocesses under Site Isolation.\n\nRather than implement this check for the other frame is in another process\n(WebRemoteFrameLoaderClient::dispatchDecidePolicyForNavigationAction),\nthis patch performs the storage access removal at commit time in\nWebLocalFrameLoaderClient::dispatchDidCommitLoad. The committing frame is\nalways a local frame in its own process, where it owns\nm_frameSpecificStorageAccessIdentifier and can remove access directly.\nThis way, the same code path covers both the same-process and cross-process\ncases. The navigation initiator is available at commit via DocumentLoader::triggeringAction()'s\nrequester, which is carried into the target process on the load.\n\nEvaluating at commit time (instead of when a navigation is decided)\nalso means storage access is preserved while a navigation is in flight and\nis not revoked at all for a navigation that never commits.\n\nHowever, this doesn't cover a scenario where cookies should not be attached\nto network requests that are made before the navigation load commits.\nFor example, if an iframe is navigated by a cross-site initiator it should\nlose storage access. However, if you revoke the iframe's storage access\ntoo-late (at commit-time), then it's possible for the main-resource load of the navigation\nto have cookies attached when it shouldn't. To solve this issue,\nI modified NetworkStorageSession::thirdPartyCookieBlockingDecisionForRequest\nto not attach cookies on network requests when it had a navigation which\ncertainly drops storage access.\n\nThis patch fixes\nhttp/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.https.html\nand\nimported/w3c/web-platform-tests/storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.html\nwith site isolation enabled.\n\n* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:\n(WebKit::WebLocalFrameLoaderClient::dispatchDidCommitLoad):\n    Remove storage access when navigation commits.\n(WebKit::WebLocalFrameLoaderClient::removeStorageAccessOnCommit):\n(WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNavigationAction):\n    Helper which performs the removal if the navigation meets\n    the requirements.\n* LayoutTests/http/tests/storageAccess/revoke-storage-access-deferred-until-failed-navigation.https.html: Added.\n    Test that storage access is not revoked when a navigation fails to\n    commit.\n* LayoutTests/http/tests/storageAccess/revoke-storage-access-deferred-until-slow-navigation.https.html: Added.\n    Test that storage access is not revoked when a navigation is still\n    in-flight (in this test, the navigation never commits which is\n    observably the same)\n    HTML of iframe which requests storage access and reports if it still\n    has it.\n* LayoutTests/http/tests/storageAccess/resources/deferred-storage-access-revocation-test.js: Added.\n(activateElement):\n(relayMessage):\n(receiveMessage):\n(async runTest.switch.iframeElement.onload):\n(async runTest):\n    Shared driver for the two tests above. Each test only sets the navigation\n    target and its description. The non-committing / in-flight navigation targets\n    reuse the existing navigation/resources/response204.pl and never-respond.py.\n* LayoutTests/http/tests/storageAccess/resources/request-storage-access-and-report-client-side-cookies-iframe.html: Added.\n* LayoutTests/http/tests/storageAccess/revoke-storage-access-deferred-until-failed-navigation.https-expected.txt: Added.\n* LayoutTests/http/tests/storageAccess/revoke-storage-access-deferred-until-slow-navigation.https-expected.txt: Added.\n* Source/WebCore/loader/NavigationRequester.cpp:\n(WebCore::shouldNavigationLoseFrameSpecificStorageAccess):\n    Helper which makes the policy decision on removing storage access\n    depending on if the navigation met the criteria from the Storage Access API\n* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:\n(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):\n    Populate new field in loadParameters to track if a navigation should\n    cause a frame to lose storage access.\n* LayoutTests/ipc/loadping-firstpartyforcookies-message-check.html:\n* LayoutTests/platform/ios-site-isolation/TestExpectations:\n* LayoutTests/platform/mac-site-isolation/TestExpectations:\n* Source/WebCore/loader/NavigationRequester.h:\n* Source/WebCore/platform/network/NetworkStorageSession.cpp:\n(WebCore::NetworkStorageSession::thirdPartyCookieBlockingDecisionForRequest const):\n* Source/WebCore/platform/network/NetworkStorageSession.h:\n* Source/WebKit/NetworkProcess/NetworkLoadParameters.h:\n* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:\n(WebKit::NetworkResourceLoadParameters::networkLoadParameters const):\n* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h:\n* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in:\n* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h:\n* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:\n(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):\n* Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.h:\n(WebKit::NetworkTaskCocoa::navigationLosesFrameSpecificStorageAccess const):\n* Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.mm:\n(WebKit::NetworkTaskCocoa::requestThirdPartyCookieBlockingDecision const):\n* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h:\n\nCanonical link: https://commits.webkit.org/317642@main",
      "email": "a_tarbinian@apple.com",
      "hash": "b02d6f0d8dbbb2b69e2a742d32e59beefbb371f4",
      "subject": "[Site Isolation] remove storage access on commit"
    },
    "317643@main": {
      "author": "Ryan Haddad",
      "avatar": "https://www.gravatar.com/avatar/b7d8cd2dec546cac2524e4b58181f9d5?d=identicon\u0026s=64",
      "cl": "317643@main",
      "clUrl": "https://commits.webkit.org/317643@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319642\nrdar://problem/182462879\n\nReviewed by Aakash Jain.\n\nThe GitHub remote and tracker printed the \"Is your API token out of date?\" refresh prompt\nafter any non-2xx response that carried authentication, such as a transient 5xx server error,\na 404 for a missing/non-existent request, or a 403/429 rate-limit response.\n\nCreate a new class that provides uses with a more accurate hint, surfacing rate-limiting,\ntransient server errors, or authentication issues depending on the response code.\n\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:\n(Tracker): Add SERVER_ERROR_PROMPT, RATE_LIMIT_PROMPT and the api_error_hint() classmethod.\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:\n(TestGitHub.test_api_error_hint): Add new test.\n(TestGitHub.test_api_error_hint.resp):\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:\nRoute create/update/_make_comment/review/request/graphql through api_error_hint(), drop the\nnow-redundant 422 guards.\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:\n(TestCheckout.test_no_pr_github): A 404 for a missing PR no longer asserts the refresh prompt,\nso update the test.\n\nCanonical link: https://commits.webkit.org/317643@main",
      "email": "ryanhaddad@apple.com",
      "hash": "ef92b431a492aa839a089bbb1bffff6cf7b3337f",
      "subject": "Don't tell users their API token is out of date on non-auth GitHub errors"
    },
    "317644@main": {
      "author": "Ryan Haddad",
      "avatar": "https://www.gravatar.com/avatar/b7d8cd2dec546cac2524e4b58181f9d5?d=identicon\u0026s=64",
      "cl": "317644@main",
      "clUrl": "https://commits.webkit.org/317644@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319847\nrdar://182469134\n\nReviewed by Aakash Jain.\n\nThe \"Gardening\" commit class matched any change whose files were all located in LayoutTests,\nso a PR that fixed test code would be classified as \"Gardening\", resulting in git-webkit\ncommenting as much in the associated bugzilla. Beyond potential confusion, it could also result\nin silently skipping bug assignment and reopening.\n\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/classify_unittest.py:\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:\n* metadata/commit_classes.json: Narrow the Gardening paths so a gardening change may only\ntouch test expectations and baseline/result files, never a test driver. A change that edits\nan actual test now falls through to the Tools class and is handled like any other pull request.\nPure skip and rebaseline changes continue to be classified as Gardening.\n\nCanonical link: https://commits.webkit.org/317644@main",
      "email": "ryanhaddad@apple.com",
      "hash": "b560bf8e54109b9e46d737bf1c4b0d90324f6401",
      "subject": "[webkitscmpy] Changes to tests shouldn't be considered \"Gardening\""
    },
    "317645@main": {
      "author": "Adrian Perez de Castro",
      "avatar": "https://www.gravatar.com/avatar/30ffea8cf404586741a8f5f7110c0914?d=identicon\u0026s=64",
      "cl": "317645@main",
      "clUrl": "https://commits.webkit.org/317645@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319888\n\nUnreviewed Skia update.\n\n% git log --pretty='%h %s' a6d4d199301da96b1d0c85968446d27222597be0..1717654ff51b534411f80c19c356f4aabb8d3721\n1717654ff5 Migrate SKGPU_LOG calls to SKIA_LOG\nfcfe5975c9 Use exclusive mutex in SkFontMgr_android_ndk.cpp\ne7bff78bf5 [graphite] BufferSubAllocator respects failed mapping on reset\n9cddcf3d21 Roll vulkan-deps from a8f28255baa4 to 000daaa61385 (1 revision)\n5493e4c144 Avoid underflow on division in loops\naaa004023a Update MSVC toolchain to 19.51.36244 and win_clang to 23.0\ndf142ba637 Manual roll Dawn from 485454223457 to ce586f1e2a62 (8 revisions)\n3f20d9676d Roll ANGLE from ac8b6d7128c3 to 9566f50cb827 (9 revisions)\n5a3e419299 Roll Skia Infra from aa960afe4aea to 5c22c771f011 (9 revisions)\n1ff238ca6e Roll SwiftShader from 9898204d91d6 to bea72feae3cf (4 revisions)\n52c2b02385 Roll Dawn from e99fddbdba43 to 485454223457 (5 revisions)\na38708fb79 Roll vulkan-deps from 4029144db7a0 to a8f28255baa4 (5 revisions)\n32acea7912 Roll recipe dependencies (trivial).\n413fad7a0d Add SkLog implementation to SkSLMinify\n56c41deecf Roll recipe dependencies (trivial).\nf1b8ba877c Restrict deserial types further in SkGlyph and SkCustomTypeface\ndae9ee6987 [bzl] Fix viewer build after Dawn roll\nbb889fb115 Reland \"Replace fatal logging with SK_ABORT macro\"\n92f9b68b3a Manual roll Dawn from 1d7fa20a24b3 to e99fddbdba43 (10 revisions)\n99de9d58dd [Fonts] Add non-PNG CBDT bitmap support to Fontations backend\n9da67e212e Remove serialization of drawables from SkCustomTypeface\nd218592d34 Roll vulkan-deps from a4c1d6546496 to 4029144db7a0 (2 revisions)\n57fd361c91 Revert \"Replace fatal logging with SK_ABORT macro\"\n5890b2d65e Manual roll Dawn from e0a2faceeb2a to 1d7fa20a24b3 (10 revisions)\nf71b8b88a7 Roll ANGLE from a793c75398c7 to ac8b6d7128c3 (13 revisions)\n98efa23b05 Roll Skia Infra from 07d34df64e49 to aa960afe4aea (13 revisions)\n326cbc3a48 Roll SwiftShader from f9d5d49a3c59 to 9898204d91d6 (1 revision)\nf8615e838a Roll Dawn from 092efa32cb27 to e0a2faceeb2a (3 revisions)\nfa944af10f Roll recipe dependencies (trivial).\nf9db774856 Roll vulkan-deps from ac2608cabd3a to a4c1d6546496 (3 revisions)\n5d8b32fae3 Roll recipe dependencies (trivial).\na0ce5ee64f Roll recipe dependencies (trivial).\ne6c23e38d3 [ganesh] Use submitted proc to confirm async reads were issued\nf704065e96 Add prerequisites for OOPR-specific variant of Android's libskia_renderengine\n4453a8598b Replace fatal logging with SK_ABORT macro\n1968ca2738 [graphite] enable pilot draws for depth only\nc8a4fe5e60 Roll recipe dependencies (trivial).\na692cbf389 Update Android OWNERS\n2e4a568f6f [graphite] Ref count large gradient shaders in FloatStorageManager\n5ecba665f5 [graphite] Drop excessively large gradient draws\n27a819894f [bzl] Update Dawn files list\n69c8afcf9e Manual roll Dawn from 3389b731386e to 092efa32cb27 (5 revisions)\nd526effe4b Roll vulkan-deps from 1b33de2b81e5 to ac2608cabd3a (1 revision)\nf1f8aabc45 Roll ANGLE from 3373eb28a246 to a793c75398c7 (5 revisions)\nc30f3b0f29 Roll Skia Infra from 794dba57f2c1 to 07d34df64e49 (5 revisions)\n0442274cc6 Roll Dawn from 9aa45f938d4b to 3389b731386e (16 revisions)\nbfab35b363 Roll vulkan-deps from 26c4192d920d to 1b33de2b81e5 (1 revision)\nf4f294bdf9 Roll recipe dependencies (trivial).\n9d1adb5f24 Roll ANGLE from 0aa38cb7368f to 3373eb28a246 (1 revision)\n4dd78179e6 Roll Skia Infra from 78a5d76ed76a to 794dba57f2c1 (14 revisions)\n665a65f28d Roll shaders-base from 33357ebae78c to 9f862803ee5b\n789112b20e Roll skottie-base from 4b069fbc5e1a to 867c02555f37\ne5420512ac Roll Dawn from 2389260fad26 to 9aa45f938d4b (23 revisions)\n1f26101197 Manual roll ANGLE from 9ce3268f4c4b to 0aa38cb7368f (10 revisions)\nbbe9ccc2bd Roll vulkan-deps from e7a561a5f0b7 to 26c4192d920d (1 revision)\n6fdb013d19 [ganesh] Fix direct mask filtering when fSupportBilerpFromGlyphAtlas is true\n1220fd63f1 Manual roll Dawn from 910f580897ff to 2389260fad26 (10 revisions)\n7a0df4c461 Add DEPS to use shared agents configs\n54388cb53d [pathbuilder] Bump inline points/verbs/conics storage size\n5e29790e70 Roll recipe dependencies (trivial).\ndae8778ca4 CanvasKit: Make Fast_SrcRectConstraint the default for DrawImage\naae9570518 Roll vulkan-deps from 3f8b7a9b4901 to e7a561a5f0b7 (3 revisions)\n004c6272f7 Roll ANGLE from 6a1ec69a8c59 to 9ce3268f4c4b (7 revisions)\n58ec79cb7b Roll Skia Infra from c174a0d57010 to 78a5d76ed76a (78 revisions)\n544395a5d9 [ganesh] Use \u0026 when testing for input attachment self-dep\n0e23ccd468 Roll vulkan-deps from 41728e9eef28 to 3f8b7a9b4901 (44 revisions)\nf7f5e8a95a Remove MSVC+Dawn from CQ\nbd3d88bbbc Clamp displacement values before offsetting sampling coordinates\n125526e0d3 Move generated parts of Android.bp to Android.gen.bp\n356185490a Disable fMSAAResolvesAutomatically for Nvidia\n7eed8eaafb [graphite] Further enforce time point deltas in timed test\n748a86f4f8 Roll skcms from a7a3b15f0635 to 6010f3583977 (1 revision)\na353502f42 Manual roll ANGLE from e51bf24dffcc to 6a1ec69a8c59 (5 revisions)\n9309dfcfac [rust icc] Harden ICC CLUT grid validation\n2ff2095097 Manual roll Dawn from c8ce3ce7a39f to 910f580897ff (8 revisions)\nf71b040b55 Manual roll Dawn from 3a8f53cbdac5 to c8ce3ce7a39f (11 revisions)\nc76f71cd4a Manual roll ANGLE from 799ce5794481 to e51bf24dffcc (7 revisions)\n1ee3563555 [graphite] ignore crbug_513836996 on protected contexts\n898340583f Fix internal build\n7f0b622d95 Fix Dawn Bazel build\na5be47106a Roll recipe dependencies (trivial).\ndefc3a5a92 Report and handle failure for inlineUpload(...) calls\n9938acab39 Revert \"[skia] Replace sk_malloc_usable_size with preemptive sk_malloc_good_size\"\n3a46000222 [ganesh] Add GrUniquelyKeyedProxyRegistry to simplify unique key management\n494789feb7 [skia] Replace sk_malloc_usable_size with preemptive sk_malloc_good_size\n85b76633d5 [graphite] Add missing nullptr check assembleFunctionCall\n9e0f42d0ad [graphite] Fix test cases ported from clipping\n43f969a9bc [ganesh] Require glyph padding to use linear sampling\nd46b9b7ef1 Manual roll Dawn from a4511bd8cfb9 to 3a8f53cbdac5 (49 revisions)\n17b4bab488 [graphite] correctly advance index in drawEdgeAAImageSet\n7ec8fa468a Manual roll ANGLE from 6f2c0162c12f to 799ce5794481 (9 revisions)\n5f4f454b96 Fix for integer wraparound in sksl\n9a772306b2 Revert \"Reland #3 \"MiraclePtr: Add raw_ptr definitions\"\"\nd45969a575 Reland #3 \"MiraclePtr: Add raw_ptr definitions\"\nb9b87505e3 Roll recipe dependencies (trivial).\n19ad9707e5 Roll recipe dependencies (trivial).\n15ae3e3e7a Manual roll ANGLE from aa0d838ac95b to 6f2c0162c12f (6 revisions)\nba800574a9 Replace use of SkTDArray in PathWriter\n7c9ffcb347 Avoid overflow and timeout in SkPathWriter::assemble\n9283514e1a Roll recipe dependencies (trivial).\n3431f6ad0e Fix Dawn+Clang+GN build\nc7d5748715 Add performance enhancements for SkRegion::op\n8b96fad679 Manual roll ANGLE from 82be364307a4 to aa0d838ac95b (6 revisions)\nabf56b5562 deps: Update partition_alloc\n3471ebf5af Null out VkShaderModule handles when destroying them.\nd93793dfc1 [graphite] ensure drawlist resources are cleared on failure\n83407f4702 Add deprecated notice to SkTDArray\n24ff2fc3a3 Simplify linked list removal in SkOpCoincidence\n210555e2e6 infra: Disable partition_alloc on NoDEPS bots\nf1b406860c Roll jsfiddle-base from 508fbad5adbd to e97ab14ddb65\n935afe5232 Roll debugger-app-base from 518c0106b064 to c74d26054770\n967ddb1aa5 Roll recipe dependencies (trivial).\n33b70be027 Fix pathops bug with linked lists in SkOpCoincidence\n37ec3f5610 Roll recipe dependencies (trivial).\n5342cac599 Roll recipe dependencies (trivial).\ncebf49d034 Roll recipe dependencies (trivial).\n8ba11bcc74 Roll recipe dependencies (trivial).\n8393300c28 Roll recipe dependencies (trivial).\nea61091740 [pdf] Filter out empty contours in EmitPath\n27aaf3d192 Remove dawn from CQ\n2711a2eb95 Manual roll ANGLE from 2313796554ff to 82be364307a4 (13 revisions)\n871578a722 Updating gardening docs\nb62fcabf5e Roll recipe dependencies (trivial).\n5efed56680 Manually Roll Dawn from 294c85cfb313 to a4511bd8cfb9 (97 revisions)\n4de5274363 Roll recipe dependencies (trivial).\nc9f57f09f0 Roll ANGLE from bea70939cf37 to 2313796554ff (13 revisions)\n0c7172dc3b Roll Skia Infra from 7a0c66624686 to c174a0d57010 (12 revisions)\na6b6608751 [graphite] Add Sparse Strips Clipping\nd1b4412c2d [pdf] Remove zombie state machine\n325aa92729 Add spanned version of SkRegion APIs\n0aa8826c12 Update SkRegion::setRects to use divide-and-conquer\n55ed8c4db1 Guard against racing initialization of dng_sdk\n0ad3b31652 Roll recipe dependencies (trivial).\n0f4027ff43 [graphite] Cache single-buffer BindGroups on DawnBuffer\n077b40f0df [graphite] Pull tile test cases into a shared header\n2528746b4c Fix SIMD on x86\n2d9bf58824 Extract Dawn's list of files to dawn_files.bzl\n0d5f4adeae Revert \"Reland #2 \"MiraclePtr: Add raw_ptr definitions\"\"\"\nc7fe8e6b02 Roll vulkan-deps from df04fe18c28e to 41728e9eef28 (2 revisions)\n6afe3c43a8 Roll ANGLE from 52d177bd7e42 to bea70939cf37 (12 revisions)\n24645ad9f9 Roll Skia Infra from 472ab5b3c3b9 to 7a0c66624686 (17 revisions)\n0c2a8a779c Roll debugger-app-base from 18d4e53a226a to 518c0106b064\n202cb5a63a Roll jsfiddle-base from 5bae7afba87d to 508fbad5adbd\n3b718ddc8a Roll vulkan-deps from 1b6c53ba0f23 to df04fe18c28e (6 revisions)\ne2444d1965 [graphite] Track precompile paint key opacity\n081803650b Add helper to do bulk extraction/analysis of SkRP stages\n1403247dd6 [graphite] Move depthOnly off template parameter\n76a371627c [ganesh] Fallback to external GL textures if import fails\neb4f33fe2b [ganesh] Avoid overflow when combining AtlasTextOps\n31220f5ef0 Reland #2 \"MiraclePtr: Add raw_ptr definitions\"\"\n3c7ff4890a Fix compiler warnings from latest Clang\nb3b9a46f6e Fix Bazel Viewer build\n27f7bba226 [Fonts] Add CBDT alpha bitmap test font generation\n8611fc3c56 Roll vulkan-deps from 1380a5152f43 to 1b6c53ba0f23 (8 revisions)\n5e7066dbaa Roll ANGLE from 4a6d53434044 to 52d177bd7e42 (10 revisions)\n56ca5896c0 Roll Skia Infra from 4bf523d4b47c to 472ab5b3c3b9 (15 revisions)\n6385958d2f Roll recipe dependencies (trivial).\nda8a27fbdc [graphite] Cache single-texture BindGroups on DawnTexture\nd4e23f36a0 Fix overflow in FT bounding boxes\n2840dab3ee [graphite] Add generalized createBindGroup(...) to DawnResourceProvider\n9d738e0f97 Force SkPictureBackedGlyphDrawable::MakeFromBuffer to never use sksl\nfceaf4cd95 Use more standard AVX512 and AVX2 flags\n\nCanonical link: https://commits.webkit.org/317645@main",
      "email": "aperez@igalia.com",
      "hash": "6318545fa6719d96a61bec8b20b9707a6aaa0e55",
      "subject": "Update Skia to 2026-05-28 (1717654ff51b534411f80c19c356f4aabb8d3721)"
    },
    "317646@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "317646@main",
      "clUrl": "https://commits.webkit.org/317646@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319902\nrdar://182827896\n\nReviewed by Abrar Rahman Protyasha.\n\nWebCore export URLPattern functions after 317625@main which\ncauses build failures for CMake.\n\n* Source/WebCore/Modules/url-pattern/URLPattern.h:\n\nCanonical link: https://commits.webkit.org/317646@main",
      "email": "ccarley2@apple.com",
      "hash": "98d1d9a4c46dc7395341e319a56c928aaf81b061",
      "subject": "[CMake] WebCore export URLPattern functions after 317625@main"
    },
    "317647@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "317647@main",
      "clUrl": "https://commits.webkit.org/317647@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=293152\nrdar://151488850\n\nReviewed by Sam Sneddon.\n\nIf a PR claims to be \"Un-reviewed\" (with no dash) or \"Version-ing\"\n(with no dash) but includes a \"Reviewed-by\" line, warn the user and\nprompt to automatically remove the \"Reviewed-by\" line in the case of a\nsingle commit or manually fix it in the case of multiple commits.\n\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:\n(PullRequest.create_pull_request):\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:\n\nCanonical link: https://commits.webkit.org/317647@main",
      "email": "issacroy05@gmail.com",
      "hash": "fddb5a3c6e47dc89ee2025089f5fe47dc030d733",
      "subject": "[git-webkit] `git-webkit pr` should warn before posting an un-reviewed PR with a \"Reviewed-by\" line"
    },
    "317648@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "317648@main",
      "clUrl": "https://commits.webkit.org/317648@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319854\nrdar://182539064\n\nUnreviewed. Xcconfig type caused the rpath setting to apply to *all*\nbuilds, not just builds for downlevel updates.\n\n* Source/WebKit/Configurations/WebKit.xcconfig:\n\nCanonical link: https://commits.webkit.org/317648@main",
      "email": "emw@apple.com",
      "hash": "19a09746f2d5e316b6fefd1370663d0b93971a83",
      "subject": "Build fix for \"[Swift] Compatibility library not loadable for some non-Safari clients\""
    },
    "317649@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "317649@main",
      "clUrl": "https://commits.webkit.org/317649@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=104442\nrdar://182801442\n\nReviewed by Simon Fraser.\n\nclip-path on an SVG element now resolves a \u003cclipPath\u003e referenced by an\nexternal file or a data: URL.\n\nclip-path on HTML elements goes through a separate path and is a follow-up.\n\nTests: imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-data-uri-svg-element.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-external-svg-element.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-data-uri-svg-element-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-data-uri-svg-element.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-external-svg-element-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-external-svg-element.html: Added.\n* Source/WebCore/rendering/svg/legacy/SVGResources.cpp:\n(WebCore::SVGResources::buildCachedResources):\n* Source/WebCore/style/StylePendingResources.cpp:\n(WebCore::Style::loadPendingExternalSVGClipPath):\n(WebCore::Style::loadPendingResources):\n\nCanonical link: https://commits.webkit.org/317649@main",
      "email": "taher_ali@apple.com",
      "hash": "89f1efca5390b62f704bbf23fffce8e4188fd4a3",
      "subject": "Support external and data: URL clip-path references on SVG elements"
    },
    "317650@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "317650@main",
      "clUrl": "https://commits.webkit.org/317650@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319873\nrdar://181985077\n\nReviewed by Abrar Rahman Protyasha.\n\nBlur the element when other content is clicked.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/BasicAppKitGesturesTests.swift\n\n* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:\n(WebKit::WebPage::commitPotentialTap):\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/BasicAppKitGesturesTests.swift:\n\nCanonical link: https://commits.webkit.org/317650@main",
      "email": "richard_robinson2@apple.com",
      "hash": "62a1c5ccb054dfd651e92e93ec8a5cad7d6c6d49",
      "subject": "[AppKit Gestures] \u003cdatalist\u003e dropdown menu does not dismiss when other content on page is clicked"
    },
    "317651@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "317651@main",
      "clUrl": "https://commits.webkit.org/317651@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319882\nrdar://182787662\n\nReviewed by Sammy Gill.\n\nThe Debug iOS-simulator build failed to link WebCore.framework with\nundefined JSC symbols (StructureRareData::clearPreviousID,\nJSObject::putDirectInternal) referenced from the WebCoreJSBindings PCH\nobject. These are inline functions whose definitions the Release build\ninlines away, but Debug emits external references to. Include their\ndefining inline headers in the bindings prefix header.\n\n* Source/WebCore/WebCoreJSBindingsPrefix.h:\n\nCanonical link: https://commits.webkit.org/317651@main",
      "email": "zakr@apple.com",
      "hash": "64792588bd112fa0fd31c8533e59d2447e4bbbbc",
      "subject": "[CMake] Fix the iOS simulator debug build"
    },
    "317652@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "317652@main",
      "clUrl": "https://commits.webkit.org/317652@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319798\nrdar://182681003\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/317652@main",
      "email": "jespinal23@apple.com",
      "hash": "dae912cf6dde2b78ec6cbf96415caa3bbd19f5fc",
      "subject": "[GARDENING][macOS arm64] imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html is a flaky text failure."
    },
    "317653@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "317653@main",
      "clUrl": "https://commits.webkit.org/317653@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319346\n\u003crdar://182160152\u003e\n\nReviewed by Sammy Gill.\n\nGFC currently supports borders. Border tests were written to\npass our avoidance checks to properly verify that GFC was handling\nborders as expected.\n\nUsage of GFC can be verified with:\n\nnotifyutil -p com.apple.WebKit.showLegacyGridReasons\n\n* LayoutTests/fast/css-grid-layout/grid-2x2-items-with-borders-expected.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-2x2-items-with-borders.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-border-track-sizing-expected.html: Added.\n* LayoutTests/fast/css-grid-layout/grid-item-with-border-track-sizing.html: Added.\n* Source/WebCore/layout/integration/grid/LayoutIntegrationGridCoverage.cpp:\n(WebCore::LayoutIntegration::gridLayoutAvoidanceReason):\n(WebCore::LayoutIntegration::printReason):\n\nCanonical link: https://commits.webkit.org/317653@main",
      "email": "yulun_wu@apple.com",
      "hash": "e26ee87d8e4429ef495ae0f1eb2e66648e0c6c86",
      "subject": "[GFC] remove borders from avoidance reasons"
    },
    "317654@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "317654@main",
      "clUrl": "https://commits.webkit.org/317654@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=313346\nrdar://175621535\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/317654@main",
      "email": "jespinal23@apple.com",
      "hash": "f7318b8238e649c2223ad002fc613385d4afb3e3",
      "subject": "[GARDENING] imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-audio-jitterBufferTarget-stats.https.html is a flaky text failure"
    },
    "317655@main": {
      "author": "Vassili Bykov",
      "avatar": "https://www.gravatar.com/avatar/73ac31c69ff9a621b733e47253103b8a?d=identicon\u0026s=64",
      "cl": "317655@main",
      "clUrl": "https://commits.webkit.org/317655@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318125\nrdar://180950753\n\nReviewed by Keith Miller.\n\nInline cache code is usually generated so the guard falls through into the fast case and\nthe fast case falls through into the continuation code. This keeps the common path lined\nup in the icache, and the slow case is separate to not dilute it.\n\nData ICs currently don't follow this layout, and the fast and the slow branches are\ninterleaved. This patch changes the layout so that the fast path is a fall-through.\n\nCovered by existing tests.\n\nCanonical link: https://commits.webkit.org/317655@main",
      "email": "v_bykov@apple.com",
      "hash": "ca74e529b927042f3bbdbc9aef0050bd8061e6f9",
      "subject": "[JSC] Generate Data IC code as fall-through"
    },
    "317656@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "317656@main",
      "clUrl": "https://commits.webkit.org/317656@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=256299\nrdar://109191868\n\nReviewed by Ryosuke Niwa.\n\nAdd Document::isFullyActiveAndHasUserAttention(), implementing the HTML concept \"fully\nactive descendant of a top-level traversable with user attention\"\n(https://html.spec.whatwg.org/multipage/interaction.html#fully-active-descendant-of-a-top-level-traversable-with-user-attention):\nthe document is fully active, its top-level traversable is system-visible, and the window\nhas system focus.\n\nAdopt it in Digital Credentials get(), which previously used Document::hasFocus().\nhasFocus() additionally requires the focused frame to be within the calling frame's\nsubtree, which is stricter than the concept, so a same-origin or permitted cross-origin\nchild frame in a focused window was rejected as \"not focused\" even though its top-level\ntraversable had system focus. The Digital Credentials specification requires exactly this\n\"user attention\" concept, so the change aligns the implementation with the specification.\n\nUpdate the hidden-document test's asserted rejection message to the unified message; the\nby-default 'self' get() subtest in default-permissions-policy.https.sub.html now passes\nbecause get() reaches the permissions-policy check instead of being rejected for focus;\nand update the platform/ios get.https baseline, whose same-origin iframe focus subtest now\npasses. The same-origin subtests of allow-attribute-with-get.https also now pass, so its\nplatform/ipad baseline is updated; the test is marked [ Pass Failure ] on iOS because the\ntest environment's window focus is racy there.\n\n* LayoutTests/http/wpt/identity/identitycredentialscontainer-get-hidden.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/digital-credentials/default-permissions-policy.https.sub-expected.txt:\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/ios/imported/w3c/web-platform-tests/digital-credentials/get.https-expected.txt:\n* LayoutTests/platform/ipad/imported/w3c/web-platform-tests/digital-credentials/allow-attribute-with-get.https-expected.txt:\n* Source/WebCore/Modules/identity/DigitalCredential.cpp:\n(WebCore::DigitalCredential::discoverFromExternalSource):\n* Source/WebCore/dom/Document.cpp:\n(WebCore::Document::isFullyActiveAndHasUserAttention const):\n* Source/WebCore/dom/Document.h:\n\nCanonical link: https://commits.webkit.org/317656@main",
      "email": "marcosc@apple.com",
      "hash": "b718bc1deb5157a6597ddc2f2d7ec8de71793652",
      "subject": "Implement \"fully active descendant of a top-level traversable with user attention\""
    },
    "317657@main": {
      "author": "Aakash Jain",
      "avatar": "https://www.gravatar.com/avatar/e82e0cafeeac3a35b7e74206ebe4c536?d=identicon\u0026s=64",
      "cl": "317657@main",
      "clUrl": "https://commits.webkit.org/317657@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318816\nrdar://problem/181634454\n\nReviewed by Ryan Haddad.\n\nA pre-existing flaky API test can fail with the change and then pass on the clean-tree run\n(because it is flaky), which made AnalyzeAPITestsResults report it as a new failure and blame\nthe PR author. Use the results-db-filtered failure lists, which already have pre-existing\nfailures removed, so such a test is never counted as new. This relies on those lists being\ncomplete, so we no longer stop the results-db lookup at the first non-pre-existing failure.\n\n* Tools/CISupport/ews-build/steps.py:\n(RunAPITests.filter_api_test_failures_using_results_db):\n(AnalyzeAPITestsResults.run):\n* Tools/CISupport/ews-build/steps_unittest.py:\n(TestAnalyzeAPITestsResults):\n(TestFilterAPITestFailuresUsingResultsDB):\n\nCanonical link: https://commits.webkit.org/317657@main",
      "email": "aakash_jain@apple.com",
      "hash": "60edc560c7b85a4b258d6ed501459fef5eddcbaa",
      "subject": "[EWS] Don't blame PR author for pre-existing flaky API test failures"
    },
    "317658@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "317658@main",
      "clUrl": "https://commits.webkit.org/317658@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319872\nrdar://182776366\n\nReviewed by Yijia Huang.\n\nThis patch adds JIT support to BigInt64 / BigUInt64 allocations.\nWe allocate JSBigInt and appropriately configure the content and flags.\n\n    data-view-bigint64-byte-swap       32.2400+-0.2569     ^     21.1113+-0.2250        ^ definitely 1.5271x faster\n    data-view-get-bigint64             53.3261+-0.4363     ^     32.5152+-0.1362        ^ definitely 1.6400x faster\n\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:\n(JSC::DFG::SpeculativeJIT::compile):\n* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:\n(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):\n* Source/JavaScriptCore/jit/AssemblyHelpers.h:\n(JSC::AssemblyHelpers::emitAllocateJSBigInt64):\n\nCanonical link: https://commits.webkit.org/317658@main",
      "email": "ysuzuki@apple.com",
      "hash": "e0c2f4d3e0b37ad876502a0af22773e222cda0ab",
      "subject": "[JSC] Add JIT support for BigInt64 / BigUInt64 allocation"
    }
  },
  "date": "2026-07-21",
  "days": 1,
  "generatedAt": "2026-07-21T22:06:22Z",
  "markdown": "## Highlights\n- **Rendering** WebKit unified Flexbox onto a single render-tree-driven formatting context, cutting duplicate layout paths and setting up cleaner future fixes. [commit 317593@main](https://commits.webkit.org/317593@main)\n- **Security** JavaScriptCore fixed a DFG Object.defineProperty descriptor-cell confusion bug that could dereference an invalid cell in JIT code. [commit 317601@main](https://commits.webkit.org/317601@main)\n- **Web Platform** SVG gained external and data: URL support for both clip-path and marker references, closing long-standing gaps in referenced graphics resources. [commit 317649@main](https://commits.webkit.org/317649@main) [commit 317614@main](https://commits.webkit.org/317614@main)\n- **Media** MSE now keeps playable media across bridgeable gaps during playback, reducing avoidable eviction and making streaming more resilient. [commit 317602@main](https://commits.webkit.org/317602@main)\n- **Web Platform** WebAssembly moved forward on multiple fronts with multimemory enabled behind a flag and Table64 support landing in parsing and the IPInt tier. [commit 317636@main](https://commits.webkit.org/317636@main) [commit 317590@main](https://commits.webkit.org/317590@main)\n- **Security** Site Isolation removed storage access on commit and fixed an early RemotePageProxy lifetime regression, tightening process-boundary behavior. [commit 317642@main](https://commits.webkit.org/317642@main) [commit 317598@main](https://commits.webkit.org/317598@main)\n- **Perf** JavaScriptCore added JIT support for BigInt64 and BigUInt64 allocation and tuned several JIT fast paths and cooperative-driving paths. [commit 317658@main](https://commits.webkit.org/317658@main) [commit 317655@main](https://commits.webkit.org/317655@main) [commit 317591@main](https://commits.webkit.org/317591@main)\n- **UI** Selection painting now uses a separate overlay instead of merging with other highlight backgrounds, a notable rendering-model change for visual correctness. [commit 317580@main](https://commits.webkit.org/317580@main)\n- **Mobile** WebKit landed an iOS 27 mitigation for hangs around text entry context invalidation in WKContentView. [commit 317603@main](https://commits.webkit.org/317603@main)\n- **Web Platform** Several CSS features flipped to stable, including wrap-inside, white-space-trim, text-decoration inset, and marker content. [commit 317574@main](https://commits.webkit.org/317574@main) [commit 317573@main](https://commits.webkit.org/317573@main) [commit 317571@main](https://commits.webkit.org/317571@main) [commit 317570@main](https://commits.webkit.org/317570@main)\n\n## What landed by area\n\n### JavaScriptCore and Wasm\n- **Perf** JavaScriptCore added JIT support for BigInt64 and BigUInt64 allocation, improving low-level BigInt object creation paths. [commit 317658@main](https://commits.webkit.org/317658@main)\n- **Perf** Data IC code generation now falls through instead of branching, a small but meaningful JIT streamlining. [commit 317655@main](https://commits.webkit.org/317655@main)\n- **Security** DFG fixed descriptor-cell confusion in Object.defineProperty that could lead to invalid cell dereference in JIT code. [commit 317601@main](https://commits.webkit.org/317601@main)\n- **Perf** ARM64 min and max specialized thunks are now wired into intrinsic thunk selection. [commit 317568@main](https://commits.webkit.org/317568@main)\n- **Perf** prepareForTailCallSlow now uses moveConditionally32, tightening a JIT slow-path codegen detail. [commit 317591@main](https://commits.webkit.org/317591@main)\n- **Perf** Top-level await modules now use cooperative driving, reducing scheduling overhead in module execution. [commit 317629@main](https://commits.webkit.org/317629@main)\n- **Perf** Async generator cooperative driving now reuses a cached iterator result object. [commit 317587@main](https://commits.webkit.org/317587@main)\n- **V8** Intl.DateTimeFormat caching landed, reducing repeated formatter setup cost in JS workloads. [commit 317628@main](https://commits.webkit.org/317628@main)\n- **Web Platform** Temporal fixed fixed-solar non-ISO calendar arithmetic. [commit 317627@main](https://commits.webkit.org/317627@main)\n- **Web Platform** Iterator.prototype.includes now correctly propagates thrown errors through IteratorClose when matching the target value. [commit 317622@main](https://commits.webkit.org/317622@main)\n- **Web Platform** WebAssembly multimemory was enabled behind a feature flag. [commit 317636@main](https://commits.webkit.org/317636@main)\n- **Web Platform** Table64 support landed in the Wasm parser and IPInt tier. [commit 317590@main](https://commits.webkit.org/317590@main)\n- **Web Platform** Wasm memory32 data segment offsets are now zero-extended correctly. [commit 317633@main](https://commits.webkit.org/317633@main)\n- **Build** Memory64 spec tests were removed after earlier work made them obsolete. [commit 317572@main](https://commits.webkit.org/317572@main)\n\n### CSS, Layout, and Rendering\n- **Rendering** Grid formatting context now supports fixed-length padding on grid items. [commit 317597@main](https://commits.webkit.org/317597@main)\n- **Rendering** Grid formatting context now bails out when a grid item uses box-sizing: border-box, avoiding incorrect optimized layout. [commit 317585@main](https://commits.webkit.org/317585@main)\n- **Rendering** Grid formatting context UI cleanup removed borders from avoidance reasons. [commit 317653@main](https://commits.webkit.org/317653@main)\n- **Rendering** Flexbox now runs through a single render-tree-driven formatting context instead of two codepaths. [commit 317593@main](https://commits.webkit.org/317593@main)\n- **Rendering** Partial inline layout damage repair no longer risks unsigned underflow while adjusting cached box indexes. [commit 317613@main](https://commits.webkit.org/317613@main)\n- **Rendering** Empty-grid gutter size calculation no longer risks size_t underflow. [commit 317576@main](https://commits.webkit.org/317576@main)\n- **Rendering** Selection background painting moved to a separate overlay for cleaner highlight compositing. [commit 317580@main](https://commits.webkit.org/317580@main)\n- **UI** The default inline model appearance was updated. [commit 317581@main](https://commits.webkit.org/317581@main)\n- **Web Platform** animation-range properties now use unzoomed lengths during evaluation-time zoom handling. [commit 317640@main](https://commits.webkit.org/317640@main)\n- **Web Platform** @container condition serialization was fixed for css-conditional-5. [commit 317635@main](https://commits.webkit.org/317635@main)\n- **Web Platform** baseline-source gained initial parsing support. [commit 317634@main](https://commits.webkit.org/317634@main)\n- **Web Platform** ruby-overhang now implements the spaces value. [commit 317569@main](https://commits.webkit.org/317569@main)\n- **Web Platform** wrap-inside was marked stable. [commit 317574@main](https://commits.webkit.org/317574@main)\n- **Web Platform** white-space-trim was marked stable. [commit 317573@main](https://commits.webkit.org/317573@main)\n- **Web Platform** text-decoration inset was marked stable. [commit 317571@main](https://commits.webkit.org/317571@main)\n- **Web Platform** marker content was marked stable. [commit 317570@main](https://commits.webkit.org/317570@main)\n- **Web Platform** corner-shape picked up new squircle test coverage. [commit 317630@main](https://commits.webkit.org/317630@main)\n- **Refactor** Layout integration code got identifier typo cleanup in inline and integration paths. [commit 317618@main](https://commits.webkit.org/317618@main)\n\n### Media, Graphics, and SVG\n- **Media** HLS live playback no longer fires the wrong ended event when playbackRate is involved. [commit 317626@main](https://commits.webkit.org/317626@main)\n- **Media** MSE eviction now preserves data across gaps small enough to bridge during playback. [commit 317602@main](https://commits.webkit.org/317602@main)\n- **Media** WebM CodecDelay is now honored on macOS, iOS, and Windows. [commit 317579@main](https://commits.webkit.org/317579@main)\n- **Web Platform** Picture-in-Picture WPT coverage was broadly enabled. [commit 317631@main](https://commits.webkit.org/317631@main)\n- **Rendering** SVG elements now support external and data: URL clip-path references. [commit 317649@main](https://commits.webkit.org/317649@main)\n- **Rendering** SVG elements now support external and data: URL marker references. [commit 317614@main](https://commits.webkit.org/317614@main)\n- **GPU** GTK and WPE fixed ShareableBitmap painting so CompositeOperator::Copy is no longer ignored under Skia. [commit 317608@main](https://commits.webkit.org/317608@main)\n- **Media** ShareableGainMap no longer passes a null value into a CF dictionary that expects value callbacks. [commit 317596@main](https://commits.webkit.org/317596@main)\n- **Refactor** ModelPlayer dropped an unused Color.h include. [commit 317637@main](https://commits.webkit.org/317637@main)\n\n### Networking, Storage, and Security\n- **Security** Site Isolation removed storage access on commit. [commit 317642@main](https://commits.webkit.org/317642@main)\n- **Security** A Site Isolation regression was fixed where RemotePageProxy could be referenced before adoptRef during construction. [commit 317598@main](https://commits.webkit.org/317598@main)\n- **Security** Sandbox profiles now allow *at syscall counterparts where needed. [commit 317594@main](https://commits.webkit.org/317594@main)\n- **Networking** Random page crashes from invalid IPC message WebResourceLoader_WillSendRequestReply were fixed. [commit 317582@main](https://commits.webkit.org/317582@main)\n- **Networking** SharedPreferencesForWebProcess no longer races when read from the RemoteRenderingBackend work queue. [commit 317588@main](https://commits.webkit.org/317588@main)\n- **Web Platform** URLPattern matching no longer requires ScriptExecutionContext. [commit 317625@main](https://commits.webkit.org/317625@main)\n- **Build** URLPattern function exports were fixed in WebCore after earlier changes. [commit 317646@main](https://commits.webkit.org/317646@main)\n- **Web Platform** WebTransport sendOrder and WebTransportSendStreamOptions were made non-nullable to match spec. [commit 317583@main](https://commits.webkit.org/317583@main)\n- **Web Platform** WebTransportDatagramDuplexStream incomingHighWaterMark and outgoingHighWaterMark were renamed. [commit 317578@main](https://commits.webkit.org/317578@main)\n- **Web Platform** WebTransportOptions.datagramsReadableMode was renamed to datagramsReadableType. [commit 317577@main](https://commits.webkit.org/317577@main)\n- **Privacy** OpenID4VP presentation protocols landed behind an off-by-default flag. [commit 317599@main](https://commits.webkit.org/317599@main)\n- **Privacy** Digital Credentials get() now skips unsupported protocol requests before serializing their data. [commit 317592@main](https://commits.webkit.org/317592@main)\n- **Web Platform** IndexedDB fixed a bug where a put() failing a unique index constraint could delete the overwritten record. [commit 317632@main](https://commits.webkit.org/317632@main)\n- **Web Platform** The \"fully active descendant of a top-level traversable with user attention\" behavior was implemented. [commit 317656@main](https://commits.webkit.org/317656@main)\n\n### UI, AppKit, Inspector, and Text\n- **UI** datalist dropdown menus now dismiss correctly when users click elsewhere on the page. [commit 317650@main](https://commits.webkit.org/317650@main)\n- **UI** AppKit gesture coverage expanded with dblclick and smart magnification tests. [commit 317607@main](https://commits.webkit.org/317607@main)\n- **DevTools** URL breakpoints no longer recompile their search pattern on every network request. [commit 317623@main](https://commits.webkit.org/317623@main)\n- **DevTools** Console.setLoggingChannelLevel is no longer exposed for Worker targets. [commit 317600@main](https://commits.webkit.org/317600@main)\n- **UI** WKWebView._takeSnapshotOfNode() now supports ImageData and OffscreenCanvas. [commit 317621@main](https://commits.webkit.org/317621@main)\n- **UI** Text Extraction gained an option to include tag names for blocks with inline children. [commit 317575@main](https://commits.webkit.org/317575@main)\n- **Mobile** iOS 27 got a mitigation for increased hangs in _internalInvalidateTextEntryContext. [commit 317603@main](https://commits.webkit.org/317603@main)\n- **A11y** GTK and WPE added a dark style for the webkit://gpu page, improving usability in dark environments. [commit 317610@main](https://commits.webkit.org/317610@main)\n\n### Platform, Build, and Tooling\n- **Build** CMake fixed the iOS simulator debug build. [commit 317651@main](https://commits.webkit.org/317651@main)\n- **Build** CMake fixed the iOS simulator release build. [commit 317605@main](https://commits.webkit.org/317605@main)\n- **Build** CMake removed LayoutIntegrationFlexLayout.h from the removed-header list. [commit 317606@main](https://commits.webkit.org/317606@main)\n- **Build** A PAS_ENABLE_MTE regression that broke preprocessed distributed builds was fixed. [commit 317638@main](https://commits.webkit.org/317638@main)\n- **Build** A Swift compatibility-library loading issue for some non-Safari clients was fixed. [commit 317586@main](https://commits.webkit.org/317586@main)\n- **Build** A follow-up build fix landed for the Swift compatibility-library loading issue. [commit 317648@main](https://commits.webkit.org/317648@main)\n- **GPU** Skia was updated to the 2026-05-28 roll. [commit 317645@main](https://commits.webkit.org/317645@main)\n- **Build** Linux now detects the main thread reliably and ensures its id is always 1. [commit 317619@main](https://commits.webkit.org/317619@main)\n- **Build** GTK and WPE reorganized API test directories. [commit 317611@main](https://commits.webkit.org/317611@main)\n- **Refactor** GlyphBuffer::fontAt() callers now consistently use Ref for non-null results. [commit 317589@main](https://commits.webkit.org/317589@main)\n- **Refactor** WTF::HashTable dropped dead weak-bucket cleanup code. [commit 317595@main](https://commits.webkit.org/317595@main)\n- **Refactor** Vector::reverse() now uses std::ranges::reverse() instead of at(). [commit 317612@main](https://commits.webkit.org/317612@main)\n- **Security** libpas added IsoHeapChaosTests coverage for zeroed and large allocations. [commit 317624@main](https://commits.webkit.org/317624@main)\n\n### Tests, EWS, and WPT infrastructure\n- **Build** EWS stopped blaming PR authors for pre-existing flaky API test failures. [commit 317657@main](https://commits.webkit.org/317657@main)\n- **Build** EWS refactored AnalyzeAPITestsResults to read build properties the same way layout tests do. [commit 317641@main](https://commits.webkit.org/317641@main)\n- **Build** run-webkit-tests can now optionally consult the results database to identify pre-existing failures when running at desk. [commit 317639@main](https://commits.webkit.org/317639@main)\n- **Build** git-webkit pr now warns before posting an unreviewed PR that already contains a Reviewed-by line. [commit 317647@main](https://commits.webkit.org/317647@main)\n- **Build** git cleanup in EWS was improved. [commit 317584@main](https://commits.webkit.org/317584@main)\n- **Build** webkitscmpy no longer treats test-only changes as \"Gardening\". [commit 317644@main](https://commits.webkit.org/317644@main)\n- **Build** Non-auth GitHub errors no longer incorrectly tell users their API token is out of date. [commit 317643@main](https://commits.webkit.org/317643@main)\n- **Web Platform** WPT webmessaging tests were re-imported. [commit 317616@main](https://commits.webkit.org/317616@main)\n- **Build** The WPT linter now catches WEB_FEATURES.yml references to files that were never imported. [commit 317617@main](https://commits.webkit.org/317617@main)\n- **Media** A flaky macOS arm64 media-source seek-beyond-duration WPT was marked and tracked. [commit 317652@main](https://commits.webkit.org/317652@main)\n- **Media** A flaky webrtc jitterBufferTarget stats WPT was marked and tracked. [commit 317654@main](https://commits.webkit.org/317654@main)\n- **Media** A webrtc videoDetectorTest failure was traced to an unattached video element not autoplaying. [commit 317609@main](https://commits.webkit.org/317609@main)\n- **Media** WPE tracked a timeout in hidden-page timer throttling coverage. [commit 317615@main](https://commits.webkit.org/317615@main)\n- **GPU** ANGLE test suite skips were added for currently failing or crashing tests. [commit 317604@main](https://commits.webkit.org/317604@main)\n\n## Reverts \u0026 Reapplies\n\nNo reverts or reapplies in this window.",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [],
  "since": "2026-07-21",
  "totals": {
    "commits": 91,
    "features": 91,
    "rolls": 0
  },
  "until": "2026-07-21"
}