{
  "commits": {
    "316661@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "316661@main",
      "clUrl": "https://commits.webkit.org/316661@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318826\n\nReviewed by Elliott Williams, Abrar Rahman Protyasha, and Richard Robinson.\n\nMake sure that `generate-swift-availability-macros` strips WebKit API availability on Catalyst too.\nSpecial thanks to Elliott and Richard for helping me make sense of this build failure.\n\n* Source/WebKit/Scripts/generate-swift-availability-macros:\n\nCanonical link: https://commits.webkit.org/316682@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "802b92ffa836aea2f3578101bd1728eb55495360",
      "subject": "Fix the internal macOS 26 build after https://commits.webkit.org/316661@main"
    },
    "316674@main": {
      "author": "Alexey Proskuryakov",
      "avatar": "https://www.gravatar.com/avatar/c66a0fa7958ae738ab34d596994091a4?d=identicon\u0026s=64",
      "cl": "316674@main",
      "clUrl": "https://commits.webkit.org/316674@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318813\nrdar://181630812\n\nReviewed by Elliott Williams.\n\nWe cannot use WTF macros here, so duplicate the check.\n\n* Source/ThirdParty/ANGLE/changes.diff:\n* Source/ThirdParty/ANGLE/src/common/PoolAlloc.h:\n\nCanonical link: https://commits.webkit.org/316674@main",
      "email": "ap@apple.com",
      "hash": "e4b7d0bac04dfc48eda2455fb272712c6f1c634d",
      "subject": "ANGLE silently builds without WebKitAdditions/ANGLEAllocProfile.h"
    },
    "316675@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "316675@main",
      "clUrl": "https://commits.webkit.org/316675@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=302966\nrdar://165225529\n\nReviewed by Sam Sneddon.\n\nSupport reading webkitscmpy.update-title from git config to set the default\nbehavior of --(no-)update-title, consistent with how other options like\nwebkitscmpy.update-fork and webkitscmpy.auto-check work.\n\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py: Added\nwebkitscmpy.update-title to PROJECT_CONFIG_OPTIONS.\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:\n(PullRequest.parser): Changed default for update_title from True to None so\nthe config is only consulted when neither flag was explicitly passed. Updated\nhelp text to document the config key.\n(PullRequest.create_pull_request): Read webkitscmpy.update-title from git\nconfig when neither --update-title nor --no-update-title was passed.\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:\n(TestDoPullRequest.test_github_sticky_no_update_title): Added. Verifies that\nwebkitscmpy.update-title=false in git config causes the PR title to not be\nupdated when no flag is passed.\n(TestDoPullRequest.test_github_sticky_update_title_override): Added. Verifies\nthat passing --update-title explicitly overrides a webkitscmpy.update-title=false\nconfig value.\n\nCanonical link: https://commits.webkit.org/316675@main",
      "email": "issacroy05@gmail.com",
      "hash": "cd271e432b99e5a449ed2d7f5997871f47d0e456",
      "subject": "[git-webkit] Consider supporting making the pr command's --(no-)update-title flag a sticky option"
    },
    "316676@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316676@main",
      "clUrl": "https://commits.webkit.org/316676@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318370\n\nReviewed by Antti Koivisto.\n\ndominantBaseline(), usedWritingModeForBaselineAlignment() and\nsynthesizedBaseline() are stateless -- they touch none of\nBaselineAlignmentState's members, and most callers (RenderGrid and\nflex's first/last baseline queries) invoke them without any\nBaselineAlignmentState instance at all.\n\nMove them to a free BaselineAlignment struct, leaving\nBaselineAlignmentState and BaselineGroup holding only per-context\ngrouping state. This separates the stateless baseline math -- one piece\nof which, synthesizedBaseline(), needs a real RenderBox -- from the grouping machinery.\n\nNo change in behavior.\n\n* Source/WebCore/rendering/BaselineAlignment.h:\n* Source/WebCore/rendering/BaselineAlignment.cpp:\n(WebCore::BaselineAlignment::dominantBaseline):\n(WebCore::BaselineAlignment::synthesizedBaseline):\n(WebCore::BaselineAlignment::usedWritingModeForBaselineAlignment):\n(WebCore::BaselineAlignmentState::findCompatibleSharedGroup):\n* Source/WebCore/rendering/GridBaselineAlignment.cpp:\n(WebCore::GridBaselineAlignment::ascentForGridItem const):\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::firstLineBaseline const):\n(WebCore::RenderFlexibleBox::lastLineBaseline const):\n(WebCore::RenderFlexibleBox::marginBoxAscentForFlexItem):\n(WebCore::RenderFlexibleBox::performBaselineAlignment):\n* Source/WebCore/rendering/RenderGrid.cpp:\n(WebCore::RenderGrid::firstLineBaseline const):\n(WebCore::RenderGrid::lastLineBaseline const):\n\nCanonical link: https://commits.webkit.org/316676@main",
      "email": "zalan@apple.com",
      "hash": "b7f6398790c88e7e1f9df80d68cc0251e0dc60d1",
      "subject": "[cleanup] Move the stateless baseline helpers out of BaselineAlignmentState into a BaselineAlignment struct"
    },
    "316677@main": {
      "author": "Tim Nguyen",
      "avatar": "https://www.gravatar.com/avatar/208c05ac2decdf818a4a08ada568328e?d=identicon\u0026s=64",
      "cl": "316677@main",
      "clUrl": "https://commits.webkit.org/316677@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317779\nrdar://180547604\n\nReviewed by Elika Etemad.\n\nExpose the -internal-inset value to the web now that https://github.com/w3c/csswg-drafts/issues/13765 has been resolved on.\n\n`outline-offset: inset` resolves to the negation of the used outline-width. Its computed value is always `inset` to avoid exposing the native outline's used width.\n\nTests: fast/forms/select/base/option-focus-visible-outline-offset.html\n       fast/forms/select/base/option-inset-outline-offset.html\n       imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-001.html\n       imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-002.html\n       imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-003.html\n       imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-004.html\n       imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-005.html\n       imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-006.html\n\n* LayoutTests/fast/forms/select/base/option-focus-visible-outline-offset-expected.txt:\n* LayoutTests/fast/forms/select/base/option-focus-visible-outline-offset.html:\n* LayoutTests/fast/forms/select/base/option-inset-outline-offset-expected.txt: Added.\n* LayoutTests/fast/forms/select/base/option-inset-outline-offset.html: Renamed from LayoutTests/fast/forms/select/base/option-internal-inset-outline-offset.html.\n* LayoutTests/fast/forms/select/base/option-internal-inset-outline-offset-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-001-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-001-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-002-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-002-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-002.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-003-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-003-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-003.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-004-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-004-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-004.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-005-expected.xht: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-005.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-006-expected-mismatch.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-006-notref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/outline-offset-inset-006.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-offset-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-offset-computed.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-offset-invalid-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-offset-invalid.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-offset-valid-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-offset-valid.html:\n* LayoutTests/platform/ios/fast/forms/select/base/option-focus-visible-outline-offset-expected.txt:\n* LayoutTests/platform/ios/fast/forms/select/base/option-inset-outline-offset-expected.txt: Added.\n* LayoutTests/platform/ios/fast/forms/select/base/option-internal-inset-outline-offset-expected.txt: Removed.\n* Source/WebCore/css/CSSProperties.json:\n* Source/WebCore/css/CSSValueKeywords.in:\n* Source/WebCore/css/html.css:\n(select option:focus-visible):\n* Source/WebCore/style/StyleExtractorCustom.h:\n(WebCore::Style::ExtractorCustom::extractOutlineOffset):\n(WebCore::Style::ExtractorCustom::extractOutlineOffsetSerialization):\n* Source/WebCore/style/computed/StyleComputedStyle.cpp:\n(WebCore::Style::ComputedStyle::usedOutlineOffset const):\n* Source/WebCore/style/computed/StyleComputedStyle.h:\n* Source/WebCore/style/values/outline/StyleOutlineOffset.h:\n(WebCore::Style::OutlineOffset::isInset const):\n(WebCore::Style::OutlineOffset::isInternalInset const): Deleted.\n* Source/WebCore/testing/Internals.cpp:\n(WebCore::Internals::usedOutlineOffset):\n* Source/WebCore/testing/Internals.h:\n* Source/WebCore/testing/Internals.idl:\n\nCanonical link: https://commits.webkit.org/316677@main",
      "email": "ntim@apple.com",
      "hash": "a69b24040c7a7b89336307285d1a4ddd306a2531",
      "subject": "[css-ui] Add `outline-offset: inset`"
    },
    "316678@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "316678@main",
      "clUrl": "https://commits.webkit.org/316678@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318821\nrdar://181638160\n\nUnreviewed test gardening\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316678@main",
      "email": "darbinyan@apple.com",
      "hash": "40481227ac9b26185ae09c9f1797e68928a7869a",
      "subject": "[Gardening]: REGRESSION(315975@main): [macOS] Multiple TestWebKitAPI.WKWebExtension tests are flaky timeout"
    },
    "316679@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "316679@main",
      "clUrl": "https://commits.webkit.org/316679@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=317683\u003e\n\u003crdar://180280759\u003e\n\nReviewed by Abrar Rahman Protyasha.\n\nA compromised web process can send SetWindowFrame with a NaN, infinite, or\nout-of-int-range FloatRect. WebPageProxy forwarded it unchanged to the embedder,\nwhere on macOS -[NSWindow setFrame:display:] asserts the frame fits within\n{INT_MIN..INT_MAX} and terminates the UI process.\n\nA well-behaved web process clamps the rect to the screen via adjustWindowRect, so\nan out-of-range rect indicates a malformed message and is now rejected with\nMESSAGE_CHECK (isWithinIntRange also covers NaN and +/-Infinity). Since\nWebAutomationSession also calls setWindowFrame directly, the check lives only in\nthe IPC receiver, which forwards to a new setWindowFrameInternal helper.\n\nTest: ipc/set-window-frame-invalid-rect-no-crash.html\n\n* LayoutTests/ipc/set-window-frame-invalid-rect-no-crash-expected.txt: Added.\n* LayoutTests/ipc/set-window-frame-invalid-rect-no-crash.html: Added.\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::setWindowFrameIPC):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n* Source/WebKit/UIProcess/WebPageProxy.messages.in:\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::sendSetWindowFrame):\n\nCanonical link: https://commits.webkit.org/316679@main",
      "email": "zakr@apple.com",
      "hash": "a1cadd6d818b849ae2489f287bcf712833119156",
      "subject": "Reject out-of-range window rects WebPageProxy::setWindowFrame"
    },
    "316680@main": {
      "author": "Luke Warlow",
      "avatar": "https://www.gravatar.com/avatar/262b456ff1e93842b93f9694d1e01a9e?d=identicon\u0026s=64",
      "cl": "316680@main",
      "clUrl": "https://commits.webkit.org/316680@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316977\n\nReviewed by Tim Nguyen.\n\nThis enables the flag for the CloseWatcher API and dialog's closedby attribute\nin stable.\n\nThe closedby attribute allows authors to enable light dismiss or to disable Escape to close\nfor their dialog elements.\n\nThe Close Watcher API enables developers to build custom components that fit into\nthe pages closing stack to work together alongside popover and dialog elements,\nlistening to escape keys and other close signals.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/316680@main",
      "email": "lwarlow@igalia.com",
      "hash": "5c29ff63c4744c21f81d0136a1a5ba199b34dcb7",
      "subject": "Enable Close Watcher API and dialog closedby in stable"
    },
    "316683@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "316683@main",
      "clUrl": "https://commits.webkit.org/316683@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318267\nrdar://181060652\n\nUnreviewed test gardening\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316683@main",
      "email": "darbinyan@apple.com",
      "hash": "2ae276efe3dcabdf873f19cf6c072caa35e388a8",
      "subject": "[ Gardening]: [iOS] Multiple TestWebKitAPI.WebAuthenticationPanel tests are flaky timeouts"
    },
    "316684@main": {
      "author": "Dawn Morningstar",
      "avatar": "https://www.gravatar.com/avatar/9b791f3f02553608941e76bb5eecd471?d=identicon\u0026s=64",
      "cl": "316684@main",
      "clUrl": "https://commits.webkit.org/316684@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317370\nrdar://179992085\n\nReviewed by Jonathan Bedard.\n\n`git-webkit apply \u003cissue\u003e [name]` downloads a patch attached to a bug\ntracker issue and applies it with `git am` (or `git apply --3way` when\n--no-commit is passed). It resolves any tracker webkitbugspy knows about --\nan issue URL, rdar://\u003cid\u003e, or a bare radar id -- lists every attached\npatch, and lets the user choose which one to apply, defaulting to a known\ntriage patch when one is present. On an interactive terminal it opens the\nchosen patch as an HTML diff and waits until the viewer is dismissed before\napplying (interrupt to abort).\n\nThe concept of an attachment is pushed down into webkitbugspy so the\nsub-program just asks the issue for its patches and gets None back when the\ntracker has no notion of attachments. Radar and Bugzilla implement it;\nBugzilla lists attachment metadata and downloads a patch's contents lazily.\n\n* Tools/Scripts/libraries/webkitbugspy/setup.py:\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py: Bump to 0.15.3.\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:\n(Issue.Attachment): Added.\n(Issue.Attachment.is_patch):\n(Issue.Attachment.contents): Lazily fetch and cache the attachment's bytes.\n(Issue.__init__): Initialize _attachments.\n(Issue.attachments): Added; None when the tracker has no attachment concept.\n(Issue.patches): Added; the attachments that look like patches.\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:\n(Tracker.populate): Populate attachments from radar.attachments.\n(Tracker._attachment_contents): Download an attachment's bytes, or None if locked.\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:\n(Tracker.populate): List attachment metadata (without downloading contents).\n(Tracker._attachment_contents): Download a single attachment's bytes lazily.\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:\n(RadarModel.Enclosure): Added.\n(RadarModel.Attachment): Added.\n(RadarModel.__init__): Expose attachments.\n(Radar.exceptions.AttachmentLockedException): Added.\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:\n(Bugzilla.request): Route the attachment list and single-attachment endpoints.\n(Bugzilla._attachment_records):\n(Bugzilla._attachment_json):\n(Bugzilla._attachments):\n(Bugzilla._attachment):\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:\n(TestRadar.test_attachments):\n(TestRadar.test_patches):\n(TestRadar.test_patch_contents):\n(TestRadar.test_locked_attachment):\n(TestRadar.test_no_attachments):\n* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:\n(TestBugzilla.test_attachments):\n(TestBugzilla.test_patches):\n(TestBugzilla.test_no_attachments):\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Require webkitbugspy 0.15.3.\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/apply.py: Added.\n(Apply):\n(Apply.parser):\n(Apply.resolve_issue): Resolve a link, URL, or bare radar id to an issue.\n(Apply.select_patch): Pick a patch by name, or choose from the issue's patches.\n(Apply.main):\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/apply_unittest.py: Added.\n(TestApply):\n\nCanonical link: https://commits.webkit.org/316684@main",
      "email": "morningstar@apple.com",
      "hash": "590d1e9137936246434463aef7c785f05889d5e0",
      "subject": "[git-webkit] Add `git-webkit apply` to apply a patch attached to a bug tracker issue"
    },
    "316685@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "316685@main",
      "clUrl": "https://commits.webkit.org/316685@main",
      "description": "* LayoutTests/TestExpectations:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316685@main",
      "email": "fujii@igalia.com",
      "hash": "a97f94d20fc1c586b4cb84aa1ff20473277c90d2",
      "subject": "[GLib] Unreviewed layout test gardening"
    },
    "316686@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "316686@main",
      "clUrl": "https://commits.webkit.org/316686@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318791\n\nReviewed by Sammy Gill.\n\nSome WebKitLegacy headers in the CMake build had been marked as\n\"forwarded\" in order for WKL to be able to import them bracket-style\n(#include \u003cWebKitLegacy/X.h\u003e). But in the canonical Xcode build, these\nheaders are not WebKit API or SPI.\n\nThe correct mechanism for supporting bracket-style includes of these\nheaders is to put them in the project headermap.\n\n* Source/WebKitLegacy/PlatformMac.cmake:\n\nUpdate search paths for WebKit private headers to fix test compilation.\n\n* Tools/MiniBrowser/mac/CMakeLists.txt:\n* Tools/TestWebKitAPI/CMakeLists.txt:\n\nCanonical link: https://commits.webkit.org/316686@main",
      "email": "emw@apple.com",
      "hash": "37dab80d75718d5a8ef5513fa1fe5fb8d945cf27",
      "subject": "Follow-up to \"[CMake] Build WebKit headers to correct API/SPI location\""
    },
    "316687@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "316687@main",
      "clUrl": "https://commits.webkit.org/316687@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318745\nrdar://181544093\n\nReviewed by Keith Miller.\n\nCurrently our Megamorphic IC is supporting plain properties, and getter\nis always going to the slow path. But we may have some places which is\nrepeatedly calling a getter with various structures. Then Megamorphic IC\nfor getter is beneficial (setter is also beneficial, so we are planning\nto have that later).\n\nKey observation is that megamorphic IC getter site is just handling getters.\nIt is very rare that one property access site is having normal\nproperties and getters. It is typically either normal-properties-only or\ngetters-only. Thus this patch adds LoadMegamorphicGetter which handles\ngetter well so that we can keep LoadMegamorphic clean and extremely\noptimized while we start handling getter sites as well.\n\n* JSTests/stress/megamorphic-getter-ic.js: Added.\n(shouldBe):\n(makeShapes.const.getter):\n(makeShapes.get shapes):\n(makeShapes.else.get const):\n(makeShapes):\n(access):\n(shouldBe.access.):\n(shouldBe.access.get const):\n(shouldBe.access.accessSide):\n(shouldBe.access):\n(shouldBe.):\n(shouldBe.get const):\n(shouldBe.accessReconf):\n(shouldBe.get for):\n(shouldBe.const.getter):\n(shouldBe.accessThrow):\n(shouldBe.get else.get object):\n(shouldBe.get else):\n* Source/JavaScriptCore/bytecode/AccessCase.cpp:\n(JSC::AccessCase::create):\n(JSC::AccessCase::guardedByStructureCheckSkippingConstantIdentifierCheck const):\n(JSC::AccessCase::requiresIdentifierNameMatch const):\n(JSC::AccessCase::requiresInt32PropertyCheck const):\n(JSC::AccessCase::forEachDependentCell const):\n(JSC::AccessCase::doesCalls const):\n(JSC::AccessCase::canReplace const):\n(JSC::AccessCase::runWithDowncast):\n(JSC::AccessCase::canBeShared):\n* Source/JavaScriptCore/bytecode/AccessCase.h:\n* Source/JavaScriptCore/bytecode/GetByStatus.cpp:\n(JSC::GetByStatus::computeForPropertyInlineCacheWithoutExitSiteFeedback):\n* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:\n(JSC::needsScratchFPR):\n(JSC::forInBy):\n(JSC::isStateless):\n(JSC::doesJSCalls):\n(JSC::isMegamorphic):\n(JSC::canBeViaGlobalProxy):\n(JSC::InlineCacheCompiler::generateWithGuard):\n(JSC::InlineCacheCompiler::generateAccessCase):\n(JSC::InlineCacheCompiler::tryFoldToMegamorphic):\n(JSC::getterCallFromGetterSetterImpl):\n(JSC::getterHandlerImpl):\n(JSC::getByIdMegamorphicGetterHandler):\n(JSC::InlineCacheCompiler::compileOneAccessCaseHandler):\n* Source/JavaScriptCore/bytecode/InlineCacheCompiler.h:\n* Source/JavaScriptCore/jit/AssemblyHelpers.cpp:\n(JSC::AssemblyHelpers::findMegamorphicCacheEntry):\n(JSC::AssemblyHelpers::loadMegamorphicProperty):\n(JSC::AssemblyHelpers::loadMegamorphicGetterSetter):\n* Source/JavaScriptCore/jit/AssemblyHelpers.h:\n* Source/JavaScriptCore/jit/ICStats.h:\n* Source/JavaScriptCore/jit/JITOperations.cpp:\n(JSC::getByIdMegamorphic):\n(JSC::JSC_DEFINE_JIT_OPERATION):\n* Source/JavaScriptCore/jit/JITThunks.h:\n* Source/JavaScriptCore/runtime/MegamorphicCache.cpp:\n(JSC::MegamorphicCache::age):\n(JSC::MegamorphicCache::clearEntries):\n* Source/JavaScriptCore/runtime/MegamorphicCache.h:\n(JSC::MegamorphicCache::offsetOfGetterCachePrimaryEntries):\n(JSC::MegamorphicCache::offsetOfGetterCacheSecondaryEntries):\n(JSC::MegamorphicCache::initAsGetterHit):\n\nCanonical link: https://commits.webkit.org/316687@main",
      "email": "ysuzuki@apple.com",
      "hash": "6d70d346c664d6619e364953fbccc4122cc493ed",
      "subject": "[JSC] Add LoadMegamorphicGetter IC"
    },
    "316688@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "316688@main",
      "clUrl": "https://commits.webkit.org/316688@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318488\nrdar://181175045\n\nReviewed by Sihui Liu.\n\nUnder Site Isolation, after a cross-site iframe creates a back/forward entry (e.g. by\nsubmitting a GET form so the iframe navigates) and the main frame then navigates away,\npressing Back was a no-op: the main frame never traversed and the screen did not change.\nWith Site Isolation off the identical sequence works, so the bug was SI-specific.\n\nRoot cause: a cross-site child-frame navigation stacks a new joint back/forward item\n(created by the iframe's process) that describes the same main-frame document as the item\nthe main frame's process still knows as current. When the main frame later navigates away,\nthe WebProcess caches the outgoing main-frame document and reports DidCacheBackForwardItem\nkeyed to its own -- now stale -- main-frame item. WebPageProxy::didCacheBackForwardItem\ntherefore attached the back/forward cache entry to the stale item, not to the current joint\nitem that a subsequent main-frame Back actually targets. On goBack,\nWebPageProxy::goToBackForwardItem found no cache entry on the target item, set\nShouldRestoreFromBackForwardCache to No, and the WebProcess evicted its own valid cached\npage instead of restoring it -- so the main frame never committed and Back was a no-op.\n\nFix: in didCacheBackForwardItem, when the reported item is not the current item but the two\nhave the same main-frame history entry, attach the cache entry to the current item so it\nlands on the item Back will actually traverse. The new\nWebBackForwardListItem::hasSameMainFrameHistoryEntry compares the two main frames' item and\ndocument sequence numbers only -- unlike itemIsClone(), it ignores subframe differences,\nwhich is what distinguishes the stale item from the joint item that carries the iframe entry.\n\nThis relies on DidCacheBackForwardItem (sent from the outgoing page's\nFrameLoader::commitProvisionalLoad) being delivered before BackForwardAddItem for the\nincoming main-frame item, so currentItem() is still the joint item here. That holds for a\nsame-process main-frame navigation because both IPCs ride one connection; a cross-site (PSON)\noutgoing page is suspended via SuspendedPageProxy and never reaches this in-process cache path.\n\nTested by a new API test, SiteIsolation.CrossSiteIframeBackForwardEntryThenMainFrameBackTraverses:\nit is a no-op Back (fails) without this change and traverses correctly with it. The paired\nCrossSiteIframeBackForwardEntryThenMainFrameBackTraversesWithoutSiteIsolation is the SI-off control.\n\n* Source/WebKit/Shared/WebBackForwardListItem.cpp:\n(WebKit::WebBackForwardListItem::hasSameMainFrameHistoryEntry):\n* Source/WebKit/Shared/WebBackForwardListItem.h:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::didCacheBackForwardItem):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(testCrossSiteIframeBackForwardEntryThenMainFrameBack):\n(TestWebKitAPI::TEST):\n\nCanonical link: https://commits.webkit.org/316688@main",
      "email": "basuke@apple.com",
      "hash": "146e2d55606c4b52a17fddf992bf98e556b6e3e9",
      "subject": "[Site Isolation] Main-frame Back is a no-op after a cross-site iframe created a back/forward entry"
    },
    "316689@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316689@main",
      "clUrl": "https://commits.webkit.org/316689@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318389\n\nReviewed by Antti Koivisto.\n\nOf the two baseline alignment clients, only flex reads a baseline-sharing\ngroup's members back: performBaselineAlignment walks each group to position\nits items and apply the group's fallback alignment. Grid only ever reads a\ngroup's max ascent, never its members. Yet BaselineGroup held the member set\n(a weak set of renderers) for both.\n\nHave RenderFlexibleBox build and keep its own per-line baseline-sharing\ngroups -- their items and max ascent -- and iterate those when aligning, so it\nno longer reads membership off BaselineGroup. BaselineAlignmentState now hands\nback the index of the group a subject joins.\n\nNo change in behavior.\n\n* Source/WebCore/rendering/BaselineAlignment.h:\n* Source/WebCore/rendering/BaselineAlignment.cpp:\n(WebCore::BaselineAlignmentState::sharedGroup const):\n(WebCore::BaselineAlignmentState::updateSharedGroup):\n(WebCore::BaselineAlignmentState::findCompatibleSharedGroup):\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::LineState::LineState):\n(WebCore::RenderFlexibleBox::performFlexLayout):\n(WebCore::RenderFlexibleBox::layoutAndPlaceFlexItems):\n(WebCore::RenderFlexibleBox::alignFlexItems):\n(WebCore::RenderFlexibleBox::performBaselineAlignment):\n\nCanonical link: https://commits.webkit.org/316689@main",
      "email": "zalan@apple.com",
      "hash": "46e433297ff0a9a2ffdc8d180ced84732ca3825d",
      "subject": "[cleanup] Track baseline-sharing group membership in RenderFlexibleBox instead of on BaselineGroup"
    },
    "316690@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316690@main",
      "clUrl": "https://commits.webkit.org/316690@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318824\nrdar://181437552\n\nReviewed by Simon Fraser.\n\nmeasureText() on a 2D canvas context calls into CanvasRenderingContext2DBase::measureTextInternal(const TextRun\u0026), which\nobtained the FontProxy via fontProxy() and immediately called metricsOfPrimaryFont()/width() on it without first checking that the font was realized.\n\n1. fontProxy() returns \u0026state().font unconditionally after attempting setFont(state().unparsedFont).\n2. The font fails to realize (e.g. a font string that parses but resolves to an empty family list), so state().font's underlying FontCascade::m_fonts stays null.\n3. metricsOfPrimaryFont() then reaches FontCascade::primaryFont(), which dereferences the null m_fonts;\n\nThe draw path does not hit this because it is gated by canDrawText(), which returns false when the font is not realized.\nThe measure path had no equivalent guard.\n\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::measureTextInternal):\n* LayoutTests/fast/canvas/offscreen-canvas-measureText-unrealized-font-crash.html: Added.\n* LayoutTests/fast/canvas/offscreen-canvas-measureText-unrealized-font-crash-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/316690@main",
      "email": "zalan@apple.com",
      "hash": "2dc5b8b5faa521a99e320d8ac9ae0a7a0ba2360e",
      "subject": "CanvasRenderingContext2DBase::measureTextInternal: don't use the font proxy before it is realized"
    },
    "316691@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "316691@main",
      "clUrl": "https://commits.webkit.org/316691@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318822\nrdar://181638333\n\nReviewed by Yijia Huang.\n\nThis patch shrinks sizeof(Air::Arg) from 24 to 16. This is important to\nshrink the sizeof(Air::Inst) as it includes 3 Air::Arg instances. We can\npack them since all the fields are not used at all time. Some of them\nare mutually exclusively used so we do not need to keep all of them.\nWe also pack Air::Kind into uint16_t size.\n\n* Source/JavaScriptCore/b3/air/AirArg.cpp:\n(JSC::B3::Air::Arg::jsHash const):\n(JSC::B3::Air::Arg::dump const):\n* Source/JavaScriptCore/b3/air/AirArg.h:\n(JSC::B3::Air::Arg::Arg):\n(JSC::B3::Air::Arg::imm):\n(JSC::B3::Air::Arg::bigImm):\n(JSC::B3::Air::Arg::bitImm):\n(JSC::B3::Air::Arg::bitImm64):\n(JSC::B3::Air::Arg::fpImm32):\n(JSC::B3::Air::Arg::fpImm64):\n(JSC::B3::Air::Arg::fpImm128):\n(JSC::B3::Air::Arg::simpleAddr):\n(JSC::B3::Air::Arg::addr):\n(JSC::B3::Air::Arg::extendedOffsetAddr):\n(JSC::B3::Air::Arg::stack):\n(JSC::B3::Air::Arg::index):\n(JSC::B3::Air::Arg::preIndex):\n(JSC::B3::Air::Arg::postIndex):\n(JSC::B3::Air::Arg::relCond):\n(JSC::B3::Air::Arg::resCond):\n(JSC::B3::Air::Arg::doubleCond):\n(JSC::B3::Air::Arg::statusCond):\n(JSC::B3::Air::Arg::special):\n(JSC::B3::Air::Arg::widthArg):\n(JSC::B3::Air::Arg::zeroReg):\n(JSC::B3::Air::Arg::operator== const):\n(JSC::B3::Air::Arg::tmp const):\n(JSC::B3::Air::Arg::value const):\n(JSC::B3::Air::Arg::pointerValue const):\n(JSC::B3::Air::Arg::ptr const):\n(JSC::B3::Air::Arg::base const):\n(JSC::B3::Air::Arg::offset const):\n(JSC::B3::Air::Arg::stackSlot const):\n(JSC::B3::Air::Arg::index const):\n(JSC::B3::Air::Arg::scale const):\n(JSC::B3::Air::Arg::logScale const):\n(JSC::B3::Air::Arg::special const):\n(JSC::B3::Air::Arg::width const):\n(JSC::B3::Air::Arg::forEachTmpFast):\n(JSC::B3::Air::Arg::forEachTmp):\n(JSC::B3::Air::Arg::asTrustedImm32 const):\n(JSC::B3::Air::Arg::asV128 const):\n(JSC::B3::Air::Arg::asAddress const):\n(JSC::B3::Air::Arg::asBaseIndex const):\n(JSC::B3::Air::Arg::asPreIndexAddress const):\n(JSC::B3::Air::Arg::asPostIndexAddress const):\n(JSC::B3::Air::Arg::asRelationalCondition const):\n(JSC::B3::Air::Arg::asResultCondition const):\n(JSC::B3::Air::Arg::asDoubleCondition const):\n(JSC::B3::Air::Arg::asStatusCondition const):\n(JSC::B3::Air::Arg::hash const):\n* Source/JavaScriptCore/b3/air/AirKind.h:\n(JSC::B3::Air::Kind::Kind):\n(JSC::B3::Air::Kind::hash const):\n(JSC::B3::Air::Kind::raw const):\n(JSC::B3::Air::Kind::fromRaw):\n* Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp:\n(JSC::B3::Air::lowerStackArgs):\n* Source/JavaScriptCore/b3/air/opcode_generator.rb:\n\nCanonical link: https://commits.webkit.org/316691@main",
      "email": "ysuzuki@apple.com",
      "hash": "d801f1e36011760cbbdf313c054c630f24c5e359",
      "subject": "[JSC] Make sizeof(Air::Arg) 16"
    },
    "316692@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316692@main",
      "clUrl": "https://commits.webkit.org/316692@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=310149\nrdar://172787688\n\nReviewed by Megan Gardner.\n\nWe were waiting for two things at a time, and in release builds sometimes they both\nhappen in the same call to TestWebKitAPI::Util::run.  We don't need to wait for the\nnavigation, we just need to wait for the alert.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::TEST(SiteIsolation, PostMessageWithMessagePorts)):\n\nCanonical link: https://commits.webkit.org/316692@main",
      "email": "achristensen@apple.com",
      "hash": "3b9a60d082ff908758cf6fa6bb286a34daae6b10",
      "subject": "[macOS] TestWebKitAPI.SiteIsolation.PostMessageWithMessagePorts is flaky timeout"
    },
    "316693@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316693@main",
      "clUrl": "https://commits.webkit.org/316693@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=267907\nrdar://121411755\n\nReviewed by Megan Gardner.\n\nThere was a FIXME comment from early 2024 when we were still working on the basics of iframe loading.\nThe issue has since been resolved.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::TEST(SiteIsolation, FindStringSelectionSameOriginFrameBeforeWrap)):\n\nCanonical link: https://commits.webkit.org/316693@main",
      "email": "achristensen@apple.com",
      "hash": "f334d0bc02541c030ac8c24c8d6e6ae3278af4f1",
      "subject": "[Site Isolation] It should not be possible for the frame trees to be mismatched in the UI process and web processes"
    },
    "316694@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "316694@main",
      "clUrl": "https://commits.webkit.org/316694@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318418\n\nReviewed by Yusuke Suzuki.\n\nWhen the replacement string of a global RegExp replace contains '$',\nreplaceAllWithStringUsingRegExpSearch re-parsed the replacement template\nand allocated an intermediate string for every match, and then copied\neverything again when joining the result.\n\nThis patch parses the template into parts once per replace() call and\nappends each match's substitution directly into a single StringBuilder.\n\nWhen there is only one match, the result is built as a rope sharing the\nsource around the substitution, preserving the existing fast path for large\nsources.\n\n                                                   baseline                  patched\n\nstring-replace-regexp-global-substitution\n                                              258.8735+-0.9881     ^    122.2286+-2.0821        ^ definitely 2.1179x faster\n\nTest: JSTests/microbenchmarks/string-replace-regexp-global-substitution.js\n\n* JSTests/microbenchmarks/string-replace-regexp-global-substitution.js: Added.\n(test):\n* Source/JavaScriptCore/runtime/StringPrototypeInlines.h:\n(JSC::StringReplaceTemplatePart::literal):\n(JSC::StringReplaceTemplatePart::capture):\n(JSC::StringReplaceTemplatePart::matchPrefix):\n(JSC::StringReplaceTemplatePart::matchSuffix):\n(JSC::StringReplaceTemplatePart::namedCapture):\n(JSC::parseReplacementTemplate):\n(JSC::appendReplacementUsingTemplate):\n(JSC::replaceAllWithStringUsingRegExpSearch):\n\nCanonical link: https://commits.webkit.org/316694@main",
      "email": "sosuke@bun.sh",
      "hash": "bef2808f4db21ed58331af48a14ce9bda14e17d7",
      "subject": "[JSC] Parse the replacement template only once in `String#replace` with a global RegExp and `'$'` substitutions"
    },
    "316695@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316695@main",
      "clUrl": "https://commits.webkit.org/316695@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318810\nrdar://181628528\n\nReviewed by Megan Gardner.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::(SiteIsolation, AdvanceFocusAcrossFrames)):\n\nCanonical link: https://commits.webkit.org/316695@main",
      "email": "achristensen@apple.com",
      "hash": "e199c01f5b68d2901c7218f20e730c364481845c",
      "subject": "Enable TestWebKitAPI.SiteIsolation.AdvanceFocusAcrossFrames on iOS"
    },
    "316696@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "316696@main",
      "clUrl": "https://commits.webkit.org/316696@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318660\n\nReviewed by Yusuke Suzuki.\n\n@babel/preset-env compiles `${x}px` into \"\".concat(x, \"px\"), but the DFG\nintrinsic emits Check(StringUse) on every argument, so the first number\nargument takes a BadType OSR exit and permanently disables the intrinsic.\n\nThis patch defers the argument speculation to FixupPhase, which picks the\nuse kinds based on profiling instead.\n\n                                        baseline                  patched\n\nstring-concat-long-convert         103.0186+-1.4840     ^     16.1301+-0.2485        ^ definitely 6.3867x faster\nstring-prototype-concat-int32       79.0260+-0.6463     ^     24.9199+-0.3324        ^ definitely 3.1712x faster\nstring-concat-convert              112.5050+-1.0153     ^     18.6171+-0.1443        ^ definitely 6.0431x faster\n\nTest: JSTests/microbenchmarks/string-prototype-concat-int32.js\n\n* JSTests/microbenchmarks/string-prototype-concat-int32.js: Added.\n(build):\n* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:\n(JSC::DFG::ByteCodeParser::handleIntrinsicCall):\n* Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:\n(JSC::DFG::FixupPhase::fixupNode):\n* Source/JavaScriptCore/dfg/DFGNode.h:\n(JSC::DFG::Node::hasIntrinsic):\n\nCanonical link: https://commits.webkit.org/316696@main",
      "email": "sosuke@bun.sh",
      "hash": "6a9868495cb975b48825c3332a25ca1b857e7e23",
      "subject": "[JSC] Speculate on `String#concat` arguments based on profiling"
    },
    "316697@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "316697@main",
      "clUrl": "https://commits.webkit.org/316697@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318355\n\u003crdar://181146154\u003e\n\nReviewed by Sammy Gill.\n\nThis PR removes an incorrect FIXME and updates inline documentation\nto clarify behavior.\n\nPer spec:\n\nhttps://drafts.csswg.org/css-grid/#algo-single-span-items\n\nSpecifically, if the item’s computed preferred size behaves as auto\nor depends on the size of its containing block in the relevant axis,\nits minimum contribution is the outer size that would result from assuming\nthe item’s used minimum size as its preferred size; else the item’s\nminimum contribution is its min-content contribution.\n\nPer the 'behaves as auto' and html 'width'/'height' spec:\n\nhttps://www.w3.org/TR/css-sizing-3/#behave-as-auto\nhttps://www.w3.org/TR/CSS2/visudet.html#the-width-property\nhttps://www.w3.org/TR/CSS2/visudet.html#the-height-property\n\n'width' and 'height' behave as auto when the 'width' or 'height'\ndepend on the values of other properties. Note that these cases\nare caught by dependsOnContainingBlockSize(), so we do not need\nto test for these cases in behavesAsAuto().\n\n* Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:\n(WebCore::GridTrackSizingAlgorithmStrategy::minContributionForGridItem const):\n\nCanonical link: https://commits.webkit.org/316697@main",
      "email": "yulun_wu@apple.com",
      "hash": "176cd6ce42f9c81d68c5583eceb8d93c693e4307",
      "subject": "[Grid] Clarify grid item min content contributions when the grid item \"behaves as auto\""
    },
    "316698@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316698@main",
      "clUrl": "https://commits.webkit.org/316698@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318679\nrdar://181488548\n\nUnreviewed followup.\n\n* Source/WebCore/css/query/ContainerQueryFeatures.cpp:\n(WebCore::CQ::Features::StyleFeatureSchema::evaluateRange const):\n\nFix SaferCPP warning.\n\nCanonical link: https://commits.webkit.org/316698@main",
      "email": "antti@apple.com",
      "hash": "bee73c9d8deea8118ea540b9c08b68a7814d9e11",
      "subject": "[css-conditional-5] Support style query ranges"
    },
    "316699@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "316699@main",
      "clUrl": "https://commits.webkit.org/316699@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318833\nrdar://181644021\n\nReviewed by Tim Nguyen.\n\nIncreases the fuzzy value to let tests pass\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel.html:\n\nCanonical link: https://commits.webkit.org/316699@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "192206c7ead25baea1fc1d41998e22398d7379b9",
      "subject": "Increase fuzzy value on WPT bevel test"
    },
    "316700@main": {
      "author": "Ruthvik Konda",
      "avatar": "https://www.gravatar.com/avatar/bca33cefcce93017251a8fbc1204cdc4?d=identicon\u0026s=64",
      "cl": "316700@main",
      "clUrl": "https://commits.webkit.org/316700@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318804\nrdar://181624572\n\nReviewed by Anne van Kesteren.\n\nMechanical migration from brace-initialized Ref temporaries to the protect()\nfree function in Source/WebCore/xml/, aligning with the codebase-wide\ntransition.\n\nNo new tests needed (no behavioral change, style-only refactor).\n\n* Source/WebCore/xml/XMLHttpRequest.cpp:\n(WebCore::XMLHttpRequest::send):\n(WebCore::XMLHttpRequest::didReceiveData):\n* Source/WebCore/xml/XMLHttpRequestUpload.cpp:\n(WebCore::XMLHttpRequestUpload::eventListenersDidChange):\n* Source/WebCore/xml/XPathValue.cpp:\n(WebCore::XPath::Value::toString):\n\nCanonical link: https://commits.webkit.org/316700@main",
      "email": "rkonda2@apple.com",
      "hash": "6e038aaf5010f2823a2ddd5ddcd2c9756db81f0d",
      "subject": "Use protect() instead of Ref { } in XML code"
    },
    "316701@main": {
      "author": "Timothy Hatcher",
      "avatar": "https://www.gravatar.com/avatar/d0f8f949749d89ed152fa835ede38c5b?d=identicon\u0026s=64",
      "cl": "316701@main",
      "clUrl": "https://commits.webkit.org/316701@main",
      "description": "https://webkit.org/b/318748\nrdar://181546335\n\nReviewed by Brian Weinstein and Kiara Rose.\n\nDespite its name, a non-persistent extension controller configuration resolved its website data\nstore to the persistent default. Fix this by ensuring the non-persistent configuration initializes\nwith an ephemeral data store that is used consistently across all internal code paths.\n\nExtension pages (background, popup, etc.) run in the controller's own non-persistent session.\nEnsure event dispatch, data store lookup, content injection, and incognito detection correctly\nrecognize pages in that session as belonging to the extension — not to an external\nprivate-browsing session.\n\nTo propagate the controller's session identity to the WebProcess, add a defaultSessionID field\nto WebExtensionContextParameters and thread it through to WebExtensionContextProxy so the cookies\nand extension APIs can distinguish the controller's own ephemeral session from unrelated ones.\n\n* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:\n(WebKit::WebExtensionContext::processes): Allow processes in the controller's own non-persistent\nsession to receive extension events without requiring hasAccessToPrivateData.\n(WebKit::WebExtensionContext::parameters): Populate defaultSessionID from the controller's\ndefault data store session ID.\n* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:\n(WebKit::WebExtensionContext::websiteDataStore): Allow the controller's own non-persistent data\nstore to be returned without requiring hasAccessToPrivateData.\n* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfigurationCocoa.mm:\n(WebKit::WebExtensionControllerConfiguration::webViewConfiguration): Propagate the data store\ninto the lazily created web view configuration.\n* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:\n(WebKit::WebExtensionController::addPage): Treat pages in the controller's own non-persistent\ndata store as non-private so injected content and declarative rules are registered for them.\n* Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.cpp:\n(WebKit::WebExtensionControllerConfiguration::WebExtensionControllerConfiguration): Initialize\nthe data store to a non-persistent store when the configuration is non-persistent.\n* Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h:\n* Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in:\nAdd defaultSessionID to carry the controller's session ID over IPC.\n* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:\n* Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm:\n(WebKit::WebExtensionContextProxy::getOrCreate): Store defaultSessionID from the IPC parameters.\n* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm:\n(WebKit::WebExtensionAPIExtension::isInIncognitoContext): Extension pages are never incognito;\nuse isURLForThisExtension to identify them. Also return false for pages in the controller's own\nnon-persistent session so content scripts running in that session are not treated as incognito.\n* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm:\n(toWebAPI): Accept ownSessionID and mark a store as incognito only if it is ephemeral and not\nthe controller's own session, so getAllCookieStores does not misreport the controller's store.\n* Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:\n(WebKit::WebPage::platformInitializeAccessibility): Replace assertion with waitForDatabaseUpdate\nso that rapid web process restart after network process termination does not crash; the database\narrives within milliseconds and the call becomes a no-op once it has been received.\n* Tools/TestWebKitAPI/Helpers/cocoa/WebExtensionUtilities.mm:\n(-[TestWebExtensionTab initWithWindow:extensionController:]): Use the controller's own default\nwebsite data store for non-private tab web views instead of the shared persistent store.\n(-[TestWebExtensionTab changeWebViewIfNeededForURL:forExtensionContext:]): Do not override the\nwebsiteDataStore on configurations sourced from the extension context; they already carry the\ncorrect store and a relatedWebView pointing to the background page. Use the controller's own\ndefault website data store for non-private HTTP tab web views. Rename isHTTPURL to isHTTPFamilyURL.\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPICookies.mm:\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, GetAll)): Use the controller's own data store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, GetAllIncognito)): Replace hardcoded ephemeral\nstore ID rejection checks with a length assertion now that the controller's own ephemeral session\nis not exposed as a separate incognito store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, GetAllWithFilters)): Use the controller's store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, RemoveCookie)): Use the controller's store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, RemoveCookieNotFound)): Use the controller's store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, SetCookie)): Use the controller's store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, GetCookie)): Use the controller's store.\n(TestWebKitAPI::TEST(WKWebExtensionAPICookies, GetAllAfterNetworkProcessTermination)): Use\ndefaultConfiguration so cookies are persisted to disk and survive a network process restart.\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionControllerConfiguration.mm:\n(TestWebKitAPI::TEST(WKWebExtensionControllerConfiguration, Initialization)):\n(TestWebKitAPI::TEST(WKWebExtensionControllerConfiguration, SecureCoding)):\n(TestWebKitAPI::TEST(WKWebExtensionControllerConfiguration, Copying)): Update tests to expect\na non-persistent data store for non-persistent configurations, and verify both the default\ndata store and web view configuration use the same ephemeral store.\n\nCanonical link: https://commits.webkit.org/316701@main",
      "email": "timothy@apple.com",
      "hash": "0350073e737b173a5a7a80ad55a83d52e940b98d",
      "subject": "WKWebExtensionController.Configuration.nonPersistent() should use a non-persistent datastore by default."
    },
    "316702@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "316702@main",
      "clUrl": "https://commits.webkit.org/316702@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318684\n\nReviewed by Rob Buis.\n\nChanging a marker's markerUnits or orient resizes the element that references it, but a\nreferencing shape without a layer gets no post-layout position update, so resourceChanged()\nonly repainted its new (current) bounds. A shrinking marker then left its former area behind.\n\nRecord the visual overflow, including markers, at the end of RenderSVGShape::layout() via the\nnew updateCachedVisualOverflowRect(), so the old bounds are cached while the geometry is still\ncurrent. On a marker change, resourceChanged() repaints those old bounds before invalidating the\ncache and recomputing the new ones. The extra repaint is gated to markers, since gradients and\npatterns do not change the client's bounds.\n\nFixes svg/repaint/marker-markerUnits-dynamic-update-repaint.html and\nsvg/repaint/marker-orient-dynamic-update-repaint.html, with more accurate repaint rects\nthan the legacy engine had. The repaint rects dump tests were created instead of trying to\ncatch the repaint issue in a reftest to also cover that we're not overpainting.\n\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/repaint/marker-markerUnits-dynamic-update-repaint-expected.txt: Added.\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/repaint/marker-orient-dynamic-update-repaint-expected.txt: Added.\n* Source/WebCore/rendering/ReferencedSVGResources.cpp:\n(WebCore::CSSSVGResourceElementClient::resourceChanged):\n* Source/WebCore/rendering/svg/RenderSVGModelObject.h:\n(WebCore::RenderSVGModelObject::updateCachedVisualOverflowRect):\n* Source/WebCore/rendering/svg/RenderSVGShape.cpp:\n(WebCore::RenderSVGShape::layout):\n\nCanonical link: https://commits.webkit.org/316702@main",
      "email": "nzimmermann@igalia.com",
      "hash": "7ea764bf2f3ac43ca79698a51ee8e84248d958ee",
      "subject": "[LBSE] Dynamic marker attribute change must repaint the referencing element's old bounds"
    },
    "316703@main": {
      "author": "Qianlang Chen",
      "avatar": "https://www.gravatar.com/avatar/0fd54e904334f604739d0205aa6e2130?d=identicon\u0026s=64",
      "cl": "316703@main",
      "clUrl": "https://commits.webkit.org/316703@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318470\n\nReviewed by BJ Burg.\n\nThe assertion was wrong because the target might in fact have the Page\nand Network domains which are introduced to support site isolation, and\nthe shallow-equality would fail. Browser and Target are the two domains\nthat must exist.\n\nThe comment and the explanation was correct but that constructor wasn't\nthe right context to include it. Remove it.\n\nNo new tests: no observable behavior change.\n\n* Source/WebInspectorUI/UserInterface/Protocol/MultiplexingBackendTarget.js:\n(WI.MultiplexingBackendTarget):\n\nCanonical link: https://commits.webkit.org/316703@main",
      "email": "qianlangchen@apple.com",
      "hash": "d5f7f99c4aa94a91eaff0b48a54351f658644521",
      "subject": "Web Inspector: Incorrect assertion of available agents for web-page target"
    },
    "316704@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "316704@main",
      "clUrl": "https://commits.webkit.org/316704@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318841\n\nReviewed by Yusuke Suzuki.\n\n316629@main made date cache invalidation depend on WTF::lastTimeZoneID(),\nwhich is only advanced by a time zone change notifier. Ports without a\nnotifier (Windows, PlayStation, JSCOnly without GLib) never advance it,\nso a system time zone change is never observed until process restart.\n\nIntroduce USE(TIME_ZONE_CHANGE_NOTIFICATIONS) and restore the previous\nbehavior on ports without it: always force a time zone check and\nre-query the host time zone.\n\n* Source/JavaScriptCore/runtime/JSDateMath.cpp:\n(JSC::retrieveTimeZoneInformation):\n* Source/JavaScriptCore/runtime/JSDateMath.h:\n(JSC::DateCache::hasTimeZoneChange):\n* Source/WTF/wtf/PlatformUse.h:\n* Source/WTF/wtf/TimeZone.cpp:\n\nCanonical link: https://commits.webkit.org/316704@main",
      "email": "sosuke@bun.sh",
      "hash": "a01ee718ca4d5bfd5aa0b6b8f04ed3225a992351",
      "subject": "[JSC] Host time zone changes are never observed on ports without time zone change notifications"
    },
    "316705@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "316705@main",
      "clUrl": "https://commits.webkit.org/316705@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318855\n\nReviewed by Nikolas Zimmermann.\n\nThe position is already the key of the tiles hash map, so we don't need to store it in the value too.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:\n(WebCore::CoordinatedBackingStoreProxy::createOrDestroyTiles):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:\n\nCanonical link: https://commits.webkit.org/316705@main",
      "email": "cgarcia@igalia.com",
      "hash": "bdaf82be764a3bab31d5b99300b46c86882bec62",
      "subject": "[CoordinatedGraphics] Remove CoordinatedBackingStoreProxy::Tile::position"
    },
    "316706@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316706@main",
      "clUrl": "https://commits.webkit.org/316706@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318392\n\nReviewed by Antti Koivisto.\n\nA baseline-sharing group is defined by its block-flow direction and baseline\npreference. BaselineGroup, though, also carried two values derived from the\ngroup's members -- the max ascent and the member count (a weak set of\nrenderers) -- which are products of an alignment pass, not part of the group's\nidentity.\n\nWith flex now tracking its own membership and max ascent, move the remaining\nconsumer off them: RenderGrid keeps the max ascent per group in its own\nalignment context, and the computeSize() \u003e 1 guard is dropped (a lone\nparticipant's max ascent is its own ascent, so the offset is already zero).\nBaselineGroup is left with just its defining attributes, and\nBaselineAlignmentState no longer references a renderer or any layout value.\n\nNo change in behavior.\n\n* Source/WebCore/rendering/BaselineAlignment.h:\n* Source/WebCore/rendering/BaselineAlignment.cpp:\n(WebCore::BaselineGroup::BaselineGroup):\n(WebCore::BaselineGroup::isCompatible const):\n(WebCore::BaselineAlignmentState::BaselineAlignmentState):\n(WebCore::BaselineAlignmentState::sharedGroupIndex const):\n* Source/WebCore/rendering/GridBaselineAlignment.h:\n* Source/WebCore/rendering/GridBaselineAlignment.cpp:\n(WebCore::GridBaselineAlignment::updateBaselineAlignmentContext):\n(WebCore::GridBaselineAlignment::baselineOffsetForGridItem const):\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::layoutAndPlaceFlexItems):\n\nCanonical link: https://commits.webkit.org/316706@main",
      "email": "zalan@apple.com",
      "hash": "7c183619077db6058ebca4a663cce3c21dc650d0",
      "subject": "[cleanup] Reduce BaselineGroup to its block-flow direction and baseline preference"
    },
    "316707@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "316707@main",
      "clUrl": "https://commits.webkit.org/316707@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318809\n\nReviewed by Aakash Jain.\n\nThis will allow pages on those servers to consume the buildbot API\ndirectly.\n\n* Tools/CISupport/build-webkit-org-webserver/master.cfg:\n* Tools/CISupport/ews-build-webserver/master.cfg:\n\nCanonical link: https://commits.webkit.org/316707@main",
      "email": "lmoura@igalia.com",
      "hash": "77408f68257f55c05c2051d7e122fff41954b004",
      "subject": "[build.webkit.org] Add Igalia WebServers to CORS allowed origins"
    },
    "316708@main": {
      "author": "Youenn Fablet",
      "avatar": "https://www.gravatar.com/avatar/0a9886e582a7aee1eb908eb59af36da4?d=identicon\u0026s=64",
      "cl": "316708@main",
      "clUrl": "https://commits.webkit.org/316708@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318770\n\nReviewed by Jean-Yves Avenard.\n\nWe remove those files as they are no longer needed.\n\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/Modules/mediastream/SFrameUtils.cpp: Removed.\n* Source/WebCore/Modules/mediastream/SFrameUtils.h: Removed.\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/316708@main",
      "email": "youenn@apple.com",
      "hash": "e10115fc9f4ef7530dfda96fe91e239312d91190",
      "subject": "Remove SFrameUtils.h/.cpp"
    },
    "316709@main": {
      "author": "Michael Catanzaro",
      "avatar": "https://www.gravatar.com/avatar/213b4484d2078dbdd03dcd3256564c2c?d=identicon\u0026s=64",
      "cl": "316709@main",
      "clUrl": "https://commits.webkit.org/316709@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317488\n\nReviewed by Carlos Garcia Campos.\n\nGNOME 50 has a new reduced motion setting, separate from GTK's disable\nanimations setting. We currently have the disable animations setting\nhooked up to the prefers-reduced-motion CSS media query. Let's stop\nusing that, and use the new reduced motion setting instead. For good\nmeasure, I've also created a new WPE API setting matching the new name,\nand removed the older one (because the WPEPlatform API is not stable\nyet).\n\nI had been planning to stop there, but then I noticed that we have the\nprefers-contrast media query implemented only for GTK 3. I have\nimplemented it for GTK 4 as well. This required some effort, because\nWebKit has it implemented as a boolean value, but GNOME and CSS both use\na tri-state, so I had to change a bunch of places to expose it as a\ntri-state. I've also created a new WPE setting for this as well. I\nconsidered updating Internals so that I could expose the tri-state to\nlayout tests as well, but it currently uses ForcedAccessibilityValue\nwhich is a boolean, and I decided not to try changing this.\n\nFinally, I've improved the implementation of the prefers-color-scheme\nmedia query for GTK 4. This is an especially significant change because\nit previously did not respect the user's dark mode preference at all.\nNow a bunch of websites will become dark.\n\nThis is my second attempt to land the change. The first attempt,\n316627@main, was reverted because it broke the WPE build.\n\n* Source/WebCore/css/query/MediaQueryFeatures.cpp:\n(WebCore::MQ::Features::prefersContrastFeatureSchema):\n* Source/WebCore/inspector/agents/InspectorPageAgent.cpp:\n(WebCore::InspectorPageAgent::defaultUserPreferencesDidChange):\n* Source/WebCore/platform/Theme.h:\n(WebCore::Theme::userPreferredContrast const):\n(WebCore::Theme::userPrefersContrast const): Deleted.\n* Source/WebCore/platform/adwaita/ThemeAdwaita.cpp:\n(WebCore::ThemeAdwaita::ThemeAdwaita):\n(WebCore::ThemeAdwaita::refreshSettings):\n(WebCore::ThemeAdwaita::userPreferredContrast const):\n(WebCore::ThemeAdwaita::userPrefersContrast const): Deleted.\n* Source/WebCore/platform/adwaita/ThemeAdwaita.h:\n* Source/WebCore/platform/glib/SystemSettings.cpp:\n(WebCore::SystemSettings::updateSettings):\n* Source/WebCore/platform/glib/SystemSettings.h:\n(WebCore::SystemSettings::reducedMotion const):\n(WebCore::SystemSettings::interfaceContrast const):\n(WebCore::SystemSettings::enableAnimations const): Deleted.\n* Source/WebCore/platform/ios/ThemeIOS.h:\n* Source/WebCore/platform/ios/ThemeIOS.mm:\n(WebCore::ThemeIOS::userPreferredContrast const):\n(WebCore::ThemeIOS::userPrefersContrast const): Deleted.\n* Source/WebCore/platform/mac/ThemeMac.h:\n* Source/WebCore/platform/mac/ThemeMac.mm:\n(WebCore::ThemeMac::userPreferredContrast const):\n(WebCore::ThemeMac::userPrefersContrast const): Deleted.\n* Source/WebCore/rendering/cocoa/RenderThemeCocoa.mm:\n(WebCore::switchTrackColor):\n(WebCore::paintSwitchTrackOnOffLabels):\n(WebCore::paintLiquidGlassSwitchTrackOnOffLabels):\n(WebCore::renderThemePaintLiquidGlassSwitchThumb):\n(WebCore::renderThemePaintLiquidGlassSwitchTrack):\n(WebCore::RenderThemeCocoa::paintCheckboxForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintRadioForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintButtonForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintColorWellForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintInnerSpinButtonForVectorBasedControls):\n(WebCore::paintTextAreaOrTextField):\n(WebCore::RenderThemeCocoa::paintMeterForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintListButtonForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSliderThumbForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSearchFieldForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSearchFieldCancelButtonForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSearchFieldDecorationPartForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintPlatformResizerForVectorBasedControls):\n* Source/WebKit/Shared/glib/SystemSettings.serialization.in:\n* Source/WebKit/UIProcess/glib/SystemSettingsManagerProxy.cpp:\n(WebKit::SystemSettingsManagerProxy::reducedMotion const):\n(WebKit::SystemSettingsManagerProxy::interfaceContrast const):\n(WebKit::SystemSettingsManagerProxy::settingsDidChange):\n(WebKit::SystemSettingsManagerProxy::enableAnimations const): Deleted.\n* Source/WebKit/UIProcess/glib/SystemSettingsManagerProxy.h:\n* Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp:\n(WebKit::SystemSettingsManagerProxy::darkMode const):\n(WebKit::SystemSettingsManagerProxy::reducedMotion const):\n(WebKit::SystemSettingsManagerProxy::interfaceContrast const):\n(WebKit::SystemSettingsManagerProxy::enableAnimations const): Deleted.\n* Source/WebKit/UIProcess/wpe/SystemSettingsManagerProxyWPE.cpp:\n(WebKit::SystemSettingsManagerProxy::reducedMotion const):\n(WebKit::SystemSettingsManagerProxy::interfaceContrast const):\n(WebKit::SystemSettingsManagerProxy::enableAnimations const): Deleted.\n* Source/WebKit/WPEPlatform/wpe/WPESettings.cpp:\n(_WPESettingsPrivate::_WPESettingsPrivate):\n* Source/WebKit/WPEPlatform/wpe/WPESettings.h:\n\nCanonical link: https://commits.webkit.org/316709@main",
      "email": "mcatanzaro@gnome.org",
      "hash": "446267f9f445d5be8fe4b59264af04c69bbbec00",
      "subject": "[WPE][GTK] Improvements to platform media queries (prefers reduced motion, high contrast, and dark theme)"
    },
    "316710@main": {
      "author": "Antoine Quint",
      "avatar": "https://www.gravatar.com/avatar/9b3ef1e754f8d994f21ff67c660cbbe6?d=identicon\u0026s=64",
      "cl": "316710@main",
      "clUrl": "https://commits.webkit.org/316710@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318858\nrdar://181691670\n\nReviewed by Anne van Kesteren.\n\nBefore we add support for the properties in the animation-triggers spec [0],\nwe need a runtime flag to guard this new feature.\n\n[0] https://drafts.csswg.org/animation-triggers-1/\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/316710@main",
      "email": "graouts@webkit.org",
      "hash": "dfe1b55a7ed1672188cf74e9c5acb99e8e33fb42",
      "subject": "[animation-triggers] add a dedicated `AnimationTriggersEnabled` flag"
    },
    "316711@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316711@main",
      "clUrl": "https://commits.webkit.org/316711@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318338\n\nReviewed by Antti Koivisto.\n\nperformFlexLayout was one long function that interleaved collecting the flex\nitems, laying out each flex line, recording the first/last line item counts, and\nfinalizing the container height. That made the top-level flow hard to follow\nnext to the modern FlexLayout::layout, which reads as a sequence of named steps.\n\nMove the item collection, the per-line layout loop, the first/last line item\ncount bookkeeping, and the empty-line minimum height into named helpers so\nperformFlexLayout reads as a short sequence of phases. numLines is replaced by\nlineStates.size(), and the two identical hasLineIfEmpty minimum-height blocks are\nunified. No behavior change.\n\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::performFlexLayout):\n(WebCore::RenderFlexibleBox::collectFlexItems):\n(WebCore::RenderFlexibleBox::layoutFlexLines):\n(WebCore::RenderFlexibleBox::setFlexItemCountsForFirstAndLastLine):\n(WebCore::RenderFlexibleBox::adjustLogicalHeightForLineIfEmpty):\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n\nCanonical link: https://commits.webkit.org/316711@main",
      "email": "zalan@apple.com",
      "hash": "eccab8d8ecaad1d9cb85c46e68069456a53b447b",
      "subject": "[Flexbox] Split RenderFlexibleBox::performFlexLayout into named layout phases"
    },
    "316712@main": {
      "author": "senstella",
      "avatar": "https://www.gravatar.com/avatar/7608275e98f614de67bec58b3d4a14d3?d=identicon\u0026s=64",
      "cl": "316712@main",
      "clUrl": "https://commits.webkit.org/316712@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318783\n\nReviewed by Fujii Hironori.\n\nIn the findEventListenerRegionTypes, we iterate the children in top-down to match the hit testing order.\n\nTest: tiled-drawing/scrolling/wheel-event-listener-region-overlapping-composited-layers.html\n\n* LayoutTests/tiled-drawing/scrolling/wheel-event-listener-region-overlapping-composited-layers-expected.txt: Added.\n* LayoutTests/tiled-drawing/scrolling/wheel-event-listener-region-overlapping-composited-layers.html: Added.\n* Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.cpp:\n(WebCore::findEventListenerRegionTypes): Modified to reverse the iteration order.\n\nCanonical link: https://commits.webkit.org/316712@main",
      "email": "senstella01@gmail.com",
      "hash": "de0391e9c832384e850fff95e2393ab27e6d129c",
      "subject": "[GTK][WPE] ScrollingTreeCoordinated::eventListenerRegionTypesForPoint should return the topmost hit layer's region types"
    },
    "316713@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "316713@main",
      "clUrl": "https://commits.webkit.org/316713@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315736\n\nReviewed by Carlos Garcia Campos and BJ Burg.\n\nCurrently, the waitForNavigationToComplete callbacks access\nWebDriverService::m_session directly, although this member could be\nnull if the callback arrives after we started to delete or to replace\nthe session.\n\nThis commit protects the session instance in these callbacks, as just\nadding a null check would leave the door open for the callback to be\ncalled on an already replaced session. This creates a temporary cycle\nbetween the Session, the callback, and the SessionHost (who stashes the\npending requests), but the cycle is broken when either the session is\nclosed or the browser disconnects, flushing the pending requests.\n\n* Source/WebDriver/WebDriverService.cpp:\n(WebDriver::WebDriverService::go):\n(WebDriver::WebDriverService::getCurrentURL):\n(WebDriver::WebDriverService::back):\n(WebDriver::WebDriverService::forward):\n(WebDriver::WebDriverService::refresh):\n(WebDriver::WebDriverService::getTitle):\n(WebDriver::WebDriverService::closeWindow):\n(WebDriver::WebDriverService::switchToFrame):\n(WebDriver::WebDriverService::switchToParentFrame):\n(WebDriver::WebDriverService::findElement):\n(WebDriver::WebDriverService::findElements):\n(WebDriver::WebDriverService::getActiveElement):\n(WebDriver::WebDriverService::executeScript):\n(WebDriver::WebDriverService::executeAsyncScript):\n(WebDriver::WebDriverService::getAllCookies):\n(WebDriver::WebDriverService::getNamedCookie):\n(WebDriver::WebDriverService::addCookie):\n(WebDriver::WebDriverService::deleteCookie):\n(WebDriver::WebDriverService::deleteAllCookies):\n(WebDriver::WebDriverService::dismissAlert):\n(WebDriver::WebDriverService::acceptAlert):\n(WebDriver::WebDriverService::getAlertText):\n(WebDriver::WebDriverService::sendAlertText):\n(WebDriver::WebDriverService::takeScreenshot):\n(WebDriver::WebDriverService::takeElementScreenshot):\n\nCanonical link: https://commits.webkit.org/316713@main",
      "email": "lmoura@igalia.com",
      "hash": "6b6622bd96de7f729b1231f55778427dc864badd",
      "subject": "[WebDriver] Protect session instance in waitForNavigationToComplete callbacks"
    },
    "316714@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "316714@main",
      "clUrl": "https://commits.webkit.org/316714@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318724\nrdar://181530252\n\nReviewed by Abrar Rahman Protyasha and Richard Robinson.\n\nMove text-extraction-related code out of `WKWebView.mm`, and into a separate category (and\nsubmodule), `WKWebView+TextExtraction.mm`.\n\n* Source/WebKit/SourcesCocoa.txt:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView+TextExtraction.mm: Added.\n(-[WKWebView _simulateClickOverFirstMatchingTextInViewportWithUserInteraction:completionHandler:]):\n(-[WKWebView _takeSnapshotOfNode:completionHandler:]):\n(-[WKWebView _getSelectorPathDataForNode:completionHandler:]):\n(-[WKWebView _getSelectorPathData:completionHandler:]):\n(-[WKWebView _getNodeForSelectorPathData:completionHandler:]):\n(extractReplacementStrings):\n(textExtractionOutputFormat):\n(createEmptyTextExtractionResult):\n(-[WKWebView _ensureTextExtractionFilterRulesWithCompletionHandler:]):\n(-[WKWebView _extractDebugTextWithConfigurationWithoutUpdatingFilterRules:assertionScope:completionHandler:]):\n(-[WKWebView _convertToWebCoreInteraction:nodeIdentifier:]):\n(nameForAction):\n(-[WKWebView _performInteraction:inFrame:actionType:nodeIdentifier:staleNodeNote:shouldResolveStaleNodeIdentifier:completionHandler:]):\n(-[WKWebView _filterExtractedStringWithoutUpdatingFilterRules:options:completionHandler:]):\n(extractHandleIdentifiersOfNodesToSkip):\n(extractClientNodeAttributes):\n(coreEventListenerCategories):\n(coreDataDetectorTypes):\n(-[WKWebView _requestTextExtractionInternal:completion:]):\n(-[WKWebView _requestTextExtraction:completionHandler:]):\n(-[WKWebView _describeInteraction:completionHandler:]):\n(-[WKWebView _describeInteraction:inFrame:nodeIdentifier:staleNodeNote:shouldResolveStaleNodeIdentifier:completionHandler:]):\n(-[WKWebView _textExtractionIdentifier]):\n(-[WKWebView _validateText:inFrame:inNode:completionHandler:]):\n(-[WKWebView _clearTextExtractionFilterCache]):\n(-[WKWebView _requestJSHandleForNodeIdentifier:searchText:completionHandler:]):\n(-[WKWebView _requestContainerJSHandleForNodeIdentifier:searchText:completionHandler:]):\n(-[WKWebView _requestContainerJSHandleForSearchTexts:nodeIdentifier:completionHandler:]):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(WebKit::jsHandleIdentifierInFrame):\n(-[WKWebView willBeginWritingToolsSession:forProofreadingReview:requestContexts:]):\n(-[WKWebView _refreshControlVisibleHeight]):\n(jsHandleIdentifierInFrame): Deleted.\n(-[WKWebView _simulateClickOverFirstMatchingTextInViewportWithUserInteraction:completionHandler:]): Deleted.\n(-[WKWebView _takeSnapshotOfNode:completionHandler:]): Deleted.\n(extractReplacementStrings): Deleted.\n(textExtractionOutputFormat): Deleted.\n(-[WKWebView _ensureTextExtractionFilterRulesWithCompletionHandler:]): Deleted.\n(-[WKWebView _extractDebugTextWithConfigurationWithoutUpdatingFilterRules:assertionScope:completionHandler:]): Deleted.\n(-[WKWebView _convertToWebCoreInteraction:nodeIdentifier:]): Deleted.\n(-[WKWebView _performInteraction:inFrame:actionType:nodeIdentifier:staleNodeNote:shouldResolveStaleNodeIdentifier:completionHandler:]): Deleted.\n(-[WKWebView _getSelectorPathDataForNode:completionHandler:]): Deleted.\n(-[WKWebView _getSelectorPathData:completionHandler:]): Deleted.\n(-[WKWebView _getNodeForSelectorPathData:completionHandler:]): Deleted.\n(-[WKWebView _filterExtractedStringWithoutUpdatingFilterRules:options:completionHandler:]): Deleted.\n(extractHandleIdentifiersOfNodesToSkip): Deleted.\n(extractClientNodeAttributes): Deleted.\n(coreEventListenerCategories): Deleted.\n(coreDataDetectorTypes): Deleted.\n(-[WKWebView _requestTextExtractionInternal:completion:]): Deleted.\n(-[WKWebView _requestTextExtraction:completionHandler:]): Deleted.\n(-[WKWebView _describeInteraction:completionHandler:]): Deleted.\n(-[WKWebView _describeInteraction:inFrame:nodeIdentifier:staleNodeNote:shouldResolveStaleNodeIdentifier:completionHandler:]): Deleted.\n(-[WKWebView _textExtractionIdentifier]): Deleted.\n(-[WKWebView _validateText:inFrame:inNode:completionHandler:]): Deleted.\n(-[WKWebView _clearTextExtractionFilterCache]): Deleted.\n(-[WKWebView _requestJSHandleForNodeIdentifier:searchText:completionHandler:]): Deleted.\n(-[WKWebView _requestContainerJSHandleForNodeIdentifier:searchText:completionHandler:]): Deleted.\n(-[WKWebView _requestContainerJSHandleForSearchTexts:nodeIdentifier:completionHandler:]): Deleted.\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/316714@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "dbe4d06e8673cdcdc71f6ba543cfbb41d8d75bd9",
      "subject": "Move text-extraction code out of WKWebView.mm into WKWebView+TextExtraction.mm"
    },
    "316715@main": {
      "author": "Simon Fraser",
      "avatar": "https://www.gravatar.com/avatar/3763324aa0cdfa93be751c6081b8006a?d=identicon\u0026s=64",
      "cl": "316715@main",
      "clUrl": "https://commits.webkit.org/316715@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318764\nrdar://181625143\n\nReviewed by Alan Baradlay.\n\nPartial revert of 310012@main for iOS; using extended sRGB for VT buffers results in\ndarkened results on iOS hardware only.\n\nNot testable because it only affects iOS hardware with extended range displays.\n\n* Source/WebCore/dom/ViewTransition.cpp:\n\nCanonical link: https://commits.webkit.org/316715@main",
      "email": "simon.fraser@apple.com",
      "hash": "6b9596d6117a451d07ceded049a4e7f990d61759",
      "subject": "REGRESSION(310012@main): View transitions render darkened content on iOS devices with wide-gamut displays"
    },
    "316716@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "316716@main",
      "clUrl": "https://commits.webkit.org/316716@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318369\n\nReviewed by Carlos Garcia Campos.\n\nWith WEBKIT_SKIA_USE_VIVANTE_SUPER_TILED_TILE_TEXTURES=1 on Vivante GPUs,\nsuper-tiled tile buffers are allocated padded up to 64-pixel multiples, so\nBitmapTexture::allocatedSize() exceeds the logical size(). SkiaBackingStore\nbuilt the borrowed GL image from size() and sampled it using the image's own\ndimensions, so Skia's normalized u=1.0/v=1.0 mapped to the padded edge of the\nphysical texture rather than the logical edge. The content was stretched and\nthe garbage padding columns/rows bled in, producing the observed glitches.\nThe TextureMapper compositor avoids this with its uvMax clamp - the Skia path\nhad no equivalent (linear tiles are unaffected since allocatedSize == size).\n\nDescribe the borrowed image at the physical allocatedSize() and restrict\nsampling to the logical region via the new Tile::imageSourceRect(), mirroring\nthe uvMax clamp. The accelerated display-list path is unchanged as its surface\nsnapshot is already sized to the logical tile.\n\n* Source/WebCore/platform/graphics/skia/SkiaBackingStore.cpp:\n(WebCore::SkiaBackingStore::paintToCanvas):\n(WebCore::SkiaBackingStore::buildImageSet const):\n(WebCore::SkiaBackingStore::Tile::image const):\n(WebCore::SkiaBackingStore::Tile::imageSourceRect const):\n* Source/WebCore/platform/graphics/skia/SkiaBackingStore.h:\n\nCanonical link: https://commits.webkit.org/316716@main",
      "email": "nzimmermann@igalia.com",
      "hash": "f58a8697d2f8667a948fc0e4b69bd5760fd33a29",
      "subject": "[WPE] Fix broken Vivante super-tiled rendering with the Skia compositor"
    },
    "316717@main": {
      "author": "Antoine Quint",
      "avatar": "https://www.gravatar.com/avatar/9b3ef1e754f8d994f21ff67c660cbbe6?d=identicon\u0026s=64",
      "cl": "316717@main",
      "clUrl": "https://commits.webkit.org/316717@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318857\nrdar://181691667\n\nReviewed by Anne van Kesteren.\n\nBefore we start work on the properties in the animation-triggers [0] spec, we need to\nupdate our WPT snapshot to establish a baseline.\n\nUpstream commit: web-platform-tests/wpt@48fb658\n\n[0] https://drafts.csswg.org/animation-triggers-1\n\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-addAnimation.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-disarmed-by-apis.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-fill-mode-both-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-fill-mode-both.tentative-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-fill-mode-both.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-fill-mode-none.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-multiple-triggers.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-play.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-play.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/animation-trigger-replay.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/trigger-scope-add.tentative.html:\n\nCanonical link: https://commits.webkit.org/316717@main",
      "email": "graouts@webkit.org",
      "hash": "0fc5f2bc6c8496b9b128a557037d2879ad37236f",
      "subject": "[animation-triggers] update WPT snapshot for `scroll-animations/animation-trigger`"
    },
    "316719@main": {
      "author": "Jer Noble",
      "avatar": "https://www.gravatar.com/avatar/6d2cde9be23b98223ca964cb3b7813a0?d=identicon\u0026s=64",
      "cl": "316719@main",
      "clUrl": "https://commits.webkit.org/316719@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318736\nrdar://181517699\n\nUnreviewed. Reverts 316303@main and 316394@main.\n\n* LayoutTests/fast/mediastream/audio-session-active-when-capture-starts-and-stops-expected.txt: Removed.\n* LayoutTests/fast/mediastream/audio-session-active-when-capture-starts-and-stops.html: Removed.\n* LayoutTests/fast/mediastream/audio-session-stays-active-during-capture-expected.txt: Removed.\n* LayoutTests/fast/mediastream/audio-session-stays-active-during-capture.html: Removed.\n* LayoutTests/fast/mediastream/audio-session-stays-active-when-removing-session-during-capture-expected.txt: Removed.\n* LayoutTests/fast/mediastream/audio-session-stays-active-when-removing-session-during-capture.html: Removed.\n* LayoutTests/media/picture-in-picture/video-playback-system-interruption-and-resume-expected.txt:\n* LayoutTests/media/picture-in-picture/video-playback-system-interruption-and-resume.html:\n* LayoutTests/media/video-currenttime-monotonic.html:\n* LayoutTests/media/video-seek-after-end-play-expected.txt:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/glib/media/video-seek-after-end-play-expected.txt: Removed.\n* LayoutTests/platform/mac-site-isolation/TestExpectations:\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/Modules/audiosession/DOMAudioSession.cpp:\n(WebCore::DOMAudioSession::scheduleStateChangeEvent):\n* Source/WebCore/Modules/mediasession/MediaSession.cpp:\n(WebCore::MediaSession::updateCaptureState):\n* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:\n(WebCore::MediaStreamTrack::trackMutedChanged):\n(WebCore::MediaStreamTrack::isCapturingAudio const):\n(WebCore::MediaStreamTrack::wantsToCaptureAudio const):\n* Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:\n(WebCore::UserMediaRequest::allow):\n* Source/WebCore/Modules/webaudio/AudioContext.cpp:\n(WebCore::AudioContext::close):\n(WebCore::AudioContext::suspendRendering):\n(WebCore::AudioContext::resumeRendering):\n(WebCore::AudioContext::startRendering):\n(WebCore::AudioContext::lazyInitialize):\n(WebCore::AudioContext::mayResumePlayback):\n(WebCore::AudioContext::suspendPlayback):\n* Source/WebCore/Modules/webaudio/BaseAudioContext.h:\n(WebCore::BaseAudioContext::isClosed const):\n(WebCore::BaseAudioContext::isRunning const): Deleted.\n* Source/WebCore/html/HTMLMediaElement.cpp:\n(WebCore::HTMLMediaElement::load):\n(WebCore::HTMLMediaElement::prepareForLoad):\n(WebCore::HTMLMediaElement::selectMediaResource):\n(WebCore::HTMLMediaElement::completePlayInternal):\n(WebCore::HTMLMediaElement::playInternal):\n(WebCore::HTMLMediaElement::pauseInternal):\n* Source/WebCore/html/HTMLMediaElement.h:\n* Source/WebCore/platform/LogMessages.in:\n* Source/WebCore/platform/audio/AudioSession.cpp:\n(WebCore::AudioSession::tryToSetActive):\n(WebCore::AudioSession::tryToSetActiveInternal):\n* Source/WebCore/platform/audio/AudioSession.h:\n* Source/WebCore/platform/audio/MediaSessionManagerInterface.cpp:\n(WebCore::MediaSessionManagerInterface::processWillSuspend):\n(WebCore::MediaSessionManagerInterface::sessionWillBeginPlayback):\n(WebCore::MediaSessionManagerInterface::audioCaptureSourceStateChanged):\n(WebCore::MediaSessionManagerInterface::removeSession):\n(WebCore::MediaSessionManagerInterface::maybeDeactivateAudioSession):\n(WebCore::MediaSessionManagerInterface::maybeActivateAudioSession):\n(WebCore::MediaSessionManagerInterface::enforceConcurrentPlaybackRestriction): Deleted.\n* Source/WebCore/platform/audio/MediaSessionManagerInterface.h:\n* Source/WebCore/platform/audio/PlatformMediaSession.cpp:\n(WebCore::PlatformMediaSession::clientWillBeginPlayback):\n(WebCore::PlatformMediaSession::processClientWillPausePlayback):\n(WebCore::PlatformMediaSession::canProduceAudioChanged):\n* Source/WebCore/platform/audio/cocoa/AudioSessionCocoa.h:\n* Source/WebCore/platform/audio/cocoa/AudioSessionCocoa.mm:\n(WebCore::AudioSessionCocoa::tryToSetActiveInternal):\n* Source/WebCore/testing/Internals.cpp:\n(WebCore::Internals::resetToConsistentState):\n* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp:\n(WebKit::RemoteAudioSessionProxy::tryToSetActive):\n(WebKit::RemoteAudioSessionProxy::tryToSetActiveSync): Deleted.\n* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h:\n* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.messages.in:\n* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:\n(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):\n* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.h:\n* Source/WebKit/GPUProcess/webrtc/UserMediaCaptureManagerProxy.cpp:\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:\n(WebKit::RemoteMediaSessionManagerProxy::tryToSetActiveInternal):\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h:\n* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:\n(WebKit::RemoteAudioSession::tryToSetActiveInternal):\n(WebKit::RemoteAudioSession::sendNextActivationIPC): Deleted.\n* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.h:\n* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:\n(WebKit::RemoteMediaSessionManager::tryToSetAudioSessionActive):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/MediaSession.mm:\n(TestWebKitAPI::MediaSessionTest::loadPageAndBecomeNowPlaying):\n\nCanonical link: https://commits.webkit.org/316719@main",
      "email": "jer.noble@apple.com",
      "hash": "f866df28d19bf55d48712905a855ee29187222a9",
      "subject": "REGRESSION(316303@main): Mute/unmute leads to permanent loss of audio"
    },
    "316720@main": {
      "author": "Mike Gorse",
      "avatar": "https://www.gravatar.com/avatar/9953e4848ac7a1e3808f50f333429369?d=identicon\u0026s=64",
      "cl": "316720@main",
      "clUrl": "https://commits.webkit.org/316720@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=311427\n\nReviewed by Michael Catanzaro.\n\nCheck that the accessible has a child before accessing it.\n\n* LayoutTests/accessibility/gtk/text-attribute-empty-li-expected.txt: Added.\n* LayoutTests/accessibility/gtk/text-attribute-empty-li.html: Added.\n* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:\n(WebCore::AccessibilityObjectAtspi::textAttributes const):\n\nCanonical link: https://commits.webkit.org/316720@main",
      "email": "mgorse@suse.com",
      "hash": "500ca457c0fd7079aefc96f5579b131e1eedb288",
      "subject": "AX: Opendeck crashes webkitgtk with Orca running"
    },
    "316721@main": {
      "author": "Ian Grunert",
      "avatar": "https://www.gravatar.com/avatar/6a676cf1bcb9ff83c6cd867a0e3a0fa4?d=identicon\u0026s=64",
      "cl": "316721@main",
      "clUrl": "https://commits.webkit.org/316721@main",
      "description": "* LayoutTests/platform/win/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316721@main",
      "email": "ian.grunert@gmail.com",
      "hash": "5f01c5e178df6b158cfe2305503572d9864e5853",
      "subject": "[Win] Unreviewed layout test gardening"
    },
    "316722@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "316722@main",
      "clUrl": "https://commits.webkit.org/316722@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318730\nrdar://181533057\n\nReviewed by Simon Fraser.\n\nImplement the CSS Borders Level 4 'corner-shape' property for the bevel (superellipse parameter s = 0), per\nhttps://drafts.csswg.org/css-borders-4/#corner-shaping. A box with 'corner-shape: bevel' and a border-radius now renders its border,\nbackground, and outline with beveled corners instead of round.\n\nPasses tests written in another commit\n\n* LayoutTests/TestExpectations:\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:\n* Source/WebCore/platform/graphics/FloatSize.h:\n(WebCore::FloatSize::directionScaledBy const):\n\nCanonical link: https://commits.webkit.org/316722@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "1018d623d264210b31a11083daee2a90a17a5558",
      "subject": "corner-shape: Implement bevel case in CornerShapeUtilities"
    },
    "316723@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "316723@main",
      "clUrl": "https://commits.webkit.org/316723@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318620\nrdar://181414022\n\nReviewed by Joshua Hoffman.\n\nBased on a patch originally started by Tyler.\n\nEach frame has its own AXObjectCache and isolated tree, and only the\nfocused frame's own cache handles its focus change, so an ancestor\ntree (including the main frame's, which VoiceOver queries) was never\npointed at a focused descendant local frame. Point each ancestor local\nframe's isolated-tree focused object at the AXLocalFrame leading\ntoward the focused subframe (focusedObjectForLocalFrame /\nlocalFrameLeadingToFocusedFrame / updateAncestorFramesFocusedObject),\nand have AXIsolatedObject::focusedUIElementInAnyLocalFrame() descend\nthat chain to the real focused element.\n\nTest: accessibility/mac/local-frame-focused-text-input.html\n\n* LayoutTests/accessibility/mac/local-frame-focused-text-input-expected.txt: Added.\n* LayoutTests/accessibility/mac/local-frame-focused-text-input.html: Added.\n* LayoutTests/accessibility/resources/local-frame-text-input.html: Added.\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::focusedObjectForLocalFrame):\n(WebCore::AXObjectCache::localFrameLeadingToFocusedFrame):\n(WebCore::AXObjectCache::updateAncestorFramesFocusedObject):\n(WebCore::AXObjectCache::handleFocusedUIElementChanged):\n* Source/WebCore/accessibility/AXObjectCache.h:\n* Source/WebCore/accessibility/AccessibilityScrollView.h:\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:\n(WebCore::AXIsolatedObject::focusedUIElementInAnyLocalFrame const):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:\n\nCanonical link: https://commits.webkit.org/316723@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "02f429fc0b31989831c2cb0f9a886a329521d763",
      "subject": "AX: With ENABLE_LOCAL_FRAME, focused node API is not traversing iframe boundary"
    },
    "316724@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "316724@main",
      "clUrl": "https://commits.webkit.org/316724@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316687\nrdar://179141754\n\nReviewed by Mark Lam.\n\nWorker threads blocked in Atomics.wait/memory.atomic.wait or WebCore synchronous\noperations (SubtleCrypto, IndexedDB, WebSocket, FileSystem, Notification) previously\npolled NeedStopTheWorld every 50ms to cooperate with the WASM debugger's\nStop-The-World protocol.\n\nReplace with VMBlockingScope RAII: entering a blocking op increments\nm_numberOfBlockedVMs, making the STW trigger (stopped + blocked == active)\nfire without polling. On unblock, the VM atomically transitions to the\nstopped counter and proceeds through normal STW participation.\n\nDesign assumption: the main thread VM is never OS-blocked while entered,\nensuring m_numberOfStoppedVMs \u003e 0 when the condition fires so a VM is\nalways available to service the callback.\n\nTests:\n* JSTests/wasm/debugger/tests/tests.py:\n(MemoryAtomicWaitTestCase.execute):\n(MemoryAtomicWaitNoTimeoutTestCase.execute):\n\nCanonical link: https://commits.webkit.org/316724@main",
      "email": "yijia_huang@apple.com",
      "hash": "fb30bac88bb45e0804e337122dc8bbf8f2fa0d00",
      "subject": "[JSC][WASM][Debugger] Replace polling-based STW participation with VMBlockingScope"
    },
    "316725@main": {
      "author": "David Kilzer",
      "avatar": "https://www.gravatar.com/avatar/e228ffc7a792e70bf2d160563c18dcc6?d=identicon\u0026s=64",
      "cl": "316725@main",
      "clUrl": "https://commits.webkit.org/316725@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=318801\u003e\n\u003crdar://181623908\u003e\n\nReviewed by Adrian Taylor.\n\nA newer version of Apple's Swift C++ interoperability importer fails\nto synthesize a `bool` conversion for a class that inherits\n`explicit operator bool` from a dependent template base, so importing\na `GenericTimeMixin`-derived time class (`MonotonicTime`, `WallTime`,\nand others) into a Swift module fails with \"cannot convert ... to\n'bool' without a conversion operator\" (rdar://181622867).  The operator\ncannot be hidden from the importer, because the synthesis is eager and\nthe same module compiles C++ callers such as `TimerBase::isActive()`\nthat need it.\n\nRe-declare the operator with a `using` declaration in each derived\nclass.  The importer synthesizes the conversion correctly when the\noperator is declared on the non-dependent derived class, while the base\nkeeps it for all C++ callers.\n\nNo new tests since this change is not directly testable.\n\n* Source/WTF/wtf/ApproximateTime.h:\n(WTF::ApproximateTime):\n* Source/WTF/wtf/ContinuousApproximateTime.h:\n(WTF::ContinuousApproximateTime):\n* Source/WTF/wtf/ContinuousTime.h:\n(WTF::ContinuousTime):\n* Source/WTF/wtf/GenericTimeMixin.h:\n(WTF::GenericTimeMixin::operator bool):\n* Source/WTF/wtf/MonotonicTime.h:\n(WTF::MonotonicTime):\n* Source/WTF/wtf/ReducedResolutionSeconds.h:\n(WTF::ReducedResolutionSeconds):\n* Source/WTF/wtf/UnbarrieredMonotonicTime.h:\n(WTF::UnbarrieredMonotonicTime):\n* Source/WTF/wtf/WallTime.h:\n(WTF::WallTime):\n\nCanonical link: https://commits.webkit.org/316725@main",
      "email": "ddkilzer@apple.com",
      "hash": "323ae695da8c973e153d37b66e954a08898696ab",
      "subject": "[WTF] GenericTimeMixin-derived time classes fail to build with Swift C++ interoperability"
    },
    "316726@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "316726@main",
      "clUrl": "https://commits.webkit.org/316726@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318483\nrdar://181274065\n\nReviewed by Rupin Mittal.\n\nUnder Site Isolation a cross-origin subframe is a RemoteFrame that lives in another WebProcess.\nHistoryController::recursiveGatherFramesToNavigate iterates the target HistoryItem's children in\ntree order to collect the frames a back/forward traversal must navigate. For each child it looks\nup the corresponding frame and, when the frame is not a LocalFrame, it did a bare `return` that\nabandoned the entire remaining sibling loop -- not just the remote child. So any local sibling\nordered after a RemoteFrame child was never appended to framesToNavigate and never received\nloadItem(): it silently failed to traverse, and a Navigation API traverseTo()/back()/forward()\ntargeting that frame left its committed/finished promise unsettled.\n\nThe two sibling walkers (recursiveSetProvisionalItem, recursiveGoToItem) already use skip\nsemantics -- `if (RefPtr childFrame = dynamicDowncast\u003cLocalFrame\u003e(...))` -- and simply move on to\nthe next sibling. Match them: skip the RemoteFrame child (its traversal is driven in its own\nprocess) and continue gathering the remaining local siblings.\n\n* LayoutTests/http/wpt/navigation-api/traverse-subframe-remote-sibling.sub.html: Added. A\n  Site-Isolation-pinned test with a cross-origin RemoteFrame sibling ordered before a same-origin\n  LocalFrame; a joint traversal must still move the local frame. Fails today (committed never\n  settles, index unchanged); passes with the fix.\n* LayoutTests/http/wpt/navigation-api/traverse-subframe-remote-sibling.sub-expected.txt: Added.\n* LayoutTests/http/wpt/navigation-api/resources/traverse-subframe-child.html: Added.\n\n* Source/WebCore/loader/HistoryController.cpp:\n(WebCore::HistoryController::recursiveGatherFramesToNavigate): Skip (continue) a non-LocalFrame\nchild instead of returning from the whole loop, so local sibling frames ordered after a\nRemoteFrame are still gathered for traversal.\n\nCanonical link: https://commits.webkit.org/316726@main",
      "email": "basuke@apple.com",
      "hash": "75ca791670dfc265fb40c9e87666224a8b4bc785",
      "subject": "[Navigation API] Subframe back/forward traversal abandons local sibling frames after a RemoteFrame under Site Isolation"
    },
    "316727@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "316727@main",
      "clUrl": "https://commits.webkit.org/316727@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318834\nrdar://181645582\n\nUnreviewed test gardening.\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316727@main",
      "email": "jespinal23@apple.com",
      "hash": "a4748223ee49d4cb8de783555f0b48f5d96944c4",
      "subject": "[GARDENING][iOS DEBUG] 2x TestWebKitAPI.ContentRuleList.* (api-tests) are flaky timeouts."
    },
    "316728@main": {
      "author": "Andy Estes",
      "avatar": "https://www.gravatar.com/avatar/643f10f01b26fd94d03482a2013b2ea0?d=identicon\u0026s=64",
      "cl": "316728@main",
      "clUrl": "https://commits.webkit.org/316728@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318825\nrdar://181639994\n\nReviewed by Eric Carlson.\n\nAdded logging around call sites of MediaPlaybackTargetCocoa::hasAirPlayDevice().\n\n* Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.mm:\n(MediaSessionHelper::activeRoutesDidChange):\n(-[WebMediaSessionHelper activeOutputDeviceDidChange:]):\n\nCanonical link: https://commits.webkit.org/316728@main",
      "email": "aestes@apple.com",
      "hash": "4bc078979343a91e6f06958ef1c9e9c91a31dfa7",
      "subject": "[iOS] Improve logging around AirPlay route selection"
    },
    "316729@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "316729@main",
      "clUrl": "https://commits.webkit.org/316729@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318721\nrdar://181531016\n\nReviewed by Elliott Williams.\n\nXcode links libAccessibility, libnetworkextension and libbsm into\nWebKit.framework via FRAMEWORK_AND_LIBRARY_LDFLAGS. libbsm supplies\naudit_token_to_asid, referenced by WebPushD::PushClientConnection::create,\nso without it WebKit.framework fails to link with an undefined symbol. Link\nthe three SDK usr/lib stubs with -weak_library (an unreferenced stub is\nharmless), matching Xcode. WebKit links via swiftc, which rejects the bare\n-weak_library flag, so pass it through -Xlinker.\n\n* Source/WebKit/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/316729@main",
      "email": "pascoe@apple.com",
      "hash": "4d7442eab4c018ab0182daa93f1b962d4f4908d5",
      "subject": "[CMake] Weak-link the SDK usr/lib stub libraries WebKit.framework needs"
    },
    "316730@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316730@main",
      "clUrl": "https://commits.webkit.org/316730@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318441\n\nReviewed by Antti Koivisto.\n\nEach flex line used to be collected into its own FlexLayoutItems vector and\nthen moved into the LineState, so a line's items were copies that relocate on\nthe move -- which is why anything referencing them had to hold the renderer.\n\nCollect the flex items once into a stable allItems list that is never copied\nor moved, and have computeFlexLines produce every line's range\n(WTF::Range\u003csize_t\u003e) up front. A line is now a std::span into allItems; the\nper-line hypothetical main size that columnInnerMainSize needs rides alongside\nthe ranges.\n\nNo change in behavior.\n\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::LineState::LineState):\n(WebCore::RenderFlexibleBox::resolveFlexibleLengthsForLineItems):\n(WebCore::RenderFlexibleBox::computeFlexLines):\n(WebCore::RenderFlexibleBox::layoutFlexLines):\n(WebCore::RenderFlexibleBox::computeNextFlexLine):\n(WebCore::RenderFlexibleBox::autoMarginOffsetInMainAxis):\n(WebCore::RenderFlexibleBox::freezeInflexibleItems):\n(WebCore::RenderFlexibleBox::resolveFlexibleLengths):\n(WebCore::RenderFlexibleBox::layoutAndPlaceFlexItems):\n(WebCore::RenderFlexibleBox::layoutColumnReverse):\n\nCanonical link: https://commits.webkit.org/316730@main",
      "email": "zalan@apple.com",
      "hash": "f56d651ec6c310e1ad15cb5d2e28e9e1fbb38fa3",
      "subject": "[cleanup] Represent flex lines as ranges over a stable flex item list"
    },
    "316731@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "316731@main",
      "clUrl": "https://commits.webkit.org/316731@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318720\nrdar://181529363\n\nReviewed by Elliott Williams.\n\nThe .sb sandbox profiles are preprocessed with clang -E but without\n-isysroot, so clang uses its default SDK. WebKit's C++ is compiled with the\ntarget SDK, where USE(APPLE_INTERNAL_SDK) is decided by __has_include of\ninternal headers that only resolve under the Internal SDK's -isysroot; the\nsandbox preprocess then takes the wrong branch and cannot resolve SDK headers\nlike \u003cAppleFeatures/AppleFeatures.h\u003e. Xcode's rule uses -isysroot $(SDKROOT).\nSeed _sb_extra_includes with -isysroot ${CMAKE_OSX_SYSROOT} (and append,\nrather than overwrite, the additions-SDK include so the seed survives).\n\n* Source/WebKit/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/316731@main",
      "email": "pascoe@apple.com",
      "hash": "5e696253517b823a40b739bd8aa4bd7a4fbbfc52",
      "subject": "[CMake] Preprocess the sandbox profiles with the target SDK's -isysroot"
    },
    "316732@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "316732@main",
      "clUrl": "https://commits.webkit.org/316732@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318716\nrdar://181529150\n\nReviewed by Elliott Williams and Zak Ridouh.\n\nOptionsCocoa.cmake force-disables ENABLE_AV1 behind a FIXME noting dav1d\nused meson. dav1d now has a CMake build (Source/ThirdParty/dav1d/CMakeLists.txt\ndefines the dav1d static library, which WebCore links when ENABLE_AV1), so\nthe FIXME is stale. Xcode enables AV1 (FEATURE_AND_PLATFORM_DEFINES); drop\nthe force-off so the OptionsMac ON default resolves.\n\n* Source/cmake/OptionsCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/316732@main",
      "email": "pascoe@apple.com",
      "hash": "70e13910b6d99f156ca5366a6eeb5dbee97f2266",
      "subject": "[CMake] Enable AV1 on Cocoa now that dav1d builds with CMake"
    },
    "316733@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "316733@main",
      "clUrl": "https://commits.webkit.org/316733@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318698\nrdar://181513616\n\nReviewed by Elliott Williams and Zak Ridouh.\n\nXcode's TestWebKitAPILibrary compiles the nine\nTools/TestWebKitAPI/Helpers/mac/GamepadMappings/*.mm files that define\nTestWebKitAPI::VirtualGamepad::*Mapping(), referenced by\nHelpers/mac/VirtualGamepad.mm and the HID gamepad tests, and links the\nHID framework for HIDUserDevice (WK_HID_LDFLAGS_macosx = -framework HID).\n\nThe CMake port's PlatformMac.cmake lists VirtualGamepad.mm but omits the\nmapping sources and the HID link, so TestWebKitAPI fails to link with\nundefined VirtualGamepad mapping symbols and _OBJC_CLASS_$_HIDUserDevice.\nAdd the mapping sources and -framework HID to match Xcode.\n\n* Tools/TestWebKitAPI/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/316733@main",
      "email": "pascoe@apple.com",
      "hash": "703147b98b786c615736c059bd305e2e80e8084b",
      "subject": "[CMake] TestWebKitAPI is missing the mac GamepadMappings sources and the HID framework link"
    },
    "316734@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "316734@main",
      "clUrl": "https://commits.webkit.org/316734@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318705\nrdar://181518639\n\nReviewed by Elliott Williams.\n\nXcode installs both MODULEMAP_FILE and MODULEMAP_PRIVATE_FILE into\nWebCore.framework's Modules directory (module.modulemap and\nmodule.private.modulemap). The private map declares the WebCore_Private\nclang module, whose PlatformExportMacros submodule defines WEBCORE_EXPORT.\n\nThe CMake port stages only the public WebCore.modulemap, so a Swift or\nC++-interop consumer that resolves \u003cWebCore/...\u003e through the framework\nmodule reads the private headers textually and WEBCORE_EXPORT is left\nundefined. Stage WebCore_Private.modulemap alongside the public map, into\nthe same Modules directory the bundle already symlinks, matching Xcode's\nWebCore.framework product.\n\n* Source/WebCore/PlatformCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/316734@main",
      "email": "pascoe@apple.com",
      "hash": "5f500d7debeaec0a660010315dfa81e8485755b2",
      "subject": "[CMake] WebCore.framework is missing its private module map"
    },
    "316735@main": {
      "author": "Jessica Lee",
      "avatar": "https://www.gravatar.com/avatar/fc717c99321d09f31fb9187418a8ffc5?d=identicon\u0026s=64",
      "cl": "316735@main",
      "clUrl": "https://commits.webkit.org/316735@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=305846\nrdar://168467484\n\nReviewed by Abrar Rahman Protyasha.\n\nIf a window comes into focus, the focus controller may dispatch excess events currently. We should only dispatch\nevents when a window either becomes both focused \u0026 active or when a window transition out of being both focused\nand active.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/FocusWebView.mm\n\n* Source/WebCore/page/FocusController.cpp:\n(WebCore::FocusController::setFocusedInternal):\n(WebCore::FocusController::setActivityState):\n(WebCore::FocusController::setActiveInternal):\n* Source/WebCore/page/FocusController.h:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/FocusWebView.mm:\n(TestWebKitAPI::NoFocusEventsForBackgroundWindow)):\n(TestWebKitAPI::SingleBlurEventWhenNoLongerActiveAndFocused)):\n\nCanonical link: https://commits.webkit.org/316735@main",
      "email": "jlee53@apple.com",
      "hash": "742452b1b1a52e39dc1fcf865685ee47e4db15c8",
      "subject": "Blur and Focus events should only be dispatched if the window is both active and focused."
    },
    "316736@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "316736@main",
      "clUrl": "https://commits.webkit.org/316736@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318739\nrdar://181539181\n\nUnreviewed test gardening.\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316736@main",
      "email": "jespinal23@apple.com",
      "hash": "716c4f33a7310cd78a23cf4d32cc42ae7ac8ded7",
      "subject": "[GARDENING][iOS DEBUG] 10x TestWebKitAPI.WebKitLegacy.* (api-tests) are constant crashes."
    },
    "316737@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "316737@main",
      "clUrl": "https://commits.webkit.org/316737@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318874\n\nReviewed by Rupin Mittal.\n\nRe-import the web-platform-tests navigation-api test suite from upstream.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/9c71845ddec24a8c3729115968f2e405a460ba5c\n\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/currententrychange-event/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/focus-reset/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/focus-reset/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/cross-window/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/cross-window/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/defer/tentative/restore-after-bfcache.html:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/defer/tentative/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-getState-fragment-via-href-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-getState-fragment-via-href.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-getState-fragment-via-navigate-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-getState-fragment-via-navigate.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/reentry-from-focus-reset-navigate-api-tracker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/reentry-from-focus-reset-navigate-api-tracker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/signal-abort-reentry-navigate-api-tracker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/signal-abort-reentry-navigate-api-tracker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-after-bfcache-cross-origin-clears-from-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-after-bfcache-cross-origin-clears-from.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/resources/bfcache-seed.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/resources/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/navigate-204-205-download-then-same-document-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/navigate-204-205-download-then-same-document.html:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/per-entry-events/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/precommit-handler/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/precommit-handler/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/after-transition-skips-restore-when-scrolled-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/after-transition-skips-restore-when-scrolled.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/state/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/state/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/updateCurrentEntry-method/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/updateCurrentEntry-method/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/w3c-import.log:\n* LayoutTests/tests-options.json:\n\nCanonical link: https://commits.webkit.org/316737@main",
      "email": "basuke@apple.com",
      "hash": "130f82b8699048ebdc215456775b56cd3496043b",
      "subject": "[navigation-api] Re-import WPT navigation-api tests"
    },
    "316738@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "316738@main",
      "clUrl": "https://commits.webkit.org/316738@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318879\nrdar://181717081\n\nUnreviewed test gardening\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316738@main",
      "email": "darbinyan@apple.com",
      "hash": "9ae610ce28fe0e7f0e5192bcf983ec77b42b9561",
      "subject": "[Gardening]: REGRESSION(316606@main): [macOS x86_64] Multiple webgl tests are crashing"
    },
    "316739@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "316739@main",
      "clUrl": "https://commits.webkit.org/316739@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=230612\n\nUnreviewed test gardening.\n\nThis is one of the biggest clusters of failures. While we finish a patch\nproperly addressing it, let's garden it.\n\n* WebDriverTests/TestExpectations.json:\n\nCanonical link: https://commits.webkit.org/316739@main",
      "email": "lmoura@igalia.com",
      "hash": "73a8bebbb06394aecfae654b59c12e5467ea314c",
      "subject": "[WebDriver] Fix element references after tab switch or close"
    },
    "316740@main": {
      "author": "Sihui Liu",
      "avatar": "https://www.gravatar.com/avatar/fea095a2fb34b599fa6e7d581666903b?d=identicon\u0026s=64",
      "cl": "316740@main",
      "clUrl": "https://commits.webkit.org/316740@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318812\nrdar://181397513\n\nReviewed by Abrar Rahman Protyasha.\n\nexecuteEditCommand(commandName, argument) synchronously waits for the AllowFilesAccessFromWebProcess reply by calling\nAuxiliaryProcessProxy::connection() on the NetworkProcess, which RELEASE_ASSERTs that m_connection is non-null.\nwillPerformPasteCommand() can return a valid AsyncReplyID (via grantAccessToCurrentPasteboardData -\u003e\nWebPasteboardProxy::grantAccessToCurrentData) even while the NetworkProcess is still launching, since\nsendWithAsyncReply() queues the message in m_pendingMessages and only establishes m_connection once the process\nfinishes launching. Pasting content that carries file paths (e.g. an attachment) before the NetworkProcess connection\nexists therefore hits the RELEASE_ASSERT and crashes the UI process.\n\nThis is a follow-up to 99d7f658ab04 (bug 301321), which added a similar hasRunningProcess() guard to the callback-based\noverload of executeEditCommand() but did not cover this synchronous overload's unconditional connection() call.\n\nGuard the wait with hasConnection() instead. The AllowFilesAccessFromWebProcess message itself is unaffected: it is\nalready queued safely regardless of process launch state, and its completion handler will still run once the\nNetworkProcess is up and the reply is dispatched normally. Skipping the synchronous wait only means the paste's\ncompletion handler may run asynchronously later rather than being fast-pathed within this call.\n\nAPI Test: PasteImage.PasteFileWhileNetworkProcessIsLaunching\n\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::executeEditCommand):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/PasteImage.mm:\n(TEST(PasteImage, PasteFileWhileNetworkProcessIsLaunching)):\n\nCanonical link: https://commits.webkit.org/316740@main",
      "email": "sihui_liu@apple.com",
      "hash": "4aaf25fe9410814b6d80a71e5fca825af0742764",
      "subject": "Assertion failure under WebPageProxy::executeEditCommand() when NetworkProcess connection isn't established yet"
    },
    "316741@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "316741@main",
      "clUrl": "https://commits.webkit.org/316741@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=274366\nrdar://128355630\n\nReviewed by Simon Fraser.\n\nRenderScrollbarPart overrode marginTop()/marginBottom()/marginLeft()/marginRight()\nto add an assert that required scrollbar-part margins to be whole integers.\n\nThis crashed the web process on google.com when signed in and zoomed.\n\nAfter discussing with Simon, it was decided that fractional margins are not a\nproblem and we should instead simply remove the override.\n\n* Source/WebCore/rendering/RenderScrollbarPart.h:\n(WebCore::RenderScrollbarPart::marginTop): Deleted.\n(WebCore::RenderScrollbarPart::marginBottom): Deleted.\n(WebCore::RenderScrollbarPart::marginLeft): Deleted.\n(WebCore::RenderScrollbarPart::marginRight): Deleted.\n* LayoutTests/scrollbars/custom-scrollbar-fractional-zoom-margin-crash.html: Added.\n* LayoutTests/scrollbars/custom-scrollbar-fractional-zoom-margin-crash-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/316741@main",
      "email": "yulun_wu@apple.com",
      "hash": "4631a8c67fe674490b870a20facd2c56c3313b80",
      "subject": "Remove overrides from WebCore::RenderScrollbarPart::marginTop()"
    },
    "316742@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "316742@main",
      "clUrl": "https://commits.webkit.org/316742@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318885\nrdar://181723535\n\nReviewed by Yusuke Suzuki.\n\nEnable the Temporal feature by default.\n\nCanonical link: https://commits.webkit.org/316742@main",
      "email": "yijia_huang@apple.com",
      "hash": "23eb4f85f3588a9d2b17f57e8ebe6dccc162df30",
      "subject": "[JSC] Enable Temporal object by default"
    },
    "316743@main": {
      "author": "Ryan Haddad",
      "avatar": "https://www.gravatar.com/avatar/b7d8cd2dec546cac2524e4b58181f9d5?d=identicon\u0026s=64",
      "cl": "316743@main",
      "clUrl": "https://commits.webkit.org/316743@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318281\nrdar://181070392\n\nReviewed by Aakash Jain.\n\nThe revert-with-pr command creates reverts as GitHub PRs via git-webkit, but the revert and\nrollout commands still always use the webkit-patch (Bugzilla) flow. Gate generateRevertingPatch()\nso that when USE_GIT_WEBKIT_REVERT is enabled, revert and rollout produce git-webkit PRs.\n\n* Tools/WebKitBot/src/WebKitBot.mjs:\n- generateRevertingPatch: When USE_GIT_WEBKIT_REVERT is enabled, delegate to\n  generateRevertingPatchWithGitWebkit instead of using webkit-patch.\n- revertCommand: Detect a bug URL argument when the flag is enabled (not only for\n  revert-with-pr), so revert and rollout can also reuse an existing bug.\n- action: Thread issueUrl through the \"revert\" task case.\n\nCanonical link: https://commits.webkit.org/316743@main",
      "email": "ryanhaddad@apple.com",
      "hash": "9f895898189e7e34e5750971e58827056bdb0ee9",
      "subject": "[webkit-bot] Route the revert and rollout commands through git-webkit when USE_GIT_WEBKIT_REVERT is enabled"
    },
    "316744@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316744@main",
      "clUrl": "https://commits.webkit.org/316744@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318823\nrdar://180128876\n\nReviewed by Andy Estes.\n\nWith site isolation on, since 314640@main I hit a crash in RemoteMediaSessionManagerProxy::messageSenderConnection.\nWe call AuxiliaryProcessProxy::connection which release asserts that it is non-null, but sometimes it's null.\nTo make it not crash in this case, I add a null check.\n\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:\n(WebKit::RemoteMediaSessionManagerProxy::messageSenderConnection const):\n\nCanonical link: https://commits.webkit.org/316744@main",
      "email": "achristensen@apple.com",
      "hash": "0809421f0c0d3122533dee8add6e17f2a164fa7f",
      "subject": "Add null check in RemoteMediaSessionManagerProxy::messageSenderConnection"
    },
    "316745@main": {
      "author": "Antoine Quint",
      "avatar": "https://www.gravatar.com/avatar/9b3ef1e754f8d994f21ff67c660cbbe6?d=identicon\u0026s=64",
      "cl": "316745@main",
      "clUrl": "https://commits.webkit.org/316745@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318875\nrdar://181712713\n\nReviewed by Tim Nguyen.\n\nThe Web Animations spec is changing [0] to reset the start time of a Scroll-driven Animation to the\ncurrent time when calling `play()` for a finite (ie. progress-based) timeline.\n\n[0] https://github.com/w3c/csswg-drafts/issues/11469\n\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/play-animation-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/scroll-timelines/reverse-animation-expected.txt:\n* Source/WebCore/animation/WebAnimation.cpp:\n(WebCore::WebAnimation::play):\n\nCanonical link: https://commits.webkit.org/316745@main",
      "email": "graouts@webkit.org",
      "hash": "08b880d9b139ec5d7883bb481e555d6116d571d9",
      "subject": "[scroll-animations] calling play() for a finite timeline should reset the start time to the current time"
    },
    "316746@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "316746@main",
      "clUrl": "https://commits.webkit.org/316746@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318893\nrdar://181727843\n\nUnreviewed test gardening.\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316746@main",
      "email": "jespinal23@apple.com",
      "hash": "b03993abf17452a9777e74a85a267593ba495921",
      "subject": "[GARDENING][iOS DEBUG] 2x TestWebKitAPI.IPCTestingAPI.* (api-tests) are constant fails."
    },
    "316747@main": {
      "author": "Ruthvik Konda",
      "avatar": "https://www.gravatar.com/avatar/bca33cefcce93017251a8fbc1204cdc4?d=identicon\u0026s=64",
      "cl": "316747@main",
      "clUrl": "https://commits.webkit.org/316747@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318734\nrdar://181536967\n\nReviewed by Anne van Kesteren.\n\nMechanical migration from brace-initialized Ref/RefPtr temporaries to the\nprotect() free function in Source/WebCore/Modules/mediasource/, aligning\nwith the codebase-wide transition.\n\nNo new tests needed (no behavioral change, style-only refactor).\n\n* Source/WebCore/Modules/mediasource/MediaSource.cpp:\n(WebCore::MediaSource::open):\n* Source/WebCore/Modules/mediasource/SampleMap.cpp:\n(WebCore::SampleIsLessThanMediaTimeComparator::operator()):\n(WebCore::SampleIsGreaterThanMediaTimeComparator::operator()):\n(WebCore::SampleIsRandomAccess::operator()):\n* Source/WebCore/Modules/mediasource/SourceBuffer.cpp:\n(WebCore::SourceBuffer::buffered):\n(WebCore::SourceBuffer::abort):\n(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):\n(WebCore::SourceBuffer::sourceBufferPrivateDidAttach):\n* Source/WebCore/Modules/mediasource/SourceBufferList.cpp:\n(WebCore::SourceBufferList::contains const):\n(WebCore::SourceBufferList::remove):\n\nCanonical link: https://commits.webkit.org/316747@main",
      "email": "rkonda2@apple.com",
      "hash": "fa8971b085b36ea6ab104104aae3a39fd10452e2",
      "subject": "Use protect() instead of Ref/RefPtr { } in mediasource code"
    },
    "316748@main": {
      "author": "Asumu Takikawa",
      "avatar": "https://www.gravatar.com/avatar/6ffcd6697f8ede5e344bade7a9778eff?d=identicon\u0026s=64",
      "cl": "316748@main",
      "clUrl": "https://commits.webkit.org/316748@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315611\n\nReviewed by Devin Rousso.\n\n  * Adds support for parsing the `rangeMappings` field of a source map.\n  * Parsing is done incrementally, as the `mappings` are parsed.\n  * Ranges are used to calculate finer-grained positions for lookups.\n  * Import new tests for the proposal from the spec test repo\n  * Adapts source map test harness to run new tests, and also improve\n    the output from the tests to help with debugging.\n  * Improvements to test harness to be less flaky, such as using the\n    source map added event to extract the map to check.\n\n* LayoutTests/imported/tc39-tg4/source-map-tests/README.WebKit:\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/README.md: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id-index-section.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id-index-section.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id-index.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id-index.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id.d.ts: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/debug-id.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/invalid-debug-id.error: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/invalid-debug-id.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/debug-id/invalid-debug-id.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/README.md: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/close-start-end-position-scopes.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/close-start-end-position-scopes.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/empty-scopes-field.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/empty-scopes-field.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/hidden-ranges.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/hidden-ranges.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/multiple-root-original-scopes-with-nil.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/multiple-root-original-scopes-with-nil.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/nested-ranges.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/nested-ranges.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/nested-scopes.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/nested-scopes.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/nil-scopes.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/nil-scopes.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/range-call-site.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/range-call-site.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/range-values.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/range-values.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/scope-variables.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/scope-variables.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/scopes.d.ts: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/sibling-ranges.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/sibling-ranges.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/sibling-scopes.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/sibling-scopes.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/single-root-original-scope.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/single-root-original-scope.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/sub-range-values.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/scopes/sub-range-values.map.golden: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/decoding/source-map-record.d.ts: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/range-mappings-proposal-tests.json:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/extra-lines-in-mappings.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/extra-lines-in-range-mappings.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/extra-lines-in-range-mappings.js.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/invalid-mapping-for-range.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/invalid-mapping-for-range.js.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/invalid-vlq-zero.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/invalid-vlq-zero.js.map: Copied from LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/wrong-type-2.js.map.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/multiple-mappings.js: Added.\n(f):\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/multiple-mappings.js.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/newline-semantics.js:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/newline-semantics.js.map:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/non-full-line-coverage.js.map:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/out-of-range-2.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/out-of-range-2.js.map: Copied from LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/out-of-range.js.map.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/out-of-range-3.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/out-of-range-3.js.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/out-of-range.js.map:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/simple.js:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/simple.js.map:\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/vlq-continuation-bit.js: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/vlq-continuation-bit.js.map: Added.\n* LayoutTests/imported/tc39-tg4/source-map-tests/resources/proposals/range-mappings/wrong-type-2.js.map:\n* LayoutTests/inspector/debugger/resources/source-map-range-mappings.js: Added.\n(middle):\n(globalThis.outer):\n* LayoutTests/inspector/debugger/resources/source-map-range-mappings.js.map: Added.\n* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-range-mappings-inner-expected.txt: Added.\n* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-range-mappings-inner.html: Added.\n* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-range-mappings-middle-expected.txt: Added.\n* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-range-mappings-middle.html: Added.\n* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-range-mappings-outer-expected.txt: Added.\n* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-range-mappings-outer.html: Added.\n* LayoutTests/inspector/model/resources/range-mappings.js: Added.\n(middle):\n(globalThis.outer):\n* LayoutTests/inspector/model/resources/range-mappings.js.map: Added.\n* LayoutTests/inspector/model/source-map-range-mappings-expected.txt: Added.\n* LayoutTests/inspector/model/source-map-range-mappings.html: Added.\n* LayoutTests/inspector/model/source-map-spec-expected.txt:\n* LayoutTests/inspector/model/source-map-spec.html:\n* Source/WebInspectorUI/UserInterface/Models/SourceMap.js:\n(WI.SourceMap):\n(WI.SourceMap.async fromJSON):\n(WI.SourceMap.prototype.findOriginalPosition):\n(WI.SourceMap.prototype.findGeneratedPosition):\n(WI.SourceMap._VLQ.prototype.decode):\n(WI.SourceMap._VLQ):\n(WI.SourceMap._RangeMappings):\n(WI.SourceMap._RangeMappings.prototype.decodeNextEntry):\n(WI.SourceMap._RangeMappings.prototype.nextLine):\n(WI.SourceMap._RangeMappings.prototype.endMappings):\n\nCanonical link: https://commits.webkit.org/316748@main",
      "email": "asumu@igalia.com",
      "hash": "60e1b94d0a196165ef4f0161c8ee05f28e6381c3",
      "subject": "Web inspector: add support for range mappings proposal in source maps"
    },
    "316749@main": {
      "author": "Serge Deh",
      "avatar": "https://www.gravatar.com/avatar/4cbba83a1e101b5eb618c5373eb0f5a7?d=identicon\u0026s=64",
      "cl": "316749@main",
      "clUrl": "https://commits.webkit.org/316749@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=288329\n\nReviewed by BJ Burg.\n\nThis patch implements the browsingContext.locateNodes command with initial\nsupport for CSS selector-based node location. The implementation includes\nprotocol definitions, parameter validation, DOM query execution, and\nRemoteValue serialization for found nodes.\n\nThis patch also extracts shared serializationOptions validation to a reusable\nhelper and fixes a critical security issue where user-provided functions could\naccess WebAutomationSessionProxy internals via 'this' binding.\n\nKey implementation details:\n- Uses extractBrowsingContextHandles() to support both top-level and iframe contexts\n- Inlines CSS selector logic directly in C++ string since _execute uses apply(null, ...)\n- Returns actual DOM nodes from JavaScript for proper handle generation via WebKit's\n  node serialization (_createNodeHandle/_identifierForNode in WebAutomationSessionProxy)\n- Throws InvalidSelector error (not generic Error) for proper BiDi error mapping\n- Accepts serializationOptions parameter per spec (validation only, not yet applied)\n- Shared validation helper enables reuse across multiple BiDi commands\n\n* Source/WebKit/UIProcess/Automation/protocol/BidiBrowsingContext.json:\nAdded Locator and LocatorType type definitions, and the locateNodes\ncommand definition. Currently supports CSS selectors, with additional\nlocator types (xpath, innerText, accessibility) to be added in follow-up patches.\nAdded serializationOptions parameter to match BiDi spec.\n\n* Source/WebKit/UIProcess/Automation/BidiBrowsingContextAgent.h:\nAdded locateNodes method declaration with serializationOptions parameter.\n\n* Source/WebKit/UIProcess/Automation/BidiBrowsingContextAgent.cpp:\n(WebKit::extractNodeFromLocateResult): Helper to parse [node, metadata] tuples.\n(WebKit::parseLocateNodesResult): Helper to parse JavaScript query results.\n(WebKit::BidiBrowsingContextAgent::locateNodes):\nImplemented locateNodes command with CSS selector support. Uses shared\nvalidateSerializationOptions() helper and inlines JavaScript logic since\nwrapper functions have this=null and cannot access proxy methods.\n\n* Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.h:\n* Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.cpp:\n(WebKit::WebDriverBidiProcessor::validateSerializationOptions):\nAdded static helper to validate BiDi serializationOptions parameter (maxDomDepth,\nmaxObjectDepth, includeShadowTree). Returns CommandResult\u003cvoid\u003e for consistency.\nShared across multiple commands: browsingContext.locateNodes, script.callFunction,\nscript.evaluate.\n\n* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.js:\n(AutomationSessionProxy.prototype._execute):\nChanged functionValue.apply(this, ...) to apply(null, ...) to prevent\nuser-provided functions from accessing proxy internals via 'this' binding.\nThis secures ALL user function execution (script.evaluate, script.callFunction).\n\n* WebDriverTests/TestExpectations.json:\nEnabled browsingContext.locateNodes tests for CSS selector locator type.\n\nSupport for startNodes parameter, serializationOptions application, and additional\nlocator types will be added in subsequent patches.\n\nCanonical link: https://commits.webkit.org/316749@main",
      "email": "sergedeh@gmail.com",
      "hash": "bb48b7c44ce67a4f1bf5aedab6e08cef784dbcc4",
      "subject": "[WebDriver BiDi] Implement browsingContext.locateNodes with CSS selector support"
    },
    "316750@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "316750@main",
      "clUrl": "https://commits.webkit.org/316750@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318898\nrdar://181734383\n\nReviewed by Yusuke Suzuki.\n\nEnabling Options::useTemporal by default (23eb4f85f358) makes\nDatePrototype::finishCreation add a non-enumerable \"toTemporalInstant\"\nown property to Date.prototype. Update the exact expected property\nlist for Date.prototype in the test and its expected output.\n\nCanonical link: https://commits.webkit.org/316750@main",
      "email": "yijia_huang@apple.com",
      "hash": "8033a43e1b8b8169073a1ace7f8798f12d743067",
      "subject": "[JSC] Rebaseline Object-getOwnPropertyNames after enabling Temporal by default"
    },
    "316751@main": {
      "author": "Hysu Xiong",
      "avatar": "https://www.gravatar.com/avatar/ecfded559f81d5d495c592f3f76939d2?d=identicon\u0026s=64",
      "cl": "316751@main",
      "clUrl": "https://commits.webkit.org/316751@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318900\nrdar://181735852\n\nReviewed by Stephanie Lewis.\n\nThrottleConsecutiveNoDamageMainFrames is enrolled by default on non-stable Chrome channels via Chrome Experiments (Finch) and interferes with rendering benchmark measurements. Disabling it explicitly for Dev, Beta, Canary, and ForTesting while leaving other field trial behavior as-is.\n\n* Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:\n(OSXChromeCanaryDriver.launch_args_with_url):\n(OSXChromeBetaDriver.launch_args_with_url):\n(OSXChromeDevDriver.launch_args_with_url):\n(OSXChromeForTestingDriver.launch_args_with_url):\n\nCanonical link: https://commits.webkit.org/316751@main",
      "email": "hysu@apple.com",
      "hash": "f484f013d42e1a93110dcc4373f3b6849c27b794",
      "subject": "Disable ThrottleConsecutiveNoDamageMainFrames for non-stable Chrome channels in the benchmark runner"
    },
    "316752@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316752@main",
      "clUrl": "https://commits.webkit.org/316752@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=296995\nrdar://158221024\n\nReviewed by Sam Weinig.\n\n\"The if() function is an arbitrary substitution function that represents conditional values. Its argument\nconsists of an ordered semi-colon–separated list of statements, each consisting of a condition followed by\na colon followed by a value. An if() function represents the value corresponding to the first condition in\nits argument list to be true; if no condition matches, then the if() function represents an empty token stream.\"\n\nhttps://drafts.csswg.org/css-values-5/#if-notation\n\nFor example:\n\ncolor: if(style(--foo \u003e 100px): red; else: blue);\n\nAt parse time if() is validated only against a very permissive argument grammar.\n\nThe actual logic is in Style::SubstitutionResolver and runs from style builder. The condition in each branch\nis evaluated using IfConditionEvaluator until one matches. The if() function is then substituted with the\ncontent tokens of that branch.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-parameter-types.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-if-substitution-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security-if-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-conditionals-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-cycle-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-function-revert-rule-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-initial-unregistered-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-invalidation-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-media-invalidation-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-style-invalidation-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-supports-quirks-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/inherit-function-basic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-in-if.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/viewport-units-scroll-no-cycles-001.tentative-expected.txt:\n\nPASS-\u003eFAIL cases were spurious passes in feature interaction tests.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/css/CSSValueKeywords.in:\n* Source/WebCore/css/parser/CSSParserContext.cpp:\n(WebCore::add):\n* Source/WebCore/css/parser/CSSParserContext.h:\n* Source/WebCore/css/parser/CSSSubstitutionParser.cpp:\n(WebCore::classifyBlock):\n\nValidate according to argument grammar.\n\n(WebCore::isValidIfReference):\n* Source/WebCore/style/IfConditionEvaluator.cpp: Added.\n(WebCore::Style::IfConditionEvaluator::evaluate):\n(WebCore::Style::IfConditionEvaluator::evaluateQueryInParens const):\n(WebCore::Style::IfConditionEvaluator::evaluateFeature const):\n* Source/WebCore/style/IfConditionEvaluator.h: Added.\n(WebCore::Style::IfConditionEvaluator::IfConditionEvaluator):\n\nIntroduce IfConditionEvaluator for evaluating the condition. It uses the existing container query machinery.\n\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::substituteIfArgumentGrammar):\n(WebCore::Style::SubstitutionResolver::substituteIfFunction):\n\nPick a branch to substitute based on evaluation result.\n\n(WebCore::Style::SubstitutionResolver::substituteTokenRange):\n* Source/WebCore/style/StyleSubstitutionResolver.h:\n\nCanonical link: https://commits.webkit.org/316752@main",
      "email": "antti@apple.com",
      "hash": "8ffb76a8529413df5a14343f91fd615271befdc7",
      "subject": "[css-values-5] Implement if() arbitrary substitution function"
    },
    "316753@main": {
      "author": "Alicia Boya Garcia",
      "avatar": "https://www.gravatar.com/avatar/89fdc5feb8ae1de4c43d003eba230998?d=identicon\u0026s=64",
      "cl": "316753@main",
      "clUrl": "https://commits.webkit.org/316753@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318897\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n* Tools/TestWebKitAPI/glib/TestExpectations.json:\n\nCanonical link: https://commits.webkit.org/316753@main",
      "email": "aboya@igalia.com",
      "hash": "86c573accd1b3dedc2e88200e9e7ae219ccf8a3c",
      "subject": "[glib] Unreviewed test gardening"
    },
    "316754@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316754@main",
      "clUrl": "https://commits.webkit.org/316754@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318443\n\nReviewed by Antti Koivisto.\n\nFlexLayoutItem now carries its own flow-aware location, applied to the renderer by the new setFlexItemGeometry().\nThe main placement site writes it and applies it -- the renderer still gets the\nsame setLocation call, so the field is written-only for now; it is groundwork\ntoward making the item, rather than the renderer, the source of truth for flex geometry.\n\nBaselineSharingGroup now records its members as indices into the owning line's\nitems (Vector\u003csize_t\u003e) instead of Vector\u003cCheckedRef\u003cRenderBox\u003e\u003e. The line's\nitems live in the stable allItems list, so an index is a safe.\n\nNo change in behavior.\n\n* Source/WebCore/rendering/RenderFlexibleBox.h:\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::setFlexItemGeometry):\n(WebCore::RenderFlexibleBox::layoutAndPlaceFlexItems):\n(WebCore::RenderFlexibleBox::performBaselineAlignment):\n\nCanonical link: https://commits.webkit.org/316754@main",
      "email": "zalan@apple.com",
      "hash": "f2181419aebfb55a717a2ddd8e3d2cb213a9c6e5",
      "subject": "[cleanup] Give FlexLayoutItem a flow-aware location and reference baseline group members by index"
    },
    "316755@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316755@main",
      "clUrl": "https://commits.webkit.org/316755@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318773\nrdar://problem/181625193\n\nReviewed by Alan Baradlay.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-style-expected.txt:\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::substituteDashedFunction):\n\nPass ContainerQueryEvaluator::SelectionMode::PseudoElement when resolving a pseudo-element.\n\nCanonical link: https://commits.webkit.org/316755@main",
      "email": "antti@apple.com",
      "hash": "ae364730db372a22f8663534596579c718e38146",
      "subject": "[css-mixins-1] Use SelectionMode::PseudoElement for function scoped container queries where needed"
    },
    "316756@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "316756@main",
      "clUrl": "https://commits.webkit.org/316756@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318890\nrdar://181726587\n\nReviewed by Keith Miller.\n\nSome targets have hard-coded `-define-availability` invocations. Fix\nthat, and use the real generator script.\n\nFWIW, this process is still subtly broken, because it does not correctly\nread from WebKitAdditions in the SDK to map the TBA version. A follow-up\nchange will switch to generating availability macros directly in CMake.\n\n* Source/WebKit/PlatformIOS.cmake:\n\nCanonical link: https://commits.webkit.org/316756@main",
      "email": "emw@apple.com",
      "hash": "213b271cf199679a4cbfd67888866e62ab4d74a3",
      "subject": "[CMake][iOS] Use dynamic Swift availability macros in all WebKit targets"
    },
    "316757@main": {
      "author": "Antoine Quint",
      "avatar": "https://www.gravatar.com/avatar/9b3ef1e754f8d994f21ff67c660cbbe6?d=identicon\u0026s=64",
      "cl": "316757@main",
      "clUrl": "https://commits.webkit.org/316757@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318864\nrdar://181703481\n\nReviewed by Sam Weinig and Antti Koivisto.\n\nAdd parsing support for the `trigger-scope` property as specified by https://drafts.csswg.org/animation-triggers-1/#trigger-scope.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/shadow-dom-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/parsing/trigger-scope.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/animation-trigger/trigger-scope-add.tentative-expected.txt:\n* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:\n* Source/WebCore/css/CSSProperties.json:\n* Source/WebCore/style/computed/data/StyleNonInheritedRareData.cpp:\n(WebCore::Style::NonInheritedRareData::NonInheritedRareData):\n(WebCore::Style::NonInheritedRareData::operator== const):\n(WebCore::Style::NonInheritedRareData::dumpDifferences const):\n* Source/WebCore/style/computed/data/StyleNonInheritedRareData.h:\n\nCanonical link: https://commits.webkit.org/316757@main",
      "email": "graouts@webkit.org",
      "hash": "41e8bd103a1fc947375ceeb4dff84d768c244970",
      "subject": "[animation-triggers] add parsing support for the `trigger-scope` CSS property"
    },
    "316758@main": {
      "author": "Qianlang Chen",
      "avatar": "https://www.gravatar.com/avatar/0fd54e904334f604739d0205aa6e2130?d=identicon\u0026s=64",
      "cl": "316758@main",
      "clUrl": "https://commits.webkit.org/316758@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318472\n\nReviewed by BJ Burg.\n\nUnder Site Isolation the inspector backend could report an inconsistent\nloaderId for the main frame: the id in the Page.getResourceTree snapshot\ndid not match the id carried by the network events for resources loaded\nby that same frame. Because of the mismatch, a subresource requested by\nthe main frame (for example via fetch()) could intermittently be handled\nby the frontend as a provisional load and not attributed to the frame.\n\nThe frontend attributes a resource to a frame by matching loaderIds. A\nresource gets its loaderId from the UIProcess ProxyingNetworkAgent,\nwhich derives it freshly from the live document's\nScriptExecutionContextIdentifier. The frame gets its loaderId once,\nfrom the page target's Page.getResourceTree snapshot, which came from\nBackendIdentifierRegistry::loaderId() -- a value memoized in a map\nkeyed by the raw DocumentLoader*. That cached value could go stale\n(minted while the loader was still provisional, or held against a\nDocumentLoader* whose address was later reused), so getResourceTree\nreported a loaderId that no longer matched the frame's live document.\n\nWhen the two disagree, NetworkManager._addResourceToFrame treats the\nresource as the start of a provisional navigation and hands it to\nstartProvisionalLoad() instead of adding it. Because staleness depended\non timing and pointer reuse, the failure was intermittent.\n\nFix BackendIdentifierRegistry::loaderId() to compute the id directly\nfrom the loader's current document instead of memoizing.\nprotocolLoaderId() is a deterministic function of the document's\nScriptExecutionContextIdentifier, so it now always matches what network\nevents report; the map is kept only for the pre-document fallback. Its\nsole caller under Site Isolation is\nInspectorPageAgent::buildObjectForFrame() with the committed\ndocumentLoader(), so frame-\u003edocument() always reflects that loader's\nown document. The pre-Site-Isolation LegacyIdentifierRegistry path is\nunaffected.\n\nTest: http/tests/site-isolation/inspector/network/main-frame-resource-appears-in-network-domain.html\n- Add the test we wanted to have, the main-frame variant of the sibling\n  test cross-origin-iframe-resource-appears-in-network-domain.html,\n  which would intermittently timing out without this patch.\n\n* LayoutTests/http/tests/site-isolation/inspector/network/main-frame-resource-appears-in-network-domain-expected.txt: Added.\n* LayoutTests/http/tests/site-isolation/inspector/network/main-frame-resource-appears-in-network-domain.html: Added.\n* Source/WebCore/inspector/InspectorIdentifierRegistry.cpp:\n(Inspector::BackendIdentifierRegistry::loaderId):\n\nCanonical link: https://commits.webkit.org/316758@main",
      "email": "qianlangchen@apple.com",
      "hash": "36e79ac25b963f8abeb3a6440e9df0008a217aaa",
      "subject": "[Site Isolation] Web Inspector: main-frame subresource sometimes missing from Network under Site Isolation"
    },
    "316759@main": {
      "author": "Qianlang Chen",
      "avatar": "https://www.gravatar.com/avatar/0fd54e904334f604739d0205aa6e2130?d=identicon\u0026s=64",
      "cl": "316759@main",
      "clUrl": "https://commits.webkit.org/316759@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318380\n\nReviewed by BJ Burg.\n\nFix the three skipped site-isolation/inspector/network tests. There were\nthree problems, where fixing one revealed another:\n\n1. We were executing commands on the wrong frame target. Under SI, a\n   cross-origin iframe is represented by two WI.FrameTargets: a\n   placeholder created in the parent process (from\n   WebFrameProxy::didCreateSubframe, isProvisional=false, where the\n   iframe's JavaScript never runs) and the real target created in the\n   iframe's own process (from ProvisionalFrameProxy /\n   didCreateProvisionalFrame, isProvisional=true, where the execution\n   context is created). The tests selected a target with a single-shot\n   WI.targetManager.awaitEvent(TargetAdded), which would usually return\n   the parent-process placeholder.\n\n   Fix this by declaring the cross-origin iframe statically in the page\n   instead, which should already be committed when the test runs.\n\n2. We were comparing frame IDs that use two different string formats.\n   we asserted iframe attribution by string-comparing resource.parentFrame.id\n   against frameTarget.identifier. Those encode the same (frameID,\n   processID) pair in different formats -- the Network protocol uses\n   \"frame-\u003cprocess\u003e.\u003cframe\u003e\" (InspectorIdentifierRegistry::protocolFrameId)\n   while target identifiers use \"frame-\u003cframe\u003e-\u003cprocess\u003e\" (FrameInspectorTarget::toTargetID)\n   so they never match.\n\n   Replace the comparison with a semantic check that the resource's\n   parent frame is a direct child of the main frame.\n\n3. The abort case asserted the wrong thing and couldn't test the fail\n   path. It expected an aborted fetch to fire loadingFailed, but\n   aborting a fetch is reported as a finished load (I verified this\n   against the page target, which behaved the same with SI off,\n   because canceling a fetch doesn't cancel the underlying loader).\n\n   Fix this by triggering a genuine network-level failure (a fetch to a\n   dead port), which goes through SubresourceLoader::didFail and\n   exercises loadingFailed routing through ProxyingNetworkAgent, the\n   fail path the original test was reaching for.\n\nFiled bug 318836 as a follow-up to potentially add more test cases.\n\n* LayoutTests/http/tests/site-isolation/inspector/debugger/resources/site-isolation-debugger-test-utilities.js:\n(TestPage.registerInitializer.window.frameTargetForURLContaining.async frameTargetForURLContaining):\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-network-events-have-correct-frame-id-expected.txt:\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-network-events-have-correct-frame-id.html:\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-network-loading-finished-expected.txt:\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-network-loading-finished.html:\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-resource-appears-in-network-domain-expected.txt:\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-resource-appears-in-network-domain.html:\n* LayoutTests/http/tests/site-isolation/inspector/network/resources/iframe-with-abort.html: Removed.\n* LayoutTests/http/tests/site-isolation/inspector/network/resources/iframe-with-failed-fetch.html: Added.\n* LayoutTests/http/tests/site-isolation/inspector/network/resources/slow-response.py: Removed.\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316759@main",
      "email": "qianlangchen@apple.com",
      "hash": "b63b8ad3e3888a79049ca9bfdc75d7f1190fe70a",
      "subject": "[Site Isolation] Web Inspector: ProxyingNetworkAgent tests fail despite completed event-routing work"
    },
    "316760@main": {
      "author": "Antoine Quint",
      "avatar": "https://www.gravatar.com/avatar/9b3ef1e754f8d994f21ff67c660cbbe6?d=identicon\u0026s=64",
      "cl": "316760@main",
      "clUrl": "https://commits.webkit.org/316760@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315184\nrdar://177517946\n\nReviewed by Anne van Kesteren.\n\nThis function is unused, so we remove it.\n\n* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:\n(WebKit::RemoteLayerTreeDrawingAreaProxy::setDisplayLinkWantsFullSpeedUpdates): Deleted.\n* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.h:\n* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm:\n(WebKit::RemoteLayerTreeDrawingAreaProxyMac::setDisplayLinkWantsFullSpeedUpdates): Deleted.\n\nCanonical link: https://commits.webkit.org/316760@main",
      "email": "graouts@webkit.org",
      "hash": "b3a0db9e8501e64f4d690160008cdcf410d07b7c",
      "subject": "Remove `RemoteLayerTreeDrawingAreaProxy::setDisplayLinkWantsFullSpeedUpdates(bool)`"
    },
    "316761@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "316761@main",
      "clUrl": "https://commits.webkit.org/316761@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318769\nrdar://181625104\n\nReviewed by Pascoe.\n\nPreviously there was no way to point run-webkit-tests at the mac-asan\nCMake preset build (WebKitBuild/cmake-mac/ASan): the build-directory\nlogic only understood Debug/Release, so `--cmake` could never resolve\nthe sanitizer tree.\n\nAdd a standalone `--asan` option (usable with `--cmake`, and independent\nof --debug/--release) that resolves the build directory to\ncmake-mac/ASan and reports the test configuration as ASan so the right\nexpectations apply. The webkitdirs sanitizer state now also honors an\n`--asan`/`--tsan` argument, mirroring how `--cmake` is handled, in\naddition to the existing set-webkit-configuration marker file.\n\nXcode marker-file users are unaffected: the ASan directory redirect is\nscoped to the CMake branch, and marker detection is unchanged.\n\n* Tools/Scripts/webkit-build-directory:\n* Tools/Scripts/webkitdirs.pm:\n(determineASanIsEnabled):\n(determineTSanIsEnabled):\n(determineConfigurationProductDir):\n* Tools/Scripts/webkitpy/port/base.py:\n(Port.__init__):\n* Tools/Scripts/webkitpy/port/config.py:\n(Config.__init__):\n(Config.build_directory):\n(Config.asan):\n* Tools/Scripts/webkitpy/port/config_unittest.py:\n(ConfigTest.make_config):\n(ConfigTest.test_build_directory_passes_asan_flag):\n(ConfigTest.test_build_directory_passes_asan_flag.mock_run_command):\n(ConfigTest):\n(ConfigTest.test_asan_marker_without_flag_is_unchanged):\n(ConfigTest.test_asan_marker_without_flag_is_unchanged.mock_run_command):\n(ConfigTest.test_asan):\n* Tools/Scripts/webkitpy/port/factory.py:\n(configuration_options):\n\nCanonical link: https://commits.webkit.org/316761@main",
      "email": "zakr@apple.com",
      "hash": "8dbdbd31a3a708148947b21f68e2f72c2dd5e12e",
      "subject": "[CMake] Add --asan support to run-webkit-tests for ASan builds"
    },
    "316762@main": {
      "author": "Stephan Szabo",
      "avatar": "https://www.gravatar.com/avatar/6f85e18256dcd6717adc36241025cb51?d=identicon\u0026s=64",
      "cl": "316762@main",
      "clUrl": "https://commits.webkit.org/316762@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318880\n\nReviewed by Yusuke Suzuki.\n\nRemove the stub file and reference for building it.\nFunctions should now be available in dev SDKs for PlayStation.\n\n* Source/JavaScriptCore/PlatformPlayStation.cmake:\n* Source/JavaScriptCore/runtime/temporal/core/ICUCalendarStubs.cpp: Removed.\n\nCanonical link: https://commits.webkit.org/316762@main",
      "email": "stephan.szabo@sony.com",
      "hash": "1e6cdb5a88d5bc752543d25f203ed3f83e8ddb70",
      "subject": "Remove stubs for missing ICU functions on PlayStation"
    },
    "316763@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316763@main",
      "clUrl": "https://commits.webkit.org/316763@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318871\n\u003crdar://problem/181709802\u003e\n\nReviewed by Antti Koivisto.\n\nSubpixelInlineLayoutEnabled is enabled everywhere so the \"snap inline metrics\nto integers\" path it gated is dead code. Remove the setting along with the\nhelper functions that existed only to pick between the subpixel value and the\ninteger-snapped one, and inline the subpixel (non-snapping) branch at every call\nsite.\n\nNo change in behavior.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Remove SubpixelInlineLayoutEnabled.\n* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.h:\n* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp: Remove snapToInt, ascent, descent and SnapDirection.\n* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp:\n(WebCore::Layout::LineBox::logicalRectForTextRun):\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:\n(WebCore::Layout::primaryFontMetricsForInlineBox):\n(WebCore::Layout::layoutBoundstWithEdgeAdjustmentForInlineBox):\n(WebCore::Layout::textBoxAdjustedInlineBoxHeight):\n(WebCore::Layout::LineBoxBuilder::enclosingAscentDescentWithFallbackFonts):\n(WebCore::Layout::LineBoxBuilder::setLayoutBoundsForInlineBox):\n(WebCore::Layout::LineBoxBuilder::setVerticalPropertiesForInlineLevelBox):\n* Source/WebCore/layout/formattingContexts/inline/InlineQuirks.cpp:\n(WebCore::Layout::InlineQuirks::initialLetterAlignmentOffset):\n* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:\n* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp:\n* Source/WebCore/layout/integration/LayoutIntegrationBoxGeometryUpdater.cpp: Remove local snapToInt/ascent helpers.\n(WebCore::LayoutIntegration::fontMetricsBasedBaseline):\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::baselineForEmptyContent):\n* Source/WebCore/rendering/EllipsisBoxPainter.cpp:\n* Source/WebCore/rendering/RenderBlock.cpp:\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::lineHeightForEmptyContent):\n(WebCore::RenderBlockFlow::firstLineBaseline):\n(WebCore::RenderBlockFlow::lastLineBaseline):\n* Source/WebCore/rendering/RenderFileUploadControl.cpp:\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::firstLineBaseline):\n(WebCore::RenderFlexibleBox::lastLineBaseline):\n* Source/WebCore/rendering/RenderGrid.cpp:\n* Source/WebCore/rendering/RenderImage.cpp:\n* Source/WebCore/rendering/RenderListMarker.cpp: Remove local snap() helper and SnapDirection.\n(WebCore::RenderListMarker::layoutBoundForTextContent):\n* Source/WebCore/rendering/RenderTable.cpp:\n(WebCore::RenderTable::firstLineBaseline):\n(WebCore::RenderTable::lastLineBaseline):\n* Source/WebCore/rendering/TextBoxPainter.cpp: Remove local snap() helper.\n* Source/WebCore/rendering/TextPainter.cpp:\n* Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp:\n(WebCore::RenderMathMLBlock::firstLineBaseline):\n* Source/WebCore/rendering/mathml/RenderMathMLBlockInlines.h:\n(WebCore::RenderMathMLBlock::ascentForChild):\n* Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp:\n(WebCore::RenderMathMLFraction::firstLineBaseline):\n* Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp:\n(WebCore::RenderMathMLOperator::firstLineBaseline):\n* Source/WebCore/rendering/mathml/RenderMathMLRow.cpp:\n(WebCore::RenderMathMLRow::firstLineBaseline):\n* Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp:\n(WebCore::RenderMathMLScripts::firstLineBaseline):\n* Source/WebCore/rendering/mathml/RenderMathMLToken.cpp:\n* Source/WebCore/style/InlineTextBoxStyle.cpp: Remove local snap() helper.\n\nCanonical link: https://commits.webkit.org/316763@main",
      "email": "zalan@apple.com",
      "hash": "e0379cc1eaf93b9b3466541151867de7655d9e75",
      "subject": "[cleanup] Remove the subpixelInlineLayoutEnabled setting and integer-snapping helpers now that subpixel inline layout always enabled"
    },
    "316764@main": {
      "author": "Qianlang Chen",
      "avatar": "https://www.gravatar.com/avatar/0fd54e904334f604739d0205aa6e2130?d=identicon\u0026s=64",
      "cl": "316764@main",
      "clUrl": "https://commits.webkit.org/316764@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=310251\nrdar://172894304\n\nReviewed by BJ Burg.\n\nUnder Site Isolation, network events for cross-origin iframe\nresources are reported by FrameNetworkAgentProxy (WebProcess) to\nProxyingNetworkAgent (UIProcess), bypassing the legacy in-WebProcess\nInspectorNetworkAgent (which early-returns from enable() under SI).\nFrameNetworkAgentProxy::didFinishLoading was sending an empty\nsourceMappingURL, so source maps for stylesheets loaded inside\ncross-origin iframes did not auto-link in the Network tab.\n\nMirror the legacy ResourceUtilities::sourceMapURLForResource\nbehavior, which is CSS-only by design: script source maps flow\nthrough the Debugger domain (scriptParsed) and are unaffected here.\n\nBecause BackendResourceDataStore does not retain the\nResourceResponse, capture the SourceMap (then X-SourceMap) header\nwhen the response is received. At didFinishLoading, for stylesheets,\nuse that header value, falling back to a \"/*# sourceMappingURL=... */\"\ncomment in the decoded stylesheet text, and send the resolved URL in\nthe LoadingFinished IPC message. ProxyingNetworkAgent::loadingFinished\nand the frontend already forward and consume this value, so no\nUIProcess or frontend changes are needed.\n\nThe memory-cache path (Network.CachedResource.sourceMapURL via\nRequestServedFromMemoryCache) is not covered by this change. Tracking\nit as a follow-up in webkit.org/b/??????.\n\nTest: http/tests/site-isolation/inspector/network/cross-origin-iframe-network-source-map-url.html\n\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-network-source-map-url-expected.txt: Added.\n* LayoutTests/http/tests/site-isolation/inspector/network/cross-origin-iframe-network-source-map-url.html: Added.\n* LayoutTests/http/tests/site-isolation/inspector/network/resources/iframe-with-stylesheet.html: Added.\n* LayoutTests/http/tests/site-isolation/inspector/network/resources/stylesheet-with-inline-source-map.css: Added.\n(body):\n* LayoutTests/http/tests/site-isolation/inspector/network/resources/stylesheet-with-source-map-header.py: Added.\n* Source/WebKit/WebProcess/Inspector/BackendResourceDataStore.cpp:\n(WebKit::BackendResourceDataStore::responseReceived):\n* Source/WebKit/WebProcess/Inspector/BackendResourceDataStore.h:\n(WebKit::BackendResourceDataStore::ResourceData::setSourceMapURL):\n* Source/WebKit/WebProcess/Inspector/FrameNetworkAgentProxy.cpp:\n(WebKit::FrameNetworkAgentProxy::didFinishLoading):\n(WebKit::FrameNetworkAgentProxy::didLoadResourceFromMemoryCache):\n\nCanonical link: https://commits.webkit.org/316764@main",
      "email": "qianlangchen@apple.com",
      "hash": "7b30931aae73c8bbbff647740c7f66a97376b2e5",
      "subject": "Web Inspector: Site Isolation: Network domain sourceMappingURL forwarding"
    },
    "316765@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "316765@main",
      "clUrl": "https://commits.webkit.org/316765@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318910\nrdar://181743226\n\nUnreviewed test gardening\n\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316765@main",
      "email": "darbinyan@apple.com",
      "hash": "1622f216ceb33ee27a81660081b6a8951f8c3d38",
      "subject": "[Gardening]: REGRESSION(316670@main): [iOS macOS release] fast/css/getComputedStyle-font-variant-shorthand-crash.html is flaky crash"
    }
  },
  "date": "2026-07-08",
  "days": 1,
  "generatedAt": "2026-07-08T22:06:22Z",
  "markdown": "## Highlights\n- **Web Platform** JavaScriptCore now enables Temporal by default, making the modern date and time API available out of the box. [commit 316742@main](https://commits.webkit.org/316742@main)\n- **Web Platform** Close Watcher API and `dialog` `closedby` ship in stable, closing a long-running gap around explicit close handling. [commit 316680@main](https://commits.webkit.org/316680@main)\n- **Web Platform** CSS gains `if()` arbitrary substitution, a big step toward more expressive author-defined conditional values. [commit 316752@main](https://commits.webkit.org/316752@main)\n- **Web Platform** CSS style query ranges land, expanding container and conditional styling logic for component authors. [commit 316698@main](https://commits.webkit.org/316698@main)\n- **Web Platform** Animation triggers pick up `trigger-scope` parsing plus a dedicated runtime flag, moving the feature closer to testable end-to-end behavior. [commit 316757@main](https://commits.webkit.org/316757@main)\n- **DevTools** Web Inspector adds range mappings support for source maps, improving fidelity for modern transpilation and mapping workflows. [commit 316748@main](https://commits.webkit.org/316748@main)\n- **Perf** JavaScriptCore adds a megamorphic getter inline cache and sharper string specializations, continuing a steady push on common dynamic property and string paths. [commit 316687@main](https://commits.webkit.org/316687@main)\n- **Media** A regression that could permanently kill audio after mute and unmute is fixed. [commit 316719@main](https://commits.webkit.org/316719@main)\n- **Rendering** View transitions no longer render darkened content on wide-gamut iOS devices, fixing a visible quality regression in a high-profile UI feature. [commit 316715@main](https://commits.webkit.org/316715@main)\n- **Build** CMake-based Apple builds keep filling in major gaps, including AV1 on Cocoa and better sanitizer, sandbox, SDK, and framework support. [commit 316732@main](https://commits.webkit.org/316732@main)\n\n## What landed by area\n\n### CSS and layout\n- **Web Platform** CSS `if()` arbitrary substitution function is implemented. [commit 316752@main](https://commits.webkit.org/316752@main)\n- **Web Platform** CSS style query ranges are now supported. [commit 316698@main](https://commits.webkit.org/316698@main)\n- **Web Platform** `outline-offset: inset` lands in CSS UI. [commit 316677@main](https://commits.webkit.org/316677@main)\n- **Web Platform** `trigger-scope` parsing support lands for animation triggers. [commit 316757@main](https://commits.webkit.org/316757@main)\n- **Web Platform** Animation triggers get a dedicated `AnimationTriggersEnabled` flag. [commit 316710@main](https://commits.webkit.org/316710@main)\n- **Web Platform** Scroll animations now reset start time to current time when `play()` is called on a finite timeline. [commit 316745@main](https://commits.webkit.org/316745@main)\n- **Rendering** Function-scoped container queries use `SelectionMode::PseudoElement` where needed for CSS mixins work. [commit 316755@main](https://commits.webkit.org/316755@main)\n- **Rendering** Corner shape bevel support is implemented in `CornerShapeUtilities`. [commit 316722@main](https://commits.webkit.org/316722@main)\n- **Rendering** Grid layout clarifies min-content contributions when an item \"behaves as auto\". [commit 316697@main](https://commits.webkit.org/316697@main)\n- **Rendering** Dynamic marker attribute changes now repaint the old bounds of referencing elements correctly. [commit 316702@main](https://commits.webkit.org/316702@main)\n- **Refactor** The old subpixel inline layout setting and integer-snapping helpers are removed now that subpixel inline layout is always on. [commit 316763@main](https://commits.webkit.org/316763@main)\n- **Refactor** Flex lines are now represented as ranges over a stable flex item list. [commit 316730@main](https://commits.webkit.org/316730@main)\n- **Refactor** `RenderFlexibleBox::performFlexLayout` is split into named phases, which should make future flex work easier to reason about. [commit 316711@main](https://commits.webkit.org/316711@main)\n- **Refactor** `FlexLayoutItem` gets a flow-aware location and baseline group members move to index-based references. [commit 316754@main](https://commits.webkit.org/316754@main)\n- **Refactor** Baseline group state is simplified down to block-flow direction and baseline preference. [commit 316706@main](https://commits.webkit.org/316706@main)\n- **Refactor** Baseline-sharing group membership moves into `RenderFlexibleBox` instead of `BaselineGroup`. [commit 316689@main](https://commits.webkit.org/316689@main)\n- **Refactor** Stateless baseline helpers move into a dedicated `BaselineAlignment` struct. [commit 316676@main](https://commits.webkit.org/316676@main)\n- **Rendering** `measureTextInternal` no longer touches the font proxy before realization, fixing a timing-sensitive text metrics bug. [commit 316690@main](https://commits.webkit.org/316690@main)\n- **Rendering** Scrollbar margin overrides are removed from `RenderScrollbarPart::marginTop()`. [commit 316741@main](https://commits.webkit.org/316741@main)\n- **Rendering** A fuzzy expectation is loosened for the bevel WPT while corner-shape work settles. [commit 316699@main](https://commits.webkit.org/316699@main)\n\n### JavaScriptCore and Wasm\n- **Web Platform** Temporal is enabled by default in JavaScriptCore. [commit 316742@main](https://commits.webkit.org/316742@main)\n- **V8** Object property-name baselines are updated after enabling Temporal by default. [commit 316750@main](https://commits.webkit.org/316750@main)\n- **Perf** JavaScriptCore adds a `LoadMegamorphicGetter` inline cache. [commit 316687@main](https://commits.webkit.org/316687@main)\n- **Perf** `String#concat` now speculates on arguments using profiling data. [commit 316696@main](https://commits.webkit.org/316696@main)\n- **Perf** `String#replace` with a global RegExp and `'$'` substitutions now parses the replacement template only once. [commit 316694@main](https://commits.webkit.org/316694@main)\n- **Perf** `Air::Arg` is shrunk to 16 bytes. [commit 316691@main](https://commits.webkit.org/316691@main)\n- **DevTools** Wasm debugger stop-the-world participation switches from polling to `VMBlockingScope`. [commit 316724@main](https://commits.webkit.org/316724@main)\n- **Web Platform** Host time zone changes are now observed on ports that do not provide native time zone change notifications. [commit 316704@main](https://commits.webkit.org/316704@main)\n\n### Web Inspector, WebDriver and tooling\n- **DevTools** Web Inspector forwards `sourceMappingURL` through the Network domain under Site Isolation. [commit 316764@main](https://commits.webkit.org/316764@main)\n- **DevTools** Site Isolation test failures are fixed in `ProxyingNetworkAgent` after event routing work. [commit 316759@main](https://commits.webkit.org/316759@main)\n- **DevTools** Main-frame subresources stop disappearing from the Network panel under Site Isolation. [commit 316758@main](https://commits.webkit.org/316758@main)\n- **DevTools** Web Inspector adds support for the range mappings proposal in source maps. [commit 316748@main](https://commits.webkit.org/316748@main)\n- **DevTools** An incorrect assertion around available agents for the web-page target is fixed. [commit 316703@main](https://commits.webkit.org/316703@main)\n- **Web Platform** WebDriver BiDi implements `browsingContext.locateNodes` with CSS selector support. [commit 316749@main](https://commits.webkit.org/316749@main)\n- **Web Platform** WebDriver fixes element references after a tab switch or close. [commit 316739@main](https://commits.webkit.org/316739@main)\n- **Security** `WebPageProxy::setWindowFrame` now rejects out-of-range window rects. [commit 316679@main](https://commits.webkit.org/316679@main)\n- **Refactor** `git-webkit` routes revert and rollout commands through `git-webkit` when the feature flag is enabled. [commit 316743@main](https://commits.webkit.org/316743@main)\n- **Build** `git-webkit apply` lands for applying bug-attached patches directly from Bugzilla. [commit 316684@main](https://commits.webkit.org/316684@main)\n- **Refactor** `git-webkit pr` option stickiness gets follow-up consideration in tooling. [commit 316675@main](https://commits.webkit.org/316675@main)\n- **Build** build.webkit.org now allows Igalia WebServers as CORS origins. [commit 316707@main](https://commits.webkit.org/316707@main)\n\n### Site Isolation and navigation\n- **Web Platform** Navigation API WPTs are re-imported. [commit 316737@main](https://commits.webkit.org/316737@main)\n- **Web Platform** Subframe back and forward traversal no longer abandons local sibling frames after a `RemoteFrame` under Site Isolation. [commit 316726@main](https://commits.webkit.org/316726@main)\n- **Security** Frame trees are now prevented from diverging between the UI process and web processes under Site Isolation. [commit 316693@main](https://commits.webkit.org/316693@main)\n- **Web Platform** Main-frame Back no longer becomes a no-op after a cross-site iframe creates a back and forward entry. [commit 316688@main](https://commits.webkit.org/316688@main)\n- **UI** Focus traversal across frames is enabled in the Site Isolation API test on iOS. [commit 316695@main](https://commits.webkit.org/316695@main)\n- **UI** A flaky Site Isolation postMessage-with-message-ports timeout on macOS is groomed. [commit 316692@main](https://commits.webkit.org/316692@main)\n- **UI** Blur and focus events now dispatch only when the window is both active and focused. [commit 316735@main](https://commits.webkit.org/316735@main)\n\n### Media, graphics and platform rendering\n- **Media** A regression where mute and unmute could permanently lose audio is fixed. [commit 316719@main](https://commits.webkit.org/316719@main)\n- **Media** `RemoteMediaSessionManagerProxy::messageSenderConnection` gets a null check to avoid crashes. [commit 316744@main](https://commits.webkit.org/316744@main)\n- **Rendering** Wide-gamut iOS devices no longer darken content during view transitions. [commit 316715@main](https://commits.webkit.org/316715@main)\n- **GPU** WPE fixes broken Vivante super-tiled rendering with the Skia compositor. [commit 316716@main](https://commits.webkit.org/316716@main)\n- **UI** iOS gets better logging for AirPlay route selection. [commit 316728@main](https://commits.webkit.org/316728@main)\n- **Refactor** `RemoteLayerTreeDrawingAreaProxy::setDisplayLinkWantsFullSpeedUpdates(bool)` is removed. [commit 316760@main](https://commits.webkit.org/316760@main)\n- **Refactor** `CoordinatedBackingStoreProxy::Tile::position` is removed in CoordinatedGraphics cleanup. [commit 316705@main](https://commits.webkit.org/316705@main)\n- **Refactor** `SFrameUtils.h/.cpp` is removed. [commit 316708@main](https://commits.webkit.org/316708@main)\n- **Refactor** Media Source code switches from `Ref` and `RefPtr` construction to `protect()` patterns. [commit 316747@main](https://commits.webkit.org/316747@main)\n\n### Accessibility, extensions and API behavior\n- **A11y** Focused-node traversal now crosses iframe boundaries correctly with `ENABLE_LOCAL_FRAME`. [commit 316723@main](https://commits.webkit.org/316723@main)\n- **A11y** A crash affecting webkitgtk with Orca running is fixed. [commit 316720@main](https://commits.webkit.org/316720@main)\n- **Privacy** `WKWebExtensionController.Configuration.nonPersistent()` now uses a non-persistent datastore by default. [commit 316701@main](https://commits.webkit.org/316701@main)\n- **Refactor** Text extraction code moves out of `WKWebView.mm` into `WKWebView+TextExtraction.mm`. [commit 316714@main](https://commits.webkit.org/316714@main)\n- **Refactor** XML code switches from direct `Ref { }` construction to `protect()`. [commit 316700@main](https://commits.webkit.org/316700@main)\n- **Web Platform** WebDriver navigation completion callbacks now protect the session instance. [commit 316713@main](https://commits.webkit.org/316713@main)\n- **Networking** `WebPageProxy::executeEditCommand()` no longer asserts when the NetworkProcess connection is not established yet. [commit 316740@main](https://commits.webkit.org/316740@main)\n\n### Build, ports and infrastructure\n- **Build** `run-webkit-tests` gets `--asan` support for ASan builds in CMake setups. [commit 316761@main](https://commits.webkit.org/316761@main)\n- **Build** iOS CMake targets now use dynamic Swift availability macros everywhere. [commit 316756@main](https://commits.webkit.org/316756@main)\n- **Build** WebCore.framework regains its private module map in CMake builds. [commit 316734@main](https://commits.webkit.org/316734@main)\n- **Build** TestWebKitAPI CMake builds pick up the mac GamepadMappings sources and HID framework link. [commit 316733@main](https://commits.webkit.org/316733@main)\n- **Media** AV1 is enabled on Cocoa now that `dav1d` builds with CMake. [commit 316732@main](https://commits.webkit.org/316732@main)\n- **Build** Sandbox profiles are now preprocessed with the target SDK's `-isysroot`. [commit 316731@main](https://commits.webkit.org/316731@main)\n- **Build** WebKit.framework now weak-links the SDK stub libraries it needs. [commit 316729@main](https://commits.webkit.org/316729@main)\n- **Build** GenericTimeMixin-derived time classes now build correctly with Swift C++ interoperability. [commit 316725@main](https://commits.webkit.org/316725@main)\n- **Build** A follow-up lands for building WebKit headers into the correct API and SPI locations. [commit 316686@main](https://commits.webkit.org/316686@main)\n- **Build** ICU stubs for missing functions are removed on PlayStation. [commit 316762@main](https://commits.webkit.org/316762@main)\n- **Build** ANGLE no longer silently builds without `WebKitAdditions/ANGLEAllocProfile.h`. [commit 316674@main](https://commits.webkit.org/316674@main)\n- **Build** An internal macOS 26 build break after [bug 318826](https://bugs.webkit.org/show_bug.cgi?id=318826) is fixed. [commit 316661@main](https://commits.webkit.org/316661@main)\n- **UI** GTK and WPE improve platform media queries for reduced motion, high contrast, and dark theme. [commit 316709@main](https://commits.webkit.org/316709@main)\n- **UI** GTK and WPE hit testing now returns the topmost hit layer's event-listener region types. [commit 316712@main](https://commits.webkit.org/316712@main)\n\n### Test gardening and stability\n- **UI** A flaky crash in `getComputedStyle-font-variant-shorthand-crash.html` is groomed on iOS and macOS release bots. [commit 316765@main](https://commits.webkit.org/316765@main)\n- **UI** GLib test gardening lands. [commit 316753@main](https://commits.webkit.org/316753@main)\n- **Perf** The benchmark runner disables `ThrottleConsecutiveNoDamageMainFrames` for non-stable Chrome channels. [commit 316751@main](https://commits.webkit.org/316751@main)\n- **UI** iOS debug API tests in `IPCTestingAPI` are groomed after repeated failures. [commit 316746@main](https://commits.webkit.org/316746@main)\n- **GPU** Crashing WebGL tests on macOS x86_64 are groomed after a regression. [commit 316738@main](https://commits.webkit.org/316738@main)\n- **UI** iOS debug `WebKitLegacy` API test crashes are groomed. [commit 316736@main](https://commits.webkit.org/316736@main)\n- **UI** iOS debug `ContentRuleList` flaky API test timeouts are groomed. [commit 316727@main](https://commits.webkit.org/316727@main)\n- **UI** Windows layout test gardening lands. [commit 316721@main](https://commits.webkit.org/316721@main)\n- **Web Platform** Animation trigger WPT snapshots are updated. [commit 316717@main](https://commits.webkit.org/316717@main)\n- **UI** GLib layout test gardening lands. [commit 316685@main](https://commits.webkit.org/316685@main)\n- **Security** iOS WebAuthenticationPanel flaky timeout tests are groomed. [commit 316683@main](https://commits.webkit.org/316683@main)\n- **UI** WKWebExtension flaky timeout tests on macOS are groomed. [commit 316678@main](https://commits.webkit.org/316678@main)",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Unreviewed",
      "count": 2
    }
  ],
  "since": "2026-07-08",
  "totals": {
    "commits": 92,
    "features": 90,
    "rolls": 2
  },
  "until": "2026-07-08"
}