)]}'
{
  "log": [
    {
      "commit": "277d2ce821df887cc41a68973cf0e31f9ee57a49",
      "tree": "f731cf6e6af992c165aa8ee01732f8a466a2d409",
      "parents": [
        "27926b837c7b4edd9daf8f9f85f1bcb07886eb03"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 18:57:15 2026"
      },
      "committer": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 18:57:15 2026"
      },
      "message": "[GStreamer] Gardening\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312174\n\nUnreviewed, fix test expectations un-reported by EWS before landing 311098@main.\n\n* LayoutTests/platform/glib/TestExpectations:\n\nCanonical link: https://commits.webkit.org/311128@main\n"
    },
    {
      "commit": "27926b837c7b4edd9daf8f9f85f1bcb07886eb03",
      "tree": "607e7571d37c819fe45726a9abd6b4dd9fc11cc7",
      "parents": [
        "85785f062b55e1fe6dfa514ccb006139c844cbce"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 18:43:04 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 18:43:04 2026"
      },
      "message": "Remove LegacyNativeDictionaryRequiredInterfaceNullability from Payment Request API code\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312039\n\nReviewed by Abrar Rahman Protyasha.\n\nRefactor IDL away from the legacy code path. This required a small\nbinding layer fix for object? \u003d null as that ended up in the\n\nstd::nullopt fallback path.\nCanonical link: https://commits.webkit.org/311127@main\n"
    },
    {
      "commit": "85785f062b55e1fe6dfa514ccb006139c844cbce",
      "tree": "01c6f871113e562444a12969b9577947686ab397",
      "parents": [
        "7ad346c14cd494bcdfdf1393a1461a7e3090bb47"
      ],
      "author": {
        "name": "Alberto Garcia",
        "email": "berto@igalia.com",
        "time": "Mon Apr 13 18:42:15 2026"
      },
      "committer": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 18:42:15 2026"
      },
      "message": "REGRESSION(310298@main): GraphicsContextSkia.h not found on s390x\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312160\n\nReviewed by Nikolas Zimmermann.\n\nCommit https://commits.webkit.org/310298@main replaced the\nImageBuffer-based scrollbar rendering with direct Skia rendering.\n\nSince big-endian platforms like s390x are not using Skia, add a\nUSE(SKIA) guard to the condition that enables the async scrollbar.\n\n* Source/WTF/wtf/PlatformUse.h:\n\nCanonical link: https://commits.webkit.org/311126@main\n"
    },
    {
      "commit": "7ad346c14cd494bcdfdf1393a1461a7e3090bb47",
      "tree": "3c0c8b54d3e0f9db906d1aec85034031bb1b79b4",
      "parents": [
        "7f06806685b001a7a23e8550a23e55bdea0eec64"
      ],
      "author": {
        "name": "Geoffrey Garen",
        "email": "ggaren@apple.com",
        "time": "Mon Apr 13 18:38:15 2026"
      },
      "committer": {
        "name": "Geoffrey Garen",
        "email": "ggaren@apple.com",
        "time": "Mon Apr 13 18:38:15 2026"
      },
      "message": "[Build Speed] 2s speedup in clean WTF+bmalloc build\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312108\nrdar://174616734\n\nReviewed by Marcus Plutowski.\n\nReduced bmalloc compilation overhead.\n\n1. In the WTF configuration where we inline most of bmalloc into\nFastMalloc, #ifdef out the separate out of line implementation in bmalloc. It\u0027s\nunused.\n\n2. Merge Gigacage.h/.cpp and FastMalloc.h/.cpp because it\u0027s expensive to include\nall the bmalloc inlines separately, and Gigacage is merged with malloc inside\nbmalloc anyway.\n\n3. Don\u0027t #include all of bmalloc.h in Threading.h just to expose a single QoS\nAPI. Instead expose the API through FastMalloc, which already includes those\nheaders in its implementation.\n\n* Source/JavaScriptCore/heap/GigacageAlignedMemoryAllocator.h:\n* Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.h:\n* Source/JavaScriptCore/jit/ExecutableAllocator.h:\n* Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:\n* Source/JavaScriptCore/runtime/ArrayBuffer.cpp:\n* Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp:\n* Source/JavaScriptCore/runtime/Butterfly.h:\n* Source/JavaScriptCore/runtime/JSArrayBufferView.cpp:\n* Source/JavaScriptCore/runtime/Options.cpp:\n* Source/JavaScriptCore/runtime/VM.h:\n* Source/JavaScriptCore/tools/IntegrityInlines.h:\n* Source/JavaScriptCore/wasm/WasmMemory.cpp:\n* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:\n* Source/WTF/WTF.xcodeproj/project.pbxproj:\n* Source/WTF/wtf/CMakeLists.txt:\n* Source/WTF/wtf/CagedPtr.h:\n* Source/WTF/wtf/FastMalloc.cpp:\n(WTF::fastSetScavengerThreadQOSClass):\n(Gigacage::tryAlignedMalloc):\n(Gigacage::tryMalloc):\n(Gigacage::malloc):\n(Gigacage::tryZeroedMalloc):\n(Gigacage::zeroedMalloc):\n(Gigacage::tryRealloc):\n(Gigacage::free):\n(Gigacage::tryAllocateZeroedVirtualPages):\n(Gigacage::freeVirtualPages):\n(Gigacage::tryMallocArray):\n(Gigacage::mallocArray):\n* Source/WTF/wtf/FastMalloc.h:\n* Source/WTF/wtf/Gigacage.cpp: Removed.\n* Source/WTF/wtf/Gigacage.h: Removed.\n* Source/WTF/wtf/Threading.cpp:\n(WTF::Thread::setGlobalMaxQOSClass):\n* Source/WebCore/bindings/js/SerializedScriptValue.h:\n* Source/bmalloc/bmalloc/SystemHeap.cpp:\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap.c:\n(bmalloc_try_allocate_auxiliary_with_alignment_casual):\n(bmalloc_allocate_auxiliary_with_alignment_casual):\n(bmalloc_try_allocate_auxiliary):\n(bmalloc_allocate_auxiliary):\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_flex.c:\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso.c:\n(bmalloc_try_iso_allocate):\n(bmalloc_iso_allocate):\n(bmalloc_try_iso_allocate_array_by_size): Deleted.\n(bmalloc_iso_allocate_array_by_size): Deleted.\n\nCanonical link: https://commits.webkit.org/311125@main\n"
    },
    {
      "commit": "7f06806685b001a7a23e8550a23e55bdea0eec64",
      "tree": "42d3cc5e2cde90fce421f802d930ea6ed9df577b",
      "parents": [
        "39def582d5c1bde29f8af34c20071a25faa5a6bb"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 18:31:46 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 18:31:46 2026"
      },
      "message": "Resync `dom/traversal` from WPT Upstream\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312144\nrdar://174648256\n\nReviewed by Brandon Stewart, Vitor Roriz, and Anne van Kesteren.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/d9f5c182f95f8dc39b5ea5f22f3ee3bd16900997\n\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-currentNode-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-currentNode.html:\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-realm-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-realm.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/001.xml:\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/002.xml:\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/010.xml:\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/311124@main\n"
    },
    {
      "commit": "39def582d5c1bde29f8af34c20071a25faa5a6bb",
      "tree": "855daa5e93653162b88f5c084c16160e8e81077c",
      "parents": [
        "ae92118635d3e042b4a39e29719c72a169154426"
      ],
      "author": {
        "name": "Anand Srinivasan",
        "email": "anand_srinivasan@apple.com",
        "time": "Mon Apr 13 18:28:44 2026"
      },
      "committer": {
        "name": "Yijia Huang",
        "email": "yijia_huang@apple.com",
        "time": "Mon Apr 13 18:28:44 2026"
      },
      "message": "IPInt nonzero memory bounds check should check the last accessed byte\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311764\nrdar://174338638\n\nReviewed by Yijia Huang.\n\nIPInt bounds checking checks that the last byte of the access is within\nbounds in the default case of memory 0, but for other memories only\nchecks the first byte of the access. This patch updates it to check that\nthe last byte is within bounds.\n\nTest: JSTests/wasm/stress/ipint-multimem-oob.js\n\n* JSTests/wasm/stress/ipint-multimem-oob.js: Added.\n(leb128):\n(buildModule):\n(catch):\n* Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:\n\nCanonical link: https://commits.webkit.org/311123@main\n"
    },
    {
      "commit": "ae92118635d3e042b4a39e29719c72a169154426",
      "tree": "3ef9a94b423d38a5a04be0a8e33818ccbcd2ba9d",
      "parents": [
        "d2ef3504e98a80fe1b94576d8f9f8d39d75b6753"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 18:19:39 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 18:19:39 2026"
      },
      "message": "[CMake] Fix stale libwebrtc Apple source list for Mac build\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312029\nrdar://174586986\n\nReviewed by BJ Burg.\n\nThe libwebrtc CMake source list was out of sync with the current source tree.\nUpstream renamed sdk/ to webkit_sdk/, added new abseil/boringssl/webm sources,\nand removed stale files (ALSA, dump_modes, vpx_convolve8_neon_asm). Resync the\nlist, fix perlasm output directory creation and webm header subdirectory paths,\ndefine DISABLE_RTC_AV1 (libaom not yet built by CMake) with a brace fix in\nRTCDefaultVideoDecoderFactory.m, enable RTC_ENABLE_H265, add usage_exit_stub.c\nfor vpx tools_common.c, exclude vp9_firstpass.c (CONFIG_REALTIME_ONLY), and\nlink opus/vpx/yuv/libsrtp on Apple.\n\n* Source/ThirdParty/libwebrtc/CMakeLists.txt:\n* Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:\n* Source/ThirdParty/libwebrtc/cmake/usage_exit_stub.c: Added.\n\nCanonical link: https://commits.webkit.org/311122@main\n"
    },
    {
      "commit": "d2ef3504e98a80fe1b94576d8f9f8d39d75b6753",
      "tree": "85335b4731d89e96dc906e398043c52c28952c9d",
      "parents": [
        "47a052151a11894c39979954f6cea6f4e17a4acb"
      ],
      "author": {
        "name": "Sihui Liu",
        "email": "sihui_liu@apple.com",
        "time": "Mon Apr 13 18:15:02 2026"
      },
      "committer": {
        "name": "Sihui Liu",
        "email": "sihui_liu@apple.com",
        "time": "Mon Apr 13 18:15:02 2026"
      },
      "message": "Use WeakRef instead of raw pointer for MemoryBackingStoreTransaction::m_originalObjectStoreNames\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311880\nrdar://174449757\n\nReviewed by Ryosuke Niwa and Chris Dumez.\n\nHashMap\u003cMemoryObjectStore*, String\u003e m_originalObjectStoreNames currently uses a raw pointer as key; replace it with\nWeakHashMap to avoid potential use-after-free.\n\n* Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:\n(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted):\n(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreRenamed):\n(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):\n* Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h:\n\nCanonical link: https://commits.webkit.org/311121@main\n"
    },
    {
      "commit": "47a052151a11894c39979954f6cea6f4e17a4acb",
      "tree": "0c8e921361af6b5784d1ea3ec0ab85cfaa502d70",
      "parents": [
        "f557e873a21c6dce2a29d32dd1e029639d1f2e76"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 18:05:48 2026"
      },
      "committer": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 18:05:48 2026"
      },
      "message": "[GStreamer] Gardening\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312170\n\nUnreviewed, flag a couple more test failures likely due to the GStreamer 1.28 deployment.\n\n* LayoutTests/platform/glib/TestExpectations:\n\nCanonical link: https://commits.webkit.org/311120@main\n"
    },
    {
      "commit": "f557e873a21c6dce2a29d32dd1e029639d1f2e76",
      "tree": "da5f50dc829140119161cf320171f3a16df2c17b",
      "parents": [
        "6ad2d305a7f4d0849313e03f166e2a223934266f"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 18:02:59 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 18:02:59 2026"
      },
      "message": "[CMake] Fix WebGPU build for Mac\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312031\nrdar://174587148\n\nReviewed by BJ Burg and Mike Wyrzykowski.\n\nSource/WebGPU/WebGPU/CMakeLists.txt is a new file that compiles 33 WebGPU\nObjective-C++ sources and the WGSL compiler sources into a shared framework,\nlinking Metal, IOSurface, CoreFoundation, CoreVideo, Foundation, and\nQuartzCore. ARC is enabled and public headers (WebGPU.h, WebGPUExt.h) are\ncopied to the build directory for downstream consumers.\n\nThe WGSL generator is updated to produce both TypeDeclarations.h and\nTypeOverloads.h, and IOValidator.cpp is added to the wgslc source list.\nThe top-level WebGPU CMakeLists.txt conditionally includes the WebGPU\nsubdirectory on Apple platforms.\n\n* Source/WebGPU/CMakeLists.txt:\n* Source/WebGPU/WGSL/CMakeLists.txt:\n* Source/WebGPU/WebGPU/CMakeLists.txt: Added.\n\nCanonical link: https://commits.webkit.org/311119@main\n"
    },
    {
      "commit": "6ad2d305a7f4d0849313e03f166e2a223934266f",
      "tree": "495d72a0602f59bdf5a0bb2cdd913b81755a4cb8",
      "parents": [
        "5bbeecb131e59b2284a6367d93c0cc9255ef2308"
      ],
      "author": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 17:55:24 2026"
      },
      "committer": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 17:55:24 2026"
      },
      "message": "[GTK] Flaky icon database API test gardening\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d310428\n\nUnreviewed gardening.\n\n* Tools/TestWebKitAPI/glib/TestExpectations.json:\n\nCanonical link: https://commits.webkit.org/311118@main\n"
    },
    {
      "commit": "5bbeecb131e59b2284a6367d93c0cc9255ef2308",
      "tree": "0ccb598f1eae18b1a72c5cedb47e5ce9b59b2d6f",
      "parents": [
        "7a892995e1a21306d23d2f7f2fe2fa495a51d3a8"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:49:58 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:49:58 2026"
      },
      "message": "[CMake] Fix Mac CMake build for WebCore\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312024\nrdar://174578979\n\nReviewed by BJ Burg.\n\nAdd comprehensive Mac CMake configuration for WebCore including\nframework linking, include directories, Cocoa source files, IDL\nadditions, libwebrtc/WebM handling, private framework headers, and\nbuild guards for USE(LIBWEBRTC).\n\nBased on a base patch by Simon Lewis. Incorporates LINKER: prefix\nlink options and source file include fixes from Ian Grunert\n(PR #62543). Force-load PAL into WebCore via\nWebCore_EXTRA_LINK_OPTIONS so soft-link symbols are exported even\nunder -undefined,dynamic_lookup, thanks to Brandon Stewart.\n\n* Source/WebCore/CMakeLists.txt:\n* Source/WebCore/Headers.cmake: Add private framework headers for\ndownstream WebKit/WebKitLegacy targets.\n* Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp:\n* Source/WebCore/PlatformMac.cmake: Add framework linking, include\ndirectories, Cocoa sources, WebM parser OBJECT library, and build\nguards.\n* Source/WebCore/SourcesCocoa.txt: Remove files that no longer exist.\n* Source/WebCore/accessibility/AXIsolatedTree.h: Add forwarding include.\n* Source/WebCore/bindings/js/JSWindowProxy.cpp: Add missing include.\n* Source/WebCore/html/OffscreenCanvas.cpp: Fix header name case.\n* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:\n(WebCore::SourceBufferPrivateAVFObjC::configureParser):\n* Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm: Add\nUSE(LIBWEBRTC) guards.\n(WebCore::registerWebKitVP9Decoder):\n* Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.h:\nAdd missing include.\n* Source/WebCore/platform/graphics/coreimage/FECompositeCoreImageApplier.h:\nAdd missing include.\n* Source/WebCore/platform/graphics/coreimage/FECompositeCoreImageApplier.mm:\nAdd missing include.\n* Source/WebCore/platform/graphics/coreimage/FEMergeCoreImageApplier.mm:\nAdd missing include.\n* Source/WebCore/platform/graphics/cv/CVUtilities.mm: Add missing include.\n* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:\n(WebCore::MediaRecorderPrivateAVFImpl::isTypeSupported):\n\nCanonical link: https://commits.webkit.org/311117@main\n"
    },
    {
      "commit": "7a892995e1a21306d23d2f7f2fe2fa495a51d3a8",
      "tree": "29692290621d34da4ac636b8f641b3114b0f7ee6",
      "parents": [
        "6254b35a036c03e7123ee4e9f851e6503c990e16"
      ],
      "author": {
        "name": "Phipson Lee",
        "email": "phipson_lee@apple.com",
        "time": "Mon Apr 13 17:45:49 2026"
      },
      "committer": {
        "name": "Phipson Lee",
        "email": "phipson_lee@apple.com",
        "time": "Mon Apr 13 17:45:49 2026"
      },
      "message": "When exiting fullscreen if browser window is narrower than fullscreen video, fullscreen video sometimes jumps\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311948\nrdar://174454557\n\nReviewed by Aditya Keerthi.\n\nOn visionOS, when we resize the scene for element fullscreen content, if we set the minimum scene size\nrestriction before the resize executes, it can sometimes cause the fullscreen content to reposition itself\nas it exits fullscreen. For animated scene resize, we already re-apply the minimum size restriction when\nthe animation completes so we do not need this block.\n\nWe previously guarded this incorrectly in 307321@main so this PR fixes\nthat for animated scene resizing.\n\n* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:\n(-[WKFullScreenWindowController _performSpatialFullScreenTransition:completionHandler:]):\n\nCanonical link: https://commits.webkit.org/311116@main\n"
    },
    {
      "commit": "6254b35a036c03e7123ee4e9f851e6503c990e16",
      "tree": "ed85fe24b364389548a203763522e36098549d13",
      "parents": [
        "3c48430394352143fe3087da028d0b3eb2b64bfa"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:44:53 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:44:53 2026"
      },
      "message": "[CMake] Fix Mac CMake build for WebKitLegacy\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312026\nrdar://174581514\n\nReviewed by BJ Burg.\n\n`PlatformMac.cmake` was missing WebCoreSupport sources, referenced removed\nfiles, and defined `JSC_CLASS_AVAILABLE` on the command line conflicting with\n`WebKitAvailability.h`. Preferences codegen failed because it depended on\nvariables from WebKit\u0027s CMakeLists.txt which is processed after WebKitLegacy.\n\n* Source/WebKitLegacy/PlatformMac.cmake:\n* Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.cpp:\n(LegacySocketProvider::createWebSocketChannel):\n\nCanonical link: https://commits.webkit.org/311115@main\n"
    },
    {
      "commit": "3c48430394352143fe3087da028d0b3eb2b64bfa",
      "tree": "2adbcd8ec9b40c6f8db55ed37b64a0c56f8599ac",
      "parents": [
        "ba8136a2b68e996a15a178d83495392ef2946422"
      ],
      "author": {
        "name": "Megan Gardner",
        "email": "megan_gardner@apple.com",
        "time": "Mon Apr 13 17:43:51 2026"
      },
      "committer": {
        "name": "Megan Gardner",
        "email": "megan_gardner@apple.com",
        "time": "Mon Apr 13 17:43:51 2026"
      },
      "message": "TextIdicators are offset on iOS.\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311990\nrdar://173903530\n\nReviewed by Wenson Hsieh.\n\nOn iOS we were giving the location of the textIndicator\nin contentView coordinates instead of WebView coordinates.\nUpdate to give them in the right coordinate space.\n\n* Source/WebKit/UIProcess/Cocoa/WKTextEffectManager.mm:\n(textPreviewsFromIndicator):\n(-[WKTextEffectManager previewsForSuggestionWithUUID:completion:]):\n\nCanonical link: https://commits.webkit.org/311114@main\n"
    },
    {
      "commit": "ba8136a2b68e996a15a178d83495392ef2946422",
      "tree": "0189299369a8e48973eaada131cf47a4ec525579",
      "parents": [
        "748235460fb6c55b84993596d7eff50ed045de8e"
      ],
      "author": {
        "name": "Megan Gardner",
        "email": "megan_gardner@apple.com",
        "time": "Mon Apr 13 17:42:38 2026"
      },
      "committer": {
        "name": "Megan Gardner",
        "email": "megan_gardner@apple.com",
        "time": "Mon Apr 13 17:42:38 2026"
      },
      "message": "Move off of willBeginWritingToolsSession:forProofreadingReview:requestContexts: Re-land.\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311982\nrdar://174380999\n\nReviewed by Abrar Rahman Protyasha and Tim Horton.\n\nThis specific call is no longer needed, we will use willBeginWritingToolsSession:requestContexts:\nwith the requisite information about if this is for proofreading review on the session object.\n\n* Source/WTF/wtf/PlatformEnableCocoa.h:\n* Source/WebCore/PAL/pal/spi/cocoa/WritingToolsSPI.h:\n* Source/WebKit/Configurations/AllowedSPI.toml:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView willBeginWritingToolsSession:requestContexts:]):\n\nCanonical link: https://commits.webkit.org/311113@main\n"
    },
    {
      "commit": "748235460fb6c55b84993596d7eff50ed045de8e",
      "tree": "fce918ddfef6b2640903bdde81ad427536096709",
      "parents": [
        "15d5907f99af2f747033e5981ad5d61e918a3587"
      ],
      "author": {
        "name": "Antoine Quint",
        "email": "graouts@webkit.org",
        "time": "Mon Apr 13 17:36:08 2026"
      },
      "committer": {
        "name": "Antoine Quint",
        "email": "graouts@webkit.org",
        "time": "Mon Apr 13 17:36:08 2026"
      },
      "message": "[threaded-animations] allow acceleration for effects composing using implicit keyframes\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312140\nrdar://174646583\n\nReviewed by Simon Fraser and Anne van Kesteren.\n\nIf an effect stack featured several effects animating the same underlying accelerated property\nwith implicit keyframes, we would disable acceleration support throughout the stack as a legacy\nbehavior from the non-threaded animation support.\n\nHowever, with threaded animations, there is no reason not to support acceleration in this case\nand attempting to write a test case when fixing bug 310806 in 310985@main made this obvious.\nWe address this and ensure we update tests for threaded animations covering that behavior\nand add new tests that we were originally aiming to write for bug 310806.\n\nNote that `webanimations/threaded-animations/accelerated-animations-and-implicit-keyframes.html`\nstill tests the legacy behavior described above.\n\nTests: webanimations/threaded-animations/fill-mode-adjustment-implicit-from-keyframe.html\n       webanimations/threaded-animations/fill-mode-adjustment-implicit-to-keyframe.html\n* LayoutTests/webanimations/threaded-animations/accelerated-animations-and-implicit-keyframes-expected.txt:\n* LayoutTests/webanimations/threaded-animations/accelerated-animations-and-implicit-keyframes.html:\n* LayoutTests/webanimations/threaded-animations/fill-mode-adjustment-implicit-from-keyframe-expected.txt: Added.\n* LayoutTests/webanimations/threaded-animations/fill-mode-adjustment-implicit-from-keyframe.html: Added.\n* LayoutTests/webanimations/threaded-animations/fill-mode-adjustment-implicit-to-keyframe-expected.txt: Added.\n* LayoutTests/webanimations/threaded-animations/fill-mode-adjustment-implicit-to-keyframe.html: Added.\n* Source/WebCore/animation/KeyframeEffectStack.cpp:\n(WebCore::KeyframeEffectStack::allowsAcceleration const):\n\nCanonical link: https://commits.webkit.org/311112@main\n"
    },
    {
      "commit": "15d5907f99af2f747033e5981ad5d61e918a3587",
      "tree": "84e47b120b548f5b2eb3cadaabfc81c3bf3bad28",
      "parents": [
        "046e8ee854b3f88c7a8a68c26c6235b76d5b1b1e"
      ],
      "author": {
        "name": "Antoine Quint",
        "email": "graouts@webkit.org",
        "time": "Mon Apr 13 17:32:07 2026"
      },
      "committer": {
        "name": "Antoine Quint",
        "email": "graouts@webkit.org",
        "time": "Mon Apr 13 17:32:07 2026"
      },
      "message": "[threaded-animations] remove `KeyframeEffectStack::m_acceleratedEffects`\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312142\nrdar://174647940\n\nReviewed by Anne van Kesteren.\n\nWe keep a list of all accelerated effects on `KeyframeEffectStack` for the sole purpose\nof implementing `KeyframeEffectStack::hasAcceleratedEffects()` which can already query\nall effects using `KeyframeEffect::isRunningAccelerated()`. It probably was useful during\nbring up of threaded animations when that was the most reliable way to implenent that\nfunction but seems unnecessary at this juncture so we remove it.\n\n* Source/WebCore/animation/KeyframeEffectStack.cpp:\n(WebCore::KeyframeEffectStack::hasAcceleratedEffects const):\n* Source/WebCore/animation/KeyframeEffectStack.h:\n(WebCore::KeyframeEffectStack::setAcceleratedEffects): Deleted.\n* Source/WebCore/rendering/RenderLayerBacking.cpp:\n(WebCore::RenderLayerBacking::updateAcceleratedEffectsAndBaseValues):\n* Source/WebCore/style/Styleable.cpp:\n(WebCore::Styleable::hasRunningAcceleratedAnimations const):\n\nCanonical link: https://commits.webkit.org/311111@main\n"
    },
    {
      "commit": "046e8ee854b3f88c7a8a68c26c6235b76d5b1b1e",
      "tree": "2dac2124e5c7989b7b3f0326072aec970e661314",
      "parents": [
        "fcda7e256435deba13c28eacc4bcb00108a34197"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:29:15 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:29:15 2026"
      },
      "message": "[CMake] Fix Mac CMake build for WebKit\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312025\nrdar://problem/174585762\n\nReviewed by Richard Robinson and BJ Burg.\n\nAdd comprehensive Mac CMake configuration for WebKit including\nframework linking, Cocoa source files, message receiver generation,\nXPC service executables, forwarding headers, and Swift interop.\n\nSimplified Swift module map for WebKit_Internal and overridable\nSwift interop module path thanks to Brandon Stewart -- the source-tree\nmodule.modulemap includes C++ submodules that fail in CMake\u0027s\nexplicit module build, so we generate a stripped-down version with\nonly the submodules the Swift files need.\n\n* Source/WebKit/CMakeLists.txt:\n* Source/WebKit/Platform/cocoa/WebKitSwiftStubs.mm: Added.\n* Source/WebKit/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/311110@main\n"
    },
    {
      "commit": "fcda7e256435deba13c28eacc4bcb00108a34197",
      "tree": "ec506d76b918f823a78de1063ff6439b15dc7ff6",
      "parents": [
        "5af0d3fa6bd21e68eb230fe735a3dbc8c1641029"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:26:10 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:26:10 2026"
      },
      "message": "[CMake] Fix Mac CMake build for PAL\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312021\nrdar://problem/174562352\n\nReviewed by Richard Robinson.\n\nAdd Mac-specific PAL SPI headers and Cocoa source files for CMake.\n\nBased on a base patch by Simon Lewis. Incorporates Swift CryptoKit\nintegration from Ian Grunert (PR #62543), folding follow-up bug\n#312030.\n\n* Source/WebCore/PAL/pal/CMakeLists.txt:\n* Source/WebCore/PAL/pal/PlatformMac.cmake:\n* Source/WebCore/PAL/pal/crypto/CryptoKit+UnsafeOverlays.swift:\n\nCanonical link: https://commits.webkit.org/311109@main\n"
    },
    {
      "commit": "5af0d3fa6bd21e68eb230fe735a3dbc8c1641029",
      "tree": "39e4d4ad8cf82b4683cba7123001c0ddac3d9224",
      "parents": [
        "9b5e74e8a8e53f8b3de4d147cef7a60101487c52"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:24:25 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:24:25 2026"
      },
      "message": "[CMake] Fix Mac CMake build for JavaScriptCore\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312023\nrdar://problem/174575226\n\nReviewed by Yusuke Suzuki and BJ Burg.\n\nAdd JSWrapperMapTests.mm to testapi sources for Mac CMake builds.\n\n* Source/JavaScriptCore/shell/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/311108@main\n"
    },
    {
      "commit": "9b5e74e8a8e53f8b3de4d147cef7a60101487c52",
      "tree": "e53d221249981207ac7dabeca8e2fba166861eb4",
      "parents": [
        "f465642e24419af0a257706af31d3cd7aab2976b"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:22:34 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:22:34 2026"
      },
      "message": "[CMake] Fix ANGLE for Mac CMake build\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312022\nrdar://problem/174562352\n\nReviewed by BJ Burg.\n\nSet is_apple flag, update MSL source variable name, and add NO_SYMLINK\nto header copy targets for CMake Mac builds.\n\nBased on a base patch by Simon Lewis.\n\n* Source/ThirdParty/ANGLE/CMakeLists.txt: Add is_apple flag inside\nif (APPLE) block so ANGLE\u0027s GN-derived cmake finds Apple sources.\n* Source/ThirdParty/ANGLE/PlatformMac.cmake: Rename\nangle_translator_lib_metal_sources to angle_translator_lib_msl_sources\nto match upstream ANGLE variable rename.\n* Source/ThirdParty/ANGLE/include/CMakeLists.txt: Add NO_SYMLINK to\nANGLEWebGLHeaders and GLSLANGHeaders so adjust-angle-include-paths.py\ndoes not rewrite source tree files.\n\nCanonical link: https://commits.webkit.org/311107@main\n"
    },
    {
      "commit": "f465642e24419af0a257706af31d3cd7aab2976b",
      "tree": "c6453463cd2da2f2df82bff1546d664ad826f8cb",
      "parents": [
        "46919b8aa6e4c1f94ac782ac9cf89813fedfe750"
      ],
      "author": {
        "name": "Nikolas Zimmermann",
        "email": "nzimmermann@igalia.com",
        "time": "Mon Apr 13 17:21:55 2026"
      },
      "committer": {
        "name": "Nikolas Zimmermann",
        "email": "zimmermann@kde.org",
        "time": "Mon Apr 13 17:21:55 2026"
      },
      "message": "[GTK][WPE] REGRESSION(310393@main): Restore RValue semantics for DMABufBufferAttributes IPC encoding\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312141\n\nReviewed by Carlos Garcia Campos.\n\n4ca156ae3080 removed the [RValue] attribute from the DMABufBufferAttributes\nserialization definition and did not add the bare type to\ntypes_that_must_be_moved() in messages.py. This caused the generated IPC\nencoder to pass Vector\u003cUnixFileDescriptor\u003e as const\u0026 instead of \u0026\u0026, breaking\nfile descriptor transfer for DMA-buf buffers.\n\nCovered by existing tests.\n\n* Source/WebKit/Scripts/webkit/messages.py:\n(types_that_must_be_moved):\n* Source/WebKit/Shared/gbm/DMABufBuffer.serialization.in:\n\nCanonical link: https://commits.webkit.org/311106@main\n"
    },
    {
      "commit": "46919b8aa6e4c1f94ac782ac9cf89813fedfe750",
      "tree": "d9611408d1c37f62cf66dc3480d0c4ded5d0b69f",
      "parents": [
        "be740b1129043fcc742a2ff0f8e45415f57d8c56"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:20:52 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:20:52 2026"
      },
      "message": "[CMake] Fix Mac CMake build for WTF\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312020\nrdar://problem/174561925\n\nReviewed by Adrian Perez de Castro.\n\nAdd Mac-specific WTF public headers and platform sources for CMake.\n\nBased on a base patch by Simon Lewis. Move PlatformEnable*.h headers\nfrom CMakeLists.txt to per-platform files, based on Ian Grunert\u0027s\napproach (PR #62543).\n\n* Source/WTF/wtf/CMakeLists.txt: Remove PlatformEnable*.h from shared\npublic headers. Add darwin/TypeCastsOSObject.h to Apple headers.\n* Source/WTF/wtf/PlatformGTK.cmake: Add PlatformEnableGlib.h.\n* Source/WTF/wtf/PlatformMac.cmake: Add Mac-specific sources\n(ObjCRuntimeExtras.mm, AuditToken.mm, SpanCocoa.mm, UUIDCocoa.mm),\nheaders, and PlatformEnableCocoa.h. Fix RuntimeApplicationChecksCocoa\nextension (.cpp -\u003e .mm).\n* Source/WTF/wtf/PlatformPlayStation.cmake: Add PlatformEnablePlayStation.h.\n* Source/WTF/wtf/PlatformWPE.cmake: Add PlatformEnableGlib.h.\n* Source/WTF/wtf/PlatformWin.cmake: Add PlatformEnableWin.h.\n\nCanonical link: https://commits.webkit.org/311105@main\n"
    },
    {
      "commit": "be740b1129043fcc742a2ff0f8e45415f57d8c56",
      "tree": "a07124a8a30167c60c0d91ee9b5956bb424a517d",
      "parents": [
        "f14a1f4f992d0feb77b59e38265abbfbd68a4c25"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:19:39 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:19:39 2026"
      },
      "message": "[CMake] Fix Mac CMake build for bmalloc\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312019\nrdar://problem/174561810\n\nReviewed by BJ Burg.\n\nReorganize bmalloc headers into public and private sets so downstream\ntargets only see the API surface they need. Add missing TZoneLog.h to\nthe public list. Remove stale IsoHeap.cpp reference and add Foundation\nframework linking for ProcessCheck.mm. Add missing BAssert.h include\nin TZoneHeap.h.\n\nBased on a base patch by Simon Lewis. Incorporates private header\nreorganization from Ian Grunert (PR #62543).\n\n* Source/bmalloc/CMakeLists.txt:\n* Source/bmalloc/PlatformMac.cmake:\n* Source/bmalloc/bmalloc/TZoneHeap.h:\n\nCanonical link: https://commits.webkit.org/311104@main\n"
    },
    {
      "commit": "f14a1f4f992d0feb77b59e38265abbfbd68a4c25",
      "tree": "bbd2becd54cb30c28867987204171e058364fda7",
      "parents": [
        "e285c446394d25144638b0287912d0cf0a3d4c9d"
      ],
      "author": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:18:07 2026"
      },
      "committer": {
        "name": "Pascoe",
        "email": "pascoe@apple.com",
        "time": "Mon Apr 13 17:18:07 2026"
      },
      "message": "[CMake] Add Mac platform CMake infrastructure\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312017\nrdar://problem/174561600\n\nReviewed by BJ Burg.\n\nAdd CMake presets for Mac builds, Mac-specific build options\n(OptionsMac.cmake), ccache configuration, macro updates, and a\npreprocessor.pm fix for ARCHS when building with CMake.\n\nWTF stays OBJECT (no Swift sources, same as other ports). PAL must\nbe STATIC (not OBJECT) because it has Swift CryptoKit sources and\nOBJECT libraries don\u0027t produce .swiftmodule files. Requires CMake\n3.26+ for Swift in STATIC libraries with Ninja.\n\nBased on a base patch by Simon Lewis. Incorporates Swift macro\nimprovements and feature definitions from Ian Grunert (PR #62543).\nENABLE_PDF_HUD, ENABLE_PDF_PLUGIN, and ENABLE_UNIFIED_PDF feature\nflag definitions and enables thanks to Brandon Stewart.\n\n* CMakeLists.txt: Guard swiftc-wrapper.sh against missing swiftc\nin PATH. Check return code of \u0027which\u0027.\n* CMakePresets.json: Add mac, mac-release, mac-dev-release,\nmac-dev-debug, and mac-dev-relwithdebinfo presets. Configure ccache\nvia Tools/ccache/ccache-webkit.conf (already in-tree).\n* Source/WebCore/bindings/scripts/preprocessor.pm:\n(applyPreprocessor): Use -arch from CMAKE_OSX_ARCHITECTURES when\nCMAKE is in use, not Xcode\u0027s ARCHS.\n* Source/cmake/OptionsMac.cmake: Mac port options including library\ntypes (WTF OBJECT, PAL STATIC, JSC/WebCore SHARED), feature flags\n(mirrored from PlatformEnableCocoa.h), SDK detection, and WebGPU\nheader forwarding.\n* Source/cmake/WebKitCCache.cmake: Apple-specific CCACHE_SLOPPINESS\nfor SDK mtime changes across Xcode updates.\n* Source/cmake/WebKitFS.cmake: Add bmalloc_PRIVATE_FRAMEWORK_HEADERS_DIR.\n* Source/cmake/WebKitFeatures.cmake: Add ENABLE_PDF_HUD,\nENABLE_PDF_PLUGIN, ENABLE_UNIFIED_PDF, ENABLE_APPLE_PAY_DELEGATED_REQUEST,\nENABLE_APPLE_PAY_LATER, ENABLE_MODEL_ELEMENT, ENABLE_WRITING_TOOLS,\nENABLE_WEB_CODECS, ENABLE_MEDIA_RECORDER, ENABLE_NOTIFICATIONS\nfeature definitions.\n* Source/cmake/WebKitMacros.cmake: Swift macro improvements --\nper-target SWIFT_INCLUDE_DIRECTORIES override, SWIFT_EXTRA_OPTIONS\npassthrough, -explicit-module-build, fixed -module-name. Guard\n-sdk flag for Apple platforms only.\n\nCanonical link: https://commits.webkit.org/311103@main\n"
    },
    {
      "commit": "e285c446394d25144638b0287912d0cf0a3d4c9d",
      "tree": "c2c8fdd916dc49eb9e5d7aa54fd06b430d8b7de0",
      "parents": [
        "142912be8cd48bcfbb509cec5cbfbaf97dba89e9"
      ],
      "author": {
        "name": "Jessica Lee",
        "email": "jlee53@apple.com",
        "time": "Mon Apr 13 17:13:33 2026"
      },
      "committer": {
        "name": "Jessica Lee",
        "email": "jlee53@apple.com",
        "time": "Mon Apr 13 17:13:33 2026"
      },
      "message": "[Safer CPP]Fix forward declarations in HTMLMediaElement and ImageBufferContextSwitcher\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311385\nrdar://173981446\n\nReviewed by Basuke Suzuki.\n\nApply https://github.com/WebKit/WebKit/wiki/Safer-CPP-Guidelines\n\nNo new tests needed.\n\n* Source/WebCore/SaferCPPExpectations/ForwardDeclCheckerExpectations:\n* Source/WebCore/html/HTMLMediaElement.cpp:\n(WebCore::HTMLMediaElement::setAudioOutputDevice):\n* Source/WebCore/platform/graphics/ImageBufferContextSwitcher.h:\n\nCanonical link: https://commits.webkit.org/311102@main\n"
    },
    {
      "commit": "142912be8cd48bcfbb509cec5cbfbaf97dba89e9",
      "tree": "bfda221134bb6f5a5afaf2f985892be0e5db50c4",
      "parents": [
        "a42efef8903ca2b62906cc0641ae675d165aa28e"
      ],
      "author": {
        "name": "Devin Rousso",
        "email": "hi@devinrousso.com",
        "time": "Mon Apr 13 16:28:34 2026"
      },
      "committer": {
        "name": "Devin Rousso",
        "email": "hi@devinrousso.com",
        "time": "Mon Apr 13 16:28:34 2026"
      },
      "message": "[WTF] drop `ALWAYS_LOG_WITH_STREAM` in favor of the less verbose `WTF_ALWAYS_LOG`\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312159\n\nReviewed by Wenson Hsieh.\n\nNo reason to have both when they do the exact same thing (except for the former requiring an extra `stream \u003c\u003c` at the beginning).\n\n* Source/WTF/wtf/Assertions.h:\n(ALWAYS_LOG_WITH_STREAM): Deleted.\n* Tools/Scripts/webkitpy/style/checkers/cpp.py:\n(check_log):\n\n* Source/WebCore/css/calc/CSSCalcValue.cpp:\n(WebCore::CSSCalc::Value::doubleValueDeprecated const):\n* Source/WebCore/css/typedom/CSSUnitValue.cpp:\n(WebCore::CSSUnitValue::toCSSValueWithProperty const):\n* Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp:\n(WebCore::BifurcatedGraphicsContext::verifyStateSynchronization):\n* Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:\n(WebCore::IOSurfacePool::IOSurfacePool):\n(WebCore::IOSurfacePool::~IOSurfacePool):\n(WebCore::IOSurfacePool::takeSurface):\n(WebCore::IOSurfacePool::addSurface):\n(WebCore::IOSurfacePool::evict):\n(WebCore::IOSurfacePool::collectionTimerFired):\nReplace existing uses of `ALWAYS_LOG_WITH_STREAM` with `WTF_LOG_ALWAYS` (and remove the `stream \u003c\u003c` at the beginning).\n\nCanonical link: https://commits.webkit.org/311101@main\n"
    },
    {
      "commit": "a42efef8903ca2b62906cc0641ae675d165aa28e",
      "tree": "f6069a9834501acc5716a978944cfb1d72d1293d",
      "parents": [
        "0d4650affa9024319559afe108fbff42b1a3de0f"
      ],
      "author": {
        "name": "Alexey Proskuryakov",
        "email": "ap@apple.com",
        "time": "Mon Apr 13 16:27:50 2026"
      },
      "committer": {
        "name": "Alexey Proskuryakov",
        "email": "ap@webkit.org",
        "time": "Mon Apr 13 16:27:50 2026"
      },
      "message": "Remove support for Xcode versions older than 26.2\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312052\nrdar://174566725\n\nReviewed by Richard Robinson.\n\nWebKit only supports building with Xcode 26.2 or newer, so all WK_XCODE_BEFORE/SINCE\nconditionals (15, 15.3, 16, 16.3, 17) are dead code. Remove them and resolve all dependent\nsettings to their unconditional values.\n\nThis also removes the ASan stack-use-after-scope and code coverage workarounds that only\napplied to Xcode 16.3, along with the corresponding ANGLE ifdef.\n\n* Configurations/CommonBase.xcconfig:\n* Configurations/Sanitizers.xcconfig:\n* Configurations/WebKitTargetConditionals.xcconfig:\n* Source/JavaScriptCore/Configurations/JSC.xcconfig:\n* Source/ThirdParty/ANGLE/changes.diff:\n* Source/ThirdParty/ANGLE/src/compiler/translator/InfoSink.h:\n* Source/WebCore/PAL/Configurations/PAL.xcconfig:\n* Source/WebKit/Configurations/Base.xcconfig:\n* Source/WebKit/Configurations/BaseExtension.xcconfig:\n* Source/WebKit/Configurations/BaseTarget.xcconfig:\n* Source/WebKit/Configurations/BaseXPCService.xcconfig:\n* Source/WebKit/Configurations/RelocatableFrameworksLinkerFlags.xcconfig:\n* Source/WebKit/Configurations/WebKitSwift.xcconfig:\n* Source/WebKit/Configurations/webpushd.xcconfig:\n* Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:\n* Tools/TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig:\n\nCanonical link: https://commits.webkit.org/311100@main\n"
    },
    {
      "commit": "0d4650affa9024319559afe108fbff42b1a3de0f",
      "tree": "5c30a6d2d4302029b4afc047465679bad7724674",
      "parents": [
        "49570663387cc8f0ea7bbab1cf42ad2bbc28ab9b"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 15:56:55 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 15:56:55 2026"
      },
      "message": "Resync `css/css-font-loading` from WPT Upstream\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312122\nrdar://174631708\n\nReviewed by Brandon Stewart and Vitor Roriz.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/1a2d26f274ee5189cc0e82fb530c3e638d0cdf4d\n\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-descriptor-updates-2-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-descriptor-updates-2.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-font-variation-settings-persisted-js-api-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-font-variation-settings-persisted-js-api.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-fonts-loading.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-from-arraybuffer-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-from-arraybuffer-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-from-arraybuffer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-invalid-arraybuffer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-invalid-arraybuffer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-invalid-family.tentative-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-invalid-family.tentative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loadingevent.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/historical-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/historical.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/w3c-import.log:\n* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css-font-loading/fontface-loadingevent-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/311099@main\n"
    },
    {
      "commit": "49570663387cc8f0ea7bbab1cf42ad2bbc28ab9b",
      "tree": "a162530bdd07043f637093d1392a292a4ae1fa03",
      "parents": [
        "962ea27aa60eeb8eaac503ad94c5a3efde4a61a4"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 15:35:50 2026"
      },
      "committer": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 15:35:50 2026"
      },
      "message": "[GStreamer][WebRTC] Un-mute incoming tracks when the track has received its first packet\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311652\n\nReviewed by Xabier Rodriguez-Calvar.\n\nUn-mute incoming source when they have received their first audio or video frame, improving our\ncompliance with the spec.\n\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:\n(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):\n* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:\n(WebCore::GStreamerMediaEndpoint::notifyFirstPacketReceived):\n* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:\n* Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.cpp:\n(WebCore::GStreamerIncomingTrackProcessor::GStreamerIncomingTrackProcessor):\n(WebCore::GStreamerIncomingTrackProcessor::incomingTrackProcessor):\n(WebCore::GStreamerIncomingTrackProcessor::createParser):\n(WebCore::GStreamerIncomingTrackProcessor::installRtpBufferPadProbe):\n(WebCore::GStreamerIncomingTrackProcessor::trackHasReceivedFirstPacket):\n* Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h:\n* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp:\n(WebCore::RealtimeOutgoingMediaSourceGStreamer::RealtimeOutgoingMediaSourceGStreamer):\n\nCanonical link: https://commits.webkit.org/311098@main\n"
    },
    {
      "commit": "962ea27aa60eeb8eaac503ad94c5a3efde4a61a4",
      "tree": "80f0522f8e731535b9e8e2922fa3e33d47e3068d",
      "parents": [
        "51f2f1647fce9df680d13eec07c489324f1fa415"
      ],
      "author": {
        "name": "Devin Rousso",
        "email": "hi@devinrousso.com",
        "time": "Mon Apr 13 15:23:59 2026"
      },
      "committer": {
        "name": "Devin Rousso",
        "email": "hi@devinrousso.com",
        "time": "Mon Apr 13 15:23:59 2026"
      },
      "message": "[JSC] add support for Iterator.prototype.join\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d304586\n\nReviewed by Yusuke Suzuki.\n\nJust like to `Array.prototype.join`, being able to `join` an iterator (i.e. `Iterator.prototype.join`) will make it even easier to use arrays and iterators interchangeably.\n\nSpec: \u003chttps://tc39.es/proposal-iterator-join/\u003e\nProposal: \u003chttps://github.com/tc39/proposal-iterator-join\u003e\n\n* Source/JavaScriptCore/runtime/JSIteratorPrototype.cpp:\n(JSC::JSIteratorPrototype::finishCreation):\n(JSC::iteratorProtoFuncJoin): Added.\n\n* Source/JavaScriptCore/runtime/OptionsList.h:\nAdd a feature flag for this.\n\n* JSTests/stress/iterator-prototype-join.js: Added.\n\nCanonical link: https://commits.webkit.org/311097@main\n"
    },
    {
      "commit": "51f2f1647fce9df680d13eec07c489324f1fa415",
      "tree": "97f1e870b42334415f956d0ae10e75875fd8682b",
      "parents": [
        "a3250c92026a3f8b4599037aaf1eed7babdce062"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 15:20:14 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 15:20:14 2026"
      },
      "message": "Non-replaced element with aspect-ratio enforces automatic minimum, even if explicitly set to 0\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d296243\n\u003crdar://problem/156837730\u003e\n\nReviewed by Antti Koivisto.\n\nPer CSS Sizing 4 section 5.1 (Automatic Minimum Size), a box with\na preferred aspect ratio uses its min-content size as a floor for\nthe ratio-dependent axis. But this only applies when min-width is\nauto -- the \"automatic minimum\".\n\nWhen min-width is explicitly set to 0, the automatic minimum is\ndisabled (CSS Sizing 3 section 4.5). The content width should come\npurely from the aspect ratio transfer (height:0 * ratio \u003d 0).\n\ncomputeIntrinsicKeywordLogicalWidths unconditionally maxed the\naspect-ratio-derived width with children\u0027s intrinsic widths. The\nfix gates this on min-width being auto.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio-automatic-minimum-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio-automatic-minimum.html: Added.\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::computeIntrinsicKeywordLogicalWidths):\n\nCanonical link: https://commits.webkit.org/311096@main\n"
    },
    {
      "commit": "a3250c92026a3f8b4599037aaf1eed7babdce062",
      "tree": "8873ba1139ed7ba7d20740d2edaff83d180b2711",
      "parents": [
        "24bd6b583a44a1c5e3758f4694b5554f58166509"
      ],
      "author": {
        "name": "Devin Rousso",
        "email": "hi@devinrousso.com",
        "time": "Mon Apr 13 15:04:15 2026"
      },
      "committer": {
        "name": "Devin Rousso",
        "email": "hi@devinrousso.com",
        "time": "Mon Apr 13 15:04:15 2026"
      },
      "message": "[JSC] add support for Promise.isPromise\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d304580\n\nReviewed by Keith Miller.\n\nSimilar to `Array.isArray` and `Error.isError`, this will give developers a simpler and much more reliable way to know if a given object is a `Promise`.\n\nSpec: \u003chttps://tc39.es/proposal-native-promise-predicate/\u003e\nProposal: \u003chttps://github.com/tc39/proposal-native-promise-predicate/\u003e\n\n* Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp:\n(JSC::JSPromiseConstructor::finishCreation):\n(JSC::promiseConstructorFuncIsPromise): Added.\n\n* Source/JavaScriptCore/runtime/OptionsList.h:\nAdd a feature flag for this.\n\n* JSTests/stress/promise-isPromise.js: Added.\n* LayoutTests/js/promise-isPromise.html: Added.\n* LayoutTests/js/promise-isPromise-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/311095@main\n"
    },
    {
      "commit": "24bd6b583a44a1c5e3758f4694b5554f58166509",
      "tree": "b500ea65f409db02240a281d35c1760f5c525d41",
      "parents": [
        "cdb1f961e0b1a0c1154dd5f10f9a328a417c35be"
      ],
      "author": {
        "name": "Brady Eidson",
        "email": "beidson@apple.com",
        "time": "Mon Apr 13 15:00:12 2026"
      },
      "committer": {
        "name": "Brady Eidson",
        "email": "beidson@apple.com",
        "time": "Mon Apr 13 15:00:12 2026"
      },
      "message": "Fix website coding style guideline formatting\nrdar://174627459\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312118\n\nReviewed by Richard Robinson.\n\nIn https://commits.webkit.org/311018@main I:\n\n- Forgot to decorate one of the code blocks\n- Left some grammatical room for improvement.\n\nLet\u0027s fix both of those.\n\n* Websites/webkit.org/code-style.md:\n\nCanonical link: https://commits.webkit.org/311094@main\n"
    },
    {
      "commit": "cdb1f961e0b1a0c1154dd5f10f9a328a417c35be",
      "tree": "a5c52a04397eeac0048507a086ca5aef938e49fc",
      "parents": [
        "b70b3ee487127e1c5c28f8fffa2b400192743875"
      ],
      "author": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 14:58:16 2026"
      },
      "committer": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 14:58:16 2026"
      },
      "message": "[GTK] Layout tests gardening\n\nUnreviewed gardening.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/tables/mozilla/bugs/bug7342-expected.png:\n* LayoutTests/platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:\n\nCanonical link: https://commits.webkit.org/311093@main\n"
    },
    {
      "commit": "b70b3ee487127e1c5c28f8fffa2b400192743875",
      "tree": "4a59b717dcafd03f53cea5c85da99c2bef8bc310",
      "parents": [
        "f647d7feb5649d42014b43f707fd4a92c92d28da"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 14:51:59 2026"
      },
      "committer": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 14:51:59 2026"
      },
      "message": "[GStreamer] Gardening\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312158\n\nUnreviewed, update a couple more media test expectations after the deployment of GStreamer 1.28.\n\n* LayoutTests/platform/glib/TestExpectations:\n\nCanonical link: https://commits.webkit.org/311092@main\n"
    },
    {
      "commit": "f647d7feb5649d42014b43f707fd4a92c92d28da",
      "tree": "7c3f8ab5df159c780604ebfba37083cfeb637e3f",
      "parents": [
        "e9f4202ae07bde1a81ca64b326da4ea3f6ff1724"
      ],
      "author": {
        "name": "Keith Miller",
        "email": "keith_miller@apple.com",
        "time": "Mon Apr 13 14:49:59 2026"
      },
      "committer": {
        "name": "Keith Miller",
        "email": "keith_miller@apple.com",
        "time": "Mon Apr 13 14:49:59 2026"
      },
      "message": "set-webkit-configuration should properly support the non-standard testing/release+assert builds\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311824\nrdar://174414568\n\nReviewed by Elliott Williams.\n\nWIP\n\nRight now when passing `--ra` or `--testing` to `set-webkit-configuration`\nit silently sets the configuration to the wrong values so tools think\nthe product directory is WebKitBuild/Release+Assert or\nWebKitBuild/Testing, which is not where things end up. This patch moves\nthe current `Makefile.shared` logic into `webkitdirs.pm`\n\nThis should also make `--ra`/`--testing` \"sticky\" like `--debug` and\n`--release` are today.\n\n* Makefile.shared:\n* Tools/Scripts/webkitdirs.pm:\n(determineConfigurationForVisualStudio):\n(determineConfigurationProductDir):\n(baseConfiguration):\n(XcodeOptions):\n(generateBuildSystemFromCMakeProject):\n(buildCMakeGeneratedProject):\n(cleanCMakeGeneratedProject):\n\nCanonical link: https://commits.webkit.org/311091@main\n"
    },
    {
      "commit": "e9f4202ae07bde1a81ca64b326da4ea3f6ff1724",
      "tree": "be455f2d24ea91bf98fcbfcd62ae7e1f7d1f40b8",
      "parents": [
        "d9c3d2e9d1dd6a3758e99ea3443171b70cdbd88c"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:48:14 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:48:14 2026"
      },
      "message": "word-break: keep-all incorrectly suppresses break opportunities at CJK punctuation\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312099\n\nReviewed by Antti Koivisto.\n\nPer CSS Text 3, keep-all suppresses soft wrap opportunities between\ntypographic letter units only. It is \"otherwise equivalent to normal\",\nmeaning punctuation break opportunities should still work.\n\nThe KeepAll shortcut for 16-bit text used nextBreakableSpace() which\nonly finds spaces. CJK punctuation like U+3001 (ideographic comma)\nwas ignored.\n\nThe fix adds a PunctuationBreaks template parameter to\nnextBreakableSpace. When enabled (KeepAll + 16-bit text), it also\nbreaks after punctuation characters using Unicode General Category.\n\n* LayoutTests/fast/text/word-break-keep-all-punctuation-expected.txt: Added.\n* LayoutTests/fast/text/word-break-keep-all-punctuation.html: Added.\n* Source/WebCore/rendering/BreakablePositions.h:\n(WebCore::BreakablePositions::next):\n(WebCore::BreakablePositions::nextBreakableSpace):\n\nCanonical link: https://commits.webkit.org/311090@main\n"
    },
    {
      "commit": "d9c3d2e9d1dd6a3758e99ea3443171b70cdbd88c",
      "tree": "be01de2604e2eb45f0bfbc8363e736196baaad24",
      "parents": [
        "eba977320081f41f4305deef673700d10a5e4bc7"
      ],
      "author": {
        "name": "Youenn Fablet",
        "email": "youenn@apple.com",
        "time": "Mon Apr 13 14:47:08 2026"
      },
      "committer": {
        "name": "Youenn Fablet",
        "email": "youennf@gmail.com",
        "time": "Mon Apr 13 14:47:08 2026"
      },
      "message": "Multipart form data parser should not expect CRLF at the end\nrdar://174348783\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312136\n\nReviewed by Chris Dumez.\n\nOur checks added in rdar://172038722 were too strict.\nWhile form generators include CRLF after the close delimiter, RFC 2046 does not mandate this.\nWe update the implementation accordingly, which aligns with other UAs.\nWe also check for transport-padding as requested by RFC 2046, which aligns with Chrome, not Firefox.\nFinally, we keep allowing a start delimiter finishing with \u0027--\u0027, which is counted as a close delimiter.\nThe reason is that, even though not allowed by RFC and Chrome, it is allowed by Firefox and is the way an empty FormData is serialized by User Agents.\nWe add tests for close delimiter without CRLF and for transport-padding.\n\n* LayoutTests/http/wpt/fetch/resources/wrong-form-data.py:\n(main):\n* LayoutTests/http/wpt/fetch/wrong-form-data-expected.txt:\n* LayoutTests/http/wpt/fetch/wrong-form-data.html:\n* Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:\n(WebCore::FetchBodyConsumer::packageFormData):\n\nCanonical link: https://commits.webkit.org/311089@main\n"
    },
    {
      "commit": "eba977320081f41f4305deef673700d10a5e4bc7",
      "tree": "c3926cc2091e16560e1bf97cbfad639fa99b9536",
      "parents": [
        "6998260b3fe9d6798843382808ff15f77c3892df"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:20:20 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:20:20 2026"
      },
      "message": "[IFC] word-break: break-all allows CJK close punctuation to start a line\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312103\n\nReviewed by Antti Koivisto.\n\nPer CSS Text 3, break-all does not affect soft wrap opportunities\naround punctuation. CJK close punctuation (e.g. U+3001 ideographic\ncomma) should stay with the preceding character.\n\nWhen the line is empty and even the first character overflows, the\ncontent breaker takes just the first character and breaks. If the\nnext character is punctuation that can\u0027t start a line, it ends up\nalone on the next line.\n\nThe fix extends the break past any following characters that are\nprohibited from starting a line.\n\n* LayoutTests/fast/text/word-break-break-all-cjk-punctuation-expected.txt: Added.\n* LayoutTests/fast/text/word-break-break-all-cjk-punctuation.html: Added.\n* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp:\n(WebCore::canBreakBefore): Moved earlier in the file.\n(WebCore::firstCharacterBreakRespectingLineStartProhibitions):\n(WebCore::InlineContentBreaker::processOverflowingContent):\n\nCanonical link: https://commits.webkit.org/311088@main\n"
    },
    {
      "commit": "6998260b3fe9d6798843382808ff15f77c3892df",
      "tree": "6f6d3aaf2a381bcca6910d303b266d45b7116618",
      "parents": [
        "bfb84878bc512872ead1eea41da9d91f415dc77f"
      ],
      "author": {
        "name": "tusooa",
        "email": "tusooa@kazv.moe",
        "time": "Mon Apr 13 14:19:17 2026"
      },
      "committer": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 14:19:17 2026"
      },
      "message": "Find QuickPrivate component for WPE Qt API\n\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312064\n\nReviewed by Claudio Saavedra.\n\nIn newer versions of Qt6, Qt6Quick module no longer includes\nthe Qt6QuickPrivate, so we need to manually find the Qt6QuickPrivate\nmodule. Compatibility kept for older versions by only requesting to\nfind Qt6QuickPrivate when the Qt::QuickPrivate is not yet available by\njust finding Qt6Quick.\n\nConfigure-time only change, no runtime tests needed.\n\n* Source/cmake/OptionsWPE.cmake:\n\nCanonical link: https://commits.webkit.org/311087@main\n"
    },
    {
      "commit": "bfb84878bc512872ead1eea41da9d91f415dc77f",
      "tree": "3f132e70caccd32ce5f041f4fece1397a08e2eb1",
      "parents": [
        "625c8663227c385ca6052e537c54ed3dc865f059"
      ],
      "author": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 14:17:55 2026"
      },
      "committer": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 14:17:55 2026"
      },
      "message": "[WPE][ARM64] Gardening of new failures\n\nUnreviewed gardening.\n\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/311086@main\n"
    },
    {
      "commit": "625c8663227c385ca6052e537c54ed3dc865f059",
      "tree": "873b92bd84040dcbe86d08365724e752d09d558c",
      "parents": [
        "9bff4dfd6167f4b9d722462a587c5030c79b0b39"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:13:15 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:13:15 2026"
      },
      "message": "Range.getClientRects() returns wrong rect for first-letter styled text\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d219087\n\u003crdar://problem/71546397\u003e\n\nReviewed by Antti Koivisto.\n\nWhen a text node has ::first-letter styling, WebKit splits it into two\nrenderers: one for the first letter, one for the rest. But\nRange.getClientRects() only asks the \"rest\" renderer, passing DOM\noffsets that don\u0027t match its local offsets.\n\nFor example, with \"AB\" where \"A\" is the first letter:\n1. DOM offset 0 maps to nothing in the remaining fragment (starts at 1)\n2. getClientRects(0, 1) returns the rect for \"B\" instead of \"A\"\n\nThe fix splits the range at the first-letter boundary and queries both\nrenderers with their respective local offsets.\n\n* LayoutTests/fast/css/first-letter-client-rects-expected.txt: Added.\n* LayoutTests/fast/css/first-letter-client-rects.html: Added.\n* Source/WebCore/rendering/RenderObject.cpp:\n(WebCore::absoluteRectsForRangeInText):\n\nCanonical link: https://commits.webkit.org/311085@main\n"
    },
    {
      "commit": "9bff4dfd6167f4b9d722462a587c5030c79b0b39",
      "tree": "4df49cdfcf31a00efd7100fa59495ec31932d150",
      "parents": [
        "b739bb690b4bf6d202eae33b04618281ef358ec3"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:08:54 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 14:08:54 2026"
      },
      "message": "`position: absolute` with inner `max-height: 100%` makes `height: max-content` resolve to 0\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d289876\n\u003crdar://problem/147333178\u003e\n\nReviewed by Antti Koivisto.\n\nWhen an absolutely positioned box has an intrinsic sizing keyword for\nheight (max-content, min-content, fit-content), its children\u0027s\npercentage heights should be unresolvable (CSS Sizing 3, 5.2.1). The\npercentage is cyclic -- it resolves against the parent\u0027s intrinsic size,\nwhich itself depends on the child. Per 3.2.1, the property \"behaves\nas auto\" in this case. The child gets whatever height it gets (from\ncontent or explicit values), and the abspos box sizes to that via\nmax-content.\n\nWhat was happening instead:\n1. Parent has height:max-content, position:absolute. Child has max-height:100%.\n2. To resolve the percentage, WebKit checks if the parent has a definite height.\n3. The out-of-flow special case treats any non-auto height as definite\n   and reads the current logicalHeight() -- which is 0 mid-layout.\n4. Child\u0027s max-height:100% resolves to 0, parent\u0027s max-content is 0.\n\nThe fix changes `!isAuto()` to `isSpecified()` (length/percentage/calc\nonly) in the out-of-flow definite height check. This excludes intrinsic\nkeywords while keeping stretch/fill-available on the existing\n`isResolveableStretchSize` path (which correctly treats resolvable\nstretch as definite).\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-002-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-003-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-003.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-004-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-percentage-child-004.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-abspos-stretch-percentage-child.html: Added.\n  Regression test for rdar://172513516 -- stretch must still provide\n  a definite height for percentage resolution.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-fixedpos-percentage-child-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/intrinsic-height-fixedpos-percentage-child.html: Added.\n* Source/WebCore/rendering/RenderBlock.cpp:\n(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):\n\nCanonical link: https://commits.webkit.org/311084@main\n"
    },
    {
      "commit": "b739bb690b4bf6d202eae33b04618281ef358ec3",
      "tree": "a31d356a786ee4752902280b818c8d8c70d7be3d",
      "parents": [
        "d099054cd35bbae1acf5033556fdd05dce0b3d6a"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 13:48:03 2026"
      },
      "committer": {
        "name": "Claudio Saavedra",
        "email": "csaavedra@igalia.com",
        "time": "Mon Apr 13 13:48:03 2026"
      },
      "message": "[GStreamer][WebRTC] GCC warning in stats collector\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312151\n\nReviewed by Claudio Saavedra.\n\nEnsure we have a fallback return statement in the getDtlsRole closure whatever the GStreamer version\ndetected at build time.\n\n* Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:\n(WebCore::RTCStatsReport::TransportStats::convert):\n\nCanonical link: https://commits.webkit.org/311083@main\n"
    },
    {
      "commit": "d099054cd35bbae1acf5033556fdd05dce0b3d6a",
      "tree": "9dda92df75cb6d7a49ca63870f58e807b755da38",
      "parents": [
        "f050bddbffd1ef7b5ae890923656cfe2f048ccbb"
      ],
      "author": {
        "name": "Simon Pena",
        "email": "spena@igalia.com",
        "time": "Mon Apr 13 13:19:42 2026"
      },
      "committer": {
        "name": "Simon Pena",
        "email": "spena@igalia.com",
        "time": "Mon Apr 13 13:19:42 2026"
      },
      "message": "[GLib] Handle EINTR when writing to eventfd handling SIGXCPU\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312134\n\nReviewed by Adrian Perez de Castro.\n\nFollowing the same approach as IPCSemaphoreUnix.cpp\u0027s signal handler,\nloop when writing to an event fd as part of SIGXCPU handling logic if\nEINTR (another signal interrupted the writing) is received. Any other\ncases are ignored.\n\n* Source/WTF/wtf/linux/RealTimeThreads.cpp:\n(WTF::sigxcpuHandler):\n\nCanonical link: https://commits.webkit.org/311082@main\n"
    },
    {
      "commit": "f050bddbffd1ef7b5ae890923656cfe2f048ccbb",
      "tree": "4ae033a1723d603322eed0013752b07c42f764d2",
      "parents": [
        "d725d8ea8e0b1f6e3bb4d57dc4ea04b918b14f8b"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 12:27:00 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 12:27:00 2026"
      },
      "message": "REGRESSION (308212@main) hp.com: HP Financing logo overlaps with text\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311997\n\u003crdar://problem/174541785\u003e\n\nReviewed by Antti Koivisto.\n\nA replaced element with no intrinsic width/height, just an\naspect ratio and min-height inside flex has its parent flex item sized to 0px (main axis).\nThe replaced element renders at the correct size (91x30 in this case)\nbut overflows its parent flex item (sized to 0px), causing sibling text to overlap.\n\nThe fix: when computing preferred width for such replaced element,\nuse the transferred min/max width from min-height/max-height via the aspect ratio instead of hardcoding 0.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/replaced-element-transferred-size-flex-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/replaced-element-transferred-size-flex.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/support/ratio-2-1.svg: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/support/ratio-3-1.svg: Added.\n* Source/WebCore/rendering/RenderReplaced.cpp:\n(WebCore::RenderReplaced::computeReplacedLogicalWidth const):\n    In the preferred-width path for replaced elements with no intrinsic\n    dimensions, compute transferred min/max from the opposite axis via\n    aspect ratio instead of returning 0.\n\nCanonical link: https://commits.webkit.org/311081@main\n"
    },
    {
      "commit": "d725d8ea8e0b1f6e3bb4d57dc4ea04b918b14f8b",
      "tree": "ffdc1229a46484d8f10c05ba03d7f1985bd65d56",
      "parents": [
        "bb268639645ac417d6007de5f8da057070d663f0"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 12:23:13 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 12:23:13 2026"
      },
      "message": "Incorrect box sizing on span when it has no siblings and `padding-left + margin-left \u003d\u003d\u003d 0`\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d300478\n\u003crdar://problem/162376969\u003e\n\nReviewed by Antti Koivisto.\n\nThe range-based line builder fast path doesn\u0027t handle inline box\nmargins. It\u0027s gated on horizontalMarginBorderAndPadding() being zero,\nbut that sums all components -- negative margin canceling positive\npadding gives zero and incorrectly enables the fast path.\n\nThe fix also checks that marginStart and marginEnd are non-negative.\n\n* LayoutTests/fast/inline/negative-margin-inline-box-geometry-expected.txt: Added.\n* LayoutTests/fast/inline/negative-margin-inline-box-geometry.html: Added.\n* Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.cpp:\n(WebCore::Layout::IntrinsicWidthHandler::IntrinsicWidthHandler):\n* Source/WebCore/layout/formattingContexts/inline/RangeBasedLineBuilder.cpp:\n(WebCore::Layout::RangeBasedLineBuilder::isEligibleForRangeInlineLayout):\n\nCanonical link: https://commits.webkit.org/311080@main\n"
    },
    {
      "commit": "bb268639645ac417d6007de5f8da057070d663f0",
      "tree": "65a7c899d60aa3d8c52c8ee3d11006463ec3f36b",
      "parents": [
        "e60be43b44bb7a2a6dad763e6d73038aefb37ae6"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 12:20:04 2026"
      },
      "committer": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Mon Apr 13 12:20:04 2026"
      },
      "message": "[GStreamer][1.28] Gardening after update from 1.26\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d308957\n\nUnreviewed, update test expectations after the deployment of GStreamer 1.28 in Linux SDKs.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/glib/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt:\n\nCanonical link: https://commits.webkit.org/311079@main\n"
    },
    {
      "commit": "e60be43b44bb7a2a6dad763e6d73038aefb37ae6",
      "tree": "d1c6282025d008e7fa397d15f72cd34fa5e2d294",
      "parents": [
        "8fb1ba555ff603c2016ec4c9f70f3310052040ad"
      ],
      "author": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 12:18:51 2026"
      },
      "committer": {
        "name": "Alan Baradlay",
        "email": "zalan@apple.com",
        "time": "Mon Apr 13 12:18:51 2026"
      },
      "message": "Fieldset with legend is too tall on first layout when it\u0027s a flex item\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311249\n\u003crdar://problem/174301311\u003e\n\nReviewed by Antti Koivisto.\n\nA fieldset\u0027s legend adds extra \"intrinsic border\" to make room above\nthe CSS border. This is set during fieldset layout (layoutExcludedChildren).\n\nWhen a fieldset is a flex item:\n1. constructFlexLayoutItem reads border+padding (intrinsic border is 0)\n2. computeFlexBaseSizeForFlexItem lays out the fieldset (intrinsic border becomes 16px)\n3. The stale border+padding from step 1 is used for the flex base size\n\nThe fix removes the mainAxisBorderAndPadding parameter from\ncomputeFlexBaseSizeForFlexItem. It now reads border+padding after layout,\nand constructFlexLayoutItem reads it after the call too.\n\n* LayoutTests/fast/flexbox/fieldset-as-flex-item-with-legend-expected.txt: Added.\n* LayoutTests/fast/flexbox/fieldset-as-flex-item-with-legend.html: Added.\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::computeFlexBaseSizeForFlexItem):\n(WebCore::RenderFlexibleBox::constructFlexLayoutItem):\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n\nCanonical link: https://commits.webkit.org/311078@main\n"
    },
    {
      "commit": "8fb1ba555ff603c2016ec4c9f70f3310052040ad",
      "tree": "eac3ee2f0fde25314b67b14754df04f156986752",
      "parents": [
        "4ba31008f8ad2fa290c447813c9ac3be974a134e"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 12:03:49 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 12:03:49 2026"
      },
      "message": "CSSOM \"add a CSS style sheet\" should establish preferred style sheet set name at creation time\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312077\nrdar://174586058\n\nReviewed by Antti Koivisto.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nPer [1], the preferred CSS style sheet set name is set when a sheet is\nadded: \"If the title is not the empty string, the alternate flag is unset,\nand preferred CSS style sheet set name is the empty string change the\npreferred CSS style sheet set name to the title.\"\n\nWebKit was determining the preferred name during collectActiveStyleSheets()\nby iterating candidate nodes in tree order, so a dynamically inserted\nstylesheet placed before the first-added one would incorrectly override\nthe preferred name.\n\nFix this by calling establishPreferredStylesheetSetName() at sheet-creation\ntime in InlineStyleSheetOwner::createSheet and\nHTMLLinkElement::initializeStyleSheet, preserving insertion-order semantics.\nThe existing tree-order determination in collectActiveStyleSheets() is\nretained as a fallback for cases where the name was not established at\ncreation time (e.g. still-loading link elements).\n\n[1] https://drafts.csswg.org/cssom/#add-a-css-style-sheet\n\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order-expected.txt: Progression\n* Source/WebCore/dom/InlineStyleSheetOwner.cpp:\n(WebCore::InlineStyleSheetOwner::createSheet):\n* Source/WebCore/html/HTMLLinkElement.cpp:\n(WebCore::HTMLLinkElement::initializeStyleSheet):\n* Source/WebCore/style/StyleScope.cpp:\n(WebCore::Style::Scope::establishPreferredStylesheetSetName):\n* Source/WebCore/style/StyleScope.h:\n\nCanonical link: https://commits.webkit.org/311077@main\n"
    },
    {
      "commit": "4ba31008f8ad2fa290c447813c9ac3be974a134e",
      "tree": "819cd571dca56e1bd9392356ae631dc3705e59ee",
      "parents": [
        "c8676c91582c3851d63c20a646b2dbb9cd76ee26"
      ],
      "author": {
        "name": "Commit Queue",
        "email": "commit-queue@webkit.org",
        "time": "Mon Apr 13 11:59:43 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 11:59:43 2026"
      },
      "message": "Unreviewed, reverting 311063@main.\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312146\n\nbecause reintroduces \u003crdar://29859121\u003e\n\nReverted changeset:\n\n\"Use callback object\u0027s associated Realm in JSCallbackData::invokeCallback per WebIDL spec\"\n\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312092\nhttps://commits.webkit.org/311063@main\nCanonical link: https://commits.webkit.org/311076@main\n"
    },
    {
      "commit": "c8676c91582c3851d63c20a646b2dbb9cd76ee26",
      "tree": "5a84abc9bb258b3b3f62be12459a0d747169a2df",
      "parents": [
        "2dd7e967bacc31172fcf228e24af776f1e2546b0"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 11:55:03 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 11:55:03 2026"
      },
      "message": "Reset CJK encoding state appropriately\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312106\n\nReviewed by Chris Dumez.\n\nWe did not reset state correctly for CJK encodings:\n\n1. decodeCommon: Clear m_prependedByte on fatal early return. When\n   byteParser() sets m_prependedByte (pushing back an ASCII byte) and\n   returns error, the stopOnError early return cleared m_lead but not\n   m_prependedByte, leaking it into the next decode() call.\n\n2. eucJPDecode: Reset m_jis0212 unconditionally when lead is non-zero.\n   The spec resets jis0212 at the start of lead-byte processing\n   regardless of whether the trail byte is valid, but the code only\n   reset it inside the successful range check. Also reset m_jis0212 on\n   flush.\n\n3. iso2022JPDecode: Fix flush handler for EscapeStart/Escape/TrailByte\n   states. TrailByte no longer falls through to EscapeStart (they\u0027re\n   separate states with different EOF behavior). Escape now reprocesses\n   the lead byte through byteParser in the output state instead of\n   appending it as a literal character. All ISO-2022-JP state is reset\n   after flush.\n\n4. iso2022JPDecode: Fix m_iso2022JPSecondPrependedByte error handling.\n   The outer condition had \u0026\u0026 stopOnError, silently swallowing errors\n   in non-fatal mode. Removed to match the m_prependedByte pattern.\n\nCanonical link: https://commits.webkit.org/311075@main\n"
    },
    {
      "commit": "2dd7e967bacc31172fcf228e24af776f1e2546b0",
      "tree": "a68debfc80eadfe624e4c312934f5df63a948838",
      "parents": [
        "a30d9c11bed7b232815b694f5a1867c97abcc9b8"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 11:53:09 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 11:53:09 2026"
      },
      "message": "document.styleSheets and shadowRoot.styleSheets incorrectly include adopted style sheets\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312074\nrdar://174583340\n\nReviewed by Antti Koivisto.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nPer CSSOM §6.2 [1], the spec defines two separate lists:\n\n\"document or shadow root CSS style sheets\" — which contains:\n  \"Any CSS style sheets created from HTTP Link headers, in header order\"\n  \"Any CSS style sheets associated with the DocumentOrShadowRoot, in\n    tree order\"\n\n\"final CSS style sheets\" — which contains:\n  \"The document or shadow root CSS style sheets.\"\n  \"The contents of DocumentOrShadowRoot\u0027s adoptedStyleSheets\u0027 backing\n    list, in array order.\"\n\nThe styleSheets attribute (StyleSheetList) should reflect the \"document\nor shadow root CSS style sheets\", not the \"final CSS style sheets\".\n\nStyleScope::collectActiveStyleSheets() was appending adopted sheets to\nboth the style resolution list and the StyleSheetList backing store.\nRemove the erroneous append to styleSheetsForStyleSheetsList.\n\n[1] https://drafts.csswg.org/cssom/#css-style-sheet-collections\n\nThis patch also add new test cases in context of ShadowRoot to ensure that\nwe don\u0027t regress anything.\n\nTests: imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-shadow-with-style-recalc.html\n       imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-shadow.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-shadow-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-shadow-with-style-recalc-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-shadow-with-style-recalc.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-shadow.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-constructable-with-style-recalc-expected.txt:\n* Source/WebCore/style/StyleScope.cpp:\n(WebCore::Style::Scope::collectActiveStyleSheets):\n\nCanonical link: https://commits.webkit.org/311074@main\n"
    },
    {
      "commit": "a30d9c11bed7b232815b694f5a1867c97abcc9b8",
      "tree": "c6489afc02bb4036ef7ed99795b3227a87e3e38a",
      "parents": [
        "2f0b388c06d6dbc23e36aefdb5a0c10b765dfe42"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 11:51:25 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 11:51:25 2026"
      },
      "message": "Disallow vendor-prefixed and allow other properties in highlight pseudo-elements\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312085\nrdar://174590593\n\nReviewed by Antti Koivisto.\n\nThe CSS Pseudo 4 spec [1] states that vendor-prefixed properties such as\n-webkit-text-fill-color are not applicable to highlight pseudo-elements.\n\nThis adds a PropertyAllowlist for highlight pseudos (::selection,\n::highlight(), ::spelling-error, ::grammar-error, ::target-text) with\nthe spec-defined set of applicable properties: color, background-color,\ntext-decoration and sub-properties, text-shadow, stroke-color,\nstroke-width, and custom properties.\n\nAlso consolidates propertyAllowlistForPseudoElement() and\ndeterminePropertyAllowlist() to use switch statements instead of\nrepeated if-chains.\n\n[1] https://drafts.csswg.org/css-pseudo-4/#highlight-styling\n\n* LayoutTests/TestExpectations: Progressions\n* LayoutTests/platform/ios/TestExpectations: Skip Test on iOS\n* LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-cascade/highlight-cascade-007-expected.txt: Ditto\n* Source/WebCore/style/PropertyAllowlist.cpp:\n(WebCore::Style::propertyAllowlistForPseudoElement):\n(WebCore::Style::isValidHighlightStyleProperty):\n* Source/WebCore/style/PropertyAllowlist.h:\n* Source/WebCore/style/PropertyCascade.cpp:\n(WebCore::Style::PropertyCascade::addMatch):\n* Source/WebCore/style/RuleData.cpp:\n(WebCore::Style::determinePropertyAllowlist):\n* Source/WebCore/style/RuleData.h:\n\nCanonical link: https://commits.webkit.org/311073@main\n"
    },
    {
      "commit": "2f0b388c06d6dbc23e36aefdb5a0c10b765dfe42",
      "tree": "5e4ea94957d1262511fc32d5cae10200ad6886a8",
      "parents": [
        "66c0b678a65f5e9bdd76f466d40ceb38c68b8285"
      ],
      "author": {
        "name": "Adrian Taylor",
        "email": "adrian_taylor@apple.com",
        "time": "Mon Apr 13 11:35:51 2026"
      },
      "committer": {
        "name": "Adrian Taylor",
        "email": "adrian_taylor@apple.com",
        "time": "Mon Apr 13 11:35:51 2026"
      },
      "message": "Enable ImportCxxMembersLazily\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d309671\nrdar://172277778\n\nReviewed by Richard Robinson.\n\nThis may significantly decrease Swift/C++ compilation times by only analyzing\ntemplates used from Swift.\n\nThis may benefit:\n\nrdar://170319493 - general build speed/RAM usage\nrdar://169959113 - unable to add Swift annotations to base classes\nCanonical link: https://commits.webkit.org/311072@main\n"
    },
    {
      "commit": "66c0b678a65f5e9bdd76f466d40ceb38c68b8285",
      "tree": "b5e9b95e1a882eeb3cfc6d19eeea4f9f1e8ffb29",
      "parents": [
        "0b3ee61822c9e7822077ef8f58880057cf79a3d2"
      ],
      "author": {
        "name": "Youenn Fablet",
        "email": "youenn@apple.com",
        "time": "Mon Apr 13 11:34:25 2026"
      },
      "committer": {
        "name": "Youenn Fablet",
        "email": "youennf@gmail.com",
        "time": "Mon Apr 13 11:34:25 2026"
      },
      "message": "Handle WebExtension pending tasks when worker gets stopped\nrdar://174046043\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311938\n\nReviewed by Chris Dumez.\n\nWe usually queue a task when going back to a worker from IPC.\nThis handles automatically the case of worker being terminated.\nFor web extension workers, we need to explicitly check the case of worker being terminated.\nWe do so in callWithArguments.\n\nCovered by a test which is creating a web extension service worker that is doing nothing but triggering a pending task everytime the previous one is completed.\nWe then terminate the service worker, the test is passing as long as the web process is not crashing.\n\nTest: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIExtension.mm\n* Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.cpp:\n(WebKit::callWithArguments):\n* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIExtension.mm:\n(TestWebKitAPI::TEST(WKWebExtensionAPIExtension, HandlePendingExtensionTasksWhileStopped)):\n(TestWebKitAPI::TEST(WKWebExtensionAPIExtension, GetViewsExcludesServiceWorkerBackground)): Deleted.\n\nCanonical link: https://commits.webkit.org/311071@main\n"
    },
    {
      "commit": "0b3ee61822c9e7822077ef8f58880057cf79a3d2",
      "tree": "5f5262c277bfd33604fc312075e689bada76fc38",
      "parents": [
        "0ec2077a42807cf913966df74aac0820454ff3d6"
      ],
      "author": {
        "name": "Adrian Perez de Castro",
        "email": "aperez@igalia.com",
        "time": "Mon Apr 13 11:32:16 2026"
      },
      "committer": {
        "name": "Adrian Perez de Castro",
        "email": "aperez@igalia.com",
        "time": "Mon Apr 13 11:32:16 2026"
      },
      "message": "[GTK] Update Serbian (sr.po) translation\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312036\n\nUnreviewed.\n\n* Source/WebCore/platform/gtk/po/sr.po:\n\nCanonical link: https://commits.webkit.org/311070@main\n"
    },
    {
      "commit": "0ec2077a42807cf913966df74aac0820454ff3d6",
      "tree": "4df5c3caa3f83a80295aaa2c22e0cf9e8327d999",
      "parents": [
        "30043d97373621d58542627e207e517b218ee4c9"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 10:55:12 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 10:55:12 2026"
      },
      "message": "Remove LegacyNativeDictionaryRequiredInterfaceNullability from File System code\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312008\n\nReviewed by Youenn Fablet.\n\nWe might remove nullability here altogether at some point, but for now\na pure refactoring to get rid of the legacy code path.\n\nCanonical link: https://commits.webkit.org/311069@main\n"
    },
    {
      "commit": "30043d97373621d58542627e207e517b218ee4c9",
      "tree": "77e5ffa2a4ffc31d08844eb1764904da52c8078d",
      "parents": [
        "5acc6d04c3d2024847eef143596d939582a3f9b4"
      ],
      "author": {
        "name": "Fujii Hironori",
        "email": "fujii@igalia.com",
        "time": "Mon Apr 13 10:48:13 2026"
      },
      "committer": {
        "name": "Fujii Hironori",
        "email": "fujii@igalia.com",
        "time": "Mon Apr 13 10:48:13 2026"
      },
      "message": "Replace setTimeout with requestAnimationFrame in scrollbars/zero-height-crash.html\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311295\n\nReviewed by Carlos Alberto Lopez Perez.\n\n310503@main added a new test scrollbars/zero-height-crash.html which used\nsetTimeout to wait for the async scrollbar painted. requestAnimationFrame is\nbetter in the case.\n\n* LayoutTests/scrollbars/zero-height-crash.html:\n\nCanonical link: https://commits.webkit.org/311068@main\n"
    },
    {
      "commit": "5acc6d04c3d2024847eef143596d939582a3f9b4",
      "tree": "424d45e3a7cfa8187d31a71ff049999cdb06ba1e",
      "parents": [
        "111b14596e3d069b1f6d6903f93f8234e6e7b0aa"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 10:39:36 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 10:39:36 2026"
      },
      "message": "Remove LegacyNativeDictionaryRequiredInterfaceNullability from WebTransport code\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312042\n\nReviewed by Youenn Fablet.\n\nCode cleanup.\n\nCanonical link: https://commits.webkit.org/311067@main\n"
    },
    {
      "commit": "111b14596e3d069b1f6d6903f93f8234e6e7b0aa",
      "tree": "9a9baf6cee4901f936de6f813d6daa8bbe7ef212",
      "parents": [
        "10e34010e28d267aeb51d1ab926244f6c91187b5"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 10:37:39 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 10:37:39 2026"
      },
      "message": "Remove LegacyNativeDictionaryRequiredInterfaceNullability from WebCodecs code\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311920\n\nReviewed by Brent Fulgham and Youenn Fablet.\n\nMigrate to the modern bindings code.\n\nCanonical link: https://commits.webkit.org/311066@main\n"
    },
    {
      "commit": "10e34010e28d267aeb51d1ab926244f6c91187b5",
      "tree": "9e7940e875c6b78b3220ccb7d7a8a2482f8f3cbe",
      "parents": [
        "c446a0f81300c097ee5be9b75c292e0175e6fa87"
      ],
      "author": {
        "name": "Youenn Fablet",
        "email": "youenn@apple.com",
        "time": "Mon Apr 13 10:17:26 2026"
      },
      "committer": {
        "name": "Youenn Fablet",
        "email": "youennf@gmail.com",
        "time": "Mon Apr 13 10:17:26 2026"
      },
      "message": "WebRTC VP9 encoders should propagate frame colorspace\nrdar://174008548\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311410\n\nReviewed by Eric Carlson.\n\nWhen sending a WebCore VideoFrame in RealtimeOutgoingVideoSource::sendFrame, we make sure to populate the webrtc color space.\nIt is then up to each encoder to encode the color space so that the remote side will get the propoer information.\nThe VP9 encoder is supporting this, we add a test to validate this.\nOther encoders, like H264/H265 might need updates to support this.\nLike done for LibWebRTCVPXInternalVideoEncoder::encode, when encoding RGB frames, we use a BT709 color space as the encoder will do a conversion to YUV.\nCovered by added test.\n\nCanonical link: https://commits.webkit.org/311065@main\n"
    },
    {
      "commit": "c446a0f81300c097ee5be9b75c292e0175e6fa87",
      "tree": "8348588f557c9735c11c9c6346d0a53a0e3a3e54",
      "parents": [
        "d6ac3a6af378fd0a654f53a088eb8169e7d548fd"
      ],
      "author": {
        "name": "Simon Pena",
        "email": "spena@igalia.com",
        "time": "Mon Apr 13 10:16:15 2026"
      },
      "committer": {
        "name": "Simon Pena",
        "email": "spena@igalia.com",
        "time": "Mon Apr 13 10:16:15 2026"
      },
      "message": "[Linux] Use QOS::UserInitiated for NetworkProcess\u0027 Cache Storage thread\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311975\n\nReviewed by Carlos Garcia Campos.\n\nThis conditionally uses QOS::UserInitiated on Linux for the NetworkProcess\u0027\nCache Storage thread, which maps into SCHED_OTHER. Keeping UserInteractive,\nwhich maps to SCHED_RR, would consistently hit RT limits under moderate load.\n\nTested on a debug build, confirming that the NetworkProcess thread is no\nlonger promoted (nor subsequently demoted, as before)\n\n* Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp:\n(WebKit::NetworkCache::Storage::Storage):\n\nCanonical link: https://commits.webkit.org/311064@main\n"
    },
    {
      "commit": "d6ac3a6af378fd0a654f53a088eb8169e7d548fd",
      "tree": "71fa596f2ef9ca75a0ea5bc17dc9d2658640f1f2",
      "parents": [
        "c31e04a0bff8690a8bbf5d97603e3398ffc5f433"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 10:12:05 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 10:12:05 2026"
      },
      "message": "Use callback object\u0027s associated Realm in JSCallbackData::invokeCallback per WebIDL spec\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312092\nrdar://174595076\n\nReviewed by Yusuke Suzuki.\n\nAlign JSCallbackData::invokeCallback with the WebIDL \"call a user\nobject\u0027s operation\" algorithm [1].\n\nPer step 4, \"Let realm be O\u0027s associated Realm\" — use the callback\nobject\u0027s Realm (via realmMayBeNull()) for error creation, property\nlookups, and invocation instead of the stored globalObject from where\ncreateTreeWalker/createNodeIterator was called.\n\nPer step 8, \"Prepare to run script with relevant settings\" — check\nif the callback Realm\u0027s responsible document is fully active before\ninvoking. If not (e.g., detached iframe), throw a TypeError.\n\nAdditionally, re-wrap cross-Realm TypeErrors after native function\ndispatch, since JSC\u0027s Interpreter::executeCallImpl uses\nfunction-\u003erealm() for native calls rather than the caller-provided\nglobalObject.\n\n[1] https://webidl.spec.whatwg.org/#call-a-user-objects-operation\n\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-expected.txt: Progressions\n* LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-expected.txt: Ditto\n* Source/WebCore/bindings/js/JSCallbackData.cpp:\n(WebCore::JSCallbackData::invokeCallback):\n\n\u003e Other Test Changes Summary:\n* LayoutTests/fast/dom/Geolocation/callback-to-deleted-context.html:\n  Updated to expect no callbacks invoked (testPassed instead of testFailed),\n  matching the test\u0027s own description that callbacks to deleted contexts\n  should not be made. Previously contradictory — description said callbacks\n  should not fire, but code treated firing as PASS.\n* LayoutTests/fast/dom/Geolocation/callback-to-deleted-context-expected.txt:\n  Updated expected output to reflect correct behavior.\n* LayoutTests/fast/frames/frame-window-as-callback.html:\n  Replaced e.constructor.constructor(\"debug(document.result)\")() trick with\n  direct e.constructor \u003d\u003d\u003d f.contentWindow.TypeError check. The old approach\n  broke because debug() now executes in the iframe\u0027s context (callback\u0027s\n  realm) and writes to the wrong document.\n* LayoutTests/fast/frames/frame-window-as-callback-expected.txt:\n  Updated expected output.\n* LayoutTests/fast/frames/resources/wrong-global-object.html:\n  No longer needed for the realm check, but kept as the iframe source.\n* LayoutTests/imported/w3c/web-platform-tests/domxpath/resolver-callback-interface-cross-realm.tentative.html:\n  Fixed incorrect expectation: changed evaluateGlobalObject.TypeError to\n  resolverGlobalObject.TypeError per WebIDL spec step 4 — the error should\n  be from the callback object\u0027s (resolver\u0027s) associated Realm.\n* LayoutTests/imported/w3c/web-platform-tests/domxpath/resolver-callback-interface-cross-realm.tentative-expected.txt:\n  All 5 subtests now PASS (previously 3 PASS, 2 FAIL).\n\nCanonical link: https://commits.webkit.org/311063@main\n"
    },
    {
      "commit": "c31e04a0bff8690a8bbf5d97603e3398ffc5f433",
      "tree": "1cc4681f8612ee0cb2cc51120646cd922040221e",
      "parents": [
        "0d88193488f8512f5437263af919f2b41a52bddf"
      ],
      "author": {
        "name": "Vitaly Dyachkov",
        "email": "vitaly@igalia.com",
        "time": "Mon Apr 13 10:11:01 2026"
      },
      "committer": {
        "name": "Vitaly Dyachkov",
        "email": "vitaly@igalia.com",
        "time": "Mon Apr 13 10:11:01 2026"
      },
      "message": "[WPE] Use `wpeToplevelWaylandGetVisibleViewUnderTouch()` for touch cancel events\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311926\n\nReviewed by Carlos Garcia Campos.\n\nCurrently, `wpeToplevelWaylandGetVisibleFocusedView()` is used which is\nprobably copy/pasted from keyboard listener.\n\n* Source/WebKit/WPEPlatform/wpe/wayland/WPEWaylandSeat.cpp:\n\nCanonical link: https://commits.webkit.org/311062@main\n"
    },
    {
      "commit": "0d88193488f8512f5437263af919f2b41a52bddf",
      "tree": "2bf88e27ea9e2fd3c79293b146105a9d1842ae5d",
      "parents": [
        "d8c4218e45f1c62c2fb2cdd048e6c7c8304943ab"
      ],
      "author": {
        "name": "Nikolas Zimmermann",
        "email": "nzimmermann@igalia.com",
        "time": "Mon Apr 13 10:09:37 2026"
      },
      "committer": {
        "name": "Nikolas Zimmermann",
        "email": "zimmermann@kde.org",
        "time": "Mon Apr 13 10:09:37 2026"
      },
      "message": "[run-benchmark] Add MotionMark 1.3.1 composition plans for testing GPU compositing\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d310704\n\nReviewed by Carlos Alberto Lopez Perez.\n\nAdd new benchmark plans that run a focused set of composited tests\n(translate3d) to measure GPU compositing performance. This includes\ncomposited variants of DOM particles, bouncing CSS shapes (with blend,\nfilter, and clip-path), leaves, and transform tests.\n\nCleanup the various MotionMark plans, and alter the variants.\nWe left those variants untouched (not used by GTK/WPE ports):\n - motionmark1.0\n - motionmark1.1\n - motionmark1.2.1\n - motionmark1.3\n - motionmark1.3.1\n\nWe delete the following variants previously used by GTK/WPE ports:\n - motionmark1.3-60fps (only used by GTK/desktop, will be migrated)\n - motionmark1.3.1-15fps (no plans to continue 15 FPS testing)\n\nWe keep the following variants used by GTK/WPE ports:\n - motionmark1.3-15fps (continue to use for testing rpi4 on WPE)\n - motionmark1.3.1-30fps (new - that we plan to run for rpi4/WPE)\n - motionmark1.3.1-60fps (we\u0027ll switch motionm\n\nWe add the following new ones (to be used by our ports):\n - motionmark-composition-1.3.1 (only for interactive testing)\n - motionmark-composition-1.3.1-30fps (for WPE/rpi4)\n - motionmark-composition-1.3.1-60fps (for GTK/desktop)\n\n* Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py:\n(BenchmarkRunner.__init__):\n* Tools/Scripts/webkitpy/benchmark_runner/data/patches/extra/MotionMark-Composition.patch: Added.\n* Tools/Scripts/webkitpy/benchmark_runner/data/patches/extra/MotionMark1.3.1-30FPS.patch: Added.\n* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark-composition-1.3.1-30fps.plan: Added.\n* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark-composition-1.3.1-60fps.plan: Added.\n* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark-composition-1.3.1.plan: Added.\n* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.3-60fps.plan: Removed.\n* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.3.1-15fps.plan: Removed.\n* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.3.1-30fps.plan: Added.\n\nCanonical link: https://commits.webkit.org/311061@main\n"
    },
    {
      "commit": "d8c4218e45f1c62c2fb2cdd048e6c7c8304943ab",
      "tree": "047100170861aac6315a1749da4d2e4a5923adfd",
      "parents": [
        "bdc29c5dbbadd66adba2a3d90bd41003945cff39"
      ],
      "author": {
        "name": "Yusuke Suzuki",
        "email": "ysuzuki@apple.com",
        "time": "Mon Apr 13 09:35:21 2026"
      },
      "committer": {
        "name": "Yusuke Suzuki",
        "email": "ysuzuki@apple.com",
        "time": "Mon Apr 13 09:35:21 2026"
      },
      "message": "[WTF] Upgrade SIMDUTF to 8.2.0\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312110\nrdar://174620790\n\nReviewed by Sam Weinig.\n\nUpgrading SIMDUTF version to 8.2.0.\n\nCanonical link: https://commits.webkit.org/311060@main\n"
    },
    {
      "commit": "bdc29c5dbbadd66adba2a3d90bd41003945cff39",
      "tree": "6d8e83bf07b03e76118ae6ebe1022c6de4e3d2df",
      "parents": [
        "e46c5005ecf3d56bf07f83b3889e2f8cd6aeb783"
      ],
      "author": {
        "name": "Carlos Garcia Campos",
        "email": "cgarcia@igalia.com",
        "time": "Mon Apr 13 09:26:52 2026"
      },
      "committer": {
        "name": "Carlos Garcia Campos",
        "email": "cgarcia@igalia.com",
        "time": "Mon Apr 13 09:26:52 2026"
      },
      "message": "[WPE] Do not try to enable MSAA for tile buffers\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311637\n\nReviewed by Nikolas Zimmermann.\n\nWe create the SkSurface for tile buffers with an external texture\ncreated with BitmapTexture, but MSAA doesn\u0027t work for surfaces created\nfrom an external texture.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedTileBuffer.cpp:\n(WebCore::CoordinatedAcceleratedTileBuffer::tryEnsureSurface):\n\nCanonical link: https://commits.webkit.org/311059@main\n"
    },
    {
      "commit": "e46c5005ecf3d56bf07f83b3889e2f8cd6aeb783",
      "tree": "e2eeed2319e70dd8ea8cbc211590cd7a17cb2c24",
      "parents": [
        "87ee373497a302ba1bb60904474d2c7d037ce31b"
      ],
      "author": {
        "name": "Carlos Alberto Lopez Perez",
        "email": "clopez@igalia.com",
        "time": "Mon Apr 13 09:16:35 2026"
      },
      "committer": {
        "name": "Carlos Alberto Lopez Perez",
        "email": "clopez@igalia.com",
        "time": "Mon Apr 13 09:16:35 2026"
      },
      "message": "REGRESSION(310666@main): requestAnimationFrame and requestVideoFrameCallback callbacks are not fired in isolated worlds when JS is disabled in the main page.\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311810\n\nReviewed by Ryosuke Niwa.\n\n310666@main added a new canExecuteScripts(AboutToExecuteScript) check to\nserviceRequestAnimationFrameCallbacks and serviceRequestVideoFrameCallbacks.\nThis check returns false if JS is disabled in the main page, blocking all\nrAF and requestVideoFrameCallback callbacks.\n\nHowever canExecuteScripts() returns true for non-normal worlds, but since the\ncheck was done without passing a world, isolated world callbacks were incorrectly\nblocked.\n\nThis patch moves the canExecuteScripts() check inside the loop and passes the\nDOMWrapperWorld obtained from each callback JSDOMGlobalObject, so that\nisolated world callbacks (e.g. from browser extensions or injected scripts)\ncan run even when JS is disabled in the main page.\n\nTests: fast/animation/request-animation-frame-in-isolated-world-with-javascript-disabled.html\n       fast/animation/request-video-frame-callback-in-isolated-world-with-javascript-disabled.html\n\n* LayoutTests/fast/animation/request-animation-frame-in-isolated-world-with-javascript-disabled-expected.html: Added.\n* LayoutTests/fast/animation/request-animation-frame-in-isolated-world-with-javascript-disabled.html: Added.\n* LayoutTests/fast/animation/request-video-frame-callback-in-isolated-world-with-javascript-disabled-expected.html: Added.\n* LayoutTests/fast/animation/request-video-frame-callback-in-isolated-world-with-javascript-disabled.html: Added.\n* LayoutTests/platform/win/TestExpectations:\n* Source/WebCore/dom/ScriptedAnimationController.cpp:\n(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):\n* Source/WebCore/html/HTMLVideoElement.cpp:\n(WebCore::HTMLVideoElement::serviceRequestVideoFrameCallbacks):\n\nCanonical link: https://commits.webkit.org/311058@main\n"
    },
    {
      "commit": "87ee373497a302ba1bb60904474d2c7d037ce31b",
      "tree": "3a06cfa7590b4ff0dc066ea93294b82eeda51296",
      "parents": [
        "7201bfe21bffe6ff03741aa76504d1f2fe939f80"
      ],
      "author": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 08:59:44 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 08:59:44 2026"
      },
      "message": "innerText getter: fix blank line handling for \u003cp\u003e and headings, and strip trailing block newlines\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311808\n\nReviewed by Darin Adler.\n\nAlign the innerText getter with the WHATWG spec and match Chrome/Firefox\nbehavior, gated behind a new EmitsNewlinesPerInnerTextSpec TextIterator\nbehavior flag so that other TextIterator consumers (accessibility,\nselection, test runners) are unaffected.\n\nThe flag enables three behavioral changes:\n\n1. shouldEmitExtraNewlineForNode() unconditionally returns true for \u003cp\u003e\n   and false for \u003ch1\u003e-\u003ch6\u003e. The spec gives \u003cp\u003e a required line break\n   count of 2 regardless of margin, while headings use 1. Without the\n   flag, the original margin-based heuristic is preserved.\n\n2. representNodeOffsetZero() emits an extra newline *before* \u003cp\u003e\n   elements, not just after. A new m_consecutiveNewlineCount counter\n   prevents over-emitting when line breaks from adjacent blocks already\n   provide enough newlines.\n\n3. plainText() strips trailing block-boundary newlines from the result.\n   TextIterator now tracks m_isBlockNewline to distinguish newlines\n   emitted by exitNode() from intentional ones (e.g. \u003cbr\u003e), so only\n   the former are stripped.\n\nTo avoid rebaselining hundreds of layout tests whose text dump would\nchange, WebFrame::frameTextForTesting() (WebKit2) and a new\nWebFrame._plainTextForTesting (WebKitLegacy) now call plainText()\ndirectly without the flag, preserving the old output for test runners.\n\n* LayoutTests/accessibility/combobox/aria-combobox-hierarchy-expected.txt:\n* LayoutTests/editing/pasteboard/line-feed-between-br-and-b-should-not-reorder-pasted-content-expected.txt:\n* LayoutTests/fast/dom/NodeList/childNodes-reverse-iteration-expected.txt:\n* LayoutTests/fast/dom/NodeList/childNodes-reverse-iteration.html:\n* LayoutTests/fast/dom/inner-text-001-expected.txt:\n* LayoutTests/fast/dom/inner-text-first-letter-expected.txt:\n* LayoutTests/fast/dom/inner-text-first-letter.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/getter-tests.js:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-display-none-load-event-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-display-none-load-event.html:\n* LayoutTests/platform/glib/accessibility/combobox/aria-combobox-hierarchy-expected.txt:\n* Source/WebCore/dom/Element.cpp:\n(WebCore::Element::innerText):\n* Source/WebCore/editing/TextIterator.cpp:\n(WebCore::TextIterator::advance):\n(WebCore::shouldEmitExtraNewlineForNode):\n(WebCore::TextIterator::representNodeOffsetZero):\n(WebCore::TextIterator::exitNode):\n(WebCore::TextIterator::emitCharacter):\n(WebCore::TextIterator::emitText):\n(WebCore::plainText):\n* Source/WebCore/editing/TextIterator.h:\n(WebCore::TextIterator::isBlockNewline const):\n* Source/WebCore/editing/TextIteratorBehavior.h:\n* Source/WebCore/editing/cocoa/EditingHTMLConverter.h:\n* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:\n(WebKit::WebFrame::frameTextForTesting):\n* Source/WebKitLegacy/mac/WebView/WebFrame.mm:\n(-[WebFrame _plainTextForTesting]):\n* Source/WebKitLegacy/mac/WebView/WebFramePrivate.h:\n* Tools/DumpRenderTree/mac/DumpRenderTree.mm:\n(dumpFramesAsText):\n\nCanonical link: https://commits.webkit.org/311057@main\n"
    },
    {
      "commit": "7201bfe21bffe6ff03741aa76504d1f2fe939f80",
      "tree": "66b6b7507a30343570bb43cbfe57f0fe97a77366",
      "parents": [
        "98b109f66dfd08d124573eac7e9aaec8cdd733c7"
      ],
      "author": {
        "name": "Adrian Taylor",
        "email": "adrian_taylor@apple.com",
        "time": "Mon Apr 13 08:57:55 2026"
      },
      "committer": {
        "name": "Adrian Taylor",
        "email": "adrian_taylor@apple.com",
        "time": "Mon Apr 13 08:57:55 2026"
      },
      "message": "Revert unnecessary swift ifdefs\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d305187\nrdar://167834060\n\nReviewed by Richard Robinson.\n\nThis removes ifdefs which were previously added as a workaround for a swift\ncompiler bug. That\u0027s been fixed in recent SDKs.\n\nCanonical link: https://commits.webkit.org/311056@main\n"
    },
    {
      "commit": "98b109f66dfd08d124573eac7e9aaec8cdd733c7",
      "tree": "28ff949510401921670cf8b21ab668c221e839a9",
      "parents": [
        "e5d4f4568fdeda62d3855fff8da75d118e810250"
      ],
      "author": {
        "name": "Per Arne Vollan",
        "email": "pvollan@apple.com",
        "time": "Mon Apr 13 08:56:37 2026"
      },
      "committer": {
        "name": "Per Arne Vollan",
        "email": "pvollan@apple.com",
        "time": "Mon Apr 13 08:56:37 2026"
      },
      "message": "Remove CPU checks in WebContent process sandbox for arm64 on macOS\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311711\nrdar://174299099\n\nReviewed by Sihui Liu.\n\nAfter \u003chttps://commits.webkit.org/310762@main\u003e, which added an Intel specific sandbox,\nwe can remove CPU checks in the sandbox for arm64.\n\nThis was first landed in \u003chttps://commits.webkit.org/310823@main\u003e, and this patch is\nthe same, with an additional build fix.\n\n* Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:\n\nCanonical link: https://commits.webkit.org/311055@main\n"
    },
    {
      "commit": "e5d4f4568fdeda62d3855fff8da75d118e810250",
      "tree": "fe3f72a80c94be4a30243d9c214d2e1b015d5b3a",
      "parents": [
        "d2c22029e468944bffdf230921dab80d5c7bfb83"
      ],
      "author": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 08:31:15 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 08:31:15 2026"
      },
      "message": "NavigationDisabler should not block navigations in unrelated frames\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312044\nrdar://174592318\n\nReviewed by Anne van Kesteren.\n\nNavigationDisabler was storing its disable count on the main frame,\nmaking it page-global. This meant that when shouldClose() dispatched\nbeforeunload for one iframe, its NavigationDisabler would block\nnavigations in all other iframes on the page, including siblings. If\nJavaScript happened to schedule a navigation on a sibling iframe during\nthis window (e.g. via the beforeunload handler), the navigation would be\nsilently dropped.\n\nFix by storing the disable count on the specific frame rather than the\nmain frame. isNavigationAllowed() now checks only the target frame\u0027s own\ndisable count. Sibling frames, ancestor frames, and descendant frames\nare all unaffected.\n\nThis matches Chromium\u0027s FrameNavigationDisabler, which sets\nnavigation_disable_count_ on the specific frame being navigated and\nchecks only that frame\u0027s count in IsNavigationAllowed().\n\nTests: imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/navigation-during-beforeunload.html\n       imported/w3c/web-platform-tests/html/meta/refresh-time.html\n\n* LayoutTests/fast/events/before-unload-sibling-frame-expected.txt:\n* LayoutTests/fast/events/before-unload-sibling-frame.html:\nUpdated test: navigating a sibling iframe during beforeunload should now\nsucceed, not be blocked.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/navigation-during-beforeunload-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/navigation-during-beforeunload.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/support/navigation-during-beforeunload-container.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/support/navigation-target.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/support/navigation-target2.html: Added.\nWPT test with three subtests: sibling navigation (not blocked), self\nnavigation (blocked), and parent navigation (not blocked). The parent\nnavigation test uses a container iframe so the test harness isn\u0027t\nnavigated away. This test is passing in Chrome and Firefox.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/refresh-time-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/refresh-time.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/gotRefreshed.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/refresh1.99.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/refresh1.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/refresh1dotdot9dot.html: Added.\nImported WPT test from upstream that was failing due to this bug in\nshipping Safari.\n\n* Source/WebCore/loader/NavigationDisabler.h:\n(WebCore::NavigationDisabler::NavigationDisabler):\n(WebCore::NavigationDisabler::~NavigationDisabler):\n(WebCore::NavigationDisabler::isNavigationAllowed):\n\nCanonical link: https://commits.webkit.org/311054@main\n"
    },
    {
      "commit": "d2c22029e468944bffdf230921dab80d5c7bfb83",
      "tree": "4addb6890da396e23f6e1f4d04f140f62018e959",
      "parents": [
        "a677f7ec2534fb088e0e2ef212a680c4811ea63c"
      ],
      "author": {
        "name": "Kiet Ho",
        "email": "kiet.ho@apple.com",
        "time": "Mon Apr 13 07:49:02 2026"
      },
      "committer": {
        "name": "Kiet Ho",
        "email": "kiet.ho@apple.com",
        "time": "Mon Apr 13 07:49:02 2026"
      },
      "message": "[css-anchor-position-1] Replace AnchorPositionedKey with WeakStyleable\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311690\n\nReviewed by Antti Koivisto.\n\nMany HashMaps use AnchorPositionedKey as the hash key of anchor-positioned\nelements. The key includes an Element pointer and an optional pseudo-element\nidentifier - identical to a Styleable, but it can be used as a hash key\n(Styleable is not hash-key-able).\n\nNow that 307912@main added hashing support for WeakStyleable (a variation of\nStyleable that holds a weak pointer to the Element), this patch replaces\nAnchorPositionedKey with Styleable.\n\nThere\u0027re some remaining places where anchor-positioned elements are represented\nby their Element pointer, which will get in the way of supporting more\nanchor-positioned pseudo elements beside ::before/::after. This will be fixed in\nlater patches.\n\nTested by the existing anchor positioning test suite.\n\n* Source/WebCore/style/AnchorPositionEvaluator.cpp:\n(WebCore::Style::AnchorPositionEvaluator::findAnchorForAnchorFunctionAndAttemptResolution):\n(WebCore::Style::AnchorPositionEvaluator::updateAnchorPositioningStatesAfterInterleavedLayout):\n(WebCore::Style::AnchorPositionEvaluator::updateAnchorPositionedStateForDefaultAnchorAndPositionVisibility):\n(WebCore::Style::AnchorPositionEvaluator::makeAnchorPositionedForAnchorMap):\n(WebCore::Style::AnchorPositionEvaluator::defaultAnchorForBox):\n(WebCore::Style::AnchorPositionEvaluator::recordLastSuccessfulPositionOptions):\n(WebCore::Style::AnchorPositionEvaluator::keyForElementOrPseudoElement): Deleted.\n* Source/WebCore/style/AnchorPositionEvaluator.h:\n* Source/WebCore/style/StyleScope.cpp:\n(WebCore::Style::Scope::lastSuccessfulPositionOptionIndexFor):\n(WebCore::Style::Scope::setLastSuccessfulPositionOptionIndexMap):\n(WebCore::Style::Scope::forgetLastSuccessfulPositionOptionIndex):\n* Source/WebCore/style/StyleScope.h:\n* Source/WebCore/style/StyleTreeResolver.cpp:\n(WebCore::Style::TreeResolver::resetStyleForNonRenderedDescendants):\n(WebCore::Style::TreeResolver::resolve):\n(WebCore::Style::TreeResolver::generatePositionOptionsIfNeeded):\n(WebCore::Style::TreeResolver::tryChoosePositionOption):\n(WebCore::Style::TreeResolver::updateForPositionVisibility):\n(WebCore::Style::TreeResolver::hasUnresolvedAnchorPosition const):\n(WebCore::Style::TreeResolver::hasResolvedAnchorPosition const):\n(WebCore::Style::TreeResolver::isTryingPositionOption const):\n* Source/WebCore/style/StyleTreeResolver.h:\n\nCanonical link: https://commits.webkit.org/311053@main\n"
    },
    {
      "commit": "a677f7ec2534fb088e0e2ef212a680c4811ea63c",
      "tree": "14bd5d2aca5eb2ff18627af06342e3d74ee7debf",
      "parents": [
        "2ec81a993d3545b50fad8cca19ea0cb5d021df18"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 07:39:09 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 07:39:09 2026"
      },
      "message": "Synchronize WPT encoding/\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312096\n\nReviewed by Youenn Fablet.\n\nThis includes a fix for import-w3c-tests. _W3CTestConverter (an\nHTMLParser subclass) round-trips all WPT HTML files. But HTMLParser\ncalls handle_entityref(\u0027A\u0027) when it encounters \u0026A in text content, and\nthe handler blindly reconstructs it as \u0026A; — adding a spurious\nsemicolon. This corrupts ISO-2022-JP test data files where byte\n0x26 (\u0026) followed by a letter is a valid JIS X 0208 character pair, not\nan HTML entity.\n\nThe fix tags non-test files (resources, support files) with\nis_resource: True in the copy list — using the existing\nTestParser.analyze_test() result that already distinguishes tests from\nresources — and skips the HTMLParser conversion for them. Resource\nfiles never need CSS prefix conversion, path fixups, or test runner\noptions.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/1193645b4710269a57df0b13c3fcc982be5f4fb1\n\nCanonical link: https://commits.webkit.org/311052@main\n"
    },
    {
      "commit": "2ec81a993d3545b50fad8cca19ea0cb5d021df18",
      "tree": "f0aa3613e7775486f57b0a3eb0773885e6238f72",
      "parents": [
        "5e5808268ed98db7878fb047a45d658ef29613d4"
      ],
      "author": {
        "name": "Sosuke Suzuki",
        "email": "sosuke@bun.sh",
        "time": "Mon Apr 13 07:22:50 2026"
      },
      "committer": {
        "name": "Sosuke Suzuki",
        "email": "sosuke@bun.com",
        "time": "Mon Apr 13 07:22:50 2026"
      },
      "message": "[JSC] Add Int32 array fast path to `FastStringifier` for `JSON.stringify`\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311911\n\nReviewed by Yusuke Suzuki.\n\nFor Int32-shaped arrays, FastStringifier currently calls canGetIndexQuickly +\ngetIndexQuickly per element (each switching on indexingType()) and then\nre-enters the recursive append(JSValue) type-dispatch chain.\n\nAdd a NEVER_INLINE appendInt32Array() that walks the contiguousInt32 butterfly\ndirectly and emits each element via std::to_chars. The Int32 emission body is\nfactored into ALWAYS_INLINE appendInt32() shared with the existing isInt32()\ncase.\n\n                                              Before                   Patched\n\njson-stringify-int32-array               61.2083+-0.5523     ^     19.8872+-0.1330        ^ definitely 3.0778x faster\njson-stringify-empty-array               20.7855+-0.5127           20.7303+-0.1234\nvanilla-todomvc-json-stringify           48.5458+-0.4959     ^     47.1891+-0.4344        ^ definitely 1.0288x faster\n\n\u003cgeometric\u003e                              48.9427+-0.2815     ^     40.2815+-0.1213        ^ definitely 1.2150x faster\n\nTest: JSTests/microbenchmarks/json-stringify-int32-array.js\n\n* JSTests/microbenchmarks/json-stringify-int32-array.js: Added.\n* Source/JavaScriptCore/runtime/JSONObject.cpp:\n(JSC::bufferMode\u003e::appendInt32):\n(JSC::bufferMode\u003e::append):\n(JSC::bufferMode\u003e::appendInt32Array):\n\nCanonical link: https://commits.webkit.org/311051@main\n"
    },
    {
      "commit": "5e5808268ed98db7878fb047a45d658ef29613d4",
      "tree": "8f7613e5b757e4383bbcf3053d8d666a0ba0b3e8",
      "parents": [
        "5e0c6a7d040bef4f723047f9838624cfa5f6d7b5"
      ],
      "author": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 06:26:25 2026"
      },
      "committer": {
        "name": "Anne van Kesteren",
        "email": "annevk@annevk.nl",
        "time": "Mon Apr 13 06:26:25 2026"
      },
      "message": "Remove LegacyNativeDictionaryRequiredInterfaceNullability from PointerEventInit\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311955\n\nReviewed by Ryosuke Niwa and Abrar Rahman Protyasha.\n\nModernize the bindings code.\n\nCanonical link: https://commits.webkit.org/311050@main\n"
    },
    {
      "commit": "5e0c6a7d040bef4f723047f9838624cfa5f6d7b5",
      "tree": "ad10bc6bf592ad1a13675a654cb338a282e26610",
      "parents": [
        "c3db1aa952190a15e040f667b1bc039c40af846b"
      ],
      "author": {
        "name": "Cole Carley",
        "email": "ccarley2@apple.com",
        "time": "Mon Apr 13 05:19:17 2026"
      },
      "committer": {
        "name": "Cole Carley",
        "email": "ccarley2@apple.com",
        "time": "Mon Apr 13 05:19:17 2026"
      },
      "message": "Improve find in page performance by using a cached flat buffer\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d309323\nrdar://171860939\n\nReviewed by Ryosuke Niwa.\n\nFind in page can be laggy on large pages. This is partially because\nevery time you press \u0027next\u0027 during a find session, the entire DOM\ntree is searched for text nodes. The largest bottle neck is during\ncounting and marking, when all matches are found.\n\nTo fix this, I have implemented a CachedMatchFinder, which is a wrapper\non top of the TextIterator. This CachedMatchFinder exposes three common\nfunctions use in find in page: findMatchFrom, findMatches, and\ncountMatches.\n\nThe CachedMatchFinder keeps a flattened buffer of all the visible text. It\nuses the domTreeVersion and styleRecalcCount to invalidate the buffer. It\nrebuilds and traverses the DOM only when absolutely necessary. The results\nof a find operation are also cached, so the bottle neck is largely avoided.\n\nThis has resulted in a visual speedup while clicking through during a\nfind session.\n\nCachedMatchFinder uses the ICUSearcher in a different way than the\nTextIterator/SearchBuffer does. TextIterator/SearchBuffer uses a windowed\napproach, which limits the size of the buffer, where CachedMatchFinder uses\none large buffer.\n\nThis difference has exposed an issue in WebCore::findNextWordFromIndex when\nfinding word boundaries for context-sensitive words. The macOS version of\nfindNextWordFromIndex uses a dictionary based approach, and for some reason,\nmany unrelated characters followed by a context-sensitive word results in\ninconsistent word boundaries.\n\nTo mitigate this issue, I introduced a function:\nextractSubspanIncludingContextNeededForDictionaryBasedWordBreak, which will\nlimit the context surrounding context-sensitive words, to ensure consistent\nword boundaries.\n\n* LayoutTests/editing/text-iterator/find-string-in-nested-shadow-roots-expected.txt: Added.\n* LayoutTests/editing/text-iterator/find-string-cross-shadow-boundary-expected.txt: Added.\n* LayoutTests/editing/text-iterator/find-string-cross-shadow-boundary.html: Added.\n* LayoutTests/editing/text-iterator/find-string-in-nested-shadow-roots-expected.txt: Added.\n* LayoutTests/editing/text-iterator/find-string-in-nested-shadow-roots.html: Added.\n* LayoutTests/editing/text-iterator/find-string-on-flat-tree-expected.txt:\n* LayoutTests/editing/text-iterator/find-string-on-flat-tree.html:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/dom/Document.h:\n(WebCore::Document::styleRecalcCount const):\n* Source/WebCore/editing/CachedMatchFinder.cpp: Added.\n(WebCore::CachedMatchFinder::CachedMatchFinder):\n(WebCore::CachedMatchFinder::performSearch):\n(WebCore::matchIsWithinSingleScope):\n(WebCore::CachedMatchFinder::findNextMatch):\n(WebCore::CachedMatchFinder::findNextMatchInShadowIncludingAncestorTree):\n(WebCore::CachedMatchFinder::findMatchFrom):\n(WebCore::CachedMatchFinder::findMatches):\n(WebCore::CachedMatchFinder::countMatches):\n(WebCore::CachedMatchFinder::bufferOffsetForBoundaryPoint):\n(WebCore::CachedMatchFinder::startingOffsetForSelection):\n(WebCore::CachedMatchFinder::isCacheValid const):\n(WebCore::CachedMatchFinder::updateCachedText):\n(WebCore::CachedMatchFinder::bufferForOptions):\n(WebCore::CachedMatchFinder::buildForScope):\n(WebCore::CachedMatchFinder::boundaryForOffset):\n(WebCore::CachedMatchFinder::bufferRangeToSimpleRange):\n(WebCore::CachedMatchFinder::isCachedSearchText const):\n* Source/WebCore/editing/CachedMatchFinder.h: Added.\n* Source/WebCore/editing/CompositeEditCommand.cpp:\n* Source/WebCore/editing/DictationCommand.cpp:\n* Source/WebCore/editing/Editor.cpp:\n(WebCore::Editor::findString):\n(WebCore::Editor::countMatchesForText):\n(WebCore::Editor::releaseMemory):\n* Source/WebCore/editing/Editor.h:\n* Source/WebCore/editing/ICUSearcher.cpp:\n(WebCore::ICUSearcher::ICUSearcher):\n(WebCore::ICUSearcher::setCollationStrength):\n(WebCore::ICUSearcher::setAttribute):\n(WebCore::ICUSearcher::setPattern):\n(WebCore::ICUSearcher::setText):\n(WebCore::ICUSearcher::setOffset):\n(WebCore::ICUSearcher::next):\n(WebCore::ICUSearcher::matchedLength):\n(WebCore::extractSubspanIncludingContextNeededForDictionaryBasedWordBreak):\n(WebCore::isWordStartMatch):\n(WebCore::isWordEndMatch):\n* Source/WebCore/editing/ICUSearcher.h:\n* Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp:\n* Source/WebCore/editing/TextIterator.cpp:\n(WebCore::SearchBuffer::SearchBuffer):\n(WebCore::SearchBuffer::search):\n* Source/WebCore/page/MemoryRelease.cpp:\n(WebCore::releaseCriticalMemory):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/FindInPage.mm:\n(TEST(WebKit, FindMatchesWithDifferentOptionsInSuccession)):\n(TEST(WebKit, FindMatchesInShadowRoots)):\n(TEST(WebKit, FindMatchesCrossShadowBoundary)):\n(TEST(WebKit, FindMatchesCrossNestedShadowBoundary)):\n(TEST(WebKit, FindMatchesNotFoundAcrossNonAdjacentFlatTreeContent)):\n(TEST(WebKit, FindMatchesUnslottedContentNotFound)):\n(TEST(WebKit, FindMatchesAfterDOMMutation)):\n\nCanonical link: https://commits.webkit.org/311049@main\n"
    },
    {
      "commit": "c3db1aa952190a15e040f667b1bc039c40af846b",
      "tree": "e6d1d345958e0fc3178431cec8bd9b5a851aa4d3",
      "parents": [
        "7102afe2713b40a28b31e225f5e7daf77af971a5"
      ],
      "author": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 05:11:40 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 05:11:40 2026"
      },
      "message": "WKWebView._cachedActiveNSURL doesn\u0027t need to store the WTF::URL\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312113\n\nReviewed by Darin Adler.\n\nWKWebView._cachedActiveNSURL doesn\u0027t need to store the WTF::URL, just\nits String presentation.\n\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView URL]):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:\n\nCanonical link: https://commits.webkit.org/311048@main\n"
    },
    {
      "commit": "7102afe2713b40a28b31e225f5e7daf77af971a5",
      "tree": "a20bf9f77a9577ef84d9c3d2d1aa4b2994c517af",
      "parents": [
        "d399725cdc64ea33a7e8d6bc96d658866edbc0ae"
      ],
      "author": {
        "name": "Per Arne Vollan",
        "email": "pvollan@apple.com",
        "time": "Mon Apr 13 04:52:37 2026"
      },
      "committer": {
        "name": "Per Arne Vollan",
        "email": "pvollan@apple.com",
        "time": "Mon Apr 13 04:52:37 2026"
      },
      "message": "Stop using all caps in log identifiers in WebKit log definitions\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311949\nrdar://174504118\n\nReviewed by Rupin Mittal.\n\nThis is to improve readability.\n\n* Source/WebKit/Platform/LogMessages.in:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:\n(WebKit::RemoteRenderingBackendProxy::create):\n* Source/WebKit/WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:\n(WebKit::MediaPlayerPrivateRemote::layerHostingContextChanged):\n* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:\n(WebKit::WebLoaderStrategy::scheduleLoad):\n(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):\n* Source/WebKit/WebProcess/Network/WebResourceLoader.cpp:\n(WebKit::WebResourceLoader::WebResourceLoader):\n(WebKit::WebResourceLoader::willSendRequest):\n(WebKit::WebResourceLoader::didReceiveResponse):\n(WebKit::WebResourceLoader::didReceiveData):\n(WebKit::WebResourceLoader::didFinishResourceLoad):\n(WebKit::WebResourceLoader::serviceWorkerDidNotHandle):\n(WebKit::WebResourceLoader::didFailResourceLoad):\n(WebKit::WebResourceLoader::didBlockAuthenticationChallenge):\n(WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):\n(WebKit::WebResourceLoader::didReceiveResource):\n* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:\n(WebKit::WebFrameLoaderClient::navigationActionData const):\n(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):\n* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:\n(WebKit::WebLocalFrameLoaderClient::completePageTransitionIfNeeded):\n(WebKit::WebLocalFrameLoaderClient::dispatchDidReachLayoutMilestone):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::close):\n(WebKit::WebPage::loadRequest):\n(WebKit::WebPage::freezeLayerTree):\n(WebKit::WebPage::unfreezeLayerTree):\n(WebKit::WebPage::markLayersVolatile):\n(WebKit::WebPage::tryMarkLayersVolatileCompletionHandler):\n* Source/WebKit/WebProcess/WebProcess.cpp:\n(WebKit::WebProcess::prepareToSuspend):\n(WebKit::WebProcess::markAllLayersVolatile):\n(WebKit::WebProcess::freezeAllLayerTrees):\n* Source/WebKit/WebProcess/cocoa/LaunchServicesDatabaseManager.mm:\n(WebKit::LaunchServicesDatabaseManager::handleEvent):\n(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):\n* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm:\n(WebKit::VideoPresentationManager::setVideoLayerFrameFenced):\n* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:\n(WebKit::WebProcess::accessibilityFocusedUIElement):\n\nCanonical link: https://commits.webkit.org/311047@main\n"
    },
    {
      "commit": "d399725cdc64ea33a7e8d6bc96d658866edbc0ae",
      "tree": "30ec05f6ef0abf4ba458f7bef9e64fe27a8c12e3",
      "parents": [
        "d39fdf0fcd072a0f31efd4ede2d4ef79c28f0214"
      ],
      "author": {
        "name": "Brady Eidson",
        "email": "beidson@apple.com",
        "time": "Mon Apr 13 03:29:21 2026"
      },
      "committer": {
        "name": "Brady Eidson",
        "email": "beidson@apple.com",
        "time": "Mon Apr 13 03:29:21 2026"
      },
      "message": "Bring TestWebKitAPI up to code with regard to adoptRef, adoptCF, and adoptOSObject\nrdar://174609096\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312100\n\nReviewed by Richard Robinson.\n\nIn https://commits.webkit.org/311010@main I replaced all uses of `auto` with `adoptNS` in TestWebKitAPI\nto bring them up to the new coding style guidelines.\n\nIt\u0027s bugging me that I didn\u0027t go adoptCF, adoptRef, and adoptOSObject as well.\n\nSo here we are.\n\n* Tools/TestWebKitAPI/Helpers/cocoa/CGImagePixelReader.cpp:\n(TestWebKitAPI::CGImagePixelReader::CGImagePixelReader):\n* Tools/TestWebKitAPI/Helpers/cocoa/DaemonTestUtilities.mm:\n(TestWebKitAPI::convertArrayToXPC):\n(TestWebKitAPI::convertDictionaryToXPC):\n* Tools/TestWebKitAPI/Helpers/cocoa/HTTPServer.mm:\n(TestWebKitAPI::proxyDefinition):\n* Tools/TestWebKitAPI/Helpers/cocoa/TestProtocol.mm:\n(contentTypeForFileExtension):\n* Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm:\n(createCertificate):\n(createPrivateKey):\n(TEST(IPCSerialization, Basic)):\n(fakeDataDetectorResultForTesting):\n(TEST(CoreIPCCFDictionary, InsertDifferentValueTypes)):\n(TEST(CoreIPCCFDictionary, InsertDifferentKeyTypes)):\n* Tools/TestWebKitAPI/Tests/WTF/ListHashSet.cpp:\n(TestWebKitAPI::ListHashSetReferencedItem::create):\n* Tools/TestWebKitAPI/Tests/WTF/NativePromise.cpp:\n(TestWebKitAPI::TEST(NativePromise, AsyncResolve)):\n(TestWebKitAPI::TEST(NativePromise, CompletionPromises)):\n* Tools/TestWebKitAPI/Tests/WTF/WeakPtr.cpp:\n(TestWebKitAPI::TEST(WTF_ThreadSafeWeakPtr, UseAfterMoveResistance)):\n(TestWebKitAPI::TEST(WTF_ThreadSafeWeakPtr, ThreadSafeWeakHashAmortizedCleanupWhenOnlyAdding)):\n(TestWebKitAPI::TEST(WTF_ThreadSafeWeakPtr, AmortizedCleanupNotQuadratic)):\n(TestWebKitAPI::TEST(WTF_ThreadSafeWeakPtr, MultipleInheritance)):\n* Tools/TestWebKitAPI/Tests/WTF/cf/StringCF.cpp:\n(TestWebKitAPI::TEST(StringCF, ConstructFromLatin1WithHighBytes)):\n(TestWebKitAPI::TEST(StringCF, ConstructFromUTF16WithLatin1Characters)):\n(TestWebKitAPI::TEST(StringCF, ConstructFromUTF16WithHighLatin1Characters)):\n(TestWebKitAPI::TEST(StringCF, ConstructFromUTF16WithNonLatin1Characters)):\n(TestWebKitAPI::TEST(StringCF, ConstructFromUTF16MixedLatin1AndNonLatin1)):\n* Tools/TestWebKitAPI/Tests/WTF/cf/VectorCF.cpp:\n(TestWebKitAPI::TEST(VectorCF, MakeVector_CFString)):\n(TestWebKitAPI::TEST(VectorCF, MakeVector_CFNumber)):\n(TestWebKitAPI::TEST(VectorCF, MakeVectorWithFunctor)):\n(TestWebKitAPI::TEST(VectorCF, VectorFromCFData)):\n* Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm:\n(TEST(WTF_ContextualizedNSString, tokenizer)):\n* Tools/TestWebKitAPI/Tests/WTF/cocoa/RetainPtr.mm:\n(TestWebKitAPI::TEST(RETAIN_PTR_TEST_NAME, HashMapCFTypeDeletedValue)):\n* Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm:\n(TestWebKitAPI::TEST(TypeCastsCocoa, bridge_id_cast)):\n* Tools/TestWebKitAPI/Tests/WTF/darwin/TypeCastsOSObjectCF.cpp:\n(TestWebKitAPI::TEST(TypeCastsOSObjectCF, osObjectCast)):\n(TestWebKitAPI::TEST(TypeCastsOSObjectCF, dynamicOSObjectCast)):\n(TestWebKitAPI::TEST(TypeCastsOSObjectCF, dynamicOSObjectCast_OSObjectPtr)):\n(TestWebKitAPI::TEST(TypeCastsOSObjectCF, dynamicOSObjectCast_const_OSObjectPtr)):\n* Tools/TestWebKitAPI/Tests/WebCore/MonospaceFontTests.cpp:\n(TestWebKitAPI::TEST(MonospaceFontsTest, EnsureMonospaceFontInvariants)):\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/BifurcatedGraphicsContextTestsCG.cpp:\n(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, Basic)):\n(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, DrawTiledGradientImage)):\n(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, DrawGradientImage)):\n(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, Borders)):\n(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, TransformedClip)):\n(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, ApplyDeviceScaleFactor)):\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/CoreMediaUtilities.mm:\n(TestWebKitAPI::makeFormatDescriptionWithTencData):\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/GraphicsContextCGTests.mm:\n(TestWebKitAPI::greenImage):\n(TestWebKitAPI::TEST(GraphicsContextTests, DrawNativeImageDoesNotLeakCompositeOperator)):\n(TestWebKitAPI::TEST(GraphicsContextTests, CGBitmapRenderingModeIsUnaccelerated)):\n(TestWebKitAPI::TEST(GraphicsContextTests, IOSurfaceRenderingModeIsAccelerated)):\n(TestWebKitAPI::TEST(GraphicsContextTests, DrawsReportHasDrawn)):\n(TestWebKitAPI::TEST(GraphicsContextTests, OutOfGamutSRGBNotDrawn)):\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:\n(TestWebKitAPI::WebCore::TestedGraphicsContextGLCocoa::create):\n* Tools/TestWebKitAPI/Tests/WebKit/WKPage/cocoa/XPCEndpoint.mm:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ApplicationManifest.mm:\n(TestWebKitAPI::TEST(ApplicationManifest, Coding)):\n(TestWebKitAPI::TEST(ApplicationManifest, Basic)):\n(TestWebKitAPI::TEST(ApplicationManifest, AlwaysFetchData)):\n(TestWebKitAPI::TEST(ApplicationManifest, OnlyFirstManifest)):\n(TestWebKitAPI::TEST(ApplicationManifest, MediaAttriute)):\n(TestWebKitAPI::TEST(ApplicationManifest, Icons)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/Challenge.mm:\n(createTestIdentity):\n(verifyCertificateAndPublicKey):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/EditorStateTests.mm:\n(TestWebKitAPI::TEST(EditorStateTests, CaretColorInContentEditable)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/EventAttribution.mm:\n(TestWebKitAPI::signUnlinkableTokenAndSendSecretToken):\n(TestWebKitAPI::attemptConnectionInProcessWithoutEntitlement):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/FirstVisuallyNonEmptyMilestone.mm:\n(contentTypeForFileExtension):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/GPUProcess.mm:\n(TestWebKitAPI::TEST(GPUProcess, CanvasBasicCrashHandling)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/IPCTestingAPI.mm:\n(CGColorInNSSecureCoding)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/PDFLinkReferrer.mm:\n(createPDFWithLinkToURL):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ServiceWorkerBasic.mm:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::TEST(SiteIsolation, ThemeColor)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextWidth.mm:\n(TEST(WebKit, TextWidth)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewSnapshot.mm:\n(TestWebKitAPI::TEST(WKWebView, SnapshotImageBaseCase)):\n(TestWebKitAPI::TEST(WKWebView, SnapshotImageLargeAsyncDecoding)):\n(TestWebKitAPI::TEST(WKWebView, SnapshotAfterScreenUpdates)):\n(TestWebKitAPI::TEST(WKWebView, SnapshotWithoutAfterScreenUpdates)):\n(TestWebKitAPI::TEST(WKWebView, SnapshotWebGL)):\n(TestWebKitAPI::TEST(WKWebView, SnapshotWithoutSelectionHighlighting)):\n(TestWebKitAPI::TEST(WKWebView, SnapshotWithContentsRect)):\n(TestWebKitAPI::TEST(WKWebView, RemoteSnapshotWithTransform)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewThemeColor.mm:\n(TEST(WKWebViewThemeColor, MetaElementValidNameAndColor)):\n(TEST(WKWebViewThemeColor, MetaElementValidNameAndColorAndMedia)):\n(TEST(WKWebViewThemeColor, MetaElementInvalidName)):\n(TEST(WKWebViewThemeColor, MetaElementInvalidColor)):\n(TEST(WKWebViewThemeColor, MetaElementInvalidMedia)):\n(TEST(WKWebViewThemeColor, MetaElementMultipleValid)):\n(TEST(WKWebViewThemeColor, MetaElementValidSubframe)):\n(TEST(WKWebViewThemeColor, KVO)):\n(TEST(WKWebViewThemeColor, ApplicationManifest)):\n(TEST(WKWebViewThemeColor, MetaElementOverridesApplicationManifest)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewUnderPageBackgroundColor.mm:\n(defaultBackgroundColor):\n(TEST(WKWebViewUnderPageBackgroundColor, SingleSolidColor)):\n(TEST(WKWebViewUnderPageBackgroundColor, MultipleSolidColors)):\n(TEST(WKWebViewUnderPageBackgroundColor, KVO)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebPushDaemon.mm:\n(TestWebKitAPI::WebPushXPCConnectionMessageSender::messageDictionaryFromEncoder const):\n(TestWebKitAPI::createAndConfigureConnectionToService):\n(TestWebKitAPI::TEST(WebPushD, BasicCommunication)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/_WKWebAuthenticationPanel.mm:\n(TestWebKitAPI::WebCore::addKeyToKeychain):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/DragAndDropTestsIOS.mm:\n(TestWebKitAPI::isCompletelyWhite):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/TextStyleFontSize.mm:\n(TEST(TextStyleFontSize, Startup)):\n(TEST(TextStyleFontSize, AfterCrash)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/WKScrollViewTests.mm:\n(TestWebKitAPI::(WKScrollViewTests, BackgroundColorSetByClient)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/mac/BackgroundColor.mm:\n(TestWebKitAPI::TEST(WebKit, BackgroundColorToggleAppearance)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/mac/MediaPlaybackSleepAssertion.mm:\n(TestWebKitAPI::hasAssertionType):\n* Tools/TestWebKitAPI/Tests/WebKitLegacy/ios/SnapshotViaRenderInContext.mm:\n(TestWebKitAPI::TEST(WebKitLegacy, RenderInContextSnapshot)):\n* Tools/TestWebKitAPI/Tests/WebKitLegacy/ios/WebThreadLock.mm:\n(TestWebKitAPI::TEST(WebKitLegacy, NestedRunLoopUnderRunLoopObserverDoubleUnlock)):\n\nCanonical link: https://commits.webkit.org/311046@main\n"
    },
    {
      "commit": "d39fdf0fcd072a0f31efd4ede2d4ef79c28f0214",
      "tree": "182ef8ea623ac508627d493155cfbbd45b203c5e",
      "parents": [
        "44a6ef81be0355f543f632f3b37a27bc2b16c8bc"
      ],
      "author": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792+github@gmail.com",
        "time": "Mon Apr 13 03:20:55 2026"
      },
      "committer": {
        "name": "Ahmad Saleem",
        "email": "ahmad.saleem792@gmail.com",
        "time": "Mon Apr 13 03:20:55 2026"
      },
      "message": "[Gardening] Update `windows` specific test expectations\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312117\nrdar://174626635\n\nUnreviewed Test Gardening - it is to make windows test bot green.\n\n* LayoutTests/platform/win/TestExpectations:\n* LayoutTests/platform/win/imported/w3c/web-platform-tests/url/IdnaTestV2.any-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/311045@main\n"
    },
    {
      "commit": "44a6ef81be0355f543f632f3b37a27bc2b16c8bc",
      "tree": "cc7e5f9d1ccace2521bec0bc9632196463d55457",
      "parents": [
        "9f58e494e0bb4c28f2580783a89f683e5521bf49"
      ],
      "author": {
        "name": "Sosuke Suzuki",
        "email": "sosuke@bun.sh",
        "time": "Mon Apr 13 02:56:10 2026"
      },
      "committer": {
        "name": "Sosuke Suzuki",
        "email": "sosuke@bun.com",
        "time": "Mon Apr 13 02:56:10 2026"
      },
      "message": "[JSC] DFG should keep scope OSR-available for ModuleVar resolve_scope\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312043\n\nReviewed by Yusuke Suzuki.\n\n    // h.mjs\n    export const g \u003d 1;\n\n    // m.mjs\n    import { g } from \"./h.mjs\";\n    async function f(a) {\n        try {\n            if (a) return;\n            await 1;\n        } finally { g; }\n    }\n    for (let i \u003d 0; i \u003c 1e6; i++) await f(0);\n\nWith --validateGraph\u003d1 this hits \"Live bytecode local not available\".\n\nBytecodeUseDef marks m_scope as a use of op_resolve_scope unconditionally,\nbut the ModuleVar case in ByteCodeParser was the only resolve type that\nskipped Phantom(get(m_scope)). In an async function the scope register has\ntwo reaching defs (initial GetScope and post-resume GetClosureVar), so at a\nmerge point that only sees a ModuleVar resolve_scope, no Phi is inserted and\nthe scope becomes unavailable for OSR exit.\n\nTests: JSTests/modules/module-var-resolve-scope-osr-availability-in-async-finally.js\n       JSTests/modules/module-var-resolve-scope-osr-availability-in-async-finally/h.js\n\n* JSTests/modules/module-var-resolve-scope-osr-availability-in-async-finally.js: Added.\n(async f):\n* JSTests/modules/module-var-resolve-scope-osr-availability-in-async-finally/h.js: Added.\n* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:\n(JSC::DFG::ByteCodeParser::parseBlock):\n\nCanonical link: https://commits.webkit.org/311044@main\n"
    },
    {
      "commit": "9f58e494e0bb4c28f2580783a89f683e5521bf49",
      "tree": "80d2df25d0a4f1510f646b790a7a8971eab65491",
      "parents": [
        "f3e9e4220e9094d4287038d81b5e38ad394f3ea0"
      ],
      "author": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 02:33:13 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 02:33:13 2026"
      },
      "message": "document.styleSheets should be accessible on DOMParser-created documents\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312089\n\nReviewed by Darin Adler and Anne van Kesteren.\n\nStyle::Scope::updateActiveStyleSheets() bails out early when the document\nhas no living render tree. Since DOMParser-created documents have no\nframe or view, flushPendingSelfUpdate() would clear m_pendingUpdate and\nthen call updateActiveStyleSheets() which returned immediately, leaving\nthe styleSheets collection empty.\n\nFix this by checking hasLivingRenderTree() before attempting the flush.\nWhen there is no render tree, collect the style sheets for the list\ndirectly via collectActiveStyleSheets(), bypassing the full style\nresolver update that requires one.\n\nTest: imported/w3c/web-platform-tests/domparsing/DOMParser-parseFromString-stylesheets.html\n\n* LayoutTests/imported/w3c/web-platform-tests/domparsing/DOMParser-parseFromString-stylesheets-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/domparsing/DOMParser-parseFromString-stylesheets.html: Added.\nImport WPT test coverage from upstream. This test is failing in shipping\nSafari but passing in both Chrome and Firefox.\n\n* Source/WebCore/style/StyleScope.cpp:\n(WebCore::Style::Scope::styleSheetsForStyleSheetList):\n\nCanonical link: https://commits.webkit.org/311043@main\n"
    },
    {
      "commit": "f3e9e4220e9094d4287038d81b5e38ad394f3ea0",
      "tree": "cf83582144a23b4f5d85421e5b235373d3b9528f",
      "parents": [
        "20d0622e8d99d2d5358540c12f9b5a7d5767a3cc"
      ],
      "author": {
        "name": "Kimmo Kinnunen",
        "email": "kkinnunen@apple.com",
        "time": "Mon Apr 13 01:08:35 2026"
      },
      "committer": {
        "name": "Dan Glastonbury",
        "email": "djg@apple.com",
        "time": "Mon Apr 13 01:08:35 2026"
      },
      "message": "Update ANGLE to 2026-04-08 (641c0d0e1bbd7d7220f797887fa28a1f17bfeb7d)\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311802\nrdar://174388779\n\nReviewed by Dan Glastonbury\n\nContains upstream commits:\ngit log --oneline c5641af1a29a5569f096baba2675e2290865ad14..641c0d0e1bbd7d7220f797887fa28a1f17bfeb7d --pretty\u003d%h %s\n641c0d0e1b D3D11: Fix potential OOB read in StoreStaticAttrib\n7b35f701da Vulkan: Fix potential UAF with EGLImage sibling deletion\n4e6cb88849 Remove win-x86-test infra/specs entries\n7757353a17 Vulkan: Remove image from mImagesWithTileMemory when fallback\ncf058e3bc5 Vulkan: Do not run Vulkan tests on Pixel4\nc0b3068c93 Remove win-x86-test Starlark definition\na812b1d2c8 Vulkan: Fix UBO index remap after offset-only update\nc0d3d631ba Vulkan: Fix clean up of FSR image\na5d0c5607a Vulkan: Reduce the for loop of colorAttachmentMask\n3c93695b95 Add src-side win-x86-test equivalents\n09b99c9648 Vulkan: Cache anyAttachmentWithColorspaceOverride in FramebufferVk\nec5f7791bc IR Validation: referenced IDs are not dead-code-eliminated\n984ac591a4 Metal: Remove unused ContextMtl::setupDraw mode\ne1e569132a Roll vulkan-deps from 63babf315ddf to ae85abaff72f (2 revisions)\nc237367b1a IR: Port ShaderBuiltinsWorkaround\n9b51adf465 Validate no constant foldable instructions\ne2b0799d7a IR: Clean up checkAndSimplifyAST\nc0c3b52cec GL: Fix heap-buffer-overflow in streamAttributes\n18e0e73276 IR: Break complex expressions in AST output\ndced4a3921 Add RELEASE_ASSERT\n48e8e4e498 Metal: Use Span in BufferMtl CalculateRestartRanges\n4b22060b65 Roll vulkan-deps from 1a22843be2c1 to 63babf315ddf (3 revisions)\n98a3c62ee4 Translator: Move RemoveInvariantDeclaration to generators\n3954687962 Roll vulkan-deps from 7240ff5cbc8b to 1a22843be2c1 (6 revisions)\n72fb69ca2d Roll VK-GL-CTS from f52e89f88506 to a9a84cc465bd (21 revisions)\n0fe2ac0016 Tests: Add Bingo Bash trace\ne29d977542 Roll vulkan-deps from 6501b79e3449 to 7240ff5cbc8b (8 revisions)\n90fb0aa48c IR: Validate that if conditions are boolean\naf0bdee5d8 IR: Validate that access to struct fields are in bounds\n00c92e11df Vulkan: Fix unnecessary memcpy in handleDirtyGraphicsVertexBuffers*\ne0f6d10d32 Tests: Suppress final_fantasy on ANGLE\n63dd40d898 Translator: Lower maximum function parameters to 255\ncfe3b78359 IR: Don\u0027t run the RecordConstantPrecision AST pass\nde3e747aee Metal: Use Span in Texture::getBytes\n68919ec607 Skip ETCTextureTest.PBOWithMisalignedOffset on Pixel 10 GLES\n3bb4e2424d Metal: Store LibraryCacheEntry in a shared_ptr\n21f23eeb4e Skip DrawThenInvalidateThenVerifyDepthStencil on iOS\na10f04f18a OpenCL: Fix use-after-free in createUniformRegions\n843a3245ae Replace min-heap with deque for FIFO handle reuse\nb342fedf57 Roll vulkan-deps from b79339a8e7c5 to 6501b79e3449 (6 revisions)\nbc95a85f10 Metal: Use Span in BufferMtl::set{Sub}DataImpl\n68fa11fce7 IR: Port ClampIndirectIndices\n271750fe22 IR: Port ScalarizeVecAndMatConstructorArgs\nbb7b99e488 Rename deviceLayerNames to instanceLayerNames\n4dcb53baa3 Metal: Use Span in CreateShaderLibraryFromStaticBinary\n7c1adb7a79 Roll vulkan-deps from 7814bc90b17c to b79339a8e7c5 (6 revisions)\nf3828cdbaa Roll Chromium from 449a858c3bcc to b7fa5c619809 (630 revisions)\n35e17fe6e8 Vulkan: Fix assertion in TracePerfTest::startTest\n54ed466760 Remove the layer properties from VkDeviceCreateInfo\n0323970550 Metal: Fix pitch computation for compressed textures in PBOs.\na96c6e3e7e Vulkan: Fix heap-buffer-overflow in convertVertexBufferCPU\n787c44691e IR: Fold index/field to constructed array/struct\n309385c83b Pixel 10 test suppressions\n5c94747d33 Roll Chromium from 6c61a80c7186 to 449a858c3bcc (774 revisions)\n6f116efe47 Metal: Remove unused uint8_t * data mtl::Buffer\n8ce63479cb Roll vulkan-deps from 547e0f27522b to 7814bc90b17c (11 revisions)\n07f101fbae Revert \"Implement EGL_ANGLE_context_virtualization on GLX\"\n07f3f08bde Test validation of GL_MAX_COMPUTE_SHARED_MEMORY_SIZE\nbd3dbd7fda Implement operator!\u003d for YcbcrConversionDesc\n7f4d3b0014 IR: Port CollectVariables\n52ba614db7 Metal: Protect against overflow in provoking vertex index count\nb149a5c62d GL: Fix pack state for BlitGL::copySubTextureCPUReadback\n5cffcbc478 Manual roll vulkan-deps from 008b485ddfe9 to 547e0f27522b (14 revisions)\n482561f7b8 Metal: Use Span in BufferMtl::getBufferDataReadOnly\n\nCanonical link: https://commits.webkit.org/311042@main\n"
    },
    {
      "commit": "20d0622e8d99d2d5358540c12f9b5a7d5767a3cc",
      "tree": "21cfbf3ea8fe12067c8e0b3534c7dca818cce3e6",
      "parents": [
        "5c71cb402d527171d80a580c71cbb9033652a16c"
      ],
      "author": {
        "name": "Commit Queue",
        "email": "commit-queue@webkit.org",
        "time": "Mon Apr 13 01:04:07 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Mon Apr 13 01:04:07 2026"
      },
      "message": "Unreviewed, reverting 311030@main.\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312111\n\nThis is not entirely correct, it doesn\u0027t fully align us with Chrome and needs to be reworked\n\nReverted changeset:\n\n\"NavigationDisabler should not block navigations in unrelated frames\"\n\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312044\nhttps://commits.webkit.org/311030@main\nCanonical link: https://commits.webkit.org/311041@main\n"
    },
    {
      "commit": "5c71cb402d527171d80a580c71cbb9033652a16c",
      "tree": "d02f1d2164201473bfbd4b0138c5132127d38927",
      "parents": [
        "52dbebe20b922cab89928085f9dcfa8082a813e4"
      ],
      "author": {
        "name": "Brent Fulgham",
        "email": "bfulgham@apple.com",
        "time": "Sun Apr 12 23:48:22 2026"
      },
      "committer": {
        "name": "Brent Fulgham",
        "email": "bfulgham@webkit.org",
        "time": "Sun Apr 12 23:48:22 2026"
      },
      "message": "CSPViolationReportBody does not report line number\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d294048\nrdar://152607402\n\nReviewed by Anne van Kesteren.\n\nWebKit fails some Web Platform Tests because it uses a default line number\nof zero for cases where a script is not currently running. If we are not encountering\nthe CSP violation while interpreting script, we should use the line number\ncorresponding to the markup that led to the CSP failure. This is how we handle other\nreports (e.g., COOP), so this should be applied to our CSP logic.\n\nThis change also syncs with upstream WPT results that changed after we clarified\ncorrect behavior:\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/7dd8039bf5f31500ef0c7efa1c4cbbc8080e2684\n\nTests: imported/w3c/web-platform-tests/content-security-policy/reporting-api/report-to-directive-allowed-in-meta.https.sub.html\n       imported/w3c/web-platform-tests/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html\n       imported/w3c/web-platform-tests/content-security-policy/script-src/nonce-enforce-blocked.html\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/dedicated-worker-correct-url-in-report.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/report-to-directive-allowed-in-meta.https.sub-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/report-to-directive-allowed-in-meta.https.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation-2.https.sub-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation-2.https.sub.html: Copied from LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/report-to-directive-allowed-in-meta.https.sub.html.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation-2.https.sub.html.sub.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/support/dedicatedworker-report-url.sub.js: Added.\n(async_test):\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/support/dedicatedworker-report-url.sub.js.sub.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting-api/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/trusted-types/navigate-to-javascript-url-001-expected.txt:\n* Source/WebCore/Modules/beacon/NavigatorBeacon.cpp:\n(WebCore::NavigatorBeacon::sendBeacon): Pass source position.\n* Source/WebCore/Modules/fetch/FetchLoader.cpp:\n(WebCore::FetchLoader::start): Ditto.\n* Source/WebCore/Modules/websockets/WebSocket.cpp:\n(WebCore::WebSocket::connect): Ditto.\n* Source/WebCore/Modules/webtransport/WebTransport.cpp:\n(WebCore::WebTransport::initializeOverHTTP): Ditto.\n* Source/WebCore/bindings/js/WorkerModuleScriptLoader.cpp:\n(WebCore::WorkerModuleScriptLoader::load):  Ditto.\n* Source/WebCore/dom/Document.cpp:\n(WebCore::Document::currentParserSourcePosition const): Added.\n* Source/WebCore/dom/Document.h:\n(WebCore::Document::isInDocumentWrite const): Const correctness change.\n(WebCore::Document::isInDocumentWrite): Deleted.\n* Source/WebCore/dom/ScriptElement.cpp:\n(WebCore::ScriptElement::prepareScript):\n* Source/WebCore/html/HTMLMediaElement.cpp:\n(WebCore::isAllowedToLoadMediaURL): Pass source position.\n* Source/WebCore/html/HTMLPlugInElement.cpp:\n(WebCore::HTMLPlugInElement::canLoadPlugInContent const): Ditto.\n* Source/WebCore/html/HTMLTrackElement.cpp:\n(WebCore::HTMLTrackElement::canLoadURL): Ditto.\n* Source/WebCore/loader/DocumentThreadableLoader.cpp:\n(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy): Ditto.\n* Source/WebCore/loader/FrameLoader.cpp:\n(WebCore::FrameLoader::submitForm): Ditto.\n(WebCore::FrameLoader::checkIfFormActionAllowedByCSP const): Ditto.\n* Source/WebCore/loader/PingLoader.cpp:\n(WebCore::PingLoader::sendPing): Ditto.\n* Source/WebCore/loader/PolicyChecker.cpp:\n(WebCore::isAllowedByContentSecurityPolicy): Ditto.\n* Source/WebCore/loader/cache/CachedResourceLoader.cpp:\n(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): Ditto.\n* Source/WebCore/page/EventSource.cpp:\n(WebCore::EventSource::create): Ditto.\n* Source/WebCore/page/csp/CSPViolationReportBody.cpp:\n(WebCore::CSPViolationReportBody::CSPViolationReportBody):\n(WebCore::CSPViolationReportBody::create):\n(WebCore::CSPViolationReportBody::createReportFormDataForViolation const):\n* Source/WebCore/page/csp/CSPViolationReportBody.h:\n* Source/WebCore/page/csp/ContentSecurityPolicy.cpp:\n(WebCore::ContentSecurityPolicy::allowObjectFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowChildFrameFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowResourceFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowWorkerFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowScriptFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowImageFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowPrefetchFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowStyleFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowFontFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowManifestFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowMediaFromSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowConnectToSource const): Ditto.\n(WebCore::ContentSecurityPolicy::allowFormAction const): Ditto.\n(WebCore::ContentSecurityPolicy::allowBaseURI const): Ditto.\n(WebCore::ContentSecurityPolicy::reportViolation const): Ditto.\n* Source/WebCore/page/csp/ContentSecurityPolicy.h:\n* Source/WebCore/workers/AbstractWorker.cpp:\n(WebCore::AbstractWorker::validateURL): Ditto.\n* Source/WebCore/workers/WorkerGlobalScope.cpp:\n(WebCore::WorkerGlobalScope::importScripts): Ditto.\n* Source/WebCore/workers/service/ServiceWorkerContainer.cpp:\n(WebCore::ServiceWorkerContainer::addRegistration): Ditto.\n* Source/WebCore/worklets/Worklet.cpp:\n(WebCore::Worklet::addModule): Ditto.\n* Source/WebCore/xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::prepareToSend): Ditto.\n* Source/WebKit/NetworkProcess/EarlyHintsResourceLoader.cpp:\n(WebKit::EarlyHintsResourceLoader::startPreconnectTask): Ditto.\n* Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:\n(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy): Ditto.\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n\nCanonical link: https://commits.webkit.org/311040@main\n"
    },
    {
      "commit": "52dbebe20b922cab89928085f9dcfa8082a813e4",
      "tree": "6aab5ba0829fc58069843e21e9020ae0422ab400",
      "parents": [
        "6a202c4eb82696b06a3758a61b8c67f5143a5a3c"
      ],
      "author": {
        "name": "Geoffrey Garen",
        "email": "ggaren@apple.com",
        "time": "Sun Apr 12 21:27:13 2026"
      },
      "committer": {
        "name": "Geoffrey Garen",
        "email": "ggaren@apple.com",
        "time": "Sun Apr 12 21:27:13 2026"
      },
      "message": "Unreviewed build fix: Remove vestigial references to libpas.a\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312107\nrdar://174614624\n\n* Source/JavaScriptCore/Configurations/Base.xcconfig:\n* Source/JavaScriptCore/Configurations/JSC.xcconfig:\n* Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/lldb/lldbWebKitTester/lldbWebKitTester.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/311039@main\n"
    },
    {
      "commit": "6a202c4eb82696b06a3758a61b8c67f5143a5a3c",
      "tree": "4161668b76299d6361015fbc1507dea0531437b5",
      "parents": [
        "52a97217691976f5ac23bdb1236caf0878bc6f3d"
      ],
      "author": {
        "name": "Ian Grunert",
        "email": "ian.grunert@gmail.com",
        "time": "Sun Apr 12 18:22:51 2026"
      },
      "committer": {
        "name": "Ian Grunert",
        "email": "ian.grunert@gmail.com",
        "time": "Sun Apr 12 18:22:51 2026"
      },
      "message": "[Win] Switch to ccache depend mode\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312095\n\nReviewed by Yusuke Suzuki.\n\nSwitch to \"depend mode\" to use the compiler\u0027s dependency list.\n\nhttps://ccache.dev/manual/4.13.2.html#_the_depend_mode\n\nThis fixes an issue where we get an incorrect cache hit on the PCH,\nwhich later causes the build to fail.\n\nCanonical link: https://commits.webkit.org/311038@main\n"
    },
    {
      "commit": "52a97217691976f5ac23bdb1236caf0878bc6f3d",
      "tree": "ff2cf5fda2b24396859d78f7a16c8aa9c9ecf793",
      "parents": [
        "203b7fc87e1da7e8acfbf7f551a24052db5f7503"
      ],
      "author": {
        "name": "Yusuke Suzuki",
        "email": "ysuzuki@apple.com",
        "time": "Sun Apr 12 17:38:17 2026"
      },
      "committer": {
        "name": "Yusuke Suzuki",
        "email": "ysuzuki@apple.com",
        "time": "Sun Apr 12 17:38:17 2026"
      },
      "message": "[JSC] Avoid repeated lock contension due to NativeCalleeRegistry registration\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312082\nrdar://174588184\n\nReviewed by Keith Miller.\n\nWe found that IPIntCallee\u0027s registration is taking huge lock contension.\nBut its entrypoint generation is no longer costly as we use the shared\nthunk. We should avoid doing these registration from the multiple thread\nconcurrently, and do them in a batched style when finalizing all callees\nat the end. Also we should have Box\u003cPCToCodeOriginMap\u003e in\nOptimizingJITCallee instead of having it in NativeCalleeRegistry.\n\n* Source/JavaScriptCore/runtime/NativeCalleeRegistry.h:\n(JSC::NativeCalleeRegistry::registerCallees):\n(JSC::NativeCalleeRegistry::unregisterCallee):\n(JSC::NativeCalleeRegistry::addPCToCodeOriginMap): Deleted.\n* Source/JavaScriptCore/runtime/SamplingProfiler.cpp:\n(JSC::FrameWalker::recordJITFrame):\n* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:\n(JSC::Wasm::BBQPlan::work):\n* Source/JavaScriptCore/wasm/WasmCallee.cpp:\n(JSC::Wasm::Callee::pcToCodeOriginMap const):\n(JSC::Wasm::IPIntCallee::setEntrypointWithoutRegistration):\n* Source/JavaScriptCore/wasm/WasmCallee.h:\n(JSC::Wasm::Callee::pcToCodeOriginMapImpl const):\n(JSC::Wasm::OptimizingJITCallee::pcToCodeOriginMapImpl const):\n(JSC::Wasm::OptimizingJITCallee::setPCToCodeOriginMap):\n* Source/JavaScriptCore/wasm/WasmIPIntPlan.cpp:\n(JSC::Wasm::IPIntPlan::compileFunction):\n(JSC::Wasm::IPIntPlan::didCompleteCompilation):\n* Source/JavaScriptCore/wasm/WasmOMGPlan.cpp:\n(JSC::Wasm::OMGPlan::work):\n* Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp:\n(JSC::Wasm::OSREntryPlan::work):\n\nCanonical link: https://commits.webkit.org/311037@main\n"
    },
    {
      "commit": "203b7fc87e1da7e8acfbf7f551a24052db5f7503",
      "tree": "99aac1ad6928666dbab91d29c30c3550cd79f320",
      "parents": [
        "9d282b549315316f3e71d163a772922812f40c40"
      ],
      "author": {
        "name": "Jer Noble",
        "email": "jer.noble@apple.com",
        "time": "Sun Apr 12 16:37:27 2026"
      },
      "committer": {
        "name": "Jer Noble",
        "email": "jer.noble@apple.com",
        "time": "Sun Apr 12 16:37:27 2026"
      },
      "message": "[Build Speed] Move debug-only code in VMManager out-of-line; causing excess template creation\nrdar://174524471\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311979\n\nReviewed by Simon Fraser.\n\nVMManager::mode::dump() causes a number of templates to be instantiated, and those\ntemplates are by far the most expensive template instantiations in all of JSC. Also,\nthe dump() method is entirely unused. This change removes the top 7 most expensive\ntemplate instantiations in the JSC build.\n\n* Source/JavaScriptCore/runtime/VMManager.cpp:\n(JSC::VMManager::Info::dump const):\n* Source/JavaScriptCore/runtime/VMManager.h:\n(JSC::VMManager::Info::dump const): Deleted.\n\nCanonical link: https://commits.webkit.org/311036@main\n"
    },
    {
      "commit": "9d282b549315316f3e71d163a772922812f40c40",
      "tree": "b6b1d1fc4fd4217e70d9be9771dff69237d33ab0",
      "parents": [
        "db6887c9076ea6cbc52aee1c20c64350c7c16261"
      ],
      "author": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Sun Apr 12 15:24:23 2026"
      },
      "committer": {
        "name": "Philippe Normand",
        "email": "philn@igalia.com",
        "time": "Sun Apr 12 15:24:23 2026"
      },
      "message": "[GStreamer] Gardening\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312097\n\nUnreviewed, update a couple media tests expectations.\n\n* LayoutTests/platform/glib/TestExpectations:\nfast/mediastream/mediastreamtrack-configurationchange.html is not flaky but a consitent failure.\n* LayoutTests/platform/gtk/TestExpectations: webrtc/h264-high.html is not timing out but flagging it\nas flaky timeout made it appear so... Flag is as slow instead.\n\nCanonical link: https://commits.webkit.org/311035@main\n"
    },
    {
      "commit": "db6887c9076ea6cbc52aee1c20c64350c7c16261",
      "tree": "d902a21c5c8faedfb73f143c06d18d7593cd99d3",
      "parents": [
        "56d2552b3d1132533d25aa91eb2dbfe1f9cdbd74"
      ],
      "author": {
        "name": "Geoffrey Garen",
        "email": "ggaren@apple.com",
        "time": "Sun Apr 12 14:22:36 2026"
      },
      "committer": {
        "name": "Geoffrey Garen",
        "email": "ggaren@apple.com",
        "time": "Sun Apr 12 14:22:36 2026"
      },
      "message": "2X (7s) speedup in the bmalloc clean build\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312072\nrdar://174582619\n\nReviewed by Richard Robinson.\n\nMostly changes to improve build parallelism.\n\n* Source/bmalloc/CMakeLists.txt:\n* Source/bmalloc/Configurations/bmalloc.xcconfig:\n* Source/bmalloc/Configurations/libpas.xcconfig: Removed. Merged the bmalloc\nand libpas targets. There\u0027s no logical separation anymore, and the two targets\nare merged in the CMake build already.\n\nSeparate targets reduced parallelism because the second target waited for the\nfirst.\n\n* Source/bmalloc/bmalloc.swift: Removed. Don\u0027t build an unused Swift module.\nIt ends up precompiling many transitive dependecies -- but in a way that the\nrest of the build does not currently reuse.\n\n* Source/bmalloc/bmalloc.xcodeproj/project.pbxproj: Ditto.\n\n* Source/bmalloc/bmalloc/TZoneHeap.cpp: Only #include bmalloc_heap_iso_internal.h\nbecause it\u0027s much smaller.\n\n* Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj:\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap.c:\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap.h:\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_flex.c: Added.\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_flex_internal.h: Added.\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso.c: Added.\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso_internal.h: Renamed from Source/bmalloc/libpas/src/libpas/bmalloc_heap_internal.h.\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_utils.c: Added.\n* Source/bmalloc/libpas/src/libpas/bmalloc_heap_utils.h: Added. Split bmalloc_heap.c\ninto separate files because it was enormous, which prevented parallelism. I only\nsplit out files that would not require including bmalloc_heap_inlines.h, since\nincluding that big header twice would outweigh the optimization.\n\nCanonical link: https://commits.webkit.org/311034@main\n"
    },
    {
      "commit": "56d2552b3d1132533d25aa91eb2dbfe1f9cdbd74",
      "tree": "5d8bc218ad1ac3bca4c08d8ccd33f936ad2830b6",
      "parents": [
        "265d1003ba32347971ba3ad56cbd57fd0bed3cdd"
      ],
      "author": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Sun Apr 12 13:34:14 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Sun Apr 12 13:34:14 2026"
      },
      "message": "WKWebView.URL should not need not parse the URL string every time it is called\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312009\nrdar://174434204\n\nReviewed by Darin Adler.\n\nUpdate PageLoadState to store urls as URL, not String. Otherwise, APIs\nlike WKWebView.URL have to keep re-parsing the URL string every thing\nthey\u0027re called.\n\n* Source/WTF/wtf/URL.cpp:\n(WTF::aboutBlankURL):\n(WTF::aboutSrcDocURL):\n* Source/WTF/wtf/URL.h:\n* Source/WebKit/UIProcess/API/C/WKPage.cpp:\n(WKPageSetPageUIClient):\n(WKPageCopyPendingAPIRequestURL):\n* Source/WebKit/UIProcess/API/C/mac/WKPagePrivateMac.mm:\n(-[WKObservablePageState URL]):\n(-[WKObservablePageState unreachableURL]):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView URL]):\n(-[WKWebView _unreachableURL]):\n(-[WKWebView _committedURL]):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:\n* Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:\n(PageLoadStateObserver::didChangeActiveURL):\n(webkitWebViewWillStartLoad):\n(webkitWebViewLoadChanged):\n(webkitWebViewGetLoadDecisionForIcons):\n(webkitWebViewUpdatePageIcons):\n(webkitWebViewSetIcon):\n* Source/WebKit/UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:\n* Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk.cpp:\n(webkitWebViewScriptDialog):\n* Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:\n(WebKit::WebAutomationSession::buildBrowsingContextForPage):\n(WebKit::WebAutomationSession::addSingleCookie):\n(WebKit::WebAutomationSession::deleteAllCookies):\n* Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h:\n* Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:\n(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):\n(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):\n* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:\n(WebKit::WebPageProxy::shouldAllowAutoFillForCellularIdentifiers const):\n* Source/WebKit/UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp:\n* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:\n(WebKit::NetworkProcessProxy::deleteWebsiteDataInWebProcessesForOrigin):\n* Source/WebKit/UIProcess/PageLoadState.cpp:\n(WebKit::PageLoadState::reset):\n(WebKit::PageLoadState::activeURL):\n(WebKit::PageLoadState::hasOnlySecureContent):\n(WebKit::PageLoadState::didExplicitOpen):\n(WebKit::PageLoadState::didStartProvisionalLoad):\n(WebKit::PageLoadState::didReceiveServerRedirectForProvisionalLoad):\n(WebKit::PageLoadState::didFailProvisionalLoad):\n(WebKit::PageLoadState::didCommitLoad):\n(WebKit::PageLoadState::didSameDocumentNavigation):\n(WebKit::PageLoadState::setUnreachableURL):\n* Source/WebKit/UIProcess/PageLoadState.h:\n(WebKit::PageLoadState::activeURL const):\n* Source/WebKit/UIProcess/RemotePageProxy.cpp:\n(WebKit::RemotePageProxy::injectPageIntoNewProcess):\n(WebKit::RemotePageProxy::setDrawingArea):\n* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:\n(WebKit::UserMediaPermissionRequestManagerProxy::decidePolicyForUserMediaPermissionRequest):\n(WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):\n(WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForCamera const):\n(WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForMicrophone const):\n(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::launchProcessForReload):\n(WebKit::WebPageProxy::loadRequestWithNavigationShared):\n(WebKit::WebPageProxy::loadFile):\n(WebKit::WebPageProxy::loadDataWithNavigationShared):\n(WebKit::WebPageProxy::loadSimulatedRequest):\n(WebKit::WebPageProxy::loadAlternateHTML):\n(WebKit::WebPageProxy::reload):\n(WebKit::WebPageProxy::goToBackForwardItem):\n(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):\n(WebKit::WebPageProxy::continueNavigationInNewProcess):\n(WebKit::WebPageProxy::sessionState const):\n(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):\n(WebKit::WebPageProxy::didExplicitOpenForFrame):\n(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):\n(WebKit::WebPageProxy::didChangeProvisionalURLForFrameShared):\n(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):\n(WebKit::WebPageProxy::didSameDocumentNavigationForFrameViaJS):\n(WebKit::WebPageProxy::decidePolicyForNavigationAction):\n(WebKit::WebPageProxy::decidePolicyForResponseShared):\n(WebKit::WebPageProxy::currentURL const):\n(WebKit::WebPageProxy::tryReloadAfterProcessTermination):\n* Source/WebKit/UIProcess/WebProcessPool.cpp:\n(WebKit::WebProcessPool::processForNavigationInternal):\n* Source/WebKit/UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp:\n(WebKit::WebDeviceOrientationAndMotionAccessController::shouldAllowAccess):\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:\n(WebKit::WebsiteDataStore::download):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKBackForwardListTests.mm:\n(TEST(WKBackForwardList, InteractionStateRestoration)):\n(TEST(WKBackForwardList, InteractionStateRestorationNil)):\n(TEST(WKBackForwardList, InteractionStateRestorationInvalid)):\n(TEST(WKBackForwardList, InteractionStateRestorationMultipleItems)):\n(TEST(WKBackForwardList, BackSwipeNavigationSkipsItemsWithoutUserGesture)):\n(TEST(WKBackForwardList, BackSwipeNavigationDoesNotSkipItemsWithUserGesture)):\n(runBackForwardNavigationSkipsItemsWithoutUserGestureTest):\n(runBackForwardNavigationDoesNotSkipItemsWithUserGestureTest):\n(TEST(WKBackForwardList, BackForwardNavigationDoesNotSkipUpdatedItemWithRecentUserGesture)):\n(TEST(WKBackForwardList, BackNavigationHijacking)):\n* Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:\n(WebViewTest::loadURI):\n(WebViewTest::loadHtml):\n(WebViewTest::loadBytes):\n(WebViewTest::loadRequest):\n(WebViewTest::loadAlternateHTML):\n\nCanonical link: https://commits.webkit.org/311033@main\n"
    },
    {
      "commit": "265d1003ba32347971ba3ad56cbd57fd0bed3cdd",
      "tree": "20ba1bbe7d667e880049dfb70efc516f5d9b0d70",
      "parents": [
        "cfed70b0995468ec5afc297a754339943a352cbd"
      ],
      "author": {
        "name": "Ian Grunert",
        "email": "ian.grunert@gmail.com",
        "time": "Sun Apr 12 12:27:34 2026"
      },
      "committer": {
        "name": "Ian Grunert",
        "email": "ian.grunert@gmail.com",
        "time": "Sun Apr 12 12:27:34 2026"
      },
      "message": "[Win] Fix build on clang 21\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311934\n\nReviewed by Claudio Saavedra and Abrar Rahman Protyasha.\n\nWorkarounds for a couple of bugs in the MS ABI Mangler in clang 21.\n\nFix compilation of logging paths in GLContext when LOG_DISABLED is\nfalse and RELEASE_LOG_DISABLED is true. Previously it\u0027d fail to build\ndue to unused parameters as the RELEASE_LOG_* functions were void().\n\nAlso fix some ccache config; move config of CCACHE_SLOPPINESS and\nCCACHE_PCH_EXTSUM to cmake. CCACHE_PCH_EXTERNAL_CHECKSUM was the wrong\nenvironment variable to set as well.\n\nCanonical link: https://commits.webkit.org/311032@main\n"
    },
    {
      "commit": "cfed70b0995468ec5afc297a754339943a352cbd",
      "tree": "aa23095e8100489560639e8003802b1dcb8c8cd2",
      "parents": [
        "a3ea192199a9cf6018890cf11cddfe0b442353be"
      ],
      "author": {
        "name": "Yusuke Suzuki",
        "email": "ysuzuki@apple.com",
        "time": "Sun Apr 12 09:59:30 2026"
      },
      "committer": {
        "name": "Yusuke Suzuki",
        "email": "ysuzuki@apple.com",
        "time": "Sun Apr 12 09:59:30 2026"
      },
      "message": "checkUTF8 should use SIMDUTF\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312076\nrdar://174585782\n\nReviewed by Sosuke Suzuki.\n\nUse SIMDUTF in checkUTF8. Also adding WTF::Unicode::checkUTF8WithoutUTF16Length,\nwhich only validates UTF-8. We use this in wasm name parsing.\n\n* Source/JavaScriptCore/wasm/WasmParser.h:\n(JSC::Wasm::ParserBase::consumeUTF8String):\n* Source/WTF/wtf/unicode/UTF8Conversion.cpp:\n(WTF::Unicode::checkUTF8WithoutUTF16Length):\n(WTF::Unicode::checkUTF8):\n* Source/WTF/wtf/unicode/UTF8Conversion.h:\n\nCanonical link: https://commits.webkit.org/311031@main\n"
    },
    {
      "commit": "a3ea192199a9cf6018890cf11cddfe0b442353be",
      "tree": "b6a9a8c7cb61e95cb2bda49c7f4056d909887c8b",
      "parents": [
        "175fd097bea0b8bf82d187395123edc69d92c586"
      ],
      "author": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Sun Apr 12 09:02:32 2026"
      },
      "committer": {
        "name": "Chris Dumez",
        "email": "cdumez@apple.com",
        "time": "Sun Apr 12 09:02:32 2026"
      },
      "message": "NavigationDisabler should not block navigations in unrelated frames\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d312044\n\nReviewed by Darin Adler.\n\nNavigationDisabler was storing its disable count on the main frame,\nmaking it page-global. This meant that when shouldClose() dispatched\nbeforeunload for one iframe, its NavigationDisabler would block\nnavigations in all other iframes on the page. If JavaScript happened\nto schedule a navigation on a sibling iframe during this window (e.g.\nvia promise microtasks from the beforeunload handler, or from setting\nframe.src while an async policy check was in flight), the\nscheduleLocationChange would be silently dropped.\n\nFix by storing the disable count on the specific frame rather than\nthe main frame. isNavigationAllowed() now walks both directions:\nup the ancestor chain (a descendant can\u0027t navigate while an ancestor\nhas beforeunload active) and down the descendant tree (an ancestor\ncan\u0027t navigate while a descendant has beforeunload active). Sibling\nframes that are not in the ancestor-descendant chain are unaffected.\n\nThis matches the behavior of Chrome and Firefox, where navigations\nof sibling iframes are allowed during another iframe\u0027s beforeunload\ndispatch, while navigations of the frame itself, its ancestors, and\nits descendants remain blocked.\n\n* LayoutTests/fast/events/before-unload-sibling-frame-expected.txt:\n* LayoutTests/fast/events/before-unload-sibling-frame.html:\nUpdated test expectations to match the correct behavior: navigating a\nsibling iframe during beforeunload should be allowed, not blocked.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/navigation-during-beforeunload-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/navigation-during-beforeunload.html: Added.\nAdd WPT test coverage.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/refresh-time-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/refresh-time.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/gotRefreshed.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/refresh1.99.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/refresh1.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/meta/resources/refresh1dotdot9dot.html: Added.\nImport WPT test from upstream that was failing due to this bug in shipping\nSafari. This test is fully passing in Chrome and Firefox.\n\n* Source/WebCore/loader/NavigationDisabler.h:\n(WebCore::NavigationDisabler::NavigationDisabler):\n(WebCore::NavigationDisabler::~NavigationDisabler):\n(WebCore::NavigationDisabler::isNavigationAllowed):\n* Source/WebCore/page/LocalFrame.h:\n\nCanonical link: https://commits.webkit.org/311030@main\n"
    },
    {
      "commit": "175fd097bea0b8bf82d187395123edc69d92c586",
      "tree": "8d2a1470e73d9baeae7d9c7d84db932ca492f2fd",
      "parents": [
        "5767bc45a2caf7fc69e2619b4afc183ea9f213bb"
      ],
      "author": {
        "name": "Simon Pena",
        "email": "spena@igalia.com",
        "time": "Sun Apr 12 08:46:09 2026"
      },
      "committer": {
        "name": "Simon Pena",
        "email": "spena@igalia.com",
        "time": "Sun Apr 12 08:46:09 2026"
      },
      "message": "[WPE][Qt] Remove apparently dead code writing to offscreen surface\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d311981\n\nReviewed by Nikolas Zimmermann.\n\nwpe_view_qtquick_render_buffer_to_texture was previously writing into an\nOffscreenSurface that doesn\u0027t seem to be read from at all.\nwpe_view_qtquick_initialize_rendering prepares shaders and performs\ninitializations, and afterwards\nwpe_view_qtquick_render_buffer_to_texture draws into the surface, but\nwhat Qt ends up receiving is the bound textureId.\n\nNo visual differences can be appreciated when running graphics\nbenchmarks on laptop.\n\n* Source/WebKit/UIProcess/API/wpe/qt6/WPEViewQtQuick.cpp:\n(wpe_view_qtquick_initialize_rendering):\n(wpe_view_qtquick_render_buffer_to_texture):\n\nCanonical link: https://commits.webkit.org/311029@main\n"
    }
  ],
  "next": "5767bc45a2caf7fc69e2619b4afc183ea9f213bb"
}
