{
  "commits": {
    "312353@main": {
      "author": "Pawel Lampe",
      "avatar": "https://www.gravatar.com/avatar/3c9bf19417c230eff7ade252118deb7a?d=identicon\u0026s=64",
      "cl": "312353@main",
      "clUrl": "https://commits.webkit.org/312353@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321076\n\nReviewed by Adrian Perez de Castro.\n\nThis change adds two options to Minibrowser, which read one or more\nuser scripts from the given paths and inject them at document start\nand document end respectively:\n  --user-script-at-start\n  --user-script-at-end\n\nThis is same as https://commits.webkit.org/312353@main yet for WPE.\n\nCanonical link: https://commits.webkit.org/318625@main",
      "email": "plampe@igalia.com",
      "hash": "0aa15fd03d5bc4cae0536e166ec7e1c0a877c7d5",
      "subject": "[WPE] Minibrowser: add user scripts via command-line options"
    },
    "318528@main": {
      "author": "Roberto Rodriguez",
      "avatar": "https://www.gravatar.com/avatar/45f4995b936231d4893f38e70cbc4805?d=identicon\u0026s=64",
      "cl": "318528@main",
      "clUrl": "https://commits.webkit.org/318528@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321010\nrdar://184046305\n\nReviewed by Ryan Reno.\n\nRe-import a pair of tests accidentally removed from WebKit's repo from a larger csp\ntest resync commit: https://commits.webkit.org/318528@main\n\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_modulepreload_parser_inserted_module.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_modulepreload_parser_inserted_module.html.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_module_empty_hash.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_module_empty_hash.html.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_modulepreload_parser_inserted_module-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_module_empty_hash-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318596@main",
      "email": "roberto_rodriguez2@apple.com",
      "hash": "8764cb879c75d1249f8c9cf139116b157cef6351",
      "subject": "Re-import content-security-policy/script-src"
    },
    "318539@main": {
      "author": "Carlos Alberto Lopez Perez",
      "avatar": "https://www.gravatar.com/avatar/05326c1dbe06f486e884975e73f25179?d=identicon\u0026s=64",
      "cl": "318539@main",
      "clUrl": "https://commits.webkit.org/318539@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316878\n\nUnreviewed workaround to avoid test crashes.\n\nTemporally disable Swift to allow switching the GTK/WPE bots to use\nClang by default. See: https://commits.webkit.org/318539@main\n\nThe bots run with Release+Asserts which currently cause issues with\nSwift. A fix for this will be proposed shortly after the bots are\nrunning with Clang so the fix itself can be tested properly on the\nEWS.\n\n* Source/cmake/WebKitFeatures.cmake:\n\nCanonical link: https://commits.webkit.org/318624@main",
      "email": "clopez@igalia.com",
      "hash": "63331382f0688b3e63f01ca5247fc359fb09d2d7",
      "subject": "REGRESSION(314923@main): [Swift][GTK][WPE] ASSERTION FAILED: !m_adoptionIsRequired in WebPageProxy::backForwardListMessageReceiver()"
    },
    "318585@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "318585@main",
      "clUrl": "https://commits.webkit.org/318585@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320935\nrdar://183967134\n\nReviewed by Tim Nguyen and Brent Fulgham.\n\nAdd an off-by-default feature flag for CSS Values 5 toggle() feature flag\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/318585@main",
      "email": "ccarley2@apple.com",
      "hash": "6f3dc1ddaf6aa16214112078639291694832323a",
      "subject": "Add CSS Values 5 toggle() feature flag"
    },
    "318586@main": {
      "author": "Dan Hecht",
      "avatar": "https://www.gravatar.com/avatar/080f47d912b1b34d0be8293f825d132d?d=identicon\u0026s=64",
      "cl": "318586@main",
      "clUrl": "https://commits.webkit.org/318586@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321025\nrdar://184061438\n\nReviewed by Yusuke Suzuki and Keith Miller.\n\nThe old comment was opaque: it hinted at a protocol but did not fully\ndescribe it, in particular the caller's obligations on either side of\nthis point. Describe the protocol and reasoning more explicitly.\n\nComment-only change.\n\n* Source/JavaScriptCore/runtime/JSCellInlines.h:\n(JSC::JSCell::finishCreation):\n\nCanonical link: https://commits.webkit.org/318586@main",
      "email": "dan.hecht@apple.com",
      "hash": "0e0acedee048e3444ba9c7ed63aab0d8915437c4",
      "subject": "[JSC] Document the cell construction protocol at JSCell::finishCreation()"
    },
    "318587@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318587@main",
      "clUrl": "https://commits.webkit.org/318587@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320659\n\nReviewed by Ian Grunert.\n\nGive Windows a `PlatformPasteboard` and a `WebPasteboardProxy` so that plain text reaches the clipboard the same way it does on the ports that already support the async clipboard API.\n\n`Clipboard::readText()` rejects as soon as `Pasteboard::allPasteboardItemInfo()` returns `std::nullopt`, and that is all it can ever return on Windows because the function is only implemented for `PLATFORM(COCOA)`, `PLATFORM(GTK)`, and `PLATFORM(WPE)`.\nIt cannot be implemented for Windows while the clipboard is reached straight from `Win32` in the WebProcess rather than through a pasteboard strategy.\n\n* Source/WebCore/Modules/async-clipboard/Clipboard.cpp:\n(WebCore::Clipboard::writeText):\n(WebCore::Clipboard::ItemWriter::didSetAllData):\n* Source/WebCore/Modules/async-clipboard/ClipboardItem.cpp:\n(WebCore::ClipboardItem::supports):\n* Source/WebCore/Modules/async-clipboard/ClipboardItem.h:\n* Source/WebCore/Modules/async-clipboard/ClipboardItem.idl:\nPass the current `ScriptExecutionContext` to `ClipboardItem.supports()` and consult `AsyncClipboardRichContentEnabled` instead of branching on the platform in async clipboard code.\nUse the same runtime capability to reject multiple items, non-plain types, and buffer-backed data before the clipboard is touched.\nMark async writes explicitly with `PasteboardWriteType::AsyncClipboard`.\n\n* Source/WebCore/platform/win/PasteboardWin.cpp:\n(WebCore::Pasteboard::Pasteboard):\n(WebCore::Pasteboard::changeCount const): Added.\n(WebCore::Pasteboard::read):\n(WebCore::Pasteboard::writeCustomData):\n* Source/WebCore/platform/Pasteboard.cpp:\n(WebCore::Pasteboard::allPasteboardItemInfo const):\n(WebCore::Pasteboard::pasteboardItemInfo const):\n* Source/WebCore/platform/Pasteboard.h:\nAsk the strategy for the item info, change count, types, and text of the copy and paste clipboard, so that a single place owns it.\nRoute only writes marked `PasteboardWriteType::AsyncClipboard` through the strategy.\nLeave drag, `DataTransfer`, and legacy copy and paste behavior unchanged.\n\n* Source/WebCore/platform/win/PlatformPasteboardWin.cpp: Added.\n(WebCore::clipboardOwner): Added.\n(WebCore::readClipboardString): Added.\n(WebCore::setClipboardData): Added.\n(WebCore::PlatformPasteboard::PlatformPasteboard): Added.\n(WebCore::PlatformPasteboard::performAsDataOwner): Added.\n(WebCore::PlatformPasteboard::changeCount const): Added.\n(WebCore::PlatformPasteboard::getTypes const): Added.\n(WebCore::PlatformPasteboard::readCustomData const): Added.\n(WebCore::PlatformPasteboard::readString const): Added.\n(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Added.\n(WebCore::PlatformPasteboard::informationForItemAtIndex): Added.\n(WebCore::PlatformPasteboard::allPasteboardItemInfo): Added.\n(WebCore::PlatformPasteboard::count const): Added.\n(WebCore::PlatformPasteboard::write): Added.\n* Source/WebCore/platform/PlatformPasteboard.h:\n* Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp:\n(WebCore::customDataClipboardFormat): Added.\n* Source/WebCore/platform/win/ClipboardUtilitiesWin.h:\nImplement the plain text and same-origin metadata operations that the async clipboard API needs on top of the `Win32` clipboard.\nReads and writes go through a message only owner window, because `EmptyClipboard()` makes the owner of an unowned clipboard null and `SetClipboardData()` then fails.\nRead serialized custom data by length rather than as a null terminated string.\nIgnore unsupported data without changing the clipboard.\n\n* Source/WebKit/UIProcess/win/WebPasteboardProxyWin.cpp: Added.\n(WebKit::WebPasteboardProxy::getPasteboardChangeCount): Added.\n(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite): Added.\n(WebKit::WebPasteboardProxy::writeCustomData): Added.\n(WebKit::WebPasteboardProxy::allPasteboardItemInfo): Added.\n(WebKit::WebPasteboardProxy::informationForItemAtIndex): Added.\n(WebKit::WebPasteboardProxy::getPasteboardItemsCount): Added.\n(WebKit::WebPasteboardProxy::readStringFromPasteboard): Added.\n(WebKit::WebPasteboardProxy::readURLFromPasteboard): Added.\n(WebKit::WebPasteboardProxy::readBufferFromPasteboard): Added.\n* Source/WebKit/UIProcess/WebPasteboardProxy.cpp:\nAnswer the pasteboard messages for Windows in the UIProcess.\n\n* Source/WebKit/UIProcess/win/PageClientImpl.cpp:\n(WebKit::PageClientImpl::requestDOMPasteAccess):\nGrant paste access when the origin asking for it is the one that wrote the clipboard, matching WPE.\n\n* Source/WebCore/platform/cocoa/PasteboardCocoa.mm:\n(WebCore::Pasteboard::writeCustomData):\n* Source/WebCore/platform/glib/PasteboardGLib.cpp:\n(WebCore::Pasteboard::writeCustomData):\n* Source/WebCore/platform/libwpe/PasteboardLibWPE.cpp:\n(WebCore::Pasteboard::writeCustomData):\n* Source/WebCore/platform/StaticPasteboard.h:\n(WebCore::StaticPasteboard::writeCustomData):\nAccept `PasteboardWriteType` without changing the existing behavior on other platforms.\n\n* Source/WebCore/platform/PasteboardStrategy.h:\n* Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:\n(WebKit::WebPlatformStrategies::changeCount):\n* Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h:\n* Source/WebKit/UIProcess/WebPasteboardProxy.h:\n* Source/WebKit/UIProcess/WebPasteboardProxy.messages.in:\n* Tools/TestWebKitAPI/Tests/WebCore/TestPlatformStrategies.cpp:\n(TestWebKitAPI::TestPasteboardStrategy::changeCount): Added.\nMake `GetPasteboardChangeCount` available to Windows alongside GTK and WPE.\nKeep the test pasteboard strategy concrete on Windows.\n\n* LayoutTests/platform/win/TestExpectations:\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/PlatformWin.cmake:\n* Source/WebKit/PlatformWin.cmake:\n\nCanonical link: https://commits.webkit.org/318587@main",
      "email": "hi@devinrousso.com",
      "hash": "8f8836b26a36d8d6a0e2a508c3c2422437fb0ad1",
      "subject": "[Win] `navigator.clipboard.readText()` always rejects"
    },
    "318588@main": {
      "author": "Anand Srinivasan",
      "avatar": "https://www.gravatar.com/avatar/84643a20c269974c2df6681742daf0a4?d=identicon\u0026s=64",
      "cl": "318588@main",
      "clUrl": "https://commits.webkit.org/318588@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320917\nrdar://183947401\n\nReviewed by Yusuke Suzuki.\n\nProposal test durationtotal was slightly below V8 with the original\ncache size 8, and raising the size to 16 brings it to parity.\n\n                                                     ToT                      Change\ntemporal-zoned-date-time-time-zone-cache      242.0512+-4.0773          241.3375+-4.3303\n\u003cgeometric\u003e                                   242.0512+-4.0773          241.3375+-4.3303          might be 1.0030x faster\n\nTest: JSTests/microbenchmarks/temporal-zoned-date-time-time-zone-cache.js\n\n* JSTests/microbenchmarks/temporal-zoned-date-time-time-zone-cache.js: Added.\n* Source/JavaScriptCore/runtime/temporal/core/TimeZoneICUBridge.cpp:\n(JSC::TemporalCore::timeZoneCacheEntry):\n\nCanonical link: https://commits.webkit.org/318588@main",
      "email": "anand_srinivasan@apple.com",
      "hash": "8776c95a1b0ab0ff7361f3cbf66b4efc625328ee",
      "subject": "Widen JS Temporal time zone cache in TimeZoneICUBridge.cpp"
    },
    "318589@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "318589@main",
      "clUrl": "https://commits.webkit.org/318589@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320990\n\nReviewed by Nikolas Zimmermann.\n\nIts members are written from the main thread in update() and read from\nthe compositing thread in requestBackingStoreUpdateIfNeeded() without\nlocking.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp:\n(WebCore::CoordinatedAnimatedBackingStoreClient::invalidate):\n(WebCore::CoordinatedAnimatedBackingStoreClient::update):\n(WebCore::CoordinatedAnimatedBackingStoreClient::requestBackingStoreUpdateIfNeeded const):\n(WebCore::CoordinatedAnimatedBackingStoreClient::requestBackingStoreUpdateIfNeeded): Deleted.\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h:\n\nCanonical link: https://commits.webkit.org/318589@main",
      "email": "cgarcia@igalia.com",
      "hash": "f959dc4080ecda55fcafa4f26f71bba89546ff0d",
      "subject": "[CoordinatedGraphics] CoordinatedAnimatedBackingStoreClient is not thread safe"
    },
    "318590@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318590@main",
      "clUrl": "https://commits.webkit.org/318590@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321008\nrdar://184044756\n\nReviewed by Cole Carley.\n\nThis is similar to 317633@main, but for table64.\nforEachActiveElement is narrowing down the elementIndex to uint32_t, so\nlet's not do it. Also elementIndex needs to be read via i64 form in table64.\n\nTest: JSTests/wasm/stress/table64-element-offset.js\n\n* JSTests/wasm/stress/table64-element-offset.js: Added.\n(string_appeared_here.f):\n(await.assert.throwsAsync.instantiate.module.import.string_appeared_here.string_appeared_here.global.g.i64.table.i64.10.funcref.elem.global.g.f):\n(g.new.WebAssembly.Global):\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:\n(JSC::WebAssemblyModuleRecord::evaluate):\n\nCanonical link: https://commits.webkit.org/318590@main",
      "email": "ysuzuki@apple.com",
      "hash": "e942b93cdaa04a323f26b3b0facbed690ca6db63",
      "subject": "[JSC] Active element segment offsets are truncated for a table64"
    },
    "318591@main": {
      "author": "Chris Gibb",
      "avatar": "https://www.gravatar.com/avatar/21e1ccb3ee5fcd9c69984a012e22b1db?d=identicon\u0026s=64",
      "cl": "318591@main",
      "clUrl": "https://commits.webkit.org/318591@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321036\nrdar://184068774\n\nReviewed by Elliott Williams.\n\nAdd Mapping macOS Golden Gate\n\n* Tools/CISupport/ews-build/steps.py:\n(PrintConfiguration.convert_build_to_os_name):\n\nCanonical link: https://commits.webkit.org/318591@main",
      "email": "cgibb2@apple.com",
      "hash": "c496c7b5eac42dc59316b1e1e620e7b057d4dc8c",
      "subject": "Add Mapping macOS Golden Gate"
    },
    "318592@main": {
      "author": "Roberto Rodriguez",
      "avatar": "https://www.gravatar.com/avatar/45f4995b936231d4893f38e70cbc4805?d=identicon\u0026s=64",
      "cl": "318592@main",
      "clUrl": "https://commits.webkit.org/318592@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320230\nrdar://183164024\n\nReviewed by Kimmo Kinnunen\n\nContains upstream commits:\n1dec433b7f49 Remove NV suffix from some internal functions\nc013713375b2 Fix FramebufferTexture2DOES validation\n1bb9d6a05849 OpenCL: Add validation for CL_IMAGE_FORMAT_NOT_SUPPORTED\neb806a08c1d5 Test passing gl_FragData to function\n3edd2c297a3b OpenCL: Set max global variable size to 0\nc1f9769be2c2 DirectX9 Backend Removal: Remove non-shader backend files\n0cb8023c01f9 Clean up leaked EGL surface in InvalidWindowVisualID test\n66fb7b57686e Test EGL image framebuffer paths\ne2a96fd6a79e Vulkan: Refactor EGL image glTex*Image paths\na9caebb18d98 [sbom-quality] Fix license path in README.chromium\ncd6d0ed6e3a5 [Production] Add macros for -Wunsafe-buffer-usage in ANGLE\n250b2d709f46 Skip flaky  on Linux NVIDIA Vulkan\n02bac666c44b Roll Chromium from 67949328e199 to 215b9995626a (1108 revisions)\nc14fb3a478f3 Roll vulkan-deps from be1dae5413d9 to 8e7420f63043 (36 revisions)\na496152f6dc1 Fix BlendEquationOES validation\n7cfef2484050 Merge identical extension validation functions\nc011b27c5826 Disable program caching on Mali GPUs in ANGLE\n25a783f4b5d2 Roll VK-GL-CTS from 720ad8c06472 to cd01da613a2e (8 revisions)\nc053bf85793b Metal: Allow prebuilding internal shaders for iOS\nea467c307853 Remove unused code from entry point codegen\n5330964f2ca6 Remove redundant BVBI command aliases\n600b59f1595f Enable tests on ANGLE M2 experimental bot\nf834e3937bad Roll vulkan-deps from 245a3bb1956d to be1dae5413d9 (9 revisions)\n3c957bf0f117 Roll SwiftShader from f3e464b1e567 to 7868bf37d5b2 (2 revisions)\n1612deb7d7a2 Roll Chromium from 2dee4b7c2c4c to 67949328e199 (321 revisions)\n42ed65aca2df GL: Optimize depth robust init using PBOs\nd9ada3fa8ecd Roll VK-GL-CTS from 06ae3bf12ae5 to 720ad8c06472 (5 revisions)\nd79ac55ca634 Adjust extension command availability checks\n8e69854ca685 Loosen maxTextureBytes to 1.25Gb\n63eef6fc737e Capture/Replay: Update upgrade steps\n5824ebc5c775 Fix retracing assert regarding interleaved attribs\nf790c72a1f48 Adjust shared exponent color buffers validation\nf8abe1d15e04 Manual roll Chromium from dbee1fed4ad0 to 2dee4b7c2c4c (313 revisions)\n8912cf8fe56d Set up ANGLE M2 experimental CI and Try bots\n2328f63206ab Tests: Fix flaky errors in CapturedTest.cpp\na1c0c7acbdd5 Fix external contexts being updated on same thread\n1a339c8eb73d Roll vulkan-deps from c60153d2ad91 to 245a3bb1956d (11 revisions)\neec0f265a09f Roll Chromium from 58f1d2d55c00 to dbee1fed4ad0 (704 revisions)\n6c4783073b2e Reland: GL: Fix uninitialized textures on invalidate.\naea502e52005 Add trace script to detect interleaved client attr\n0eb63532519d Trace/Replay: Track source of GL/EGL Sync objects\n1860fb2d925d DirectX9 Backend Removal: Remove tests\nb73a728c023e Use packed enums for TexStorageAttribs target\nbe8ece69a04b Skip FramebufferTest_ES3.RenderSharedExponentWithMask on S24\n7917ee5a2ff5 Re-land of crrev.com/c/7953343 (reverted by crrev.com/c/7962277).\n5a16b9fa0b8c Roll vulkan-deps from 0af4fee9206d to c60153d2ad91 (9 revisions)\n63cc28e6cb4e Roll Chromium from 9513633ed143 to 58f1d2d55c00 (716 revisions)\n\nCanonical link: https://commits.webkit.org/318592@main",
      "email": "roberto_rodriguez2@apple.com",
      "hash": "6a65f66c4bd19b8639fb29fe7db7589a0860db54",
      "subject": "Update ANGLE to 2026-07-06 (1dec433b7f49fe232f1098c7e43fdaf17149bea7)"
    },
    "318593@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "318593@main",
      "clUrl": "https://commits.webkit.org/318593@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319390\nrdar://182221834\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/8ab228c702a6cfeacb3c986b06a16a744b493a8d\n\nLayoutTests/TestExpectations updated with new image failures:\n * Missing CSS-UI-4 caret properties (webkit.org/b/319405)\n * Missing text-overflow: \u003cstring\u003e (webkit.org/b/27545)\n\nNew failures (all platforms) (webkit.org/b/320474):\n * imported/w3c/web-platform-tests/css/css-ui/compute-kind-widget-no-fallback-props-001.html\n * imported/w3c/web-platform-tests/css/css-ui/text-overflow-ellipsis-multiline-001.html\n * imported/w3c/web-platform-tests/css/css-ui/resize-textarea-relative-to-right-001.tentative.html\n\nNew iOS-only failures (webkit.org/b/320474):\n * imported/w3c/web-platform-tests/css/css-ui/caret-eol-001.html\n * imported/w3c/web-platform-tests/css/css-ui/caret-eol-002.html\n * imported/w3c/web-platform-tests/css/css-ui/inert-attribute-overriding.html\n * imported/w3c/web-platform-tests/css/css-ui/resize-iframe-3d-transform.tentative.html\n * imported/w3c/web-platform-tests/css/css-ui/resize-textarea-rtl-001.tentative.html\n * imported/w3c/web-platform-tests/css/css-ui/resize-textarea-rtl-002.tentative.html\n * imported/w3c/web-platform-tests/css/css-ui/user-select-button.html\n\nNew tests:\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/animation/caret-animation-parsing.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-invalidate-author-styling-001.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/caret-shape-parsing.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/cursor-calc-hotspot.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/inert-attribute-overriding.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-all.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-animated.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-click.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-find.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-focus.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-fullscreen-ua.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-html-attribute-ua.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/interactivity-inert-modal-dialog-ua.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/interactivity-computed.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/interactivity.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/user-select-computed-contain.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/user-select-valid-contain.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/resize-iframe-3d-transform.tentative.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/resize-textarea-rtl-001.tentative.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/resize-textarea-rtl-002.tentative.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/user-select-button.html\n\nRenamed:\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/moz-user-modify-01.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/moz-user-modify-02.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/moz-user-modify-03.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/user-modify-01.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/user-modify-02.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/user-modify-03.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/webkit-user-modify-01.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/webkit-user-modify-02.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/tentative/webkit-user-modify-03.html\n\nRebaselined (contain FAIL):\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/caret-color-computed.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/caret-color-valid.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/cursor-computed.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-valid.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/user-select-computed.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/user-select-valid.html\n\nRebaselined (only PASS):\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/animation/outline-width-interpolation.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/caret-color-invalid.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/cursor-invalid.html\n * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/cursor-valid.html\n\nCanonical link: https://commits.webkit.org/318593@main",
      "email": "franco_vieira@apple.com",
      "hash": "12f5939153946ca7b42d033a2f979a6c55fcd418",
      "subject": "[WPT] Re-import css/css-ui tests"
    },
    "318594@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318594@main",
      "clUrl": "https://commits.webkit.org/318594@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321017\nrdar://184053551\n\nReviewed by Cole Carley.\n\nWe fix table64 JS API interfaces,\n\n1. Table.length[1] is defined as AddressValue[2], so it should return\n   BigInt when table is 64bit. But the current code is not doing so.\n   This patch fixes it.\n2. Table.grow should throw a range error when the specified delta is\n   exceeding[3].\n\n[1]: https://webassembly.github.io/spec/js-api/#tables\n[2]: https://webassembly.github.io/spec/js-api/#typedefdef-addressvalue\n[3]: https://webassembly.github.io/spec/js-api/#dom-table-grow\n\n* JSTests/wasm/js-api/table64-js-api.js:\n(assert.eq.wide.type):\n(assert.throws):\n(table):\n* JSTests/wasm/stress/table64-maximum.js:\n(assert.eq.instance.exports.grow):\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:\n(JSC::JSWebAssemblyTable::grow):\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h:\n* Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp:\n(JSC::JSC_DEFINE_CUSTOM_GETTER):\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n\nCanonical link: https://commits.webkit.org/318594@main",
      "email": "ysuzuki@apple.com",
      "hash": "b8af849be6f0d1b75cd19f82bf16ad80bcf8ddef",
      "subject": "[JSC] Wasm table64 JS API interfaces"
    },
    "318595@main": {
      "author": "Fady Farag",
      "avatar": "https://www.gravatar.com/avatar/0ac5127c69f90d0c57054173ae4c3108?d=identicon\u0026s=64",
      "cl": "318595@main",
      "clUrl": "https://commits.webkit.org/318595@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320943\nrdar://183975207\n\nReviewed by Jean-Yves Avenard.\n\nPreviously in `MediaRecorderPrivateWriterAVFObjC::close()`, `audioSamples` was\ncaptured instead of `videoSamples` in the video input's block, dropping pending\nvideo frames when a recording was stopped. This captures `videoSamples`,\nwhich is the intended behavior.\n\n* Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.mm:\n(WebCore::MediaRecorderPrivateWriterAVFObjC::close):\n\nCanonical link: https://commits.webkit.org/318595@main",
      "email": "com.webkit.iidmsa@gmail.com",
      "hash": "6f0a388072ca2572cb032dad566beca32af1de55",
      "subject": "MediaRecorder drops pending video frames when recording is stopped"
    },
    "318597@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318597@main",
      "clUrl": "https://commits.webkit.org/318597@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321015\nrdar://184053208\n\nReviewed by Keith Miller.\n\nThis attempts to reduce VM teardown time by simplifying\nMarkedSpace::lastChanceToFinalize. In MarkedBlock::Handle::stopAllocating,\nwe add StopAllocatingMode::ForGood mode where we do not modify\nmaintenance bits as we know that we will teardown the VM \u0026 Heap\nimmediately after this call.\n\n* Source/JavaScriptCore/heap/Heap.cpp:\n(JSC::Heap::lastChanceToFinalize):\n* Source/JavaScriptCore/heap/LocalAllocator.cpp:\n(JSC::LocalAllocator::stopAllocating):\n(JSC::LocalAllocator::stopAllocatingForGood):\n* Source/JavaScriptCore/heap/LocalAllocator.h:\n* Source/JavaScriptCore/heap/MarkedBlock.cpp:\n(JSC::MarkedBlock::Handle::stopAllocating):\n* Source/JavaScriptCore/heap/MarkedBlock.h:\n* Source/JavaScriptCore/heap/MarkedSpace.cpp:\n(JSC::MarkedSpace::lastChanceToFinalize):\n(JSC::MarkedSpace::stopAllocatingForGood): Deleted.\n* Source/JavaScriptCore/heap/MarkedSpace.h:\n\nCanonical link: https://commits.webkit.org/318597@main",
      "email": "ysuzuki@apple.com",
      "hash": "6bdb4f69e23bba6d8c105477da09c4edec06ffaa",
      "subject": "[JSC] Simplify VM teardown via specialized stopAllocationForGood"
    },
    "318598@main": {
      "author": "Said Abou-Hallawa",
      "avatar": "https://www.gravatar.com/avatar/ae80a929a378a055822829ae63903296?d=identicon\u0026s=64",
      "cl": "318598@main",
      "clUrl": "https://commits.webkit.org/318598@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320947\nrdar://183978625\n\nReviewed by Simon Fraser.\n\nThis change implements the IDL additions which are required for the WebCodecs\nImageDecoder[1]. The WebCore sources were changed just to allow compiling. New\nfunctionalities will be filled later.\n\nAn internal feature flag for enabling WebCodecsImageDecoder is added. It is off\nby default for now.\n\n[1] https://w3c.github.io/webcodecs/#imagedecoder-interface\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/DerivedSources.make:\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecodeResult.h: Added.\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecodeResult.idl: Added.\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecoder.cpp: Added.\n(WebCore::WebCodecsImageDecoder::create):\n(WebCore::WebCodecsImageDecoder::WebCodecsImageDecoder):\n(WebCore::WebCodecsImageDecoder::tracks const):\n(WebCore::WebCodecsImageDecoder::decode):\n(WebCore::WebCodecsImageDecoder::reset):\n(WebCore::WebCodecsImageDecoder::close):\n(WebCore::WebCodecsImageDecoder::isTypeSupported):\n(WebCore::WebCodecsImageDecoder::suspend):\n(WebCore::WebCodecsImageDecoder::stop):\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecoder.h: Added.\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecoder.idl: Added.\n* Source/WebCore/Modules/webcodecs/WebCodecsImageTrack.cpp: Added.\n(WebCore::WebCodecsImageTrack::create):\n(WebCore::WebCodecsImageTrack::WebCodecsImageTrack):\n* Source/WebCore/Modules/webcodecs/WebCodecsImageTrack.h: Added.\n(WebCore::WebCodecsImageTrack::animated const):\n(WebCore::WebCodecsImageTrack::frameCount const):\n(WebCore::WebCodecsImageTrack::repetitionCount const):\n* Source/WebCore/Modules/webcodecs/WebCodecsImageTrack.idl: Added.\n* Source/WebCore/Modules/webcodecs/WebCodecsImageTrackList.cpp: Added.\n(WebCore::WebCodecsImageTrackList::create):\n(WebCore::WebCodecsImageTrackList::WebCodecsImageTrackList):\n(WebCore::WebCodecsImageTrackList::item):\n(WebCore::WebCodecsImageTrackList::selectedTrack const):\n(WebCore::WebCodecsImageTrackList::item const):\n* Source/WebCore/Modules/webcodecs/WebCodecsImageTrackList.h: Added.\n(WebCore::WebCodecsImageTrackList::length const):\n(WebCore::WebCodecsImageTrackList::isSupportedPropertyIndex const):\n* Source/WebCore/Modules/webcodecs/WebCodecsImageTrackList.idl: Added.\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/bindings/js/JSWebCodecsImageDecoderCustom.cpp: Added.\n(WebCore::JSWebCodecsImageDecoder::visitAdditionalChildrenInGCThread):\n* Source/WebCore/bindings/js/WebCoreBuiltinNames.h:\n* Source/WebCore/dom/EventTargetFactory.in:\n* Source/WebCore/CMakeLists.txt:\n* Source/WebCore/Modules/websockets/WebSocketChannelInspector.h:\n\nCanonical link: https://commits.webkit.org/318598@main",
      "email": "said@apple.com",
      "hash": "e203e1a8250fd66a933d59834fe744a3aabdf18b",
      "subject": "Implement the IDL changes for WebCodecsImageDecoder"
    },
    "318599@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318599@main",
      "clUrl": "https://commits.webkit.org/318599@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321011\nrdar://184048502\n\nReviewed by Antoine Quint.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/b318e17a2f726eeb33bf9d88275341675da28fc5\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/timeline-trigger-source-starts-in-trigger-range.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-name-shadow-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-name-shadow.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-on-pseudo-002-expected.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-on-pseudo-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-name-shadow-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-name-shadow.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-pseudo-on-scroller-002-expected.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-pseudo-on-scroller-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/effect-updateTiming.tentative-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/effect-updateTiming.tentative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/view-timeline-on-display-none-element.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/view-timeline-snapport.html:\n\nCanonical link: https://commits.webkit.org/318599@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "5a991ab0a4cda96c8c3f3c53d3edac4aee7ff4ce",
      "subject": "Resync `scroll-animations` from WPT Upstream"
    },
    "318600@main": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "318600@main",
      "clUrl": "https://commits.webkit.org/318600@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318396\nrdar://181181810\n\nReviewed by Said Abou-Hallawa.\n\nPerformanceTests/SVG/TextOnPathSimple.html lays out about 39x slower\nthan Chromium, and it gets worse as the path grows with the text.\n\nlayoutTextOnLineOrPath asked Path::traversalStateAtLength() for a point\nonce per glyph. That call keeps nothing between calls, so every glyph\nwalked the path from the start and re-split every curve. N glyphs on M\nsegments cost O(N*M).\n\nThis flattens the path once into a table of (point, accumulated length)\nand binary searches it per glyph: O(M + N*log M). PathArcLengthMapper\nsubdivides curves exactly as PathTraversalState did, so glyph positions\nare unchanged.\n\nThe subdivision loop they share now lives once in PathCurveSubdivision.h.\n\nTwo space glyphs move by 0.01px, from adding leaf lengths in one running\nsum instead of per element:\n  * svg/text/textLength-tspan-in-textPath.html 606.91 to 606.90,\n  * and svg/batik/text/verticalText.svg 27.99 to 28.00 on ios.\nTheir baselines are updated.\n\nNote that this does not fully close the gap with the other engines.\nBuilding the table now costs more than querying it, so there is more to\nwin.\n\n* LayoutTests/platform/ios/svg/batik/text/verticalText-expected.txt:\n* LayoutTests/platform/ios/svg/text/textLength-tspan-in-textPath-expected.txt:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/text/textLength-tspan-in-textPath-expected.txt:\n* LayoutTests/platform/mac/svg/text/textLength-tspan-in-textPath-expected.txt:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/platform/graphics/Path.cpp:\n(WebCore::Path::arcLengthMapper const):\n* Source/WebCore/platform/graphics/Path.h:\n* Source/WebCore/platform/graphics/PathArcLengthMapper.cpp: Added.\n(WebCore::PathArcLengthMapper::addVertex):\n(WebCore::PathArcLengthMapper::appendPathElement):\n(WebCore::PathArcLengthMapper::positionAtLength const):\n* Source/WebCore/platform/graphics/PathArcLengthMapper.h: Copied from Source/WebCore/platform/graphics/PathTraversalState.h.\n(WebCore::PathArcLengthMapper::appendPathElement):\n(WebCore::PathArcLengthMapper::totalLength const):\n* Source/WebCore/platform/graphics/PathCurveSubdivision.h: Added.\n(WebCore::distanceLine):\n(WebCore::QuadraticBezier::QuadraticBezier):\n(WebCore::QuadraticBezier::approximateDistance const):\n(WebCore::QuadraticBezier::split const):\n(WebCore::CubicBezier::CubicBezier):\n(WebCore::CubicBezier::approximateDistance const):\n(WebCore::CubicBezier::split const):\n(WebCore::forEachFlattenedCurveLeaf):\n* Source/WebCore/platform/graphics/PathTraversalState.cpp:\n(WebCore::curveLength):\n(WebCore::distanceLine): Deleted.\n(WebCore::QuadraticBezier::QuadraticBezier): Deleted.\n(WebCore::QuadraticBezier::approximateDistance const): Deleted.\n(WebCore::QuadraticBezier::split const): Deleted.\n(WebCore::CubicBezier::CubicBezier): Deleted.\n(WebCore::CubicBezier::approximateDistance const): Deleted.\n(WebCore::CubicBezier::split const): Deleted.\n* Source/WebCore/platform/graphics/PathTraversalState.h:\n* Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp:\n(WebCore::SVGTextLayoutEngine::beginTextPathLayout):\n(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):\n* Source/WebCore/rendering/svg/SVGTextLayoutEngine.h:\n\nCanonical link: https://commits.webkit.org/318600@main",
      "email": "karlcow@apple.com",
      "hash": "51ec1112daafae8037a6330c87597eba1342582c",
      "subject": "\u003ctextPath\u003e layout re-walks the whole path per glyph  (TextOnPathSimple)"
    },
    "318601@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "318601@main",
      "clUrl": "https://commits.webkit.org/318601@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320971\n\nReviewed by Darin Adler.\n\nAudioWorkletGlobalScope::m_currentFrame starts at 0 and is only updated in\nhandlePostRenderTasks(), which runs at the end of each render quantum. Because\nthe worklet global scope is created lazily by audioWorklet.addModule(), a worklet\ncreated after the AudioContext is suspended never runs a render quantum, so its\ncurrentFrame stayed at 0 instead of reflecting the context's current frame.\n\nFix this by seeding the worklet global scope's frame from the context's current\nsample frame at creation time. Once rendering starts (or resumes),\nhandlePostRenderTasks() takes over updating m_currentFrame as before.\n\nNo new tests, rebaselined existing test. This WPT test was already passing\nin Chrome and Firefox.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-creation-time.https-expected.txt:\n* Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp:\n(WebCore::AudioWorkletGlobalScope::AudioWorkletGlobalScope):\n* Source/WebCore/Modules/webaudio/AudioWorkletMessagingProxy.cpp:\n(WebCore::generateWorkletParameters):\n* Source/WebCore/worklets/WorkletParameters.h:\n(WebCore::WorkletParameters::isolatedCopy const):\n(WebCore::WorkletParameters::isolatedCopy):\n\nCanonical link: https://commits.webkit.org/318601@main",
      "email": "cdumez@apple.com",
      "hash": "a0b5d79d7218d0f0405aa3c516d701a9e286c3cd",
      "subject": "AudioWorkletGlobalScope.currentFrame is 0 when a worklet is created while the context is suspended"
    },
    "318602@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "318602@main",
      "clUrl": "https://commits.webkit.org/318602@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=308683\n\nReviewed by Cole Carley and Keith Miller.\n\nSignaling memory mode relies on 32-bit addresses and a PROT_NONE redzone.\nMemory64 cannot use that scheme, so compilers must always emit explicit\nbounds checks for Memory64 (and for non-zero multi-memories). Put that\npolicy on ModuleInformation::memoryModeForAccess and use it from BBQ and\nOMG. Keep RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!isMemory64()) on\nSignaling paths so a wrong mode selection still hard-fails.\n\n* Source/JavaScriptCore/wasm/WasmModuleInformation.h:\n* Source/JavaScriptCore/wasm/WasmBBQJIT.h:\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.h:\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n* JSTests/wasm/stress/memory64-bbq-bounds-checking.js: Added.\n\nCanonical link: https://commits.webkit.org/318602@main",
      "email": "chi187@gmail.com",
      "hash": "d6d09268899bff2ceb25fac7da00a0bc0cbb77eb",
      "subject": "[JSC][Wasm] Force BoundsChecking for Memory64 accesses in BBQ"
    },
    "318603@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318603@main",
      "clUrl": "https://commits.webkit.org/318603@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321031\nrdar://184064205\n\nReviewed by Cole Carley.\n\nIn Table64, index should be represented as i64. As a result, operation\nare taking uint64_t, but we are not zero-extending the passed i32 index\nappropriately. This patch fixes them.\n\n* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitZeroExtendAddressOperand):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addTableSet):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addTableInit):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addTableGrow):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addTableFill):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addTableCopy):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addGrowMemory):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addMemoryFill):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addMemoryCopy):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addMemoryInit):\n(JSC::Wasm::BBQJITImpl::BBQJIT::atomicWait):\n(JSC::Wasm::BBQJITImpl::BBQJIT::atomicNotify):\n* Source/JavaScriptCore/wasm/WasmBBQJIT.h:\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::addTableGet):\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::addressOperand):\n(JSC::Wasm::OMGIRGenerator::addTableGet):\n(JSC::Wasm::OMGIRGenerator::addTableSet):\n(JSC::Wasm::OMGIRGenerator::addTableInit):\n(JSC::Wasm::OMGIRGenerator::addTableGrow):\n(JSC::Wasm::OMGIRGenerator::addTableFill):\n(JSC::Wasm::OMGIRGenerator::addTableCopy):\n(JSC::Wasm::OMGIRGenerator::addGrowMemory):\n(JSC::Wasm::OMGIRGenerator::addMemoryFill):\n(JSC::Wasm::OMGIRGenerator::addMemoryInit):\n(JSC::Wasm::OMGIRGenerator::addMemoryCopy):\n(JSC::Wasm::OMGIRGenerator::atomicWait):\n(JSC::Wasm::OMGIRGenerator::atomicNotify):\n\nCanonical link: https://commits.webkit.org/318603@main",
      "email": "ysuzuki@apple.com",
      "hash": "02cdfb795a84a346ef15c69f1ad3fed82d401216",
      "subject": "[JSC] Wasm Table index must be extended when using 64bit Table"
    },
    "318604@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318604@main",
      "clUrl": "https://commits.webkit.org/318604@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321038\nrdar://184070346\n\nReviewed by Cole Carley and Yijia Huang.\n\nWe would like to restrict that memory64 only has one memory. But right\nnow, if we define 32bit memory after 64bit memory, it passes. We should\ncheck whether we had a 64bit memory.\n\nTest: JSTests/wasm/stress/memory64-multi-memory-rejected.js\n\n* JSTests/wasm/stress/memory64-multi-memory-rejected.js: Added.\n(async assertRejected):\n* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:\n(JSC::Wasm::SectionParser::parseMemoryHelper):\n\nCanonical link: https://commits.webkit.org/318604@main",
      "email": "ysuzuki@apple.com",
      "hash": "d319ee7c278e6969bb9243fd5cb20f0874121cdf",
      "subject": "[JSC] Due to IPInt, we need to ensure that wasm multi-memory does not support memory64"
    },
    "318605@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318605@main",
      "clUrl": "https://commits.webkit.org/318605@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321035\nrdar://184068455\n\nReviewed by Cole Carley.\n\nWasm unreachable code is decoding memory64 operands differently, causing\nwasm parse error. Correctly handling memory64 operands in the same way\nto the normal path.\n\n* JSTests/wasm/stress/memory64-unreachable-immediates.js: Added.\n(async assertRejected):\n* LayoutTests/imported/w3c/web-platform-tests/wasm/core/align.wast.js-expected.txt:\n* Source/JavaScriptCore/wasm/WasmFunctionParser.h:\n(JSC::Wasm::FunctionParser\u003cContext\u003e::parseMemoryIndexAndFixupAlignment):\n(JSC::Wasm::FunctionParser\u003cContext\u003e::parseUnreachableExpression):\n\nCanonical link: https://commits.webkit.org/318605@main",
      "email": "ysuzuki@apple.com",
      "hash": "64153f963497bad197d2231657c2a73c2e9488a4",
      "subject": "[JSC] Wasm Memory64 operands are differently decoded in unreachable code"
    },
    "318606@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318606@main",
      "clUrl": "https://commits.webkit.org/318606@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321043\nrdar://184072653\n\nReviewed by Keith Miller.\n\nFor 64bit address, we first do bound-check and after that, we\nmaterialize a pointer. Currently since we are not supporting memory size\nmore than 4GB, this truncation does not matter, but we should have\nuint64_t as an offset when we really want to have 64bit pointer. This\npatch fixes it. Note that we never have overflow by adding 64bit offset\nhere since we already did bound-check and that already guaranteed this\npointer's validity. We also fixes recordJumpToThrowException cases to\ncorrectly drain a pointer and returning garbage register even though we\nare throwing an error.\n\n* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::materializePointer):\n* Source/JavaScriptCore/wasm/WasmBBQJIT.h:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitCheckAndPreparePointer):\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.h:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitCheckAndPrepareAndMaterializePointerApply):\n\nCanonical link: https://commits.webkit.org/318606@main",
      "email": "ysuzuki@apple.com",
      "hash": "0cc69e2993f4dc953765fd64593ae2579752132f",
      "subject": "[JSC] BBQ materializePointer should take uint64_t offset"
    },
    "318607@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318607@main",
      "clUrl": "https://commits.webkit.org/318607@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321034\nrdar://184067419\n\nReviewed by Justin Michaud.\n\nFix memoryKind's trap condition: under multi-memory environment, only\nmemory-0 is using trapping and the other ones are using bound-checking.\nWe should apply the condition correctly.\n\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::memoryKind):\n(JSC::Wasm::OMGIRGenerator::emitLoadOp):\n(JSC::Wasm::OMGIRGenerator::load):\n(JSC::Wasm::OMGIRGenerator::emitStoreOp):\n(JSC::Wasm::OMGIRGenerator::store):\n(JSC::Wasm::OMGIRGenerator::emitAtomicLoadOp):\n(JSC::Wasm::OMGIRGenerator::atomicLoad):\n(JSC::Wasm::OMGIRGenerator::emitAtomicStoreOp):\n(JSC::Wasm::OMGIRGenerator::atomicStore):\n(JSC::Wasm::OMGIRGenerator::emitAtomicBinaryRMWOp):\n(JSC::Wasm::OMGIRGenerator::atomicBinaryRMW):\n(JSC::Wasm::OMGIRGenerator::emitAtomicCompareExchange):\n(JSC::Wasm::OMGIRGenerator::atomicCompareExchange):\n(JSC::Wasm::OMGIRGenerator::addSIMDLoad):\n(JSC::Wasm::OMGIRGenerator::addSIMDStore):\n(JSC::Wasm::OMGIRGenerator::addSIMDLoadSplat):\n(JSC::Wasm::OMGIRGenerator::addSIMDLoadLane):\n(JSC::Wasm::OMGIRGenerator::addSIMDStoreLane):\n(JSC::Wasm::OMGIRGenerator::addSIMDLoadExtend):\n(JSC::Wasm::OMGIRGenerator::addSIMDLoadPad):\n\nCanonical link: https://commits.webkit.org/318607@main",
      "email": "ysuzuki@apple.com",
      "hash": "102fd6db184d0c8caabe935080062ba4504144b8",
      "subject": "[JSC] OMG needs to mark memory traps with memory index"
    },
    "318608@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "318608@main",
      "clUrl": "https://commits.webkit.org/318608@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321037\nrdar://184070384\n\nReviewed by Richard Robinson and Pascoe.\n\nAs the commit title reads, this patch simply removes the unnecessary\ncapture. It also fixes a style guide violation as a drive-by.\n\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::sendGestureEvent):\n\nCanonical link: https://commits.webkit.org/318608@main",
      "email": "a_protyasha@apple.com",
      "hash": "f9aef2ee39d83c1b193c2085ee6ab591446dd9a1",
      "subject": "Unused `event` lambda capture in EventDispatcher::GestureEvent IPC reply handler"
    },
    "318609@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "318609@main",
      "clUrl": "https://commits.webkit.org/318609@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320858\n\nReviewed by Darin Adler.\n\nWhen DOMParser.parseFromString() was given XML containing a lone (unpaired)\nsurrogate, XMLDocumentParser::doWrite() upconverted the string to UTF-16 and\npassed it directly to libxml2. Lone surrogates are not valid XML characters,\nso libxml2 rejected the entire document, leaving documentElement null instead\nof producing any parse result.\n\nReplace unpaired surrogates with U+FFFD before handing the input to libxml2,\nso the parser does a best-effort parse instead of discarding everything. This\nmatches Firefox and Blink (https://crbug.com/40814739). The fragment path\n(appendFragmentSource) was already unaffected because String::utf8() defaults\nto LenientConversion, which maps unpaired surrogates to U+FFFD.\n\nChange doWrite() to take its input as an rvalue reference and pass it to the\nexisting replaceUnpairedSurrogatesWithReplacementCharacter(String\u0026\u0026), whose fast\npath simply moves the string along when there is no unpaired surrogate. That way\nthe common case allocates no buffer, copies no characters and does not even bump\na refcount (hasUnpairedSurrogate() is O(1) for 8-bit strings).\n\nNo new tests, updated and rebaselined existing test.\n\n* LayoutTests/imported/w3c/web-platform-tests/domparsing/DOMParser-parseFromString-xml-parsererror-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/domparsing/DOMParser-parseFromString-xml-parsererror.html:\n* Source/WebCore/xml/parser/XMLDocumentParser.cpp:\n(WebCore::XMLDocumentParser::append):\n* Source/WebCore/xml/parser/XMLDocumentParser.h:\n* Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:\n(WebCore::XMLDocumentParser::doWrite):\n\nCanonical link: https://commits.webkit.org/318609@main",
      "email": "cdumez@apple.com",
      "hash": "ae8ba81610e4bf30c98fc9e376e50a0334d5fc1a",
      "subject": "[WPT] Fix \"A lone surrogate is replaced with U+FFFD\" subtest in domparsing/DOMParser-parseFromString-xml-parsererror.html"
    },
    "318610@main": {
      "author": "Dana Estra",
      "avatar": "https://www.gravatar.com/avatar/bb57a3e383fc407cd4b341aeef87d877?d=identicon\u0026s=64",
      "cl": "318610@main",
      "clUrl": "https://commits.webkit.org/318610@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321002\nrdar://184039946\n\nReviewed by Jer Noble.\n\nThe WebVTT spec states the following algorithm for determining computed position:\n\n\"If the position is numeric between 0 and 100, then return the value of the position\nand abort these steps. (Otherwise, the position is the special value auto.)\n\nIf the cue text alignment is left, return 0 and abort these steps.\n\nIf the cue text alignment is right, return 100 and abort these steps.\n\nOtherwise, return 50 and abort these steps.\"\n\nSource: https://www.w3.org/TR/webvtt1/#cue-computed-position\n\nThis indicates that if text alignment is \"start\" or \"end (i.e. align:start or align:end in\n.vtt), the computed position should be 50. This is further clarified by an editorial note\nin the spec: \"When the text alignment is start or end, the auto position is 50%. This is\ndifferent from left and right aligned text, where the auto position is 0% and 100%,\nrespectively.\"\n\nFixed four imported WPT that contained this bug and marked them as passing.\n\n* Source/WebCore/html/track/VTTCue.cpp:\n(WebCore::VTTCue::calculateComputedTextPosition const):\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped.html:\n\nCanonical link: https://commits.webkit.org/318610@main",
      "email": "destra@apple.com",
      "hash": "aa089e5db0e345b7e5a3bb4fe11806c8bb42de06",
      "subject": "When WebVTT cue's text alignment is start or end, the auto position should be 50%"
    },
    "318611@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "318611@main",
      "clUrl": "https://commits.webkit.org/318611@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=321022\u003e\n\u003crdar://184059659\u003e\n\nReviewed by Zak Ridouh.\n\nrun-webkit-tests matches a crashed process to its on-disk crash report\nby process name. A service worker runs inside a WebContent process, so\nWebKitTestRunner reports its crash as \"ServiceWorkerProcess\" while the\ncrash report's procName is a WebContent process name. The name-based\nmatch therefore never succeeds, so run-webkit-tests writes a \"No crash\nlog found for ServiceWorkerProcess:\u003cpid\u003e\" placeholder even when a\nreport exists.\n\nAlias \"ServiceWorkerProcess\" to the exact WebContent process names that\nTestController::webProcessName() reports on Cocoa, both\n\"com.apple.WebKit.WebContent\" and its internal \".Development\" form.\nHonor the alias in both crash-report file filters (\".crash\" and \".ips\")\nand match a report whose procName is exactly one of those and whose PID\nmatches the crashed process.\n\nAlso honor the alias when merging the second-pass crash logs.\nlook_for_new_crash_logs() collects each crash twice -- once per crashed\nprocess by name and PID, and once by scanning every on-disk report --\nand relies on _merge_crash_logs() to drop the second-pass duplicates by\nmatching each report's procName against the crashed process names.\nThe report is stored under its WebContent procName, so without\nconsulting the alias there, the ServiceWorkerProcess crash already\ncollected in the first pass would be appended a second time.\n\nCovered by new webkitpy unit tests.\n\n* Tools/Scripts/webkitpy/common/system/crashlogs.py:\n(CrashLogs):\n- Added PROCESS_NAME_ALIASES.\n(CrashLogs._find_newest_log_darwin):\n* Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py:\n(CrashLogsTest.test_find_log_darwin_service_worker_process): Added.\n* Tools/Scripts/webkitpy/port/darwin.py:\n(DarwinPort._merge_crash_logs):\n* Tools/Scripts/webkitpy/port/mac_unittest.py:\n(MacTest.test_merge_crash_logs_service_worker_process): Added.\n\nCanonical link: https://commits.webkit.org/318611@main",
      "email": "ddkilzer@apple.com",
      "hash": "d56b981275a4256e3cfdef89249795f1c8596bf1",
      "subject": "run-webkit-tests never finds crash logs for ServiceWorkerProcess crashes"
    },
    "318612@main": {
      "author": "Frédéric Wang Nélar",
      "avatar": "https://www.gravatar.com/avatar/2c634be4515bda5959ed1d7138b17d48?d=identicon\u0026s=64",
      "cl": "318612@main",
      "clUrl": "https://commits.webkit.org/318612@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320785\n\nReviewed by Patrick Griffis.\n\nSee https://w3c.github.io/webappsec-csp/#grammardef-host-source\n'*/path', '*:80' or '*:*/path' are valid host-source that constrain what\nthey match, so we shouldn't skip them.\n\n* LayoutTests/imported/w3c/web-platform-tests/content-security-policy/generic/source-list-wildcard-host-and-port.https.sub-expected.txt: Update expectation now that the test passes.\n* Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp:\n(WebCore::ContentSecurityPolicySourceList::parse): Also take into account whether a port or path was specified.\n\nCanonical link: https://commits.webkit.org/318612@main",
      "email": "fwang@igalia.com",
      "hash": "4a3b30232a5565ed188ca9c58633831dbd3b58ac",
      "subject": "CSP host-source *:*/path does not work"
    },
    "318613@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318613@main",
      "clUrl": "https://commits.webkit.org/318613@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=180593\n\nReviewed by Mike Wyrzykowski.\n\n* Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:\n(WI.CanvasManager.prototype.removeSavedRecording): Added.\n(WI.CanvasManager.Event):\nAllow saved recordings to be explicitly removed and notify the Graphics views.\n\n* Source/WebInspectorUI/UserInterface/Models/Recording.js:\n(WI.Recording):\n(WI.Recording.prototype.get source):\n(WI.Recording.prototype.set source):\n(WI.Recording.prototype.createDisplayName):\nKeep a weak reference to the source `WI.Canvas` so a recording retained elsewhere does not also retain the canvas and its other recordings.\n\n* Source/WebInspectorUI/UserInterface/Main.html:\n* Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js:\n(WI.CanvasContentView.prototype.attached):\n(WI.CanvasContentView.prototype.detached):\n(WI.CanvasContentView.prototype._populateRecordingsContextMenu):\n* Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js:\n(WI.CanvasOverviewContentView.prototype.attached):\n(WI.CanvasOverviewContentView.prototype.detached):\n(WI.CanvasOverviewContentView.prototype._addSavedRecording):\n(WI.CanvasOverviewContentView.prototype._handleRecordingRemoved): Added.\n* Source/WebInspectorUI/UserInterface/Views/GraphicsTabContentView.js:\n(WI.GraphicsTabContentView.prototype.attached):\n(WI.GraphicsTabContentView.prototype.detached):\n(WI.GraphicsTabContentView.prototype._addRecording):\n(WI.GraphicsTabContentView.prototype._handleRecordingRemoved): Added.\n* Source/WebInspectorUI/UserInterface/Views/SavedRecordingTreeElement.js: Added.\n(WI.SavedRecordingTreeElement): Added.\n(WI.SavedRecordingTreeElement.prototype._handleRemoveButtonClicked): Added.\n* Source/WebInspectorUI/UserInterface/Views/SavedRecordingTreeElement.css: Added.\n(.item.saved-recording \u003e .status \u003e .status-button.remove-recording): Added.\n(.item.saved-recording:is(:hover, :focus-within) \u003e .status \u003e .status-button.remove-recording): Added.\nAdd `Clear Recordings` to the context menu for a live canvas and update its footer as recordings are added or removed.\nShow a remove button when hovering a saved recording. Remove stale tree elements and content views when a saved recording is deleted.\n\n* Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.css:\n(@media (prefers-color-scheme: dark) .content-view.canvas-overview \u003e .content-view.canvas \u003e footer .view-recording, .content-view.canvas-overview \u003e .content-view.canvas.saved-recordings .tree-outline \u003e .item.recording \u003e .icon): Renamed from `.content-view.canvas-overview \u003e .content-view.canvas \u003e footer .view-recording`.\nDrive-by: fix the saved recording icon in dark mode.\n\n* Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:\n\nCanonical link: https://commits.webkit.org/318613@main",
      "email": "hi@devinrousso.com",
      "hash": "ec85bc55e6ca62473e7814d824a937950993f8bc",
      "subject": "Web Inspector: Canvas recordings use a lot of memory and are never released"
    },
    "318614@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "318614@main",
      "clUrl": "https://commits.webkit.org/318614@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320604\nrdar://172258882\n\nReviewed by Charlie Wolfe.\n\nUnder site isolation the RemotePage*Proxy wrappers register on each subframe\nprocess's connection and forward every message to the shared per-page manager,\nwhich was written before site isolation and assumed a single WebContent process.\nA compromised subframe process could name another process's media element and\nmanipulate its playback, Now Playing, or fullscreen state.\n\nRather than validating the process component of an incoming\nPlaybackSessionContextIdentifier, don't send it at all: the media messages to\nPlaybackSessionManagerProxy and VideoPresentationManagerProxy now carry a bare\nWebCore::MediaPlayerClientIdentifier, and the UI process pairs it with the\nprocess identifier of the sending connection. A foreign process identifier is\ntherefore unrepresentable rather than rejected, and no message check is needed.\nThis matches the pattern in RemoteMediaSessionManagerProxy and the unqualified\nidentifier already used for messages in the other direction.\n\nWebCore::FrameIdentifier is not process-qualified and must be resolved through a\nglobal map, so WebFullScreenManagerProxy still checks that an incoming frame is\nhosted by the sending process and belongs to this page. BeganExitFullScreen no\nlonger carries a FrameIdentifier: beganEnterFullScreen records the frame it has\nalready validated, and exit uses that.\n\nAlso fix the pre-existing MESSAGE_CHECK in VideoPresentationManagerProxy to blame\nthe sending connection rather than always the main-frame process's connection.\n\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h:\n* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:\n(WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):\n(WebKit::PlaybackSessionManagerProxy::swapFullscreenModes):\n(WebKit::PlaybackSessionManagerProxy::currentTimeChanged):\n(WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged):\n(WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged):\n(WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged):\n(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged):\n(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged):\n(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged):\n(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged):\n(WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged):\n(WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged):\n(WebKit::PlaybackSessionManagerProxy::mutedChanged):\n(WebKit::PlaybackSessionManagerProxy::volumeChanged):\n(WebKit::PlaybackSessionManagerProxy::durationChanged):\n(WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged):\n(WebKit::PlaybackSessionManagerProxy::rateChanged):\n(WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged):\n(WebKit::PlaybackSessionManagerProxy::isInWindowFullscreenActiveChanged):\n(WebKit::PlaybackSessionManagerProxy::canSkipAdChanged):\n(WebKit::PlaybackSessionManagerProxy::supportsLinearMediaPlayerChanged):\n(WebKit::PlaybackSessionManagerProxy::immersiveVideoMetadataChanged):\n(WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):\n(WebKit::PlaybackSessionManagerProxy::setLogIdentifier):\n(WebKit::PlaybackSessionManagerProxy::contextIdForConnection const):\n(WebKit::PlaybackSessionManagerProxy::ensureModel):\n* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.h:\n* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm:\n(WebKit::VideoPresentationManagerProxy::setDocumentVisibility):\n(WebKit::VideoPresentationManagerProxy::setIsChildOfElementFullscreen):\n(WebKit::VideoPresentationManagerProxy::hasBeenInteractedWith):\n(WebKit::VideoPresentationManagerProxy::setupFullscreenWithID):\n(WebKit::VideoPresentationManagerProxy::setPlayerIdentifier):\n(WebKit::VideoPresentationManagerProxy::audioSessionCategoryChanged):\n(WebKit::VideoPresentationManagerProxy::routingContextUIDChanged):\n(WebKit::VideoPresentationManagerProxy::setHasVideo):\n(WebKit::VideoPresentationManagerProxy::setVideoDimensions):\n(WebKit::VideoPresentationManagerProxy::enterFullscreen):\n(WebKit::VideoPresentationManagerProxy::enterFullscreenForContext):\n(WebKit::VideoPresentationManagerProxy::exitFullscreen):\n(WebKit::VideoPresentationManagerProxy::exitFullscreenWithoutAnimationToMode):\n(WebKit::VideoPresentationManagerProxy::setVideoFullscreenMode):\n(WebKit::VideoPresentationManagerProxy::clearVideoFullscreenMode):\n(WebKit::VideoPresentationManagerProxy::setInlineRect):\n(WebKit::VideoPresentationManagerProxy::setHasVideoContentLayer):\n(WebKit::VideoPresentationManagerProxy::cleanupFullscreen):\n(WebKit::VideoPresentationManagerProxy::preparedToReturnToInline):\n(WebKit::VideoPresentationManagerProxy::preparedToExitFullscreen):\n(WebKit::VideoPresentationManagerProxy::textTrackRepresentationUpdate):\n(WebKit::VideoPresentationManagerProxy::textTrackRepresentationSetContentsScale):\n(WebKit::VideoPresentationManagerProxy::textTrackRepresentationSetHidden):\n(WebKit::VideoPresentationManagerProxy::didSetupFullscreen):\n(WebKit::VideoPresentationManagerProxy::contextIdForConnection const):\n(WebKit::VideoPresentationManagerProxy::ensureModel):\n(WebKit::VideoPresentationManagerProxy::ensureInterface):\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:\n(WebKit::WebFullScreenManagerProxy::isFrameInSendingProcess const):\n(WebKit::WebFullScreenManagerProxy::enterFullScreen):\n(WebKit::WebFullScreenManagerProxy::beganEnterFullScreen):\n(WebKit::WebFullScreenManagerProxy::beganExitFullScreen):\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:\n* LayoutTests/ipc/fullscreen-foreign-frame-message-check-expected.txt: Added.\n* LayoutTests/ipc/fullscreen-foreign-frame-message-check.html: Added.\n* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:\n* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.messages.in:\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in:\n* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:\n(WebKit::WebFullScreenManager::willExitFullScreen):\n* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:\n(WebKit::PlaybackSessionManager::setUpPlaybackControlsManager):\n(WebKit::PlaybackSessionManager::mediaEngineChanged):\n(WebKit::PlaybackSessionManager::durationChanged):\n(WebKit::PlaybackSessionManager::currentTimeChanged):\n(WebKit::PlaybackSessionManager::bufferedTimeChanged):\n(WebKit::PlaybackSessionManager::playbackStartedTimeChanged):\n(WebKit::PlaybackSessionManager::rateChanged):\n(WebKit::PlaybackSessionManager::seekableRangesChanged):\n(WebKit::PlaybackSessionManager::canPlayFastReverseChanged):\n(WebKit::PlaybackSessionManager::audioMediaSelectionOptionsChanged):\n(WebKit::PlaybackSessionManager::legibleMediaSelectionOptionsChanged):\n(WebKit::PlaybackSessionManager::externalPlaybackChanged):\n(WebKit::PlaybackSessionManager::audioMediaSelectionIndexChanged):\n(WebKit::PlaybackSessionManager::legibleMediaSelectionIndexChanged):\n(WebKit::PlaybackSessionManager::wirelessVideoPlaybackDisabledChanged):\n(WebKit::PlaybackSessionManager::mutedChanged):\n(WebKit::PlaybackSessionManager::volumeChanged):\n(WebKit::PlaybackSessionManager::isPictureInPictureSupportedChanged):\n(WebKit::PlaybackSessionManager::isInWindowFullscreenActiveChanged):\n(WebKit::PlaybackSessionManager::immersiveVideoMetadataChanged):\n(WebKit::PlaybackSessionManager::actionHandlersChanged):\n(WebKit::PlaybackSessionManager::handleControlledElementIDRequest):\n(WebKit::PlaybackSessionManager::sendLogIdentifierForMediaElement):\n* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm:\n(WebKit::VideoPresentationManager::enterVideoFullscreenForVideoElement):\n(WebKit::VideoPresentationManager::exitVideoFullscreenForVideoElement):\n(WebKit::VideoPresentationManager::exitVideoFullscreenToModeWithoutAnimation):\n(WebKit::VideoPresentationManager::setVideoFullscreenMode):\n(WebKit::VideoPresentationManager::clearVideoFullscreenMode):\n(WebKit::VideoPresentationManager::hasVideoChanged):\n(WebKit::VideoPresentationManager::documentVisibilityChanged):\n(WebKit::VideoPresentationManager::isChildOfElementFullscreenChanged):\n(WebKit::VideoPresentationManager::audioSessionCategoryChanged):\n(WebKit::VideoPresentationManager::routingContextUIDChanged):\n(WebKit::VideoPresentationManager::hasBeenInteractedWith):\n(WebKit::VideoPresentationManager::videoDimensionsChanged):\n(WebKit::VideoPresentationManager::setPlayerIdentifier):\n(WebKit::VideoPresentationManager::requestUpdateInlineRect):\n(WebKit::VideoPresentationManager::requestVideoContentLayer):\n(WebKit::VideoPresentationManager::returnVideoContentLayer):\n(WebKit::VideoPresentationManager::didSetupFullscreen):\n(WebKit::VideoPresentationManager::willExitFullscreen):\n(WebKit::VideoPresentationManager::failedToEnterFullscreen):\n(WebKit::VideoPresentationManager::didExitFullscreen):\n(WebKit::VideoPresentationManager::fullscreenMayReturnToInline):\n(WebKit::VideoPresentationManager::ensureUpdatedVideoDimensions):\n(WebKit::VideoPresentationManager::updateTextTrackRepresentationForVideoElement):\n(WebKit::VideoPresentationManager::setTextTrackRepresentationContentScaleForVideoElement):\n(WebKit::VideoPresentationManager::setTextTrackRepresentationIsHiddenForVideoElement):\n\nCanonical link: https://commits.webkit.org/318614@main",
      "email": "zakr@apple.com",
      "hash": "2b4f51505b3e3b07c95379b9c46e32319b672f0a",
      "subject": "[Site Isolation] Validate sender identity in per-page media and fullscreen managers"
    },
    "318615@main": {
      "author": "Kristian Monsen",
      "avatar": "https://www.gravatar.com/avatar/d9b02ca94d143b7dd6118be4dbc4aa06?d=identicon\u0026s=64",
      "cl": "318615@main",
      "clUrl": "https://commits.webkit.org/318615@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316955\nrdar://175153657\n\nReviewed by Chris Dumez.\n\nEnsure WebAuthenticatorCoordinatorProxy signalUnknownCredential, signalAllAcceptedCredentials, and signalCurrentUserDetails invoke their reply CompletionHandlers on the main run loop\n\nTest: ipc/web-authenticator-signal-main-thread.html\n\n* LayoutTests/ipc/web-authenticator-signal-main-thread-expected.txt: Added.\n* LayoutTests/ipc/web-authenticator-signal-main-thread.html: Added.\n* Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:\n\nCanonical link: https://commits.webkit.org/318615@main",
      "email": "k_monsen@apple.com",
      "hash": "3d1e0ca9e2eca53af1049bbde3b44ebbac70af50",
      "subject": "WebAuthenticatorCoordinatorProxy signal methods must invoke reply CompletionHandler on the main run loop"
    },
    "318616@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318616@main",
      "clUrl": "https://commits.webkit.org/318616@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321039\n\nReviewed by Yusuke Suzuki.\n\n318542@main added a per-JSGlobalObject collator cache for\n`String#localeCompare(that, locale)` keyed only by the locale string.\nAn unavailable-but-well-formed locale (e.g. \"xx\") resolves via\nDefaultLocale(), which follows the user preferred languages, so the same\nlocale string can produce a different collator after a language change.\nThe cache is not wired into IntlCache's languages epoch, so\n`\"ö\".localeCompare(\"z\", \"xx\")` keeps the pre-change ordering.\n\nRecord the languages epoch observed by IntlCache when caching, and treat\na mismatch as a cache miss.\n\n    $vm.setUserPreferredLanguages([\"en-US\"]);\n    // \"ö\".localeCompare(\"z\", \"xx\") -\u003e -1\n    $vm.setUserPreferredLanguages([\"sv-SE\"]);\n    // \"ö\".localeCompare(\"z\", \"xx\") -\u003e still -1, expected 1\n\nTest: JSTests/stress/string-locale-compare-locales-cache-language-change.js\n\n* JSTests/stress/string-locale-compare-locales-cache-language-change.js: Added.\n(shouldBe):\n(setTimeout):\n* Source/JavaScriptCore/runtime/IntlCache.h:\n(JSC::IntlCache::languagesEpoch const):\n* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:\n(JSC::JSGlobalObject::cachedLocaleCompareCollator):\n* Source/JavaScriptCore/runtime/JSGlobalObject.h:\n\nCanonical link: https://commits.webkit.org/318616@main",
      "email": "sosuke@bun.sh",
      "hash": "7d0200e4e6ed21a62e502459658984fe341dcf61",
      "subject": "[JSC] `String#localeCompare` collator cache goes stale across language changes"
    },
    "318617@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318617@main",
      "clUrl": "https://commits.webkit.org/318617@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321056\nrdar://184086611\n\nReviewed by Dan Hecht.\n\nMemory::init's overflow check is using uint32_t, but it is not correct\nas memory64 is introduced. We use uint64_t instead. Also we drop dead\nMemory::fill / Memory::copy implementations. Use Wasm::memoryCopy /\nWasm::memoryFill.\n\n* JSTests/wasm/stress/memory64-bulk-memory.js:\n(async testInitOperandTypes):\n* Source/JavaScriptCore/wasm/WasmMemory.cpp:\n(JSC::Wasm::Memory::init):\n(JSC::Wasm::Memory::fill): Deleted.\n(JSC::Wasm::Memory::copy): Deleted.\n* Source/JavaScriptCore/wasm/WasmMemory.h:\n\nCanonical link: https://commits.webkit.org/318617@main",
      "email": "ysuzuki@apple.com",
      "hash": "de45b9be42db063e9d045f47c8d2a7628e5429df",
      "subject": "[JSC] Fix memory.init's overflow check"
    },
    "318618@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318618@main",
      "clUrl": "https://commits.webkit.org/318618@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321058\nrdar://184090428\n\nReviewed by Yijia Huang.\n\nWe found that we are taking too long time in VM launching for\nAtomStringTable construction. This patch reseves initial capacity to\navoid repeated rehashing and extension of AtomStringTable \u0026\nm_privateNameSet.\n\n* Source/JavaScriptCore/builtins/BuiltinNames.cpp:\n(JSC::BuiltinNames::BuiltinNames):\n* Source/JavaScriptCore/runtime/VM.cpp:\n(JSC::VM::VM):\n\nCanonical link: https://commits.webkit.org/318618@main",
      "email": "ysuzuki@apple.com",
      "hash": "13dc8fa6e3d57f2a783cb5e4d7fa2daaf686ef65",
      "subject": "[JSC] Reserve initial capacity for AtomStringTable and BuiltinNames' m_privateNameSet"
    },
    "318619@main": {
      "author": "Kristian Monsen",
      "avatar": "https://www.gravatar.com/avatar/d9b02ca94d143b7dd6118be4dbc4aa06?d=identicon\u0026s=64",
      "cl": "318619@main",
      "clUrl": "https://commits.webkit.org/318619@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321023\nrdar://183317081\n\nReviewed by Vitor Roriz.\n\nglyphDataForCharacter() can legitimately return a GlyphData with a null font (a SingleThreadWeakPtr\u003cconst Font\u003e) whenever no font — including every fallback — has a glyph for the\ncharacter, which happens for code points like U+001F that no installed font maps. applyTextSpacingTrimIfNeeded() didn't account for that case: it unconditionally did\n*protect(glyphData.font) to pass the font by reference into getHalfWidthFontIfNeeded(), dereferencing a null RefPtr and crashing.\n\nThe fix adds a !glyphData.font check alongside the existing isSpaceAll() early return, so the function bails out before dereferencing when there's no font to consult. This mirrors\nhow the equivalent code in ComplexTextController.cpp already guards the same lookup with nextFont \u0026\u0026 before touching it — this path is now consistent with that sibling\nimplementation. Since a glyph-less character has no font whose text-spacing metrics could apply anyway, skipping the trim logic in that case is correct behavior, not just a crash\nguard.\n\nTest: fast/text/text-spacing-trim-null-font-crash.html\n\n* LayoutTests/fast/text/text-spacing-trim-null-font-crash-expected.txt: Added.\n* LayoutTests/fast/text/text-spacing-trim-null-font-crash.html: Added.\n* Source/WebCore/platform/graphics/WidthIterator.cpp:\n(WebCore::applyTextSpacingTrimIfNeeded):\n\nCanonical link: https://commits.webkit.org/318619@main",
      "email": "k_monsen@apple.com",
      "hash": "53bedf3f8f4d917e3f0b4d95d91c139252075e5f",
      "subject": "Crash in WidthIterator::applyTextSpacingTrimIfNeeded when a character has no glyph in any font"
    },
    "318620@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "318620@main",
      "clUrl": "https://commits.webkit.org/318620@main",
      "description": "rdar://183154183\nhttps://bugs.webkit.org/show_bug.cgi?id=320208\n\nReviewed by Antti Koivisto and Tim Nguyen.\n\nWhen determining the container element to query against, if the element\nis from a ::part() pseudo-element, ContainerQueryEvaluator::selectContainer\npicks element-\u003eassignedSlot() as the originating element. This seems wrong,\nas in this case, the originating element is the element itself.\n\nTest: imported/w3c/web-platform-tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/style-container-for-shadow-dom-expected.txt:\n* Source/WebCore/style/ContainerQueryEvaluator.cpp:\n(WebCore::Style::ContainerQueryEvaluator::selectContainer):\n\nCanonical link: https://commits.webkit.org/318620@main",
      "email": "kiet.ho@apple.com",
      "hash": "7ba79ac091099d606a5ee5a30549045f8de20d5a",
      "subject": "[css-conditional-5] @container: originating element of ::part() is the element itself"
    },
    "318621@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "318621@main",
      "clUrl": "https://commits.webkit.org/318621@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320973\n\nReviewed by Darin Adler.\n\nWebKit destroyed an AudioWorkletProcessor as soon as its process() method\nreturned false, regardless of whether the node still had active inputs. The\nWeb Audio spec (and Blink/Firefox) require that returning false only stops\nprocessing once the node also has no active inputs; as long as an upstream\nnode is still producing audio, process() must keep being called.\n\nThis is observable when an actively-playing source feeds a worklet whose\nprocess() returns false: the processor should keep running (and its output\nreflect the processing) until the source stops, then go silent. WebKit instead\nwent silent one render quantum after the first process() call.\n\nFix this by introducing an m_isActiveSource flag, set to the return value of\nprocess() on each render quantum (initially true). The processor is only\nfinished once it is no longer an active source and has no active inputs (or if\nprocess() threw). An input is considered active while it is connected to a node\nthat is still producing audio, i.e. its input bus is not silent; a source that\nhas finished playback outputs silence.\n\nTest: imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-lifetime.https.html\n\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-lifetime.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-lifetime.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/lifetime-processor.js: Added.\n(LifetimeProcessor.prototype.process):\n(LifetimeProcessor):\nImport WPT test from upstream. It was failing in shipping Safari but passing\nin both Firefox and Chrome.\n\n* Source/WebCore/Modules/webaudio/AudioWorkletNode.cpp:\n(WebCore::AudioWorkletNode::process):\n(WebCore::AudioWorkletNode::~AudioWorkletNode):\n(WebCore::AudioWorkletNode::setProcessor):\nTrack whether the node has active inputs and only finish the processor when it\nis no longer an active source and has no active inputs.\n\n* Source/WebCore/Modules/webaudio/AudioWorkletNode.h:\nAdd m_isActiveSource, only used on the rendering thread.\n\nCanonical link: https://commits.webkit.org/318621@main",
      "email": "cdumez@apple.com",
      "hash": "209f4da7d1692a001fc85e902a4df489e973e544",
      "subject": "AudioWorkletProcessor is torn down too early when process() returns false"
    },
    "318622@main": {
      "author": "Kai Tamkun",
      "avatar": "https://www.gravatar.com/avatar/dff073cba21885df4d9f73ed3cc493c2?d=identicon\u0026s=64",
      "cl": "318622@main",
      "clUrl": "https://commits.webkit.org/318622@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314232\nrdar://176394927\n\nReviewed by Carlos Alberto Lopez Perez.\n\nThe old test262 runner is a bit slow and could use some new features.\nThis patch rewrites the runner in Python and adds:\n1. Incremental expectations updating: don't affect other entries in expectations.yaml\n   if you use --save with a subset.\n2. OS-/build configuration-based skipping: new skip.conditions section in config.yaml\n   with `if: {os, os_version, build, sanitizer}` clauses, plus a --sanitizer CLI flag\n   for declaring the current sanitizer\n3. Regex test filter: `--filter \u003cregex\u003e` to run tests whose paths match a regex.\n4. Exit codes as a means of determining test success/failure, rather than text output.\n\n* JSTests/test262/expectations-linux.yaml:\n* JSTests/test262/expectations.yaml:\n* Tools/CISupport/build-webkit-org/steps.py:\n(RunTest262Tests):\n* Tools/CISupport/build-webkit-org/steps_unittest.py:\n* Tools/Scripts/filter-test-logs:\n* Tools/Scripts/test262-import:\n* Tools/Scripts/test262-runner:\n* Tools/Scripts/test262/Import.pm: Removed.\n* Tools/Scripts/test262/README.md:\n* Tools/Scripts/test262/Runner.pm: Removed.\n* Tools/Scripts/test262/__init__.py: Copied from Tools/Scripts/test262-runner.\n* Tools/Scripts/test262/cpanfile: Removed.\n* Tools/Scripts/test262/cpanfile.snapshot: Removed.\n* Tools/Scripts/test262/importer.py: Added.\n(_die):\n(_git):\n(_read_revision):\n(_get_new_revision):\n(_write_revision):\n(_normalize_summary):\n(_get_summary):\n(_write_summary):\n(_transfer_files):\n(_clone_remote):\n(_validate_source_dir):\n(_parse_args):\n(main):\n* Tools/Scripts/test262/importer_unittest.py: Added.\n(TestDefaultPaths):\n(TestDefaultPaths.test_test262_dir_resolves_into_jstests):\n(TestDefaultPaths.test_revision_and_summary_live_beside_tests):\n(TestReadRevision):\n(TestReadRevision._write):\n(TestReadRevision.test_parses_revision):\n(TestReadRevision.test_missing_file_returns_none):\n(TestReadRevision.test_no_revision_line_returns_none):\n(TestWriteRevision):\n(TestWriteRevision.test_exact_format):\n(TestWriteRevision.test_round_trips_through_read):\n(TestNormalizeSummary):\n(TestNormalizeSummary.test_strips_prefixes_and_trailing_newline):\n(TestNormalizeSummary.test_no_trailing_newline_added):\n(TestNormalizeSummary.test_rename_two_paths):\n(TestNormalizeSummary.test_paths_with_regex_metacharacters):\n(TestNormalizeSummary.test_empty_stays_empty):\n(TestWriteSummary):\n(TestWriteSummary.test_writes_verbatim_without_trailing_newline):\n(TestGetSummary):\n(TestGetSummary.test_combines_harness_and_test_diffs):\n(TestGetSummary.test_uses_no_index_and_diff_filter):\n(TestGetNewRevision):\n(TestGetNewRevision.test_returns_revision_and_tracking):\n(TestGetNewRevision.test_empty_revision_dies):\n(TestValidateSourceDir):\n(TestValidateSourceDir._make_valid_source):\n(TestValidateSourceDir.test_valid_source_passes):\n(TestValidateSourceDir.test_missing_subdirs_dies):\n(TestValidateSourceDir.test_same_as_current_dies):\n(TestTransferFiles):\n(TestTransferFiles.test_replaces_existing_trees):\n(TestGit):\n(TestGit.test_strips_output):\n(TestGit.test_nonzero_exit_dies):\n(TestMainFlow):\n(TestMainFlow.test_same_revision_skips_import):\n(TestMainFlow.test_new_revision_transfers_and_records):\n(TestMainFlow.test_dirty_local_source_dies):\n* Tools/Scripts/test262/local/bin/instmodsh: Removed.\n* Tools/Scripts/test262/local/cache/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.32.tar.gz: Removed.\n* Tools/Scripts/test262/local/cache/authors/id/T/TI/TINITA/YAML-1.24.tar.gz: Removed.\n* Tools/Scripts/test262/local/cache/authors/id/Y/YA/YANICK/Parallel-ForkManager-1.19.tar.gz: Removed.\n* Tools/Scripts/test262/local/cache/modules/02packages.details.txt: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/Command.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/Command/MM.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/Liblist.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/Liblist/Kid.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_AIX.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_Any.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_BeOS.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_Cygwin.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_DOS.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_Darwin.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_MacOS.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_NW5.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_OS2.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_QNX.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_UWIN.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_Unix.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_VMS.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_VOS.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_Win32.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MM_Win95.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MY.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/Config.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/FAQ.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/Locale.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/Tutorial.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/version.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/version/regex.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/MakeMaker/version/vpp.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/Mkbootstrap.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/Mksymlists.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/ExtUtils/testlib.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/Parallel/ForkManager.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Any.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Any.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Dumper.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Dumper.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Dumper/Base.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Dumper/Base.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Error.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Error.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Loader.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Loader.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Loader/Base.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Loader/Base.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Marshall.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Marshall.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Mo.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Node.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Node.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Tag.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Tag.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Types.pm: Removed.\n* Tools/Scripts/test262/local/lib/perl5/YAML/Types.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/.meta/ExtUtils-MakeMaker-7.32/MYMETA.json: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/.meta/ExtUtils-MakeMaker-7.32/install.json: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/.meta/Parallel-ForkManager-1.19/MYMETA.json: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/.meta/Parallel-ForkManager-1.19/install.json: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/.meta/YAML-1.24/MYMETA.json: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/.meta/YAML-1.24/install.json: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/auto/ExtUtils/MakeMaker/.packlist: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/auto/Parallel/ForkManager/.packlist: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/auto/YAML/.packlist: Removed.\n* Tools/Scripts/test262/local/lib/perl5/darwin-2level/perllocal.pod: Removed.\n* Tools/Scripts/test262/local/lib/perl5/unicore/Exact.pl: Removed.\n* Tools/Scripts/test262/local/lib/perl5/unicore/PVA.pl: Removed.\n* Tools/Scripts/test262/local/lib/perl5/unicore/lib/gc_sc/SpacePer.pl: Removed.\n* Tools/Scripts/test262/local/lib/perl5/unicore/lib/gc_sc/Word.pl: Removed.\n* Tools/Scripts/test262/runner.py: Added.\n(_YamlDumper):\n(_YamlDumper.check_simple_key):\n(_YamlDumper.choose_scalar_style):\n(_worker_setup):\n(_run_batch):\n(_die):\n(_load_yaml):\n(_read_file):\n(_parse_metadata):\n(_parse_error):\n(_detect_platform):\n(_evaluate_condition):\n(_should_skip):\n(_get_scenarios):\n(_compile_harness):\n(_compile_includes):\n(_get_feature_flags):\n(_run_jsc):\n(_process_test_file):\n(_classify_results):\n(_discover_tests):\n(_load_import_file):\n(_find_failing):\n(_find_jsc):\n(_save_expectations):\n(_save_results):\n(_summarize_results):\n(_generate_html_index):\n(_parse_args):\n(main):\n(main._print_progress):\n(main._on_batch_done):\n* Tools/Scripts/test262/runner_unittest.py: Added.\n(TestParseMetadata):\n(TestParseMetadata.test_basic_metadata):\n(test_no_metadata):\n(test_empty_metadata):\n(test_malformed_yaml):\n(test_multiple_features):\n(TestParseError):\n(TestParseError.test_none_input):\n(TestParseError.test_empty_input):\n(TestParseError.test_exception_format):\n(TestParseError.test_exception_multiline):\n(TestParseError.test_no_exception_returns_first_line):\n(TestDetectPlatform):\n(TestDetectPlatform.test_macos_debug):\n(TestDetectPlatform.test_release_with_sanitizer):\n(TestDetectPlatform.test_linux):\n(TestEvaluateCondition):\n(TestEvaluateCondition.test_os_match):\n(TestEvaluateCondition.test_os_mismatch):\n(TestEvaluateCondition.test_os_case_insensitive):\n(TestEvaluateCondition.test_os_version):\n(TestEvaluateCondition.test_os_version_missing):\n(TestEvaluateCondition.test_os_version_invalid):\n(TestEvaluateCondition.test_build_match):\n(TestEvaluateCondition.test_sanitizer_match):\n(TestEvaluateCondition.test_multiple_conditions_all_must_match):\n(TestEvaluateCondition.test_empty_condition):\n(TestShouldSkip):\n(TestShouldSkip._skip):\n(TestShouldSkip.test_skip_by_file):\n(TestShouldSkip.test_skip_by_path_pattern):\n(TestShouldSkip.test_no_skip_without_config):\n(TestShouldSkip.test_skip_by_feature):\n(TestShouldSkip.test_filter_features_overrides_skip):\n(TestShouldSkip.test_filter_features_skips_non_matching):\n(TestShouldSkip.test_filter_features_without_config):\n(TestShouldSkip.test_conditional_skip_by_file):\n(TestShouldSkip.test_conditional_skip_not_matching_platform):\n(TestShouldSkip.test_conditional_skip_by_path):\n(TestShouldSkip.test_conditional_skip_by_feature):\n(TestShouldSkip.test_conditional_skip_feature_overridden_by_filter):\n(TestGetScenarios):\n(TestGetScenarios.test_no_flags):\n(TestGetScenarios.test_none_flags):\n(TestGetScenarios.test_raw):\n(TestGetScenarios.test_no_strict):\n(TestGetScenarios.test_only_strict):\n(TestGetScenarios.test_module):\n(TestGetScenarios.test_unrecognized_flag):\n(TestGetScenarios.test_raw_takes_priority):\n(TestGetFeatureFlags):\n(TestGetFeatureFlags.test_basic_feature_flag):\n(TestGetFeatureFlags.test_multiple_features):\n(TestGetFeatureFlags.test_unmapped_feature):\n(TestGetFeatureFlags.test_no_features):\n(TestGetFeatureFlags.test_no_config):\n(TestGetFeatureFlags.test_can_block_is_false):\n(TestGetFeatureFlags.test_can_block_with_features):\n(TestClassifyResults):\n(TestClassifyResults._result):\n(TestClassifyResults.test_expected_pass):\n(TestClassifyResults.test_expected_pass_no_expectations):\n(TestClassifyResults.test_unexpected_pass):\n(TestClassifyResults.test_expected_fail_matching_exit_code):\n(TestClassifyResults.test_unexpected_fail_different_exit_code):\n(TestClassifyResults.test_unexpected_fail_no_expectations):\n(TestClassifyResults.test_unexpected_fail_no_entry):\n(TestClassifyResults.test_crash_can_match_expectation):\n(TestClassifyResults.test_skipped):\n(TestClassifyResults.test_strict_mode_independent):\n(TestClassifyResults.test_pass_with_expected_zero_is_expected):\n(TestCompileHarness):\n(TestCompileHarness.test_concatenates_files):\n(TestCompileIncludes):\n(TestCompileIncludes.test_creates_temp_file):\n(TestCompileIncludes.test_missing_include_returns_none):\n(TestCompileIncludes.test_multiple_includes):\n(TestDiscoverTests):\n(TestDiscoverTests.test_finds_js_files):\n(TestDiscoverTests.test_missing_directory):\n(TestDiscoverTests.test_sorted_output):\n(TestLoadImportFile):\n(TestLoadImportFile.test_parses_added_and_modified):\n(TestSaveExpectations):\n(TestSaveExpectations._make_result):\n(TestSaveExpectations.test_full_save):\n(TestSaveExpectations.test_documents_exit_codes):\n(TestSaveExpectations.test_incremental_preserves_unrun):\n(TestSaveExpectations.test_incremental_adds_new_failure):\n(TestSaveExpectations.test_incremental_removes_now_passing):\n(TestSaveExpectations.test_incremental_skipped_not_counted_as_run):\n(TestRunJsc):\n(TestRunJsc._base_env):\n(TestRunJsc.test_pass_returns_none_output):\n(TestRunJsc.test_failure_returns_output):\n(TestRunJsc.test_uses_env_and_fork_exec):\n(TestRunJsc.test_strict_mode_uses_strict_file):\n(TestRunJsc.test_module_uses_module_file):\n(TestRunJsc.test_raw_skips_harness):\n(TestRunJsc.test_async_includes_async_harness):\n(TestRunJsc.test_negative_exception):\n(TestRunJsc.test_watchdog_timeout):\n(TestRunJsc.test_feature_flags_in_command):\n(TestRunJsc.test_timeout_exception):\n(TestRunJsc.test_no_dyld_without_darwin):\n(TestRunJsc.test_signal_exit_code_normalized):\n(TestCrashDetection):\n(TestCrashDetection.test_exit_zero_no_crash):\n(TestCrashDetection.test_exit_three_special_cased):\n(TestCrashDetection.test_sigsegv_detected):\n(TestCrashDetection.test_sigabrt_detected):\n(TestCrashDetection.test_sigbus_detected):\n(TestSaveResults):\n(TestSaveResults.test_round_trip):\n(TestFindJsc):\n(TestFindJsc.test_explicit_path):\n(TestFindJsc.test_explicit_path_missing):\n(TestFindJsc.test_port_build_dir):\n(TestFindJsc.test_port_build_dir_missing):\n(TestFindJsc.test_port_does_not_fall_back_to_path):\n(TestTestFileRegex):\n(TestTestFileRegex.test_matches_js):\n(TestTestFileRegex.test_rejects_fixture):\n(TestTestFileRegex.test_rejects_non_js):\n(TestParseArgs):\n(TestParseArgs._parse):\n(TestParseArgs.test_build_config_optional_defaults_to_release):\n(TestParseArgs.test_explicit_release):\n(TestParseArgs.test_explicit_debug):\n(TestParseArgs.test_release_and_debug_are_mutually_exclusive):\n(TestEndToEnd):\n(TestEndToEnd.setUp):\n(TestEndToEnd._write_yaml):\n(TestEndToEnd._run):\n(TestEndToEnd.test_failure_without_expectations):\n(TestEndToEnd.test_pass_without_expectations):\n(TestEndToEnd.test_newly_failing):\n(TestEndToEnd.test_newly_passing):\n(TestEndToEnd.test_expected_failure_is_not_new):\n(TestEndToEnd.test_crash_where_failure_was_expected_is_new):\n(TestEndToEnd.test_test_only_accepts_a_single_file):\n(TestEndToEnd.test_no_tests_found_is_an_error):\n(TestEndToEnd.test_skipped_files_reports_newly_passing):\n(TestEndToEnd.test_skipped_files_does_not_report_expected_failures):\n(TestEndToEnd.test_save_records_exit_codes):\n* Tools/Scripts/webkitperl/test262_unittest/README: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/expectations-compare.yaml: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/expectations.yaml: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/mock-jsc-fail-new-error.pl: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/mock-jsc-fail.pl: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-fail-now-failing-with-new-error.js: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-fail-now-failing.js: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-fail-now-passing.js: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-pass-now-failing.js: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/test/fail.js: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/fixtures/test/pass.js: Removed.\n* Tools/Scripts/webkitperl/test262_unittest/test262-runner-tests.pl: Removed.\n* Tools/Scripts/webkitpy/test/main.py:\n(main):\n\nCanonical link: https://commits.webkit.org/318622@main",
      "email": "k_tamkun@apple.com",
      "hash": "01efee2dab1400e07d101e81c47012c0a4f9f500",
      "subject": "[JSC] Rewrite test262 runner"
    },
    "318623@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "318623@main",
      "clUrl": "https://commits.webkit.org/318623@main",
      "description": "Unreviewed test gardening.\n\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318623@main",
      "email": "cgarcia@igalia.com",
      "hash": "02ef00414691472cd037d404e88508cc6a369e18",
      "subject": "[GTK][Gardening] Update test expectations"
    },
    "318626@main": {
      "author": "Per Arne Vollan",
      "avatar": "https://www.gravatar.com/avatar/644dde5b61925a175f4bdea3f0f00bda?d=identicon\u0026s=64",
      "cl": "318626@main",
      "clUrl": "https://commits.webkit.org/318626@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320992\nrdar://182146575\n\nReviewed by Chris Dumez and Sihui Liu.\n\nThe function getHomeDirectory can fail and release assert if the sandbox does not allow access\nto the Open Directory service. This can happen when the Open Directory cache is invalidated,\nand the WebContent process calls getHomeDirectory in response to the invalidation. In this case\nit is not critical that getHomeDirectory succeeds, since we will otherwise just use the value\ncached by the system. At the other call sites, it is important that the function succeeds, so\nwe release assert at the call site if the function fails.\n\nNo new test, since getHomeDirectory normally also succeeds without sandbox access to the\nOpen Directory service.\n\n* Source/WebKit/NetworkProcess/NetworkProcess.cpp:\n(WebKit::addPathsBlockedForSandboxExtensions):\n* Source/WebKit/Shared/AuxiliaryProcess.h:\n* Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm:\n(WebKit::AuxiliaryProcess::getHomeDirectory):\n(WebKit::populateSandboxInitializationParameters):\n\nCanonical link: https://commits.webkit.org/318626@main",
      "email": "pvollan@apple.com",
      "hash": "542f135691710d4868e26b380af703b5943714bf",
      "subject": "Crash under AuxiliaryProcess::getHomeDirectory"
    },
    "318627@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "318627@main",
      "clUrl": "https://commits.webkit.org/318627@main",
      "description": "rdar://182958311\nhttps://bugs.webkit.org/show_bug.cgi?id=320025\n\nReviewed by Antti Koivisto.\n\nThis test:\nimported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization.html\nsuggests that serializing \u003cgeneral-enclosed\u003e should result in exactly the\nsame string as the input. For example, \"prop:var       \" is serialized to\nthe same string with the trailing whitespaces preserved.\n\nThe media query parser (also used for @container query parser) uses\nCSSParserTokenRange::serialize to serialize \u003cgeneral-enclosed\u003e back to\nstring, but it doesn't specify the serialization mode. The default mode\ncollapses consecutive whitespaces into one, so the example above is\nserialized as \"prop:var \".\n\nFix this by using CSSParserToken::SerializationMode::CustomProperty mode,\nwhich preserves consecutive whitespaces, among other things.\n\nTest: imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization.html\n\n* LayoutTests/fast/media/mq-color-index-02.html:\n    - Fix the expected serialization. This test now passes in all three browsers\n      (Chrome, Firefox, WebKit)\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/container-queries/at-container-anchored-serialization-expected.txt:\n    - Test progression.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization-expected.txt:\n    - Test progression.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/scroll-state/at-container-scrollable-serialization-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/scroll-state/at-container-scrolled-serialization-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/scroll-state/at-container-snapped-serialization-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/scroll-state/at-container-stuck-serialization-expected.txt:\n    - Test progression. The subtests still fail, but at least this fixes\n      the trailing whitespaces issue.\n\n* Source/WebCore/css/query/GenericMediaQueryParser.h:\n(WebCore::MQ::GenericMediaQueryParser\u003cConcreteParser\u003e::consumeQueryInParens):\n\nCanonical link: https://commits.webkit.org/318627@main",
      "email": "kiet.ho@apple.com",
      "hash": "7d2766db51cb1386ce0e5fbb3e63c83a8b138094",
      "subject": "Media query parser: serialize \u003cgeneral-enclosed\u003e as verbatim as possible"
    },
    "318628@main": {
      "author": "Megan Gardner",
      "avatar": "https://www.gravatar.com/avatar/b466a5bcbfabf4d82a8ecc595db5a531?d=identicon\u0026s=64",
      "cl": "318628@main",
      "clUrl": "https://commits.webkit.org/318628@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320987\nrdar://184019794\n\nReviewed by Wenson Hsieh.\n\nImplements the highlightsFromPoint() algorithm for light-DOM highlights. For each\nregistered highlight, tests the query point against the client-space rects of each\nof its ranges (via RenderObject::clientBorderAndTextRects), skipping collapsed ranges\nand invalidated StaticRanges, and rejecting points outside the viewport. Results are\nordered top-most first: by highlight priority descending, then by registration order\ndescending for equal priorities.\n\nimported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint.html\nimported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint-ranges.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint-ranges-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/shadow-dom/HighlightRegistry-highlightsFromPoint-expected.txt:\n* Source/WebCore/Modules/highlight/HighlightRegistry.cpp:\n(WebCore::HighlightRegistry::highlightsFromPoint):\n\nCanonical link: https://commits.webkit.org/318628@main",
      "email": "megan_gardner@apple.com",
      "hash": "64f73a0819df5029b12093ee88a3c8f10442b15d",
      "subject": "[Custom Highlight] Implement HighlightRegistry.highlightsFromPoint() hit-testing."
    },
    "318629@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "318629@main",
      "clUrl": "https://commits.webkit.org/318629@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320988\n\nReviewed by Carlos Alberto Lopez Perez.\n\nRecently, we had an issue where a stuck run-webdriver-tests from the\nprevious job was not caught by kill-old-processes, leaving its SDK\ncontainer up and affecting the subsequent runs on the same bot.\n\nOn top of that, the the current regex matching webkit commands like\nrun-webkit-tests expects a slash right before `python`, which is not the\ncase when the script uses a python executable from $PATH. As such, this\nbranch was in fact potentially not working at all on the bots for a\nwhile.\n\nHere's the list of Linux changes to avoid this in the future:\n\n* Add run-webdriver-tests to the list of webkit commands to be killed,\n  alongside the existing run-webkit-tests.\n* Instead of matching on a \"*python\" command from the raw ps output, use\n  its \"comm\" field, so the current bot behavior of using \"python\" from\n  $PATH matches the regex and void matching commands that happen to wrap\n  the actual target, like `bash -c ... | ...`.\n* Also, if WEBKIT_CONTAINER_SDK_ENABLE_AUTOENTER is enabled, kill any\n  still running podman SDK container matching the label set by\n  linux_container_sdk_utils.py. As the bots run 1 worker per\n  pod/bare-metal machine, this would not affect other workers.\n\n* Tools/CISupport/kill-old-processes:\n(main):\n\nCanonical link: https://commits.webkit.org/318629@main",
      "email": "lmoura@igalia.com",
      "hash": "a089757817eb946432770ba67dd61c51cc5ac17e",
      "subject": "[Tools] kill-old-processes misses stuck run-webdriver-tests"
    },
    "318630@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "318630@main",
      "clUrl": "https://commits.webkit.org/318630@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321081\n\nReviewed by Adrian Perez de Castro.\n\nCMake 4.4 reports the following error for WPE.\n\n\u003e -- Using platform-specific CMakeLists: /run/build/webkitwpe/Source/JavaScriptCore/shell/PlatformWPE.cmake\n\u003e CMake Error at Source/cmake/WebKitMacros.cmake:554 (if):\n\u003e   if given arguments:\n\u003e\n\u003e     \"(\" \"NOT\" \"_linked_into\" \")\" \"OR\" \"(\" \"JavaScriptCore\" \"STREQUAL\" \")\" \"OR\" \"(\" \"NOT\" \"IN_LIST\" \"jsc_FRAMEWORKS\" \")\"\n\u003e\n\u003e   Unknown arguments specified\n\u003e Call Stack (most recent call first):\n\u003e   Source/cmake/WebKitMacros.cmake:756 (_WEBKIT_TARGET_LINK_FRAMEWORK)\n\u003e   Source/JavaScriptCore/shell/CMakeLists.txt:126 (WEBKIT_EXECUTABLE)\n\nReplaced `${_linked_into}` with `_linked_into`.\n\n* Source/cmake/WebKitMacros.cmake(_WEBKIT_TARGET_LINK_FRAMEWORK):\n\nCanonical link: https://commits.webkit.org/318630@main",
      "email": "fujii@igalia.com",
      "hash": "4bfeff8c67ad47b7bb0f3d78390789f6f2af5dd2",
      "subject": "[CMake 4.4][WPE] _WEBKIT_TARGET_LINK_FRAMEWORK reports \"Unknown arguments specified\" error"
    },
    "318631@main": {
      "author": "Ryosuke Niwa",
      "avatar": "https://www.gravatar.com/avatar/ed2c71248fe3ea15d9129f6e9a2a1e85?d=identicon\u0026s=64",
      "cl": "318631@main",
      "clUrl": "https://commits.webkit.org/318631@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321044\n\nReviewed by Wenson Hsieh, Abrar Rahman Protyasha, and Megan Gardner.\n\nWhen text is selected inside a cross-origin (site-isolated) iframe on iOS, the selection loupe\nwas mispositioned: instead of appearing at the caret it animated in from the top or bottom edge\nof the iframe (the offset scaling with the subframe's scroll position).\n\nWhen selectionHonorsOverflowScrolling is enabled, WKContentView presents the selection -- and\nthe loupe -- inside the enclosing overflow-scroll layer, converting the selection rects into\nthat container's coordinate space (see -[WKContentView _selectionContainerViewInternal] and\nselectionRect:convertQuadToSelectionContainer:). For a cross-origin subframe that enclosing\nlayer is the subframe's remote-hosted, scrolled layer, but WebKit reports the selection rects\nin main-frame (root-view) coordinates. Presenting main-frame-coordinate rects relative to the\nsubframe's scrolled layer positioned the loupe relative to the iframe's layer origin, so it\nslid in from the iframe edge.\n\nThe overflow-scroll selection container assumes a same-process scroller whose layer the rects\nare relative to, which does not hold across the site-isolation process boundary. Use the\nWKContentView as the selection container when the selection's root frame is not the main frame.\n\nTest: SiteIsolation.SelectionInCrossOriginIframeIsContainedByContentView\n\n* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:\n(-[WKContentView _selectionContainerViewInternal]): Return self when the selection is in\na cross-origin subframe (visualData.rootFrameID is not the main frame).\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::(SiteIsolation, SelectionInCrossOriginIframeIsContainedByContentView)):\n* Tools/TestWebKitAPI/Helpers/cocoa/TestWKWebView.h:\n* Tools/TestWebKitAPI/Helpers/cocoa/TestWKWebView.mm:\n(-[TestWKWebView selectionHighlightView]): Added.\n\nCanonical link: https://commits.webkit.org/318631@main",
      "email": "rniwa@webkit.org",
      "hash": "47c187746bfd9d27268db18e105f30c6f0cdfa9e",
      "subject": "[Site Isolation] [iOS] Selection loupe slides in from the iframe edge in a cross-origin iframe"
    },
    "318632@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "318632@main",
      "clUrl": "https://commits.webkit.org/318632@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=311154\n\nReviewed by Carlos Alberto Lopez Perez.\n\nSimilar to run-webkit-tests option, but, for simplicity, here we just\nexpand the test file as if the entries were positional arguments,\nwithout replacing the expectations for the tests. That means what\nskipped tests, even if listed in the test file, require the usage of\n`--force` to ensure they're run.\n\nThis will make gardening multiple related tests easier than relying on\nthe positional args.\n\n* Tools/Scripts/run-webdriver-tests:\n\nCanonical link: https://commits.webkit.org/318632@main",
      "email": "lmoura@igalia.com",
      "hash": "32b6a6686a7c2cac8ddee87b56f4b4c596c3d2be",
      "subject": "[Tools][WebDriver] Add test-list option to make it easier to group tests when gardening"
    },
    "318633@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318633@main",
      "clUrl": "https://commits.webkit.org/318633@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320699\n\nReviewed by Mike Wyrzykowski.\n\n* Source/JavaScriptCore/inspector/protocol/Canvas.json:\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:\n(WebCore::InspectorCanvasAgent::updateShader):\nMake `Canvas.updateShader` asynchronous so pipeline compilation can finish before replying.\n\n* Source/WebCore/Modules/WebGPU/GPUShaderModule.h:\n(WebCore::GPUShaderModule::create):\n(WebCore::GPUShaderModule::source const): Deleted.\n(WebCore::GPUShaderModule::descriptor const): Added.\n* Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp:\n(WebCore::GPUShaderModule::GPUShaderModule):\n(WebCore::GPUShaderModule::setLabel):\n* Source/WebCore/Modules/WebGPU/GPUDevice.cpp:\n(WebCore::GPUDevice::createShaderModule):\n(WebCore::GPUDevice::createComputePipeline):\n(WebCore::GPUDevice::createRenderPipeline):\n(WebCore::GPUDevice::createComputePipelineAsync):\n(WebCore::GPUDevice::createRenderPipelineAsync):\n* Source/WebCore/Modules/WebGPU/GPUComputePipeline.h:\n(WebCore::GPUComputePipeline::shaderSource const):\n* Source/WebCore/Modules/WebGPU/GPUComputePipeline.cpp:\n(WebCore::GPUComputePipeline::create):\n(WebCore::GPUComputePipeline::GPUComputePipeline):\n(WebCore::GPUComputePipeline::setLabel):\n(WebCore::GPUComputePipeline::getBindGroupLayout):\n(WebCore::GPUComputePipeline::updateShader): Added.\n* Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.cpp:\n(WebCore::GPUComputePassEncoder::setPipeline):\n* Source/WebCore/Modules/WebGPU/GPURenderPipeline.h:\n(WebCore::GPURenderPipeline::vertexShaderSource const):\n(WebCore::GPURenderPipeline::fragmentShaderSource const):\n* Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp:\n(WebCore::GPURenderPipeline::create):\n(WebCore::GPURenderPipeline::GPURenderPipeline):\n(WebCore::GPURenderPipeline::setLabel):\n(WebCore::GPURenderPipeline::getBindGroupLayout):\n(WebCore::GPURenderPipeline::updateVertexShader): Added.\n(WebCore::GPURenderPipeline::updateFragmentShader): Added.\n(WebCore::GPURenderPipeline::updateShader): Added.\n* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.cpp:\n(WebCore::GPURenderBundleEncoder::setPipeline):\n* Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.cpp:\n(WebCore::GPURenderPassEncoder::setPipeline):\n* Source/WebCore/inspector/InspectorShaderProgram.h:\n* Source/WebCore/inspector/InspectorShaderProgram.cpp:\n(WebCore::InspectorShaderProgram::updateShader):\nRetain the descriptors needed to recreate pipelines with their original layouts.\nPreserve invalid editor source while continuing to use the last valid pipeline.\nClear compilation hints whose weak layouts may expire, and use weak captures while replacement is pending.\nUse `pauseAllErrorReporting` while compiling replacement shader modules.\nProtect pipeline arguments before passing their backings to encoder implementations.\n\n* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUDevice.h:\n(WebCore::WebGPU::Device::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.\n(WebCore::WebGPU::Device::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.\n* Source/WebCore/Modules/WebGPU/Implementation/WebGPUDeviceImpl.h:\n* Source/WebCore/Modules/WebGPU/Implementation/WebGPUDeviceImpl.cpp:\n(WebCore::WebGPU::DeviceImpl::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.\n(WebCore::WebGPU::DeviceImpl::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.\n* Source/WebGPU/WebGPU/WebGPUExt.h:\n* Source/WebGPU/WebGPU/Device.h:\n* Source/WebGPU/WebGPU/Device.mm:\n(WebGPU::Device::pauseErrorReporting):\n(WebGPU::wgpuDeviceCreateComputePipelineWithPipelineLayoutFromPipelineAsync): Added.\n(WebGPU::wgpuDeviceCreateRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.\n* Source/WebGPU/WebGPU/ComputePipeline.mm:\n(WebGPU::Device::createComputePipeline):\n(WebGPU::Device::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.\n* Source/WebGPU/WebGPU/RenderPipeline.mm:\n(WebGPU::Device::createRenderPipeline):\n(WebGPU::Device::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.\nAdd inspector-only pipeline creation that reuses the replaced pipeline's layout and suppresses page-visible validation errors.\n\n* Source/WebKit/Shared/WebGPU/WebGPUConvertFromBackingContext.h:\n* Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp:\n* Source/WebKit/Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp:\n* Source/WebKit/Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp:\n(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):\n* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.messages.in:\n* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h:\n* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp:\n(WebKit::RemoteDevice::createComputePipelineWithPipelineLayoutFromPipeline): Added.\n(WebKit::RemoteDevice::createRenderPipelineWithPipelineLayoutFromPipeline): Added.\n* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:\n(WebKit::RemoteDeviceProxy::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.\n(WebKit::RemoteDeviceProxy::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.\nAllow layoutless replacement descriptors across IPC and wait for GPU-process compilation before creating replacement proxies.\n\n* Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:\n(WI.ShaderProgramContentView.prototype.constructor):\nMake WebGPU shader editors writable and debounce WGSL edits.\n\n* LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgpu.js:\n* LayoutTests/inspector/canvas/updateShader-webgpu.html: Added.\n* LayoutTests/inspector/canvas/updateShader-webgpu-expected.txt: Added.\n* LayoutTests/inspector/canvas/worker-webgpu.html:\n* LayoutTests/inspector/canvas/worker-webgpu-expected.txt:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/win/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318633@main",
      "email": "hi@devinrousso.com",
      "hash": "fcd024f84dbb3e26a34b2ecf4d71e34d56b50107",
      "subject": "Web Inspector: Canvas: support editing WebGPU shaders"
    },
    "318634@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318634@main",
      "clUrl": "https://commits.webkit.org/318634@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321073\n\nUnreviewed, test fix.\n\n* LayoutTests/inspector/canvas/console-record-offscreen-canvas-2d.html:\n* LayoutTests/inspector/canvas/console-record-offscreen-canvas-2d-expected.txt:\n\n* LayoutTests/platform/gtk/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318634@main",
      "email": "hi@devinrousso.com",
      "hash": "148d2307aaa45e132f8ad46b43d6484965b36e0a",
      "subject": "REGRESSION(318555@main): [GTK] Test inspector/canvas/console-record-offscreen-canvas-2d.html fails"
    },
    "318635@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "318635@main",
      "clUrl": "https://commits.webkit.org/318635@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321041\nrdar://184072358\n\nReviewed by Yusuke Suzuki.\n\nEvery CreateTemporalX AO validates its slots before OrdinaryCreateFromConstructor,\nwhose Get(NewTarget, \"prototype\") is observable. All eight Temporal constructors\nderived their Structure on entry, so Reflect.construct with a throwing `prototype`\naccessor got that error instead of the mandated RangeError.\n\nThe helpers now take a TemporalNewTarget rather than a Structure*, making the wrong\norder unrepresentable, and are renamed after their AOs as free functions —\ncreateTemporalDate, createTemporalZonedDateTime and so on. `try*` in WebKit means\n\"returns null without throwing\", the opposite of these.\n\nTwo bugs found on the way: ZonedDateTime.prototype.with open-coded\nInterpretISODateTimeOffset without its CheckISODaysRange and IsValidEpochNanoseconds\nsteps, so an offset at the epoch boundary produced an out-of-range ZonedDateTime; and\nisValidPlainDateOrThrow threw through its own ThrowScope, leaving the caller's\nunchecked under --validateExceptionChecks.\n\nAlso folds CalendarID into CreateTemporalYearMonth/MonthDay, adds the missing\nCreateTemporalInstant, and corrects the step annotations in all eight.\n\nTest: JSTests/stress/temporal-construct-newtarget-prototype-order.js\nCanonical link: https://commits.webkit.org/318635@main",
      "email": "yijia_huang@apple.com",
      "hash": "b48f01b7f1b125646d7b77e3ddcc3fe7943462cb",
      "subject": "[JSC][Temporal] Fix constructor newTarget.prototype ordering and unify CreateTemporalX helpers"
    },
    "318636@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318636@main",
      "clUrl": "https://commits.webkit.org/318636@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320829\nrdar://183841775\n\nReviewed by Antti Koivisto.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nMerge: https://chromium.googlesource.com/chromium/src.git/+/f3d25d319c4feb8ad68c6fde2b3ef3972384f1fe\n\nRenderBox::foregroundIsKnownToBeOpaqueInRect() computes whether a box's\nbackground is obscured by recursively checking if any descendant fully\ncovers it, letting BackgroundPainter skip painting the background. The\nrecursion did not account for descendants with CSS clip, so an ancestor\ncould be treated as obscured even though the covering descendant only\npainted part of its border box.\n\nRenderBox::backgroundIsKnownToBeOpaqueInRect() already bails out on\nhasClip(), so a directly clipped child was handled. The gap was one level\ndown: a clipped child with no background of its own was still recursed\ninto, and an opaque grandchild filling that child was taken as covering\nthe ancestor. The clip on the intermediate child was never consulted.\n\nReject clipped boxes in isCandidateForOpaquenessTest() instead of in\nbackgroundIsKnownToBeOpaqueInRect(), since CSS clip applies to a box's\nforeground as well as its background. hasClip() is\nisOutOfFlowPositioned() \u0026\u0026 !style().clip().isAuto(), so it already\nencodes that clip only applies to out-of-flow boxes.\n\nThis makes the obscuration optimization fire less often and so paints\nsome backgrounds that were previously skipped. The compositing path is\nunaffected: RenderLayerBacking::setContentsOpaque() reaches\nRenderBox::backgroundIsKnownToBeOpaqueInRect(), which already checked\nhasClip().\n\nTests: fast/backgrounds/obscured-background-css-clipped-child.html\n       fast/backgrounds/obscured-background-css-clipped-grandchild.html\n\n* LayoutTests/fast/backgrounds/obscured-background-css-clipped-child-expected.html: Added.\n* LayoutTests/fast/backgrounds/obscured-background-css-clipped-child.html: Added.\n* LayoutTests/fast/backgrounds/obscured-background-css-clipped-grandchild-expected.html: Added.\n* LayoutTests/fast/backgrounds/obscured-background-css-clipped-grandchild.html: Added.\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::isCandidateForOpaquenessTest):\n\nCanonical link: https://commits.webkit.org/318636@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "daa83dc8ed6a2a6c6364b9c6de5e024649c4d842",
      "subject": "CSS clip on a child is ignored when determining whether an ancestor's background is obscured"
    },
    "318637@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/d0533d52eeb271270df480f37629a407?d=identicon\u0026s=64",
      "cl": "318637@main",
      "clUrl": "https://commits.webkit.org/318637@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321026\nrdar://184061275\n\nReviewed by Simon Fraser.\n\nHit testing required support to work with corner-shape\n\nPasses existing tests\n\n* Source/WebCore/rendering/BorderShape.cpp:\n(WebCore::BorderShape::outerShapeContainsPoint const):\n(WebCore::BorderShape::shapeContainsPoint const):\n(WebCore::BorderShape::shapeIntersectsHitTestLocation const):\n* Source/WebCore/rendering/BorderShape.h:\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::hitTestBorderRadius const):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-hittest-expected.txt:\n\nCanonical link: https://commits.webkit.org/318637@main",
      "email": "173393835+cupidsity@users.noreply.github.com",
      "hash": "9ac9df1cb3aa8b10018ede3c59e8d0ec2d16e08e",
      "subject": "corner-shape: fix hit testing"
    },
    "318638@main": {
      "author": "Shu-yu Guo",
      "avatar": "https://www.gravatar.com/avatar/3884544eb9e557e2ec917d32c6e12720?d=identicon\u0026s=64",
      "cl": "318638@main",
      "clUrl": "https://commits.webkit.org/318638@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321032\nrdar://183455247\n\nReviewed by Sosuke Suzuki.\n\nref.func, table.get, and array.init_elem can all materialize wrapper functions,\nwhich can GC and update ShadowChicken, and therefore need a FrameTracer.\n\nTests: JSTests/wasm/stress/array-init-elem-wrapper-alloc-frame-tracer.js\n       JSTests/wasm/stress/ref-func-wrapper-alloc-frame-tracer.js\n       JSTests/wasm/stress/table-get-wrapper-alloc-frame-tracer.js\n\n* JSTests/wasm/stress/array-init-elem-wrapper-alloc-frame-tracer.js: Added.\n(const.imports.m.f):\n* JSTests/wasm/stress/ref-func-wrapper-alloc-frame-tracer.js: Added.\n(let.wat.module.import.string_appeared_here.string_appeared_here.func.import):\n(func):\n(const.imports.m.f):\n* JSTests/wasm/stress/table-get-wrapper-alloc-frame-tracer.js: Added.\n(funcref.elem):\n(func):\n(const.imports.m.f):\n* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:\n(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):\n* Source/JavaScriptCore/wasm/WasmOperations.cpp:\n(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):\n\nCanonical link: https://commits.webkit.org/318638@main",
      "email": "syg@apple.com",
      "hash": "f771c5060cd789680bae34cfee0b0d5f032cf6f8",
      "subject": "[JSC] Use FrameTracer in wasm ref_func, table_get, and array_init_elem operations"
    },
    "318639@main": {
      "author": "Michael Catanzaro",
      "avatar": "https://www.gravatar.com/avatar/213b4484d2078dbdd03dcd3256564c2c?d=identicon\u0026s=64",
      "cl": "318639@main",
      "clUrl": "https://commits.webkit.org/318639@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321018\n\nReviewed by Adrian Perez de Castro.\n\n* Source/ThirdParty/pdfjs/PdfJSFiles.cmake:\n* Source/ThirdParty/pdfjs/build/pdf.mjs:\n* Source/ThirdParty/pdfjs/build/pdf.sandbox.mjs:\n* Source/ThirdParty/pdfjs/build/pdf.worker.mjs:\n* Source/ThirdParty/pdfjs/web/debugger.mjs:\n* Source/ThirdParty/pdfjs/web/images/signature-properties-row-check.svg: Added.\n* Source/ThirdParty/pdfjs/web/images/toolbarButton-signaturePropertiesError.svg: Added.\n* Source/ThirdParty/pdfjs/web/images/toolbarButton-signaturePropertiesVerified.svg: Added.\n* Source/ThirdParty/pdfjs/web/locale/ar/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/be/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/bg/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/bqi/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/cs/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/cy/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/de/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/dsb/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/el/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/en-GB/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/en-US/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/eo/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/es-AR/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/es-CL/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/es-MX/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/eu/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/fi/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/fr/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/fy-NL/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/gn/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/he/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/hsb/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/hu/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/hy-AM/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/ia/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/it/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/ja/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/ka/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/kab/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/kk/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/ko/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/nb-NO/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/nl/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/nn-NO/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/pl/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/pt-BR/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/ro/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/ru/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/sc/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/sk/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/sl/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/sr/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/sv-SE/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/tr/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/vi/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/zh-CN/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/locale/zh-TW/viewer.ftl:\n* Source/ThirdParty/pdfjs/web/viewer.css:\n(:root):\n(#signaturePropertiesButton):\n(\u0026.state-verified::before,):\n(\u0026.state-verified::before):\n(\u0026.state-warn::before):\n(\u0026.state-error::before):\n(\u0026.state-loading):\n(.loadingDot):\n(\u0026:nth-child(3)):\n(@keyframes signaturePropertiesDot):\n(40%):\n(#signaturePropertiesPanel):\n(.signaturePropertiesContainer):\n(.sigBanner):\n(\u0026.warn):\n(\u0026.error):\n(.signaturePropertiesList):\n(.sigCard):\n(.row):\n(\u0026::before):\n(\u0026.status--verified::before,):\n(\u0026.cert--untrusted::before,):\n(\u0026.cert--revoked::before,):\n(\u0026.sigCard--top-allfine \u003e .row.status--verified::before,):\n(.detail):\n(.viewCert):\n(\u0026:focus-visible):\n(.subSignatures):\n(\u0026::-webkit-details-marker):\n(\u0026[open] \u003e summary::before):\n(.nested,):\n(.nested):\n(.subSignatures .sigCard,):\n(.subSignatures .signer,):\n* Source/ThirdParty/pdfjs/web/viewer.html:\n* Source/ThirdParty/pdfjs/web/viewer.mjs:\n\nCanonical link: https://commits.webkit.org/318639@main",
      "email": "mcatanzaro@gnome.org",
      "hash": "aac6a1e5983b1ceef2d380fbed6e7eecefa75ce6",
      "subject": "Update to PDF.js v6.2.108"
    },
    "318640@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318640@main",
      "clUrl": "https://commits.webkit.org/318640@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321072\nrdar://184103404\n\nReviewed by Yijia Huang.\n\nAs ARMv7 JIT is removed, now this is unconditionally enabled. Remove enableInt52.\n\n* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:\n(JSC::DFG::AbstractInterpreter\u003cAbstractStateType\u003e::executeEffects):\n* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:\n(JSC::DFG::ByteCodeParser::handleIntrinsicCall):\n(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):\n* Source/JavaScriptCore/dfg/DFGCommon.h:\n(JSC::DFG::enableInt52): Deleted.\n* Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:\n(JSC::DFG::FixupPhase::fixupNode):\n* Source/JavaScriptCore/dfg/DFGGraph.h:\n* Source/JavaScriptCore/dfg/DFGNode.h:\n(JSC::DFG::Node::shouldSpeculateInt52):\n(JSC::DFG::Node::shouldSpeculateInt52OrOther):\n* Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:\n* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:\n(JSC::DFG::SpeculativeJIT::compileUInt32ToNumber):\n(JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult):\n* Source/JavaScriptCore/dfg/DFGVariableAccessData.cpp:\n(JSC::DFG::VariableAccessData::couldRepresentInt52Impl):\n\nCanonical link: https://commits.webkit.org/318640@main",
      "email": "ysuzuki@apple.com",
      "hash": "9226ba78d93d9c8d5b99accb87b4528e5a9a3dde",
      "subject": "[JSC] Remove enableInt52"
    },
    "318641@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318641@main",
      "clUrl": "https://commits.webkit.org/318641@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321070\nrdar://184102859\n\nReviewed by Yijia Huang.\n\nLLInt ARM64E needs to be enabled specifically.\n\n* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:\n\nCanonical link: https://commits.webkit.org/318641@main",
      "email": "ysuzuki@apple.com",
      "hash": "76f57a9311b1aa0b75f75c697030546f58185347",
      "subject": "[JSC] Include ARM64E in the LLInt prologue frame zeroing"
    },
    "318642@main": {
      "author": "Ruthvik Konda",
      "avatar": "https://www.gravatar.com/avatar/bca33cefcce93017251a8fbc1204cdc4?d=identicon\u0026s=64",
      "cl": "318642@main",
      "clUrl": "https://commits.webkit.org/318642@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321027\nrdar://184062042\n\nReviewed by Mike Wyrzykowski.\n\nThe IPC code generator emits a C++ message forwarder for receivers marked\nSwiftReceiver or SwiftReceiverBuildEnabledBy, and that forwarder, rather than the\nreceiver itself, becomes the IPC::MessageReceiver. When such a receiver is also\nannotated with EnabledBy, the generated enablement check calls\nsharedPreferencesForWebProcess() unqualified. That method is declared by\nindividual receivers rather than by the IPC machinery, and is absent from both IPC\nbase classes, so it is not visible on the forwarder and the generated code fails\nto compile. Both shipping Swift receivers use ExceptionForEnabledBy, which is why\nthis has gone unnoticed. It blocks moving stream receivers such as RemoteMesh,\nannotated EnabledBy=ModelElementEnabled, to Swift.\n\nHave the forwarder ask its target for the preferences, and look the target up\nbefore the enablement check so that it is available. The receiver-level gate and\nthe per-message gates read the same local, so this repairs both. The two\nstatement generators are merged into one function so that the ordering is\nstructural rather than a convention repeated at each of the three call sites.\nGenerated output for non-Swift receivers is unchanged.\n\nA Swift receiver annotated with EnabledBy must now expose\nsharedPreferencesForWebProcess() to C++. Since Swift cannot name an\nun-specialized class template, std::optional\u003cSharedPreferencesForWebProcess\u003e\nwill need a named typedef, in the same way std::span\u003cconst char\u003e already does for\nWebBackForwardList.\n\nCovered by two new fixtures in the IPC message-generator test,\nTestWithStreamSwiftEnabledBy (Stream with a receiver-level EnabledBy) and\nTestWithSwiftConditionallyAndEnabledBy (SwiftReceiverBuildEnabledBy with\nper-message EnabledBy).\n\n* Source/WebKit/Scripts/webkit/messages.py:\n(generate_target_and_enabled_by_statements):\n(generate_target_and_enabled_by_statements.append_swift_statements):\n(generate_target_and_enabled_by_statements.append_cpp_statements):\n(generate_message_handler):\n(generate_enabled_by_for_receiver): Deleted.\n(generate_get_target_statements): Deleted.\n* Source/WebKit/Scripts/webkit/messages_unittest.py:\n* Source/WebKit/Scripts/webkit/tests/Makefile:\n* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:\n* Source/WebKit/Scripts/webkit/tests/MessageNames.cpp:\n* Source/WebKit/Scripts/webkit/tests/MessageNames.h:\n* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledBy.messages.in: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledByMessageReceiver.cpp: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledByMessageReceiver.swift: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledByMessages.h: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledBy.messages.in: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledByMessageReceiver.cpp: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledByMessageReceiver.swift: Added.\n* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledByMessages.h: Added.\n\nCanonical link: https://commits.webkit.org/318642@main",
      "email": "rkonda2@apple.com",
      "hash": "d57023d5133d4df512b7e6ec7d4b4aa5004ce1d3",
      "subject": "Swift IPC message receivers cannot be annotated with EnabledBy"
    },
    "318644@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "318644@main",
      "clUrl": "https://commits.webkit.org/318644@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321103\nrdar://184140276\n\nUnreviewed test gardening\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318644@main",
      "email": "darbinyan@apple.com",
      "hash": "5cf3b9634aa25722b698d9a49abef61138b87e06",
      "subject": "[Gardening]: REGRESSION(308970@main): [macOS Debug] imported/w3c/web-platform-tests/uievents/textInput/enter-textarea-contenteditable.html is flaky failure"
    },
    "318645@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "318645@main",
      "clUrl": "https://commits.webkit.org/318645@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321006\n\u003crdar://184041568\u003e\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/8c0f2de6e4b7ac75d0bca8119443f9fa37c3479a\n\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint-ranges.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/crashtests/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-fallback-not-tinted-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-fallback-not-tinted-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-fallback-not-tinted.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-currentcolor-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-currentcolor-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-currentcolor.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-stacked-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-stacked-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-stacked.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-priority-painting.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-font-metrics-003-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-font-metrics-003-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-font-metrics-004.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-painting-user-select-none-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-painting-user-select-none-ref.html: ded.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-painting-user-select-none.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/invalidation/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/w3c-import.log:\n* LayoutTests/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318645@main",
      "email": "yulun_wu@apple.com",
      "hash": "0370be90efd30ce2ae691aaaf7cdd9c79e2e72f6",
      "subject": "Sync css/css-highlight-api"
    },
    "318646@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318646@main",
      "clUrl": "https://commits.webkit.org/318646@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321087\n\nReviewed by Antti Koivisto.\n\nLineBuilder::initialize() skips a pending margin when the margin state is still at the before side of the\nblock, on the grounds that it can collapse out through that edge. That is only half the condition.\nRenderBlockFlow::MarginInfo says:\n\n    bool canCollapseWithMarginBefore() const { return m_atBeforeSideOfBlock \u0026\u0026 m_canCollapseMarginBeforeWithChildren; }\n\nWhen the root has a border or padding the margin cannot collapse through its before edge, so a self\ncollapsing block on a previous line has already committed it and the line has to move down by it. Skipping\nit dropped the margin outright: the block painted below while the content following it stayed at the\ncontainer's top.\n\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:\n(WebCore::Layout::LineBuilder::initialize):\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-self-collapsing-margin-001-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-self-collapsing-margin-001.html: Added.\n\nCanonical link: https://commits.webkit.org/318646@main",
      "email": "zalan@apple.com",
      "hash": "505c1f4f69ffb42889d2e3e3ab89506b8fda9670",
      "subject": "[block-in-inline] Self collapsing block nested in an inline box loses its margin when the root has a border"
    },
    "318647@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "318647@main",
      "clUrl": "https://commits.webkit.org/318647@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321053\n\u003crdar://184082252\u003e\n\nReviewed by Alan Baradlay.\n\nThis PR distributes space to non-affected tracks per CSS Grid §11.5.1, step 2.3.\n\nhttps://drafts.csswg.org/css-grid-1/#extra-space\n\nStep 2.1 subtracts the affected size of spanned tracks from the item's contribution.\nStep 2.2 distributes extra space into affected tracks up to their limits.\nStep 2.3 subtracts the extra space non-affected tracks can contribute when sized to their limit.\n\nThe increases it computes are discarded, as the step's only purpose is to decrease\nspaceToDistribute for step 2.4. This is because only affected tracks receive\na planned increase in step 2.5.\n\n* Source/WebCore/layout/formattingContexts/grid/TrackSizingAlgorithm.cpp:\n(WebCore::Layout::distributeExtraSpace):\n\nCanonical link: https://commits.webkit.org/318647@main",
      "email": "yulun_wu@apple.com",
      "hash": "6562831a90c9390fdafa623c095d634c5a5885bb",
      "subject": "[GFC] Distribute extra space into non-affected tracks."
    },
    "318648@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318648@main",
      "clUrl": "https://commits.webkit.org/318648@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321085\n\nReviewed by Antti Koivisto.\n\nSkipping anonymous block generation puts a container's block level children into an inline formatting\ncontext. That only works where the container is a block formatting context laying its children out as\nlines. Several box types instead lay their children out themselves, or take them out of the flow, and\nneed them wrapped.\n\nThe test covers the MathML case, where four of the five token elements laid out at width 0 without this\npatch. The fieldset and multicol cases are covered by existing tests.\n\n* Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp:\n(WebCore::RenderTreeBuilder::Block::attach):\n* LayoutTests/mathml/token-element-with-text-content.html: Added.\n* LayoutTests/mathml/token-element-with-text-content-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318648@main",
      "email": "zalan@apple.com",
      "hash": "75791979a5d3867596d4a3d365ada2c41590771c",
      "subject": "[anon-block-removal] Boxes that lay out their own children must keep their anonymous block wrappers"
    },
    "318649@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "318649@main",
      "clUrl": "https://commits.webkit.org/318649@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321109\nrdar://184136743\n\nUnreviewed build fix.\n\n* Source/WebKit/UIProcess/mac/SpatialShim.swift: Added.\n(Angle2D.radians):\n(Angle2D.degrees):\n(Angle2D.degrees(_:)):\n(Angle2D.radians(_:)):\n(Angle2D.atan(_:)):\n(Angle2D.zero):\n* Source/WebKit/UIProcess/mac/WKDirectionalScrollLockTracker.swift:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/318649@main",
      "email": "richard_robinson2@apple.com",
      "hash": "d2c01adf4d3cf937ea59c1696f9ab34104d8c654",
      "subject": "Fix the build for some configurations"
    },
    "318650@main": {
      "author": "Ben Nham",
      "avatar": "https://www.gravatar.com/avatar/dc0914eabf69047ee3397794c2d17bf7?d=identicon\u0026s=64",
      "cl": "318650@main",
      "clUrl": "https://commits.webkit.org/318650@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321021\nrdar://182280016\n\nReviewed by Ryosuke Niwa.\n\nWhen Site Isolation is off, we sometimes don't consider the WebProcess that hosts the webpage as a\ncandidate for running same-origin shared and service workers. This is unintended.\n\nThis occurs because we only record the process =\u003e site association at provisional load time, not\ncommit time. In the case of a forced process swap due to a COOP response header:\n\n1. Process A performs the provisional load, and records the process =\u003e site mapping.\n2. We handle the COOP response header and force a BCG and process switch.\n3. Process B continues the load and commits, but we never record a process =\u003e site mapping for this\nnew process.\n\nTo fix this, record the process =\u003e site mapping at commit time.\n\nThis only needs to occur when Site Isolation is off; when Site Isolation is on, we were already\nrecording the process =\u003e site mapping via a different path (in\ndidStartUsingProcessForSiteIsolation).\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ServiceWorkerBasic.mm\n\n* Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:\n(+[WKProcessPool _webContentProcessInfo]):\n(+[WKProcessPool _webContentProcessInfoForTesting]):\n* Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::didCommitLoadForFrame):\n* Source/WebKit/UIProcess/WebProcessProxy.cpp:\n(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):\n(WebKit::WebProcessProxy::didCommitMainFrameLoadWithoutSiteIsolation):\n(WebKit::WebProcessProxy::updateSiteForMainFrameNavigation):\n* Source/WebKit/UIProcess/WebProcessProxy.h:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ServiceWorkerBasic.mm:\n((ServiceWorkers, SharedWorkerReusesProcessAfterCOOPProcessSwap)):\n\nCanonical link: https://commits.webkit.org/318650@main",
      "email": "nham@apple.com",
      "hash": "9eb3fbd1532c39dd1c3288a94d70e478651b8451",
      "subject": "Shared/service workers don't run in same process after COOP-induced BCG switch"
    },
    "318651@main": {
      "author": "Carlos Alberto Lopez Perez",
      "avatar": "https://www.gravatar.com/avatar/05326c1dbe06f486e884975e73f25179?d=identicon\u0026s=64",
      "cl": "318651@main",
      "clUrl": "https://commits.webkit.org/318651@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321111\n\nUnreviewed build fix.\n\nThe EWS WPE Build queue is having a hard time since we switched the\nbots to use Clang due to new unused-function warnings.\n\nFix that by making layersLogEnabled() and compositingLogEnabledRenderLayer()\nonly defined when ENABLE(TREE_DEBUGGING) because all the callers of that\nfunctions are guarded behind this.\n\n* Source/WebCore/rendering/RenderLayer.cpp:\n* Source/WebCore/rendering/RenderLayerCompositor.cpp:\n\nCanonical link: https://commits.webkit.org/318651@main",
      "email": "clopez@igalia.com",
      "hash": "447c453338ccb9ed396e99a432d30fd470e81596",
      "subject": "[WPE][Clang] Build failing since switch to Clang due to new unused-function warnings"
    },
    "318652@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "318652@main",
      "clUrl": "https://commits.webkit.org/318652@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321096\nrdar://184135720\n\nReviewed by Richard Robinson.\n\nAdd a way for text extractions to grab a `WKFrameInfo`, corresponding to a node `uid` string. If the\n`uid` corresponds to an `iframe`, this finds the frame info corresponding to the content frame of\nthe `iframe` element; otherwise, it falls back to returning the content frame containing the given\ntarget node.\n\nThis allows agents to (for instance) evaluate script in the context of the content frame underneath\nan `iframe`, without requiring the agent to first extract content within the target subframe.\n\nTest: TextExtractionTests.RequestFrameInfoForNodeIdentifier\n\n* Source/WebCore/page/text-extraction/TextExtraction.cpp:\n(WebCore::TextExtraction::contentFrameIdentifierForNode):\n* Source/WebCore/page/text-extraction/TextExtraction.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView+TextExtraction.mm:\n(-[WKWebView _requestFrameInfoForNodeIdentifier:completionHandler:]):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.mm:\n(-[_WKTextExtractionResult requestFrameInfoForNodeIdentifier:completionHandler:]):\n* Source/WebKit/UIProcess/WebFrameProxy.cpp:\n(WebKit::WebFrameProxy::requestContentFrameIdentifierForNode):\n* Source/WebKit/UIProcess/WebFrameProxy.h:\n* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:\n(WebKit::WebFrame::requestContentFrameIdentifierForNode):\n* Source/WebKit/WebProcess/WebPage/WebFrame.h:\n* Source/WebKit/WebProcess/WebPage/WebFrame.messages.in:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:\n(-[_WKTextExtractionResult frameInfoForNodeIdentifier:]):\n(TestWebKitAPI::(TextExtractionTests, RequestFrameInfoForNodeIdentifier)):\n\nAdd an API test to exercise this new method.\n\nCanonical link: https://commits.webkit.org/318652@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "bd875a909950772189f7265bcb1e909bf3c3d29c",
      "subject": "[Text Extraction] Add a way to map node identifier strings to `WKFrameInfo`"
    },
    "318653@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318653@main",
      "clUrl": "https://commits.webkit.org/318653@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321088\n\nReviewed by Antti Koivisto.\n\nisLastLineWithInlineContent() looks past the line's own content for more inline items to decide whether\nthis is the last line with inline content. A block level box is not \"contentful\" per\nisContentfulOrHasDecoration(), which only accepts atomic inline level boxes and line breaks, so the scan\nstepped straight over it, found the content after the block and concluded the line was not last.\n\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:\n(WebCore::Layout::LineBuilder::isLastLineWithInlineContent):\n(WebCore::Layout::LineBuilder::isLastLineWithInlineContent const):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-block-in-inline-001-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-block-in-inline-001.html: Added.\n\nCanonical link: https://commits.webkit.org/318653@main",
      "email": "zalan@apple.com",
      "hash": "2bcee61b68defc143d6fafdb5efb009b69228c26",
      "subject": "[block-in-inline] Trailing whitespace is not collapsed before a block nested in an inline box"
    },
    "318654@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318654@main",
      "clUrl": "https://commits.webkit.org/318654@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321093\n\nReviewed by Antti Koivisto.\nThe CSSWG resolved that margin-trim applies to block and multi-column\ncontainers only (https://github.com/w3c/csswg-drafts/issues/13731), reverting\nthe 2019 resolution that had extended it to flex and grid. That one predates\ngaps, and row-gap/column-gap covers the spacing its author was asking for.\n\nRenderFlexibleBox::isChildEligibleForMarginTrim is what made the shared\nRenderBox/RenderBlock trimming paths fire for flex items, so dropping the\noverride turns them all off at once. This also removes the main- and cross-axis\ntrim passes in FlexFormattingContext, FlexLayoutState's margin-trim item sets,\nand what they leave unreferenced. The two stray comments above the deleted\noverride, about hasIntrinsicAspectRatio and template instantiations, described\nneither it nor its neighbor and go with it.\n\nGrid and block keep margin-trim, so all four values still parse. Removing grid,\nand with it the inline-* values that then have no applicable layout mode, is a\nfollow-up, as is dropping these tests from WPT upstream.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-end-trimmed-only-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-end-trimmed-only.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-start-trimmed-only-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-start-trimmed-only.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-trimmed-only-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-trimmed-only.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-block-multiline-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-block-multiline.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-grow-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-grow.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-inline-multiline-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-inline-multiline.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-orthogonal-item-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-orthogonal-item.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-shrink-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-shrink.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-end-trimmed-only-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-end-trimmed-only.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-trimmed-only-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-trimmed-only.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-with-order-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-with-order-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-with-order.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-trimmed-only-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-trimmed-only.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-min-content-trims-every-line-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-min-content-trims-every-line.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-block-multiline-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-block-multiline.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-grow-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-grow.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-inline-multiline-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-inline-multiline.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-orthogonal-item-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-orthogonal-item.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-shrink-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-shrink.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-ref.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-trim-all-margins-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-trim-all-margins.html: Removed.\n* LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-template-expected.txt: Removed.\n* LayoutTests/platform/mac-site-isolation/TestExpectations:\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:\n(WebCore::FlexFormattingContext::layout):\n(WebCore::FlexFormattingContext::computeFlexLines):\n(WebCore::FlexFormattingContext::trimCrossAxisMarginsForFlexItems): Deleted.\n(WebCore::FlexFormattingContext::canFitItemWithTrimmedMarginEnd): Deleted.\n(WebCore::FlexFormattingContext::removeMarginEndFromFlexSizes): Deleted.\n(WebCore::FlexLayoutItem::flexBaseMarginBoxSize): Deleted.\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.cpp:\n(WebCore::FlexFormattingUtils::mainAxisMarginEndForFlexItem): Deleted.\n(WebCore::FlexFormattingUtils::shouldTrimMainAxisMarginStart): Deleted.\n(WebCore::FlexFormattingUtils::shouldTrimMainAxisMarginEnd): Deleted.\n(WebCore::FlexFormattingUtils::shouldTrimCrossAxisMarginStart): Deleted.\n(WebCore::FlexFormattingUtils::shouldTrimCrossAxisMarginEnd): Deleted.\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.h:\n* Source/WebCore/layout/formattingContexts/flex/FlexLayoutState.h:\n(WebCore::FlexLayoutState::FlexLayoutState):\n* Source/WebCore/layout/integration/flex/FlexIntegrationUtils.cpp:\n(WebCore::LayoutIntegration::FlexIntegrationUtils::setTrimmedMarginForChild): Deleted.\n(WebCore::LayoutIntegration::FlexIntegrationUtils::trimMainAxisMarginStart): Deleted.\n(WebCore::LayoutIntegration::FlexIntegrationUtils::trimMainAxisMarginEnd): Deleted.\n(WebCore::LayoutIntegration::FlexIntegrationUtils::trimCrossAxisMarginStart): Deleted.\n(WebCore::LayoutIntegration::FlexIntegrationUtils::trimCrossAxisMarginEnd): Deleted.\n* Source/WebCore/layout/integration/flex/FlexIntegrationUtils.h:\n* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:\n(WebCore::LayoutIntegration::FlexLayout::buildFlexLayoutItems):\n(WebCore::LayoutIntegration::FlexLayout::marginTrimItemsBeforeFlexLayout): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::isFlexItemEligibleForMarginTrim): Deleted.\n(WebCore::LayoutIntegration::FlexLayout::layout):\n* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h:\n* Source/WebCore/rendering/RenderBlock.cpp:\n(WebCore::RenderBlock::setTrimmedMarginForChild):\n* Source/WebCore/rendering/RenderBlock.h:\n(WebCore::RenderBlock::setMarginStartForChild): Deleted.\n(WebCore::RenderBlock::setMarginEndForChild): Deleted.\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::clearTrimmedMarginsMarkings): Deleted.\n(WebCore::RenderBox::hasTrimmedMargin const):\n* Source/WebCore/rendering/RenderBox.h:\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths const):\n(WebCore::RenderFlexibleBox::isChildEligibleForMarginTrim const): Deleted.\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n* Source/WebCore/style/StyleExtractorCustom.h:\n\nCanonical link: https://commits.webkit.org/318654@main",
      "email": "zalan@apple.com",
      "hash": "4ce8e4c1e0d0db94eab596fe1302401eeeeab6b5",
      "subject": "[Flex] Remove margin-trim support from flex layout"
    },
    "318655@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "318655@main",
      "clUrl": "https://commits.webkit.org/318655@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321110\nrdar://184147135\n\nUnreviewed test gardening\n\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318655@main",
      "email": "darbinyan@apple.com",
      "hash": "0e67d7d18ee94da250e04789d7f56ca573757468",
      "subject": "[Gardening]: NEW TEST(317810@main): [iOS macOS]4 tests in imported/w3c/web-platform-tests/webtransport/idlharness are constant failure"
    },
    "318656@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318656@main",
      "clUrl": "https://commits.webkit.org/318656@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321083\n\nReviewed by Antti Koivisto.\n\nLineLayout::firstLineBaseline() returns a block-in-inline's own baseline, but callers expect a baseline measured from the container's border box.\nRenderBlock's equivalents add the child's logicalTop() for exactly this reason:\n\n    if (auto baseline = child-\u003efirstLineBaseline())\n        return LayoutUnit { (child-\u003elogicalTop() + baseline.value()).toInt() };\n\nSo anything above the block level box - the container's padding-before, or a preceding line - is dropped\nfrom the exported baseline.\n\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-align/baseline-rules/first-baseline-block-in-inline-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-align/baseline-rules/first-baseline-block-in-inline-001-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318656@main",
      "email": "zalan@apple.com",
      "hash": "b7505aa75e5844a6188cdb7cd1d9b85cbf0913e0",
      "subject": "[block-in-inline] Baseline alignment ignores the offset of a block level box nested in an inline box"
    },
    "318657@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "318657@main",
      "clUrl": "https://commits.webkit.org/318657@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=320837\u003e\n\u003crdar://183856184\u003e\n\nReviewed by Antoine Quint.\n\nEvery entry in `processTimelines` is expected to hold at least one\ntimeline, since an entry with an empty set describes a scrolling node\nthat no longer sources anything.  Taking a timeline out of its former\nsource and moving it to a new one empties that set, so the invariant\nmust be restored on every update.  Restoring it only while iterating\n`timelinesUpdate.destroyed` fails to remove empty source entries from\n`processTimelines` whenever an update does not destroy a timeline, so\nthey survive until some later update for that process destroys one.\n\nSweep empty entries unconditionally so the invariant no longer depends\non what an update happens to contain.  Erasing them in a single pass\nalso removes the need to collect their keys in a temporary `HashSet`.\n\nNo new tests since an empty entry is indistinguishable from an absent\none through the existing testing interfaces.\n\n* Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.cpp:\n(WebKit::RemoteProgressBasedTimelineRegistry::update):\n\nCanonical link: https://commits.webkit.org/318657@main",
      "email": "ddkilzer@apple.com",
      "hash": "2d3a7739eeee703e402ce301ae460d440e6f1930",
      "subject": "RemoteProgressBasedTimelineRegistry keeps empty source entries of threaded animations after a progress-based timeline changes source"
    },
    "318658@main": {
      "author": "Brady Eidson",
      "avatar": "https://www.gravatar.com/avatar/31bed81d6d8ef517f93b30add03f5651?d=identicon\u0026s=64",
      "cl": "318658@main",
      "clUrl": "https://commits.webkit.org/318658@main",
      "description": "rdar://184133528\nhttps://bugs.webkit.org/show_bug.cgi?id=321112\n\nReviewed by Ryan Reno.\n\nIn 315856@main we added what was meant to be restrictions on which properties an application\ncould override in an NSURLRequest they pass in to the WebKit API. That patch included logging\nof \"violations\" to help diagnose breakage that might later occur.\n\nThe restrictions and logging were implemented in the CoreIPCNSURLRequest IPC wrapper, with\nthe intention of catching app-supplied properties in the UIProcess before being sending to\nother processes. But this had the side effect of catching NSURLRequests created from within\nWebKit itself, such as the requests that come from CoreMedia for \u003caudio\u003e/\u003cvideo\u003e playback.\n\nThere is a specific set of properties that ResourceRequest handles directly that we explicitly\nserialize out of the property set, but also passed into the \"app provided property\" santizing\npath. For those properties behavior was correct, but we errantly logged a fault.\n\nThere's cleanup that can be done here to make sure we only do the sanitization on properties\nthat originate from the app inside the UIProcess instead of applying to all IPC passes, but\nfor now we can just remove that errant logging.\n\nAll existing tests verify no behavior change, but \"lack of logging\" is not explicitly testable.\n\n* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.mm:\n(WebKit::populateAppProperties):\n\nCanonical link: https://commits.webkit.org/318658@main",
      "email": "beidson@apple.com",
      "hash": "eb138906e241effe36255c50ed97b8b7343010fc",
      "subject": "Excessive CoreIPCNSURLRequest logging from CoreMedia generated NSURLRequests"
    },
    "318659@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318659@main",
      "clUrl": "https://commits.webkit.org/318659@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321089\n\nReviewed by Antti Koivisto.\n\nRenderBox::logicalTop() is\n\n    writingMode().isHorizontal() ? y() : x()\n\nresolved in the *child's* writing mode. For a vertical-rl child in a horizontal-tb container it therefore\nreturns the child's physical x, which in an rtl container is its right edge. That value was returned as the\nblock's logical top, became borderBoxTop in layoutWithFormattingContextForBlockInInline, was stored as the\nblock's vertical margin and the line inherited it as its height:\n\n    renderer x=769 y=0  -\u003e  childLogicalTop=769  -\u003e  marginBefore=769  -\u003e  line height 769\n\nRenderBlock::logicalTopForChild() is `isHorizontalWritingMode() ? child.y() : child.x()`, i.e. resolved\nagainst the container, which is what the caller means. Needs all three of rtl, an orthogonal writing mode\nand an empty block - with content in the block a different path computes the size.\n\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::layoutBlockChildFromInlineLayout):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/orthogonal-block-in-inline-line-height-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/orthogonal-block-in-inline-line-height-001-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318659@main",
      "email": "zalan@apple.com",
      "hash": "e0aaff37de87264a1670c7c916b921c375fac231",
      "subject": "[block-in-inline] Empty orthogonal block nested in an inline box stretches the line"
    },
    "318660@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318660@main",
      "clUrl": "https://commits.webkit.org/318660@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321091\n\nReviewed by Antti Koivisto.\n\nLaying the block level box out is what produces the margin it hands to the lines after it. A partial layout\nthat resumes at a later line never re-runs the block, so the rest of the content runs with an empty margin\nstate and the margin is simply dropped. partialContentTop compounds it: it is derived from the previous\nline's lineBoxLogicalRect().maxY(), which excludes the margin.\n\nBail to a full layout when any line before the damaged one holds a block level box. This is conservative\nbut the alternative is replaying the margin contribution of every preceding block level line without\nlaying those blocks out.\n\n* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:\n(WebCore::Layout::InlineInvalidation::updateInlineDamage):\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-001-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-002-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318660@main",
      "email": "zalan@apple.com",
      "hash": "defc6ff688ddf3228205fa9610ca67e251d7c297",
      "subject": "[block-in-inline] Margin after a block level box on a line is lost on relayout"
    },
    "318661@main": {
      "author": "Sean Patterson",
      "avatar": "https://www.gravatar.com/avatar/b19318d92b64ac7809b78670c03b0f1e?d=identicon\u0026s=64",
      "cl": "318661@main",
      "clUrl": "https://commits.webkit.org/318661@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320447\nrdar://183445758\n\nReviewed by Simon Fraser.\n\nrendererForScrollbar() maps a renderer inside a user agent shadow root to its\nshadow host's renderer, so that scrollbar pseudo element styles are resolved\nagainst the host. It returned the host's renderer unconditionally, but a host\nwith `display: contents` has no renderer. Its user agent shadow content can\nstill establish a scrollable area, so all three callers dereferenced null.\n\nA \u003cdetails\u003e is exactly that case: its ::details-content is a slot in the user\nagent shadow root, so giving the \u003cdetails\u003e `display: contents` and the\n::details-content non-visible overflow crashed the WebContent process while\nresolving the scroll corner style during render tree construction. This is the\nstandard way to build an animated disclosure widget whose summary participates\nin a parent grid, so it is reachable from ordinary content.\n\nNull check the host's renderer and fall back to the renderer establishing the\nscrollable area, which is the pre-existing behavior for content outside a user\nagent shadow root. Only the null case changes behavior.\n\n* Source/WebCore/rendering/RenderLayerScrollableArea.cpp:\n(WebCore::rendererForScrollbar): The host is not guaranteed to have a renderer.\nIt has none when it is `display: contents`, even though its user agent shadow\ncontent may still establish a scrollable area. Fall back to the renderer\nestablishing the scrollable area rather than returning null, since the callers\nall dereference the result to resolve the scrollbar pseudo element styles\nagainst it: updateScrollCornerStyle(), updateResizerStyle() and\ncreateScrollbar().\n\n* LayoutTests/fast/html/details-display-contents-scrollable-content-crash.html: Added.\n* LayoutTests/fast/html/details-display-contents-scrollable-content-crash-expected.txt: Added.\nCovers all three call sites: a scroll corner, a resizer (`resize: both`) and\nscrollbar creation (`overflow: scroll` with overflowing content). Crashes\nwithout the fix, passes with it.\n\nCanonical link: https://commits.webkit.org/318661@main",
      "email": "sean_patterson@apple.com",
      "hash": "9510cbdd84529cbaf291ed6b395ccd5d55731102",
      "subject": "Null-deref crash in RenderElement::resolvePseudoElementStyle() when a \u003cdetails\u003e element has `display: contents` and its ::details-content establishes a scrollable area"
    },
    "318662@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "318662@main",
      "clUrl": "https://commits.webkit.org/318662@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=321098\u003e\n\u003crdar://184137472\u003e\n\nReviewed by Mike Wyrzykowski.\n\nThe `T\u0026\u0026` parameter of `allocateAbstractType()` is a forwarding\nreference, so a non-const lvalue binds to it in preference to the\n`const T\u0026` overload, and the unconditional move then moves the lvalue.\nThe generated overloads in `TypeOverloads.h` pass the same\n`TypeVariable` lvalue to `allocateAbstractType()` more than once per\ncandidate (e.g. `(T, T) =\u003e T`), so the Clang static analyzer reports a\nuse-after-move.  This never crashed only because `TypeVariable` is\ntrivially copyable, so the move is really a copy; it would be a genuine\nuse-after-free if a non-trivial member were ever added.\n\nForward the argument instead so an lvalue is copied and only an rvalue\nis moved.  Because the generated candidates always pass an lvalue, no\nmove happens, so the fix stays correct regardless of whether\n`TypeVariable` remains trivially copyable.  A single forwarding overload\nhandles every value category, making the separate `const T\u0026` overload\nredundant.\n\nNo new tests since no change in behavior.\n\n* Source/WebGPU/WGSL/Overload.h:\n(WGSL::allocateAbstractType):\n\nCanonical link: https://commits.webkit.org/318662@main",
      "email": "ddkilzer@apple.com",
      "hash": "19c01c1ab93ebe875b1dde01db6eb3b87985a75f",
      "subject": "[WGSL] Use std::forward() in allocateAbstractType() to avoid use-after-move of lvalue arguments"
    },
    "318663@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "318663@main",
      "clUrl": "https://commits.webkit.org/318663@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321102\nrdar://184140083\n\nReviewed by Yusuke Suzuki.\n\nTemporal.ZonedDateTime.from(\"+275760-10-05T02:30[Australia/Sydney]\") produced a live\nZonedDateTime whose [[EpochNanoseconds]] was outside the ±8.64e21 limit: Sydney springs\nforward on the first Sunday in October, and that gap is past the maximum epoch.\n\nDisambiguatePossibleEpochNanoseconds resolves a gap by shifting the local time and\nre-entering GetPossibleEpochNanoseconds (steps 16.e and 22), which range-checks it in its\nown step 5. We computed the shifted instant as naiveNs - offsetBefore instead —\nvalue-equivalent but not throw-equivalent, and the only guard on this path, since a gap\nleaves step 4's per-candidate loop nothing to check. Latent until 318635@main replaced\nTemporalZonedDateTime::tryCreate's release-mode isValid() throw with\nCreateTemporalZonedDateTime step 1's ASSERT.\n\nSteps 14-25 are now literal, which also fixes the candidate selection (16.g returns\npossibleEpochNs[0], 25 returns possibleEpochNs[n - 1]). Steps 6-13 stay folded into the\nFORMER/LATTER probe in getNamedTimeZoneEpochNanoseconds, as temporal_rs does; those steps\ncannot throw, so skipping them loses nothing observable.\n\nTest: JSTests/stress/temporal-zdt-dst-gap-epoch-limits.js\nCanonical link: https://commits.webkit.org/318663@main",
      "email": "yijia_huang@apple.com",
      "hash": "6fd438a4aef274513546006638ff58275695eaa4",
      "subject": "[JSC][Temporal] Resolve DST gaps through GetPossibleEpochNanoseconds so the epoch range check is not skipped"
    },
    "318664@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318664@main",
      "clUrl": "https://commits.webkit.org/318664@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321121\n\nUnreviewed gardening.\n\nRebaseline four tests that had minor differences under LBSE and update\nthe pixel test baseline generated using the legacy SVG engine, that's\nused to compare LBSE/legacy in A/B tests.\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/painting/inline-svg-resize-viewport-dependent-mask.html:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/custom/preserve-aspect-ratio-syntax-expected.png: Copied from LayoutTests/platform/mac-tahoe-wk2-pixel/svg/custom/preserve-aspect-ratio-syntax-expected.png.\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/stroke/nan-stroke-width-crash-expected.txt:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/zoom/text/zoom-coords-viewattr-01-b-expected.png: Copied from LayoutTests/platform/mac-tahoe-wk2-pixel/svg/zoom/text/zoom-coords-viewattr-01-b-expected.png.\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/W3C-SVG-1.1/animate-elem-03-t-expected.png:\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/as-image/img-preserveAspectRatio-support-1-expected.png:\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/batik/text/smallFonts-expected.png:\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/custom/preserve-aspect-ratio-syntax-expected.png:\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/text/textLength-tspan-in-textPath-expected.png:\n* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/zoom/text/zoom-coords-viewattr-01-b-expected.png:\n\nCanonical link: https://commits.webkit.org/318664@main",
      "email": "nzimmermann@igalia.com",
      "hash": "4ed0dfe790967c61fafd59ee4f5647d38547da5d",
      "subject": "[LBSE] Rebaseline four tests and update custom pixel test baseline for legacy SVG engine"
    },
    "318665@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318665@main",
      "clUrl": "https://commits.webkit.org/318665@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321045\nrdar://184073455\n\nReviewed by Yijia Huang.\n\nAdd addressValueFromUint64 and bulk-fixing memory64 JS APIs which need\nto use BigInt for 64bit case. Also handling max-bytes correctly:\ncurrently ArrayBuffer can only handle up to 4GB, so regardless of what\nbytes are specified in memory64, we cannot exceed this number.\n\nCurrently we have an issue that memory64's max size is larger than\nArrayBuffer's max size. We need to fix this issue, which will be a\nfollow-up fix.\n\nTests: JSTests/wasm/js-api/memory64-disabled.js\n       JSTests/wasm/js-api/memory64-js-api-errors.js\n\n* JSTests/wasm/js-api/memory64-disabled.js: Added.\n(declaresI64Memory):\n* JSTests/wasm/js-api/memory64-js-api-errors.js: Added.\n(assert.throws.new.WebAssembly.Table):\n(assert.throws.new.WebAssembly.Memory):\n(assert.eq):\n(assert.throws):\n* JSTests/wasm/js-api/memory64-js-api.js:\n(assert.throws):\n* JSTests/wasm/js-api/type-reflection-exports.js:\n(async test):\n* JSTests/wasm/js-api/type-reflection-imports.js:\n(const.wat.module.import.string_appeared_here.string_appeared_here.func.log1.param.i64.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.log2.param.i32.import.string_appeared_here.string_appeared_here.func.log3.param.i32.param.i64.result.i64.import.string_appeared_here.string_appeared_here.func.log4.param.f32.param.f64.result.f64.import.string_appeared_here.string_appeared_here.func.log5.param.i32.param.i32.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.log6.param.f32.param.f32.result.f32.import.string_appeared_here.string_appeared_here.func.log7.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.log8.param.f64.result.f64.import.string_appeared_here.string_appeared_here.memory.1.8.import.string_appeared_here.string_appeared_here.table.1.2.funcref.import.string_appeared_here.string_appeared_here.table.1.2.externref.import.string_appeared_here.string_appeared_here.global.global_i32_mut.mut.i32.import.string_appeared_here.string_appeared_here.global.global_i32_imut.i32.import.string_appeared_here.string_appeared_here.global.global_f32_mut.mut.f32.import.string_appeared_here.string_appeared_here.global.global_f64_imut.f64.import.string_appeared_here.string_appeared_here.global.global_i64_mut.mut.i64.import.string_appeared_here.string_appeared_here.global.global_i64_imut.i64.import.string_appeared_here.string_appeared_here.global.global_f64_mut.mut.f64.import.string_appeared_here.string_appeared_here.global.global_f32_imut.f32.async test):\n* JSTests/wasm/stress/memory64-grow-and-size.js:\n(async testGrowByZero):\n(async testNoMaximum):\n(async testLargeGrowValue):\n* JSTests/wasm/stress/memory64-write-to-address-over-4-gigs.js:\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyHelpers.h:\n(JSC::addressValueFromUint64):\n(JSC::addressTypeString):\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:\n(JSC::JSWebAssemblyMemory::associateArrayBuffer):\n(JSC::JSWebAssemblyMemory::type):\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:\n(JSC::JSWebAssemblyTable::type):\n* Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp:\n(JSC::WebAssemblyMemoryConstructor::createMemoryFromDescriptor):\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp:\n(JSC::createTypeReflectionObject):\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:\n(JSC::WebAssemblyModuleRecord::initializeImports):\n* Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp:\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n* Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp:\n(JSC::JSC_DEFINE_CUSTOM_GETTER):\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/318665@main",
      "email": "ysuzuki@apple.com",
      "hash": "099f93fe499309ffdfdc1a7ad7db439973837a82",
      "subject": "[JSC] Fix the memory64 JS APIs"
    }
  },
  "date": "2026-08-05",
  "days": 1,
  "generatedAt": "2026-08-05T22:06:13Z",
  "markdown": "## Highlights\n- **V8** JavaScriptCore landed a concentrated Memory64 and table64 correctness sweep, fixing JS API behavior, Wasm decoding edge cases, bounds checks, and index extension bugs that could break large-memory Wasm workloads. [commit 318665@main](https://commits.webkit.org/318665@main) [commit 318617@main](https://commits.webkit.org/318617@main) [commit 318605@main](https://commits.webkit.org/318605@main) [commit 318604@main](https://commits.webkit.org/318604@main) [commit 318603@main](https://commits.webkit.org/318603@main) [commit 318602@main](https://commits.webkit.org/318602@main) [commit 318594@main](https://commits.webkit.org/318594@main) [commit 318590@main](https://commits.webkit.org/318590@main)\n- **DevTools** Web Inspector gained live editing for WebGPU shaders in Canvas tooling, then immediately fixed a major memory retention issue in canvas recordings. [commit 318633@main](https://commits.webkit.org/318633@main) [commit 318613@main](https://commits.webkit.org/318613@main)\n- **Security** Site Isolation tightened sender validation for per-page media and fullscreen managers, closing off a trust boundary that should not rely on implicit identity. [commit 318614@main](https://commits.webkit.org/318614@main)\n- **Media** Audio and recording got real behavioral fixes: AudioWorklet lifetime now matches spec better, suspended-context currentFrame is corrected, and MediaRecorder no longer drops pending video frames on stop. [commit 318621@main](https://commits.webkit.org/318621@main) [commit 318601@main](https://commits.webkit.org/318601@main) [commit 318595@main](https://commits.webkit.org/318595@main)\n- **Rendering** Layout had a dense day of correctness work across block-in-inline, anonymous block handling, grid track distribution, pseudo-element crashes, and corner-shape hit testing. [commit 318661@main](https://commits.webkit.org/318661@main) [commit 318660@main](https://commits.webkit.org/318660@main) [commit 318659@main](https://commits.webkit.org/318659@main) [commit 318656@main](https://commits.webkit.org/318656@main) [commit 318653@main](https://commits.webkit.org/318653@main) [commit 318648@main](https://commits.webkit.org/318648@main) [commit 318647@main](https://commits.webkit.org/318647@main) [commit 318637@main](https://commits.webkit.org/318637@main)\n- **Web Platform** Custom Highlight API picked up hit-testing via `HighlightRegistry.highlightsFromPoint()`, a meaningful step for richer annotation and text interaction tooling. [commit 318628@main](https://commits.webkit.org/318628@main)\n- **Perf** SVG text-on-path stopped rewalking the entire path for every glyph, which should materially reduce pathological layout cost on `\u003ctextPath\u003e`. [commit 318600@main](https://commits.webkit.org/318600@main)\n- **Networking** Process assignment for shared and service workers now survives COOP-induced browsing context group switches, fixing a nasty cross-process consistency bug. [commit 318650@main](https://commits.webkit.org/318650@main)\n- **UI** Cross-origin iframe selection loupe behavior on iOS was corrected so it no longer animates in from the iframe edge. [commit 318631@main](https://commits.webkit.org/318631@main)\n\n## What landed by area\n\n### JavaScriptCore and Wasm\n- **V8** Temporal now resolves DST gaps through `GetPossibleEpochNanoseconds`, preventing skipped epoch range checks in edge-case timezone transitions. [commit 318663@main](https://commits.webkit.org/318663@main)\n- **V8** ARM64E is now included in LLInt prologue frame zeroing, tightening low-level runtime setup consistency. [commit 318641@main](https://commits.webkit.org/318641@main)\n- **V8** JSC removed `enableInt52`, continuing cleanup of obsolete runtime configuration surface. [commit 318640@main](https://commits.webkit.org/318640@main)\n- **V8** Wasm `ref_func`, `table_get`, and `array_init_elem` now use `FrameTracer`, improving runtime tracing coverage. [commit 318638@main](https://commits.webkit.org/318638@main)\n- **V8** Temporal constructor setup now fixes `newTarget.prototype` ordering and unifies `CreateTemporalX` helpers. [commit 318635@main](https://commits.webkit.org/318635@main)\n- **Perf** AtomStringTable and BuiltinNames private-name storage now reserve initial capacity up front to reduce avoidable reallocations. [commit 318618@main](https://commits.webkit.org/318618@main)\n- **V8** `String#localeCompare` no longer uses a stale collator cache after language changes. [commit 318616@main](https://commits.webkit.org/318616@main)\n- **V8** OMG now marks memory traps with a memory index, improving correctness for multi-memory trap reporting. [commit 318607@main](https://commits.webkit.org/318607@main)\n- **V8** BBQ `materializePointer` now takes a `uint64_t` offset, aligning pointer materialization with wider Wasm address spaces. [commit 318606@main](https://commits.webkit.org/318606@main)\n- **V8** VM teardown was simplified through a specialized `stopAllocationForGood` path. [commit 318597@main](https://commits.webkit.org/318597@main)\n- **V8** JSC's test262 runner was rewritten, which should make standards conformance work easier to evolve. [commit 318622@main](https://commits.webkit.org/318622@main)\n- **Refactor** JSCell construction now has clearer protocol documentation around `finishCreation()`. [commit 318586@main](https://commits.webkit.org/318586@main)\n- **Perf** Temporal timezone caching was widened in `TimeZoneICUBridge.cpp`, reducing repeated expensive lookups. [commit 318588@main](https://commits.webkit.org/318588@main)\n\n### Rendering and layout\n- **Rendering** A null dereference in `RenderElement::resolvePseudoElementStyle()` was fixed for a nasty `\u003cdetails\u003e` plus `display: contents` plus scrollable `::details-content` case. [commit 318661@main](https://commits.webkit.org/318661@main)\n- **Rendering** Block-in-inline relayout now preserves margin after a block-level box on a line. [commit 318660@main](https://commits.webkit.org/318660@main)\n- **Rendering** Empty orthogonal blocks nested in inline content no longer incorrectly stretch the line box. [commit 318659@main](https://commits.webkit.org/318659@main)\n- **Rendering** Baseline alignment now accounts for the offset of a block-level box nested in an inline box. [commit 318656@main](https://commits.webkit.org/318656@main)\n- **Rendering** Flex layout dropped `margin-trim` support for now, likely reflecting spec and implementation reality. [commit 318654@main](https://commits.webkit.org/318654@main)\n- **Rendering** Trailing whitespace is now collapsed correctly before a block nested in an inline box. [commit 318653@main](https://commits.webkit.org/318653@main)\n- **Rendering** Anonymous block wrappers are preserved for boxes that lay out their own children, fixing over-aggressive anon-block removal. [commit 318648@main](https://commits.webkit.org/318648@main)\n- **Rendering** Grid formatting context now distributes extra space into non-affected tracks correctly. [commit 318647@main](https://commits.webkit.org/318647@main)\n- **Rendering** Self-collapsing blocks nested in inline content no longer lose margin when the root has a border. [commit 318646@main](https://commits.webkit.org/318646@main)\n- **Rendering** `corner-shape` hit testing was fixed, which should make interactive geometry match painted geometry better. [commit 318637@main](https://commits.webkit.org/318637@main)\n- **Rendering** Ancestor background obscuring now respects clipping on descendants instead of ignoring child CSS clip. [commit 318636@main](https://commits.webkit.org/318636@main)\n- **Rendering** WidthIterator no longer crashes when text-spacing trim hits a character with no glyph in any font. [commit 318619@main](https://commits.webkit.org/318619@main)\n- **Perf** `\u003ctextPath\u003e` layout no longer rewalks the whole path for each glyph in the simple text-on-path path. [commit 318600@main](https://commits.webkit.org/318600@main)\n- **Web Platform** CSS Values 5 `toggle()` now has a feature flag, putting the plumbing in place for controlled rollout. [commit 318585@main](https://commits.webkit.org/318585@main)\n\n### CSS, DOM, and standards compliance\n- **Web Platform** WebKit synced `css/css-highlight-api`, keeping platform tests aligned with current Highlight API expectations. [commit 318645@main](https://commits.webkit.org/318645@main)\n- **Web Platform** Media query parsing now serializes `\u003cgeneral-enclosed\u003e` as verbatim as possible, improving spec fidelity. [commit 318627@main](https://commits.webkit.org/318627@main)\n- **Web Platform** `@container` with `::part()` now treats the originating element as the element itself, matching css-conditional-5 behavior. [commit 318620@main](https://commits.webkit.org/318620@main)\n- **Security** CSP host-source parsing now correctly handles `*:*/path`, fixing an interoperability and policy-expression bug. [commit 318612@main](https://commits.webkit.org/318612@main)\n- **Web Platform** DOMParser XML parsererror handling now passes the WPT subtest that replaces a lone surrogate with U+FFFD. [commit 318609@main](https://commits.webkit.org/318609@main)\n- **Web Platform** `scroll-animations` was resynced from upstream WPT, pulling current platform expectations into tree. [commit 318599@main](https://commits.webkit.org/318599@main)\n- **Web Platform** `css/css-ui` tests were re-imported from WPT. [commit 318593@main](https://commits.webkit.org/318593@main)\n- **Web Platform** `content-security-policy/script-src` tests were re-imported, refreshing CSP coverage after spec and implementation movement. [commit 318528@main](https://commits.webkit.org/318528@main)\n\n### Media, graphics, and GPU\n- **Media** CoreIPC logging no longer emits excessive `NSURLRequest` noise from CoreMedia-generated requests. [commit 318658@main](https://commits.webkit.org/318658@main)\n- **Rendering** Progress-based timeline registry now drops empty source entries after a threaded animation changes source. [commit 318657@main](https://commits.webkit.org/318657@main)\n- **Media** AudioWorklet processors are no longer torn down too early when `process()` returns `false`. [commit 318621@main](https://commits.webkit.org/318621@main)\n- **Media** WebVTT cue auto-positioning now uses 50% when text alignment is `start` or `end`. [commit 318610@main](https://commits.webkit.org/318610@main)\n- **Media** WebCodecs `ImageDecoder` got the latest IDL changes wired in. [commit 318598@main](https://commits.webkit.org/318598@main)\n- **Media** AudioWorkletGlobalScope now reports the correct `currentFrame` when created while the context is suspended. [commit 318601@main](https://commits.webkit.org/318601@main)\n- **Media** MediaRecorder no longer drops queued video frames when recording stops. [commit 318595@main](https://commits.webkit.org/318595@main)\n- **GPU** ANGLE was updated to the 2026-07-06 snapshot, bringing in a large external graphics stack refresh. [commit 318592@main](https://commits.webkit.org/318592@main)\n- **Rendering** CoordinatedGraphics fixed a thread-safety bug in `CoordinatedAnimatedBackingStoreClient`. [commit 318589@main](https://commits.webkit.org/318589@main)\n\n### Web Inspector, tooling, and test infrastructure\n- **DevTools** GTK regression coverage was repaired for `inspector/canvas/console-record-offscreen-canvas-2d.html`. [commit 318634@main](https://commits.webkit.org/318634@main)\n- **Build** WebDriver tooling gained a `test-list` option to make grouped gardening easier. [commit 318632@main](https://commits.webkit.org/318632@main)\n- **Build** `kill-old-processes` now catches stuck `run-webdriver-tests` processes it previously missed. [commit 318629@main](https://commits.webkit.org/318629@main)\n- **Build** `run-webkit-tests` can now find crash logs for ServiceWorkerProcess crashes instead of missing them. [commit 318611@main](https://commits.webkit.org/318611@main)\n- **Build** A constant-failure WebTransport idlharness issue on iOS and macOS was gardened with updated expectations. [commit 318655@main](https://commits.webkit.org/318655@main)\n- **Build** A flaky `uievents/textInput/enter-textarea-contenteditable.html` regression on macOS Debug was gardened. [commit 318644@main](https://commits.webkit.org/318644@main)\n- **Build** GTK test expectations were updated as part of ongoing platform gardening. [commit 318623@main](https://commits.webkit.org/318623@main)\n- **UI** PDF.js was updated to v6.2.108, refreshing the built-in PDF viewer stack. [commit 318639@main](https://commits.webkit.org/318639@main)\n\n### Multi-process, security, and platform behavior\n- **Security** Swift IPC message receivers can now be annotated with `EnabledBy`, unblocking feature-gated receiver plumbing. [commit 318642@main](https://commits.webkit.org/318642@main)\n- **Security** AuxiliaryProcess home-directory lookup no longer crashes under `AuxiliaryProcess::getHomeDirectory`. [commit 318626@main](https://commits.webkit.org/318626@main)\n- **Networking** WebAuthenticatorCoordinatorProxy signal methods now always invoke their reply completion handlers on the main run loop. [commit 318615@main](https://commits.webkit.org/318615@main)\n- **UI** On Windows, `navigator.clipboard.readText()` no longer always rejects. [commit 318587@main](https://commits.webkit.org/318587@main)\n- **UI** Text Extraction added a way to map node identifier strings to `WKFrameInfo`, improving frame-aware extraction plumbing. [commit 318652@main](https://commits.webkit.org/318652@main)\n- **UI** macOS gained \"Mapping Golden Gate\", a platform mapping addition with OS integration implications. [commit 318591@main](https://commits.webkit.org/318591@main)\n\n### Platform builds and ports\n- **Build** WPE Clang builds were fixed after new unused-function warnings broke the tree. [commit 318651@main](https://commits.webkit.org/318651@main)\n- **Build** Some unspecified configurations were fixed after a general build break. [commit 318649@main](https://commits.webkit.org/318649@main)\n- **Build** WPE CMake 4.4 compatibility was repaired for `_WEBKIT_TARGET_LINK_FRAMEWORK` argument handling. [commit 318630@main](https://commits.webkit.org/318630@main)\n- **UI** WPE MiniBrowser can now take user scripts from command-line options, a nice quality-of-life improvement for port developers. [commit 312353@main](https://commits.webkit.org/312353@main)\n- **Build** A Swift GTK/WPE regression in `WebPageProxy::backForwardListMessageReceiver()` adoption assertions was fixed. [commit 318539@main](https://commits.webkit.org/318539@main)\n- **Refactor** An unused `event` lambda capture was removed from a gesture-event IPC reply handler. [commit 318608@main](https://commits.webkit.org/318608@main)\n- **Refactor** WGSL type allocation now uses `std::forward()` to avoid use-after-move of lvalue arguments. [commit 318662@main](https://commits.webkit.org/318662@main)\n\n## Reverts \u0026 Reapplies\n\nNone.",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Unreviewed",
      "count": 1
    }
  ],
  "since": "2026-08-05",
  "totals": {
    "commits": 81,
    "features": 80,
    "rolls": 1
  },
  "until": "2026-08-05"
}