{
  "commits": {
    "030ddea158ff": {
      "author": "François Beaufort",
      "avatar": "https://www.gravatar.com/avatar/5518ddeb668d7ef7b8f5414179bf25f9?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[WebMCP] Expose RegisteredTool.inputSchema as an object\n\nThis CL updates the WebIDL definition for RegisteredTool.inputSchema\nfrom DOMString to object to align with the WebMCP specification:\nhttps://github.com/webmachinelearning/webmcp/pull/241\n\nIn Blink, JSONStringToScriptObject() is used in\nModelContext::OnGetScriptToolsCompleted() to parse the mojo string\ninto a ScriptObject when constructing the RegisteredTool results.\n\nWeb platform tests in external/wpt/webmcp/imperative/ are updated to\nexpect inputSchema as a JavaScript object rather than a serialized\nJSON string.\n\nBug: 489045948\nChange-Id: I7a28b36d725c85e24726708aecee4cd9f3cbb476\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8248081\nReviewed-by: Dominic Farolino \u003cdom@chromium.org\u003e\nCommit-Queue: Fr \u003cbeaufort.francois@gmail.com\u003e\nCr-Commit-Position: refs/heads/main@{#1682945}\n\n--\n\nwpt-commits: 9ef2de86389e3f388578fe5fc599c979078c6667\nwpt-pr: 62078",
      "email": "beaufort.francois@gmail.com",
      "hash": "030ddea158ff4c15987caad60ff196669e4e0ba6",
      "subject": "Bug 2065114 [wpt PR 62078] - [WebMCP] Expose RegisteredTool.inputSchema as an object, a=testonly"
    },
    "0d499da5b09b": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 4719d85550de8f70e38a4c6c4a848577d5816631.",
      "email": "smolnar@mozilla.com",
      "hash": "0d499da5b09b226a9a23c4183bc25769063fc98b",
      "subject": "Revert \"Bug 2066044 - [devtools] - Add preference to simulate devtools transport slowdown r=devtools-reviewers,ochameau\" for causing multiple failures"
    },
    "1108919954fd": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 792302c4c00fc076fc770ee131fa7ae2348b858e.",
      "email": "smolnar@mozilla.com",
      "hash": "1108919954fd4e2cdbee75439972dd2caa139448",
      "subject": "Revert \"Bug 2042433 - fixes clippy warnings in netwerk/base/uritemplate_glue/src/lib.rs r=sylvestre,necko-reviewers,valentin\" for causing build bustages"
    },
    "14771328edfd": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321841 (#62047)\n--\n\nwpt-commits: fd61784ae90ced44c3e161c987e3feaed99fa64b\nwpt-pr: 62047",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "14771328edfdbab322acc9ddb2b4416c347f3854",
      "subject": "Bug 2064697 [wpt PR 62047] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321841, a=testonly"
    },
    "19449c894c05": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62096\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "19449c894c05f8c2e21651b243b1a9d518ae50df",
      "subject": "Bug 2065391 [wpt PR 62096] - Update wpt metadata, a=testonly"
    },
    "2062e46b5b65": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=313374 (#62105)\n--\n\nwpt-commits: 0ff01d5278b01a4250e3f8550c15fde732d8808b\nwpt-pr: 62105",
      "email": "karlcow@apple.com",
      "hash": "2062e46b5b6541db4775d85144a7a23a699f7978",
      "subject": "Bug 2065442 [wpt PR 62105] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=313374, a=testonly"
    },
    "2331d6e63243": {
      "author": "Mason Freed",
      "avatar": "https://www.gravatar.com/avatar/406c7252554037aa604837a0ac3ce90d?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nMaintain interest invoker state when focus moves into iframe popover\n\nWhen an interest invoker invokes an `\u003ciframe popover\u003e`, moving focus\ninto the iframe's content document caused the invoker to lose focus\n(because the iframe content document now has focus). This triggered a\nloseinterest task that closed the popover.\n\nThis CL addresses the issue by:\n1. Enabling AllSourceInterestInvokersRecursive and\n   Element::HandleInterestForHoverOrFocus to traverse across document\n   boundaries via Document::LocalOwner().\n2. Handling bubbling focusin and focusout events at the child\n   Document::DefaultEventHandler and forwarding them to the local frame\n   owner element.\n3. Handling focus changes into and out of cross-origin (remote) frames\n   in FocusController::SetFocusedFrame.\n\nFixed: 534893151\nChange-Id: Ib8fb5a7fc11c7397b7c120e1fc45feb267f96a67\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264990\nAuto-Submit: Mason Freed \u003cmasonf@chromium.org\u003e\nReviewed-by: Joey Arhar \u003cjarhar@chromium.org\u003e\nCommit-Queue: Mason Freed \u003cmasonf@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683588}\n\n--\n\nwpt-commits: b47a7e305aca81844444ce5557a1517943c4e5b7\nwpt-pr: 62072",
      "email": "masonf@chromium.org",
      "hash": "2331d6e63243724acd3433aeebc6f89e43576958",
      "subject": "Bug 2064951 [wpt PR 62072] - Maintain interest invoker state when focus moves into iframe popover, a=testonly"
    },
    "275556c72c47": {
      "author": "Blink WPT Bot",
      "avatar": "https://www.gravatar.com/avatar/d77b4df70801b9c02df3e36bfdb4e131?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[animation-trigger] Deflake scroll-animations/animation-trigger WPT tests (#61145)\n\nThe `animation-trigger-*.html` web platform tests were flaky due to race\nconditions with scrolling events and unresolved promises. Example\nfailure:\nhttps://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20Tests%20(dbg)(1)/132298/overview\n\nThis CL fixes the flakiness by:\n1. Updating runAndWaitForFrameUpdate in testcommon.js to correctly await\n   the inner callbacks, ensuring that the test runner waits for promises\n   (such as scrollend) when they are returned by the callback.\n2. Returning early in setScrollTop if the scroller is already at the\n   target position, preventing timeouts waiting for a scrollend event\n   that will never fire.\n3. Updating the reset() functions in the tentative tests to return the\n   scroll reset promise, ensuring that the test runner awaits it before\n   proceeding with the test assertions.\n\nBug: 390314945\nChange-Id: I7e3a520d57551fe6b5ffbec3087de2893b84cdd8\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8027206\nReviewed-by: David A \u003cawogbemila@chromium.org\u003e\nReviewed-by: Kevin Ellis \u003ckevers@chromium.org\u003e\nCommit-Queue: Yao Xiao \u003cyaoxia@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1659043}\n\nCo-authored-by: Yao Xiao \u003cyaoxia@chromium.org\u003e\n--\n\nwpt-commits: 2de43edf07ce217f2287fbddd87e7d3d427beff0\nwpt-pr: 61145",
      "email": "blink-w3c-test-autoroller@chromium.org",
      "hash": "275556c72c4750a24956e7bbe0e79ecdb60f3201",
      "subject": "Bug 2053620 [wpt PR 61145] - [animation-trigger] Deflake scroll-animations/animation-trigger WPT tests, a=testonly"
    },
    "2f442a5f8454": {
      "author": "Daniel Huigens",
      "avatar": "https://www.gravatar.com/avatar/4099f8bb925d9984db91f131d00755d2?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[WebCryptoAPI] Add tests for [EnforceRange] WebIDL attribute (#62086)\n\nThe `[EnforceRange]` attribute of the `length` parameter of `deriveBits`\nwas added in https://github.com/w3c/webcrypto/pull/555.\n\nThe `[EnforceRange]` attribute of the `length` and `modulusLength`\nproperties of the `{Aes,Hmac,Rsa}KeyGenParams` dictionaries was\nalready there.\n\nThis change adds tests for both.\n--\n\nwpt-commits: b5af458bb2e817310239e66447c7055ce835f570\nwpt-pr: 62086",
      "email": "d.huigens@protonmail.com",
      "hash": "2f442a5f84549b7423fd482ff61347346688c509",
      "subject": "Bug 2065266 [wpt PR 62086] - [WebCryptoAPI] Add tests for [EnforceRange] WebIDL attribute, a=testonly"
    },
    "2fc9386658ca": {
      "author": "Norisz Fay",
      "avatar": "https://www.gravatar.com/avatar/e060837184d7bb06925d038b8c16a828?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 0148e1873fe6e9df962316cf1504117a343264a1.",
      "email": "nfay@mozilla.com",
      "hash": "2fc9386658cac617bc9b28b515799efff4ecb264",
      "subject": "Revert \"Bug 2052424 - Fix sidebar animation by removing no-longer-needed nova animation branch. r=jsudiaman\" for causing bc failures @ browser_glean_sidebar.js"
    },
    "2fe0439b14c5": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62031\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "2fe0439b14c5606c73151bcf4fc456dddab625a7",
      "subject": "Bug 2064599 [wpt PR 62031] - Update wpt metadata, a=testonly"
    },
    "31d3e3e58130": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62051\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "31d3e3e5813074cdba64a0efcb81fd187c690896",
      "subject": "Bug 2064813 [wpt PR 62051] - Update wpt metadata, a=testonly"
    },
    "31df762511e4": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 7151b667600bee259d865503b196c233c5393773.",
      "email": "smolnar@mozilla.com",
      "hash": "31df762511e4012c8bd04a60182ac31027a3bbe6",
      "subject": "Revert \"Bug 2066115 - Stop mirroring some https related telemetry probes r=freddyb\" for causing telemetry probe failures"
    },
    "32138c28a1f4": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62045\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "32138c28a1f4741ff0ac3322e804cfeb75375a6a",
      "subject": "Bug 2064690 [wpt PR 62045] - Update wpt metadata, a=testonly"
    },
    "338d2440f9e5": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62115\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "338d2440f9e5ddcb53fe1399500ecd6932674cea",
      "subject": "Bug 2065664 [wpt PR 62115] - Update wpt metadata, a=testonly"
    },
    "3618630b127a": {
      "author": "Jochen Kühner",
      "avatar": "https://www.gravatar.com/avatar/684d81c72e1de1451ab3f80547d6797d?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nUse layout geometry for GeometryUtils coordinate mapping\n\nGeometryMapper relies on retained paint property trees. A transform-only\nstyle change can leave a direct transform update pending without marking\nthose trees dirty, allowing GeometryUtils to return stale coordinates.\n\nDo not update paint-property state from a synchronous geometry query.\nUse LayoutObject coordinate mapping for all conversions instead. Keep\ngeometry reads on layout-derived data that has already been made\ncurrent. This also removes the separate eligibility and fragmentation\nchecks needed by the retained-property fast path.\n\nAn official-build interleaved geometry benchmark shows no measurable\nregression after removing GeometryMapper. Add WPT coverage for a\ntransform update made after prepaint.\n\nBug: 427918516\n\nChange-Id: I7724c2137258f0774b25b352ff235f5e09907301\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8224423\nReviewed-by: Philip Rogers \u003cpdr@chromium.org\u003e\nCommit-Queue: Philip Rogers \u003cpdr@chromium.org\u003e\nReviewed-by: Stefan Zager \u003cszager@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682688}\n\n--\n\nwpt-commits: 389fb4a891fb53e493c1c81fa58bd7136d358e21\nwpt-pr: 62071",
      "email": "jochen.kuehner@gmx.de",
      "hash": "3618630b127a937f8fab7b8987cb879f2af1d432",
      "subject": "Bug 2064928 [wpt PR 62071] - Use layout geometry for GeometryUtils coordinate mapping, a=testonly"
    },
    "37bdceca821d": {
      "author": "Silaghi",
      "avatar": "https://www.gravatar.com/avatar/81acf29bb88b2a0ded61f47b93c59dea?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 42823af0750b6f352dcd1b21ef4984079eeafc88.",
      "email": "asilaghi@mozilla.com",
      "hash": "37bdceca821d0dcf80798112057a54b14feb41d3",
      "subject": "Revert \"Bug 2063354 - upgrade NSS to 6ca13d99c4a3517d84a0b68a7a7132821d3e0591. r=nss-reviewers,keeler UPGRADE_NSS_RELEASE\" for causing build bustages"
    },
    "3d7b1c77f0ec": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321107 (#62034)\n--\n\nwpt-commits: ca3a5b7ba6a27a5915b06d5f329fd88f47cb2b53\nwpt-pr: 62034",
      "email": "yulun_wu@apple.com",
      "hash": "3d7b1c77f0ec53220bc4c4f706ccad0a1b27534c",
      "subject": "Bug 2064614 [wpt PR 62034] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321107, a=testonly"
    },
    "3e8de4777df4": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 954209af30ff7288247488b0d49abdbae3005a37.",
      "email": "smolnar@mozilla.com",
      "hash": "3e8de4777df48ecddac561c2e63ce7f5e47f7978",
      "subject": "Revert \"Bug 2066150 - Remove legacy security telemetry probes r=freddyb\" for causing telemetry probe failures"
    },
    "3f4f6c339175": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321861 (#61978)\n--\n\nwpt-commits: 4ade42c6cc5c2e94cc7966315915ee327e4e9c1b\nwpt-pr: 61978",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "3f4f6c3391759b06a06efecea7f9d073218c24d4",
      "subject": "Bug 2063941 [wpt PR 61978] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321861, a=testonly"
    },
    "4900d0eb6acc": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit de5536321cddf4ac4803188280e00cfe8b700080.",
      "email": "smolnar@mozilla.com",
      "hash": "4900d0eb6accf0f93c1e00b84966138d617f72ae",
      "subject": "Revert \"Bug 2065957 - Harden AppleVTEncoder state machine to avoid edge case pitfalls. r=media-playback-reviewers,alwu\" for causing build bustages @ MFTEncoder.cpp"
    },
    "4926a72caa25": {
      "author": "Morten Stenshorne",
      "avatar": "https://www.gravatar.com/avatar/6a5a39a0242480619d19faedc954ee44?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[RouteMatching] Consume whitespace after url-pattern() / url() token.\n\nIt was already passing for --dashed-ident and *unquoted* url(), but made\nthe --dashed-ident test more evil to cover this anyway.\n\nBug: 436805487\nChange-Id: Ia8c5117675dfca87d2882a6fbae61f5254308057\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8275313\nCommit-Queue: Morten Stenshorne \u003cmstensho@chromium.org\u003e\nReviewed-by: Rune Lillesveen \u003cfuthark@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1684044}\n\n--\n\nwpt-commits: 2fd7f68bea229b5d138234ee52a36903787273b2\nwpt-pr: 62117",
      "email": "mstensho@chromium.org",
      "hash": "4926a72caa25ef04b0af44a0e655a9a857c5be7d",
      "subject": "Bug 2065662 [wpt PR 62117] - [RouteMatching] Consume whitespace after url-pattern() / url() token., a=testonly"
    },
    "49823bfc6092": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62026\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "49823bfc60925c97ddac5686a3a5c13c05f6da72",
      "subject": "Bug 2064566 [wpt PR 62026] - Update wpt metadata, a=testonly"
    },
    "49b1ce0de79b": {
      "author": "Blink WPT Bot",
      "avatar": "https://www.gravatar.com/avatar/d77b4df70801b9c02df3e36bfdb4e131?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nFix access to storage from out-of-process shared workers. (#61470)\n\nhttps://crrev.com/c/7894258 added a ChildProcessSecurityPolicy check\nwhich had the unintended consequence of blocking certain shared workers\nfrom accessing OPFS. This was because shared workers do not commit their\norigin and if the worker is the only thing in that process, it will have\nno committed origin.\n\nThis adds a call to AddCommittedOrigin to SharedWorkerServiceImpl::CreateWorker.\n\nIt also adds SharedWorker capabilities to Remote Context Helper.\n\nTAG=agy\nCONV=340ac3cb-b9c1-4e26-8f74-1dc0aceec103\n\nFixed: 517484284,528332884\nChange-Id: Ic5787f7278ccd161275ab32585ac98a516fda16f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8097788\nReviewed-by: Alex Moshchuk \u003calexmos@chromium.org\u003e\nCommit-Queue: Fergal Daly \u003cfergal@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1666063}\n\nCo-authored-by: Fergal Daly \u003cfergal@chromium.org\u003e\n--\n\nwpt-commits: f07c4ff475cbb5fe0f45e2dc76501581d5b6cd96\nwpt-pr: 61470",
      "email": "blink-w3c-test-autoroller@chromium.org",
      "hash": "49b1ce0de79bcd35875f781ecfba64ac01610e89",
      "subject": "Bug 2056755 [wpt PR 61470] - Fix access to storage from out-of-process shared workers., a=testonly"
    },
    "4abc0680f53b": {
      "author": "Rune Lillesveen",
      "avatar": "https://www.gravatar.com/avatar/86c4c70f416054e8ea553cdb2a9f20df?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nAdd fuzziness to corner-shape tests\n\nTo make them pass in Blink\n\nBug: 546241037\nChange-Id: Icce8fa1993e9bbafadb6de50d872129e5ce40a00\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8267609\nCommit-Queue: Rune Lillesveen \u003cfuthark@chromium.org\u003e\nReviewed-by: Morten Stenshorne \u003cmstensho@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682109}\n\n--\n\nwpt-commits: 370aa394aacad5d4cafefbc7f59690486fc0a494\nwpt-pr: 62050",
      "email": "futhark@chromium.org",
      "hash": "4abc0680f53be55d4fe29d50f0656c85a169727d",
      "subject": "Bug 2064684 [wpt PR 62050] - Add fuzziness to corner-shape tests, a=testonly"
    },
    "4ac667578d99": {
      "author": "Keith Cirkel",
      "avatar": "https://www.gravatar.com/avatar/87a4065b580b6f1e43858ab49d98c109?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nsanitizer-api: Add edge cases for template elements (#62064)\n--\n\nwpt-commits: 4e0e5989466b0e1b6f62c809bdd25abbd546207d\nwpt-pr: 62064",
      "email": "keithamus@users.noreply.github.com",
      "hash": "4ac667578d99b6e3702f732858d32cb4242e01f3",
      "subject": "Bug 2064837 [wpt PR 62064] - sanitizer-api: Add edge cases for template elements, a=testonly"
    },
    "4d88cf88f0eb": {
      "author": "Lando",
      "avatar": "https://www.gravatar.com/avatar/e3fc5c639ea50123800e4b7471f88787?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "# ignore-this-changeset",
      "email": "lando@lando.moz.tools",
      "hash": "4d88cf88f0eb315e49fea86c2c8c45696add1fe7",
      "subject": "Bug 2066172: apply code formatting via Lando"
    },
    "528bb8501a42": {
      "author": "Noam Rosenthal",
      "avatar": "https://www.gravatar.com/avatar/6005f21e6cc2bfcb8f9aa1680b2d93a5?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nHTML: out-of-order streaming tests\n\nMove them away from tentative and add additional coverage.\n\nSee https://github.com/whatwg/html/pull/11818\n\nCo-authored-by: Anne van Kesteren \u003cannevk@annevk.nl\u003e\n--\n\nwpt-commits: e67be0304ca038e34c594e544f66b00f38eb2934\nwpt-pr: 61156",
      "email": "noamr@users.noreply.github.com",
      "hash": "528bb8501a42589a7dac8cb1664f5f9ea7388b36",
      "subject": "Bug 2053639 [wpt PR 61156] - Un-tentative out of order streaming tests, a=testonly"
    },
    "585af71c6ee9": {
      "author": "Stephanie Zhang",
      "avatar": "https://www.gravatar.com/avatar/9fbb89978c93802443181fa0921a8de5?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[css-mixins] Expose CSSPrivateRule to the CSSOM (2/N)\n\nThis CL expands on CL:8228248, which parses @private into a\nStyleRulePrivate object. It exposes that parsed rule to the CSSOM as a\nCSSPrivateRule (behind the CSSPrivate flag): the rule serializes back to\nits serialized form via cssText, and can be read from and inserted into\na style rule's cssRules. @private is still inert for style resolution\nand hygienic-rewrites will be done in a followup CL.\n\nhttps://github.com/w3c/csswg-drafts/issues/14004#issuecomment-5189637234\n\nLow-Coverage-Reason: COVERAGE_UNDERREPORTED\nChange-Id: I86447c620f65f46d326f075691f36770b08923de\nBug: 542651959\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8222046\nReviewed-by: Kurt Catti-Schmidt \u003ckschmi@microsoft.com\u003e\nCommit-Queue: Stephanie Zhang \u003cstephanie.zhang@microsoft.com\u003e\nReviewed-by: Rune Lillesveen \u003cfuthark@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1684048}\n\n--\n\nwpt-commits: b05b1b737e0f82d387fdc798b58b3aa85d4981bd\nwpt-pr: 62108",
      "email": "stephanie.zhang@microsoft.com",
      "hash": "585af71c6ee943fa00b402b2c54c91a44f9ad1ad",
      "subject": "Bug 2065647 [wpt PR 62108] - [css-mixins] Expose CSSPrivateRule to the CSSOM (2/N), a=testonly"
    },
    "597c0251797f": {
      "author": "Kurt Catti-Schmidt",
      "avatar": "https://www.gravatar.com/avatar/4e73604413b7f80d09a5e47e5bbc18f9?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[css] Fix cascade after adopted stylesheet reorder\n\nThis change fixes an existing rule invalidation bug when stylesheets are\nreordered. CompareActiveStyleSheets tracks insertions, removals, and\nrule changes, but does not preserve enough ordering information to\nidentify reordered sheets. This change adds detection for this scenario\nby sorting each array separately, instead of merging them and then\nsorting, which loses information about relative positions.\n\nA WPT is added that demonstrates this issue and passes with this change.\nThe WPT passes in Firefox but fails 10 sub-cases in Chromium with stale\nvalues without these fixes applied.\n\nBug: 545636895\nChange-Id: Ie085c229a2d0601f8cd7e5c00ab0d2620e4ac20d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8237191\nCommit-Queue: Kurt Catti-Schmidt \u003ckschmi@microsoft.com\u003e\nReviewed-by: Anders Hartvoll Ruud \u003candruud@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682323}\n\n--\n\nwpt-commits: 5567af02257fc3395879b579dcc3e1f746b9ced8\nwpt-pr: 62052",
      "email": "kschmi@microsoft.com",
      "hash": "597c0251797f0b91f48eaf2c2447d220bdc9a02a",
      "subject": "Bug 2064841 [wpt PR 62052] - [css] Fix cascade after adopted stylesheet reorder, a=testonly"
    },
    "5e1bacefc7ca": {
      "author": "Javier Contreras Tenorio",
      "avatar": "https://www.gravatar.com/avatar/658b99b5d4e8ccf9f3d976f302a55428?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[masonry] Make grid-axis rules be blocked by spanners\n\nRecord each lane entry's unique placement ID during the existing\n`CrossGap` walk. For each `MainGap`, merge the sorted `CrossGap` runs\nfrom its adjacent lanes and compare the entry IDs for every resulting\nsegment.\n\nWe store the blocked ranges using `GapSegmentStateRanges`, the same way\nthat the other containers do this. Then we reuse the same linear segment\nwalker during paint to generate intersection offsets.\n\nSome WPT ref files required changes, due to recent resolutions reached\nby the CSSWG https://github.com/w3c/csswg-drafts/issues/14153 to reflect\nper-lane stacking-axis gutters.\n\nWe add more WPT coverage including for rule-break: intersection and\nnone.\n\nWe are explicitly deferring `overlap-join` grid lanes implementation\nas a follow up\n\nBug: 343257585\nChange-Id: Ia2d917fb4d1ff109564a50dc60e687797ec9e301\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8261939\nReviewed-by: Kurt Catti-Schmidt \u003ckschmi@microsoft.com\u003e\nCommit-Queue: Javier Contreras \u003cjaviercon@microsoft.com\u003e\nCr-Commit-Position: refs/heads/main@{#1682509}\n\n--\n\nwpt-commits: 42160a82d609269df70fece4f63ba0815fd90d97\nwpt-pr: 62068",
      "email": "javiercon@microsoft.com",
      "hash": "5e1bacefc7ca8397b280027d26b80827d8fd9d25",
      "subject": "Bug 2064905 [wpt PR 62068] - [masonry] Make grid-axis rules be blocked by spanners, a=testonly"
    },
    "5ea5e725b201": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62060\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "5ea5e725b20146269d5c35f6686fcc34374d62bb",
      "subject": "Bug 2064825 [wpt PR 62060] - Update wpt metadata, a=testonly"
    },
    "600bd2128b2b": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 6b91c2f68c21b920507fb9ef5e0606dbb0766e7e.",
      "email": "smolnar@mozilla.com",
      "hash": "600bd2128b2ba435b9698ec8b61394aa27c7c93f",
      "subject": "Revert \"Bug 1764233. Enable scroll wheel acceleration on mac on nightly builds. r=mstange\" for causing wpt/wr failures on mac"
    },
    "618dfed6907c": {
      "author": "Luke Warlow",
      "avatar": "https://www.gravatar.com/avatar/262b456ff1e93842b93f9694d1e01a9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=320556 (#62065)\n--\n\nwpt-commits: b4f204893431214b6abe15e41934413c68098ae2\nwpt-pr: 62065",
      "email": "lwarlow@igalia.com",
      "hash": "618dfed6907c8bd028c3d3b4332e56f04d8ba453",
      "subject": "Bug 2064889 [wpt PR 62065] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=320556, a=testonly"
    },
    "6207718cc3b0": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62086\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "6207718cc3b0e681cd97d7fd76026783a2ed2bf7",
      "subject": "Bug 2065266 [wpt PR 62086] - Update wpt metadata, a=testonly"
    },
    "66ccf4ebdaa5": {
      "author": "Keith Cirkel",
      "avatar": "https://www.gravatar.com/avatar/87a4065b580b6f1e43858ab49d98c109?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nsanitizer-api: Add edge cases around namespace sanitization (#62063)\n--\n\nwpt-commits: a7afc9f5013ac24b915df6c87bd4756c6879997a\nwpt-pr: 62063",
      "email": "keithamus@users.noreply.github.com",
      "hash": "66ccf4ebdaa51b0762fb14568b648bddd37a9d7c",
      "subject": "Bug 2064834 [wpt PR 62063] - sanitizer-api: Add edge cases around namespace sanitization, a=testonly"
    },
    "687ab95aeaa5": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 61308\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "687ab95aeaa583c4a939c0c90011959a8dcdc6fe",
      "subject": "Bug 2055199 [wpt PR 61308] - Update wpt metadata, a=testonly"
    },
    "699152e97f8e": {
      "author": "Keith Cirkel",
      "avatar": "https://www.gravatar.com/avatar/87a4065b580b6f1e43858ab49d98c109?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nsanitizer-api: Add edge cases around case folding \u0026 case normalisation (#62079)\n\n* sanitizer-api: Add edge cases around case folding \u0026 case normalisation\n\n* add spec links\n--\n\nwpt-commits: c3131ef3c38290f8851c69cd494afa715b784270\nwpt-pr: 62079",
      "email": "keithamus@users.noreply.github.com",
      "hash": "699152e97f8ee5f95fc4535a6c3659a4c7ac770e",
      "subject": "Bug 2065144 [wpt PR 62079] - sanitizer-api: Add edge cases around case folding \u0026 case normalisation, a=testonly"
    },
    "6b276c053c41": {
      "author": "Shubham Gupta",
      "avatar": "https://www.gravatar.com/avatar/227f72db2cd413da71e6572072020c42?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nUpdate Expectations\n\nSigned-off-by: Shubham Gupta \u003cshubhamg13.work@gmail.com\u003e\n\n--\n\nwpt-commits: 6d04ba0c8fe40387c263a40f9ee7c2c5a9499f3f\nwpt-pr: 62041",
      "email": "shubhamg13.work@gmail.com",
      "hash": "6b276c053c41f41414c43ea506e894aa1d342cd7",
      "subject": "Bug 2064685 [wpt PR 62041] - layout: Implement bits of mark_paint_timing, a=testonly"
    },
    "6bb56ccc7e84": {
      "author": "moonira",
      "avatar": "https://www.gravatar.com/avatar/e45b63edc31447e411bbc325ad7b8a9f?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nSupport random() values in if() style() condition\n\nproperty-scoped and element-scoped random() values in if() style\ncondition should behave the same as if defined in other css property.\nFor property-index-scoped, if random() is evaluated within an arb-sub\nfunction as part of substitution (rather than as the substitution value\nitself), e.g. if() condition, for caching we use index of random()\nacross all arb-subs in the property, in parse order.\n\nBug: 522304655, 413385732\nChange-Id: I2eb9d0c77793f84de00f454d2a4c811252a8dc00\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8255320\nReviewed-by: Anders Hartvoll Ruud \u003candruud@chromium.org\u003e\nCommit-Queue: Munira Tursunova \u003cmoonira@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1683771}\n\n--\n\nwpt-commits: e68a4b9c4b6a6dffa5a74881d6f4f119ddcfda51\nwpt-pr: 62109",
      "email": "moonira@google.com",
      "hash": "6bb56ccc7e84364cc6fd5d557ba4a59730029059",
      "subject": "Bug 2065494 [wpt PR 62109] - Support random() values in if() style() condition, a=testonly"
    },
    "6c9af4cddec9": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit dbc1de358ad2dfc87edf00b8db4c8866825e33a2.",
      "email": "smolnar@mozilla.com",
      "hash": "6c9af4cddec9582c510e6d7f320828d3abba3100",
      "subject": "Revert \"Bug 2065956 - Harden WMF encoding state machines to avoid edge case pitfalls. r=media-playback-reviewers,alwu\" for causing build bustages @ MFTEncoder.cpp"
    },
    "6ebb629385e0": {
      "author": "Stephen McGruer",
      "avatar": "https://www.gravatar.com/avatar/db636b32e5a256c925f0631a02859e01?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[payment-method-manifest] Remove dynamic test ID from failure message (#62083)\n\nThis was causing flake in Chrome test infra, since the failure message\nwould change on each run.\n--\n\nwpt-commits: db80bd24a77f1b5f8ba40a5b320dec3720a37c8d\nwpt-pr: 62083",
      "email": "smcgruer@chromium.org",
      "hash": "6ebb629385e0fb2460b3d731c4f90cf4e2a4c0a0",
      "subject": "Bug 2065162 [wpt PR 62083] - [payment-method-manifest] Remove dynamic test ID from failure message, a=testonly"
    },
    "72073ecdf68d": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nFix css/css-values/calc-in-media-queries-with-mixed-units.html (#62090)\n\nThe media query in mixed-units-09.html did not match the description in the test\nand did not compute to 10px. This updates the media query in mixed-units-09.html\nto match the description.\n--\n\nwpt-commits: 4c9bca64d9254cd2af05d43d69cf71fab49f9d92\nwpt-pr: 62090",
      "email": "sam@webkit.org",
      "hash": "72073ecdf68d83e8f5e0533c5e7d52f76a043991",
      "subject": "Bug 2065367 [wpt PR 62090] - Fix css/css-values/calc-in-media-queries-with-mixed-units.html, a=testonly"
    },
    "72991154bd50": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=320438 (#62048)\n--\n\nwpt-commits: 69538df1b7f90a732f35c13530804664d3e86f46\nwpt-pr: 62048",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "72991154bd5061973cfbfcd423685ee020abff13",
      "subject": "Bug 2064710 [wpt PR 62048] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=320438, a=testonly"
    },
    "7696d52b9ac8": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62044\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "7696d52b9ac8a8e15ff5e93b929205170779ebcf",
      "subject": "Bug 2064687 [wpt PR 62044] - Update wpt metadata, a=testonly"
    },
    "7753f31b2b5a": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62113\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "7753f31b2b5a79a6e3b3b1c8cb78b8ed5789d93c",
      "subject": "Bug 2065650 [wpt PR 62113] - Update wpt metadata, a=testonly"
    },
    "7830c5793c02": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 06dfa2cf965afeb3a74db61c6c72b943c18130cf.\n\nRevert \"Bug 2059620 - Pt 2 - Only run the app-unit round trip on an axis the scroll offset moves r=gfx-reviewers,nical\"\n\nThis reverts commit d71cf58127ffd4f1a28806dfb113ad0284c220ea.\n\nRevert \"Bug 2059620 - Pt 1 - Move the unsnapped prim rect back into the interning key and template r=gfx-reviewers,nical\"\n\nThis reverts commit 2d1438376db385d273082f81b9cfd22ba65bc712.",
      "email": "smolnar@mozilla.com",
      "hash": "7830c5793c0215a95c3e0e3d7f5da2bf71a7c190",
      "subject": "Revert \"Bug 2059620 - Pt 3 - Compute an over-thick border's interior split once r=gfx-reviewers,nical\" for causing WR test failures"
    },
    "7976b628a754": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=317427 (#62049)\n--\n\nwpt-commits: e7da74f21625ad49b50afd616b53a6d7c07dbc32\nwpt-pr: 62049",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "7976b628a754176de0a923c3ef435bf374e75e1c",
      "subject": "Bug 2064700 [wpt PR 62049] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=317427, a=testonly"
    },
    "7e0c8006bfbb": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62047\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "7e0c8006bfbb371ff8b87c732f07997e3c73d903",
      "subject": "Bug 2064697 [wpt PR 62047] - Update wpt metadata, a=testonly"
    },
    "8309eb8265b4": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 6b91c2f68c21b920507fb9ef5e0606dbb0766e7e.",
      "email": "smolnar@mozilla.com",
      "hash": "8309eb8265b478255a3545c8dd99273bb959cdaf",
      "subject": "Revert \"Bug 1764233. Enable scroll wheel acceleration on mac on nightly builds. r=mstange\" for causing wpt/wr failures on mac"
    },
    "834fe264aec8": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62072\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "834fe264aec80b704beba1a995f34a083820ea7a",
      "subject": "Bug 2064951 [wpt PR 62072] - Update wpt metadata, a=testonly"
    },
    "8548897f4ca4": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62068\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "8548897f4ca42ce19ad188e2fe3a4c3f8d003f48",
      "subject": "Bug 2064905 [wpt PR 62068] - Update wpt metadata, a=testonly"
    },
    "85cbab040723": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321113\n\n--\n\nwpt-commits: 6c7127bdd9f2cc6a3668fd9791757843e09d5a9e\nwpt-pr: 62035",
      "email": "yulun_wu@apple.com",
      "hash": "85cbab0407232a6b9e29d1582974473eb108eb1f",
      "subject": "Bug 2064618 [wpt PR 62035] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321113, a=testonly"
    },
    "87662995efd4": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 840db7ebcba1b1b40c61343c02ceb543988c642d.",
      "email": "smolnar@mozilla.com",
      "hash": "87662995efd4966d1464f2bf616f67e65e4c0c5c",
      "subject": "Revert \"Bug 2061357 - Add tab selector dialog to when clicking the Smart Form Fill autocomplete row edit button r=mlucks,fluent-reviewers,flod\" for causing bc failures @ browser_smartformfill_tab_selector.js"
    },
    "883a06a8da88": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62091\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "883a06a8da8882ea195db4cc8897ee9f1cbe9426",
      "subject": "Bug 2065370 [wpt PR 62091] - Update wpt metadata, a=testonly"
    },
    "8d6e444c0eba": {
      "author": "Vladimir Levin",
      "avatar": "https://www.gravatar.com/avatar/01463b79267e978f737e2ff54f030268?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nvt: Don't painthold while pre-rendering\n\nIf we do paint holding while pre-rendering then when the pre-render\nis actually activated, we assume becaues the paint holding is already\nrunning that we should just force it to show the first frame\n(and stop the paint holding). This breaks view transitions to\npre-rendering pages.\n\nR=rakina@chromium.org\n\nBug: 538634442\nChange-Id: I2e8a209fb268e4c41c605ab017b9814d0753714b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8265713\nCommit-Queue: Vladimir Levin \u003cvmpstr@chromium.org\u003e\nReviewed-by: Rakina Zata Amni \u003crakina@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683158}\n\n--\n\nwpt-commits: c1c2d1db27ab8cdca85e53262e591a79eee03e5c\nwpt-pr: 62075",
      "email": "vmpstr@chromium.org",
      "hash": "8d6e444c0eba915def8d7cf90a4b1ad62c14e514",
      "subject": "Bug 2064997 [wpt PR 62075] - vt: Don't painthold while pre-rendering, a=testonly"
    },
    "8e46e733fd62": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 308ae3ea26727b0161581cc5824204f8692c2d76.",
      "email": "smolnar@mozilla.com",
      "hash": "8e46e733fd62fdd7b973c550f9e8c5f7c1cadcf5",
      "subject": "Revert \"Bug 2055837 - mozinfo: derive apple_silicon from the target processor. r=sergesanspaille\" on request."
    },
    "91613ab000fd": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 4de2e3957bbd780cfe7028e4eb266cebbf6a9145.",
      "email": "smolnar@mozilla.com",
      "hash": "91613ab000fd3b3cfa7100ffb8f8784bd0f0203c",
      "subject": "Revert \"Bug 2042426 - fixed clippy warnings in dom/base/fragmentdirectives/lib.rs r=sylvestre\" for causing build bustages"
    },
    "946a231015a5": {
      "author": "Marcos Cáceres",
      "avatar": "https://www.gravatar.com/avatar/3ddc62295867cc82c0e270827f72d903?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[digital-credentials] Test CSP sandbox header propagates opacity to nested frames (#61308)\n\nget-opaque-origin-combinations.https.html already covers the iframe `sandbox`\nattribute propagating an opaque origin to descendant frames, but it only covers a\n`Content-Security-Policy: sandbox` header at the top of a subtree (the header'd\ndocument itself). Add two cases showing the CSP header's opacity also propagates\nacross a nesting boundary, so navigator.credentials.get() from a deeper frame\nrejects with SecurityError:\n\n- a plain child nested inside a CSP: sandbox document, and\n- an allow-same-origin child, which must not be able to escape the propagated\n  opacity.\n\nPer HTML, a document's CSP-derived sandboxing flags are unioned into its active\nsandboxing flag set, which in turn feeds a child browsing context's creation\nsandboxing flags, so the sandboxed origin flag reaches descendants exactly as the\nattribute does.\n--\n\nwpt-commits: f12a2f2b30ffd4e5ce1c5893e97e64af3c4675ba\nwpt-pr: 61308",
      "email": "caceres_m@apple.com",
      "hash": "946a231015a5feaa1ff5a816a98ed28461caf7f9",
      "subject": "Bug 2055199 [wpt PR 61308] - [digital-credentials] Test CSP sandbox header propagates opacity to nested frames, a=testonly"
    },
    "98921e441e09": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62109\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "98921e441e09ef041598a62d72f9b74f3e5c8ed5",
      "subject": "Bug 2065494 [wpt PR 62109] - Update wpt metadata, a=testonly"
    },
    "9fe074309fc6": {
      "author": "Norisz Fay",
      "avatar": "https://www.gravatar.com/avatar/e060837184d7bb06925d038b8c16a828?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit d6932e8bd90c9257926fb8a8853b033abbaea7b7.",
      "email": "nfay@mozilla.com",
      "hash": "9fe074309fc6aec20a0418fa0ab0fe21691711a6",
      "subject": "Revert \"Bug 2041980 - Move ASRouter tests off CFR message templates. r=omc-reviewers,andhuang\" for causing lint failure @ browser_asrouter_infobar.js"
    },
    "D151485": {
      "author": "Timothy Nikkel",
      "avatar": "https://www.gravatar.com/avatar/0646a42110a02dd585f200f270716852?d=identicon\u0026s=64",
      "cl": "D151485",
      "clUrl": "https://phabricator.services.mozilla.com/D151485",
      "description": "Values come from https://bugzilla.mozilla.org/show_bug.cgi?id=1764233#c12 which I also tested and they feel about the same as Chrome.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D151485",
      "email": "tnikkel@gmail.com",
      "hash": "6b91c2f68c21b920507fb9ef5e0606dbb0766e7e",
      "subject": "Bug 1764233. Enable scroll wheel acceleration on mac on nightly builds. r=mstange"
    },
    "D289084": {
      "author": "Jonathan Almeida",
      "avatar": "https://www.gravatar.com/avatar/43bd8c798ab733bdc7985023ffdd2331?d=identicon\u0026s=64",
      "cl": "D289084",
      "clUrl": "https://phabricator.services.mozilla.com/D289084",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D289084",
      "email": "jonalmeida942@gmail.com",
      "hash": "ddb9bb409495c9712a6c53f94051d0bb40bb92e1",
      "subject": "Bug 2014026 - Include private flag in ShareData r=Roger,markh,android-reviewers"
    },
    "D289085": {
      "author": "Jonathan Almeida",
      "avatar": "https://www.gravatar.com/avatar/43bd8c798ab733bdc7985023ffdd2331?d=identicon\u0026s=64",
      "cl": "D289085",
      "clUrl": "https://phabricator.services.mozilla.com/D289085",
      "description": "The test added was more verbose than they needed to be because of\nwhere the static functions were location, so I took this opportunity\nto clean that up, which also meant cleaning up the other two tests\nas well.\n\nI'm also open to abandoning this patch for this bug.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D289085",
      "email": "jonalmeida942@gmail.com",
      "hash": "990335c1d14e4a0aba2dbd52817bd84208788168",
      "subject": "Bug 2014026 - Simplify the tests for ShareTab#toTabData r=Roger,markh,android-reviewers"
    },
    "D300104": {
      "author": "Alex Hochheiden",
      "avatar": "https://www.gravatar.com/avatar/d543df9ea6c80e41387222577084eec1?d=identicon\u0026s=64",
      "cl": "D300104",
      "clUrl": "https://phabricator.services.mozilla.com/D300104",
      "description": "Also stop suppressing stderr in `toolchains.py` so the\nerror message is actually visible on the build path.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D300104",
      "email": "ahochheiden@mozilla.com",
      "hash": "6971df0263510189e7908d0b10dd67038d8282a7",
      "subject": "Bug 2038655 - Exit early when the jj workspace is stale r=ahal,sfink"
    },
    "D308865": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D308865",
      "clUrl": "https://phabricator.services.mozilla.com/D308865",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308865",
      "email": "alwu@mozilla.com",
      "hash": "8e717dd7e6dddc685d93a9b56718deaf5b2d8e45",
      "subject": "Bug 2045774 - Add a gtest for video picture-region handling. r=media-playback-reviewers,chunmin"
    },
    "D310971": {
      "author": "Masayuki Nakano",
      "avatar": "https://www.gravatar.com/avatar/900caab146bc7a489b3854cf10acf93f?d=identicon\u0026s=64",
      "cl": "D310971",
      "clUrl": "https://phabricator.services.mozilla.com/D310971",
      "description": "This patch does not fix the methods in xslt and content sink because\nthey require a lot of `MOZ_CAN_RUN_SCRIPT` but I think most of them\ndo not make sense because working in a specific period.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D310971",
      "email": "masayuki@d-toybox.com",
      "hash": "976be8097ea1c793c2d65ed5438afd90471f6883",
      "subject": "Bug 1625902 - part 1: Mark `nsContentUtils::Dispatch*Event` as `MOZ_CAN_RUN_SCRIPT` except for chrome r=smaug,dom-core-reviewers,geckoview-reviewers,media-playback-reviewers,win-reviewers,padenot,handyman,m_kato"
    },
    "D310972": {
      "author": "Masayuki Nakano",
      "avatar": "https://www.gravatar.com/avatar/900caab146bc7a489b3854cf10acf93f?d=identicon\u0026s=64",
      "cl": "D310972",
      "clUrl": "https://phabricator.services.mozilla.com/D310972",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D310972",
      "email": "masayuki@d-toybox.com",
      "hash": "1645f3d8648605c442c7f7d8a58d7d238ca20b5e",
      "subject": "Bug 1625902 - part 2: Mark `nsContentUtils::Dispatch*Event` for chrome as `MOZ_CAN_RUN_SCRIPT` r=smaug,dom-core-reviewers,win-reviewers,layout-reviewers,emilio,handyman"
    },
    "D311669": {
      "author": "Masayuki Nakano",
      "avatar": "https://www.gravatar.com/avatar/900caab146bc7a489b3854cf10acf93f?d=identicon\u0026s=64",
      "cl": "D311669",
      "clUrl": "https://phabricator.services.mozilla.com/D311669",
      "description": "The `Document` parameter is used only for creating the DOM event.\nTherefore, it does not need to be held by the caller. However, using\n`MOZ_KnownLive` may lead misunderstanding of the developers. Therefore,\nwe should hide the `MOZ_KnownLive` into the overloads if the event\ntarget can access the document quickly.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D311669",
      "email": "masayuki@d-toybox.com",
      "hash": "01df2c4f8fa1b7f9aa91b0add2daf6d54fcb75c2",
      "subject": "Bug 1625902 - part 3: Make some overloads of `nsContentUtils::Dispatch*Event` r=smaug,layout-reviewers,emilio"
    },
    "D311670": {
      "author": "Masayuki Nakano",
      "avatar": "https://www.gravatar.com/avatar/900caab146bc7a489b3854cf10acf93f?d=identicon\u0026s=64",
      "cl": "D311670",
      "clUrl": "https://phabricator.services.mozilla.com/D311670",
      "description": "They may dispatch `UAWidgetSetupOrChange` or `UAWidgetTeardown` chrome\nevent to notify the UA widget of creation or destruction. That's\nrequired to the layout and making the UA widget start working. This\nis important especially when the call is caused by JS. Then, the next\nline may require the new UA widget. Therefore, we cannot make them\nuse `NS_DispatchToCurrentThread` because it may run too late for JS.\n\nOn the other hand, they are called during `BindToTree()`,\n`UnbindFromTree()` and `nsCSSFrameConstructor` working. In these cases,\nrunning script is blocked. Therefore, their `AddScriptRunner` dispatches\nthe chrome events asynchronously but before returning to the JS world.\n\nTo avoid to mark them as `MOZ_CAN_RUN_SCRIPT` and `BindToTree()`,\n`UnbindFromTree()` and `nsCSSFrameConstructor` methods as\n`MOZ_CAN_RUN_SCRIPT_BOUNDARY`, they should always dispatch chrome events\nasynchronously. Therefore, they will assert that they are called when\nscript is blocked and this patch adds some callers put\n`nsAutoScriptBlocker` or `mozAutoDocUpdate`.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D311670",
      "email": "masayuki@d-toybox.com",
      "hash": "ca0029c572b9ee09ee98a8eb1918345fe34a7bb0",
      "subject": "Bug 1625902 - part 4: Make dispatcher of the chrome event of initializing/finalizing UA shadow require a script blocker r=smaug,emilio,layout-reviewers"
    },
    "D311968": {
      "author": "Dana Keeler",
      "avatar": "https://www.gravatar.com/avatar/72636a193847f1a9c45521d07eb0dc6e?d=identicon\u0026s=64",
      "cl": "D311968",
      "clUrl": "https://phabricator.services.mozilla.com/D311968",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D311968",
      "email": "dkeeler@mozilla.com",
      "hash": "7ff6b346b7e3aa7005722ca3c2355b8f2b2ab769",
      "subject": "Bug 1992340 - only include named FFDHE key shares if FFDHE ciphersuites are enabled r=jschanck"
    },
    "D312246": {
      "author": "Makoto Kato",
      "avatar": "https://www.gravatar.com/avatar/1875645d5594d36bca29657d51d24ed6?d=identicon\u0026s=64",
      "cl": "D312246",
      "clUrl": "https://phabricator.services.mozilla.com/D312246",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312246",
      "email": "m_kato@ga2.so-net.ne.jp",
      "hash": "e8a4922ff2a88ad13b8dbd6b382ca7039fe200af",
      "subject": "Bug 2047339. r=geckoview-reviewers,nika,ipc-reviewers"
    },
    "D313520": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D313520",
      "clUrl": "https://phabricator.services.mozilla.com/D313520",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313520",
      "email": "alwu@mozilla.com",
      "hash": "b29010c5ce1e75b80f7eabd8f75dace8c001e912",
      "subject": "Bug 2055674 - Add a gtest for encoding a muted video chunk with a large intrinsic size. r=media-playback-reviewers,chunmin"
    },
    "D313807": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D313807",
      "clUrl": "https://phabricator.services.mozilla.com/D313807",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313807",
      "email": "alwu@mozilla.com",
      "hash": "02d5cff4efae2669532fc235debd5b7df6946bb2",
      "subject": "Bug 2055697 - Add test for media load-error message redaction across a redirect. r=media-playback-reviewers,azebrowski"
    },
    "D313812": {
      "author": "Jon Oliver",
      "avatar": "https://www.gravatar.com/avatar/2ceb46c1e98ede12e718f2bdc966aa45?d=identicon\u0026s=64",
      "cl": "D313812",
      "clUrl": "https://phabricator.services.mozilla.com/D313812",
      "description": "Always use --toolbar-field-* for the findbar textbox and drop the :root[lwtheme] color override.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313812",
      "email": "jooliver@mozilla.com",
      "hash": "42771c647101e19b9875f4efa2189805eda8da10",
      "subject": "Bug 2061906 - Update findbar styles for lightweight theme colors r=desktop-theme-reviewers,mstriemer"
    },
    "D314082": {
      "author": "yazan",
      "avatar": "https://www.gravatar.com/avatar/245b769556bb6cfddcaf1e7bcf95ef9a?d=identicon\u0026s=64",
      "cl": "D314082",
      "clUrl": "https://phabricator.services.mozilla.com/D314082",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314082",
      "email": "yalmacki@mozilla.com",
      "hash": "6d17e0cd5888d56c9e4627058dbf106633732275",
      "subject": "Bug 1911881 - Fix force-shown feature tour not advancing screens when message is blocked. r=omc-reviewers,aminomancer"
    },
    "D314157": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D314157",
      "clUrl": "https://phabricator.services.mozilla.com/D314157",
      "description": "cc-csc is already detected by the credit card heuristics so that credit card\nsections parse correctly, but it was special-cased out of the autofill\npipeline: shouldAutofillField() returned false for it, which both blocked\nfilling and kept the field out of the autocomplete popup, since\nsearchAutoCompleteEntries() calls the same gate.\n\nPut that early-return behind extensions.formautofill.creditCards.cvv.enabled\n(default false) so cc-csc can participate like any other credit card field,\nand mask the security code everywhere it would otherwise become visible:\n\n- The autocomplete entry is named after the field (\"CVC\") and identified by\n  the card's masked number. _getSecondaryLabel() returns the number\n  unconditionally for cc-csc rather than requiring a matching field in the\n  form, because a form asking for the security code on its own has no other\n  card field to build a secondary label from and the number is the only thing\n  that keeps the entries distinguishable.\n- preparePreviewProfile() replaces the value with mask characters, mirroring\n  the existing cc-number preview masking. The real value is still filled on\n  selection.\n\nWith the pref off nothing changes: shouldAutofillField() still returns false\nfor cc-csc, so searchAutoCompleteEntries() never returns entries for a focused\nsecurity code field and the labelling above is unreachable. That gate is the\nonly place the pref is consulted.\n\nStoring the security code is out of scope here: cc-csc is still absent from\nVALID_CREDIT_CARD_FIELDS and is still skipped when building a record to save,\nso this only takes effect for a record that already carries one.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314157",
      "email": "mtigley@mozilla.com",
      "hash": "8f1f08a923984b7fcf9a75152a42678c664489f8",
      "subject": "Bug 2061785 - Allow regular heuristics to run on CVC fields. r=dimi,fluent-reviewers,flod"
    },
    "D314474": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D314474",
      "clUrl": "https://phabricator.services.mozilla.com/D314474",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314474",
      "email": "alwu@mozilla.com",
      "hash": "1cb29dddfe5edb8bd9954effd81063c64b701a22",
      "subject": "Bug 2057995 - Add a gtest for image conversion with an undersized source surface. r=media-playback-reviewers,padenot"
    },
    "D314491": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D314491",
      "clUrl": "https://phabricator.services.mozilla.com/D314491",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314491",
      "email": "alwu@mozilla.com",
      "hash": "1853874e4f7906c8a0107b1a6ace9f36e0802ac0",
      "subject": "Bug 2045380 - Add a test for encoder input frame dimension validation. r=media-playback-reviewers,padenot"
    },
    "D315510": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D315510",
      "clUrl": "https://phabricator.services.mozilla.com/D315510",
      "description": "Reverts the move onto PrimitiveInstance from the fractional snapping work, which\nturned out not to be needed, and gets us closer to dropping PrimitiveInstance in\nfavour of template plus draw instance(s).\n\nSafe because the display-list builder normalizes the external scroll offset away\nin whole app units, so the rect does not change when the scroll position does.\nThat has to stay exact: unlike the quarter-device-pixel raster corners beside it,\na uid compare during invalidation is bit-exact.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D315510",
      "email": "git@chillybin.org",
      "hash": "2d1438376db385d273082f81b9cfd22ba65bc712",
      "subject": "Bug 2059620 - Pt 1 - Move the unsnapped prim rect back into the interning key and template r=gfx-reviewers,nical"
    },
    "D315609": {
      "author": "SaaSha Pina",
      "avatar": "https://www.gravatar.com/avatar/c1beffa8d8d4b3e6fc992f1faad14eeb?d=identicon\u0026s=64",
      "cl": "D315609",
      "clUrl": "https://phabricator.services.mozilla.com/D315609",
      "description": "Forward the mapped title property to the inner focusable input/button so tooltips and accessible descriptions reach the control, matching moz-button.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D315609",
      "email": "saasha@heysparkbox.com",
      "hash": "f5bc0ed7a240755066a5834a3f0be2d1cb3da7d5",
      "subject": "Bug 2053124 - Map title onto inner controls in MozBaseInputElement subclasses. r=akulyk,Mardak"
    },
    "D316051": {
      "author": "Anna Kulyk",
      "avatar": "https://www.gravatar.com/avatar/2c28c953ecebb4b478e4cd8e21ab56ff?d=identicon\u0026s=64",
      "cl": "D316051",
      "clUrl": "https://phabricator.services.mozilla.com/D316051",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D316051",
      "email": "akulyk@mozilla.com",
      "hash": "e3774cc138cb4a8a33a20060a01d00f3048dadd3",
      "subject": "Bug 2059843 - Update input styles on New profile and Edit profile pages r=desktop-theme-reviewers,mstriemer,jhirsch"
    },
    "D316256": {
      "author": "Abhishek Nimalan",
      "avatar": "https://www.gravatar.com/avatar/4b859193ac792339821ab9af4d538267?d=identicon\u0026s=64",
      "cl": "D316256",
      "clUrl": "https://phabricator.services.mozilla.com/D316256",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D316256",
      "email": "abhisheknimalan@gmail.com",
      "hash": "5f45cf291ff4177ad7d42b10ef26470fa0e93d5d",
      "subject": "Bug 1998767 - Symbolicate Mochitest and XPCshell profiles. r=taskgraph-reviewers,bhearsum,sparky,canova,ahal"
    },
    "D316372": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D316372",
      "clUrl": "https://phabricator.services.mozilla.com/D316372",
      "description": "The zero-offset skip was per point, so a y-only scroll offset still rounded x\nonto the app-unit grid: the same unshifted coordinate stored one value in an\nunscrolled frame and another in a scrolled one. That is below the quarter-device-\npixel raster corners, but a uid compare is bit-exact, so with the rect in the key\nevery tile invalidated at every scroll offset.\n\nGecko's coordinates are whole app units, so the round trip was already\nbit-identical for them and nothing changes there. Guarded by offgrid_repaint_1/2.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D316372",
      "email": "git@chillybin.org",
      "hash": "d71cf58127ffd4f1a28806dfb113ad0284c220ea",
      "subject": "Bug 2059620 - Pt 2 - Only run the app-unit round trip on an axis the scroll offset moves r=gfx-reviewers,nical"
    },
    "D316373": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D316373",
      "clUrl": "https://phabricator.services.mozilla.com/D316373",
      "description": "A rounded fill drawn as an over-thick border - how the non-native theme draws\nscrollbar thumbs, see ThemeDrawing::PaintRoundedRectWithRadius and bug 1694269 -\nis four corner segments with no edges, each clipped to its own quadrant and\nmeeting at the rect's midpoint. The clips spelled that midpoint two ways: min\nplus the leading non-overlapping width for one neighbour, max minus the trailing\none for the other. Equal mathematically, one ULP apart in f32.\n\nEach segment rounds its device bounds on its non-antialiased edges, and the\nshared quadrant edge is non-antialiased for both, so at a half-pixel midpoint the\nULP sends the two roundings opposite ways - 253.49998 to 253, 253.5 to 254 - and\na whole device pixel row drops out of the shape. Evaluate each split once, and\nonly where the widths overlap: elsewhere the two expressions are genuinely\ndifferent boundaries.\n\nThe reftest reference is a PNG because two yamls of the same shape at the same\ndevice position intern to one uid with identical raster corners, so the second\nrender reuses the first one's tile and the comparison passes vacuously.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D316373",
      "email": "git@chillybin.org",
      "hash": "06dfa2cf965afeb3a74db61c6c72b943c18130cf",
      "subject": "Bug 2059620 - Pt 3 - Compute an over-thick border's interior split once r=gfx-reviewers,nical"
    },
    "D316410": {
      "author": "Jack Brown",
      "avatar": "https://www.gravatar.com/avatar/9390fad805dd5d2471db8ce47f8d239d?d=identicon\u0026s=64",
      "cl": "D316410",
      "clUrl": "https://phabricator.services.mozilla.com/D316410",
      "description": "The newtab page already recorded a single boolean saying \"the user scrolled more than 50px during this session\" (see bug [[ https://bugzilla.mozilla.org/show_bug.cgi?id=2049897 | 2049897 ]]).\n\nThis patch adds two more, for 100px and 250px.\n\nThe page now tells the parent process when the user crosses one of those distances, the parent remembers the deepest one reached per newtab session, and it writes all three booleans into the newtab ping just before that ping is submitted at session end.\n\nMoving the recording to session end has two consequences worth knowing when reviewing: the metrics now report an explicit false when a threshold wasn't reached instead of just being absent, and a scroll is credited to the tab it actually happened in rather than to whichever tab's ping happened to be submitted next.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D316410",
      "email": "jbrown@mozilla.com",
      "hash": "cc8991aeb0e4a6e455959c69d1b295bda497a2e0",
      "subject": "Bug 2060343 - Add newtab.scroll100 and newtab.scroll250 boolean metrics to the newtab ping - r=fchasen"
    },
    "D316516": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D316516",
      "clUrl": "https://phabricator.services.mozilla.com/D316516",
      "description": "The mots export renders meta.url verbatim into docs/mots/index.md. Since\nthat export switched from reStructuredText to Markdown, a bare URL is no\nlonger turned into a link by the parser, so the URL column of every module\nrendered as plain text. Wrapping the values in \u003c\u003e makes them autolinks\nagain.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D316516",
      "email": "sylvestre@debian.org",
      "hash": "9f5d54a1961404151536657af0e0733f28d5e1d9",
      "subject": "Bug 2060810 - mots.yaml: module URLs are not clickable in the exported documentation r=zeid"
    },
    "D316517": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D316517",
      "clUrl": "https://phabricator.services.mozilla.com/D316517",
      "description": "Several review groups listed in the reviews documentation had no\nreview_group entry in mots.yaml, so tools that map a path to its reviewer\ngroup (Phabricator's reviewer selector, mach file-info reviewers) had\nnothing to suggest for those modules. Add the groups whose documented\nownership names the module or its path:\n\n  Core: Build Config              firefox-build-system-reviewers\n  Core: Firefox Source Doc.       firefox-source-docs-reviewers\n  Core: I18N Library              platform-i18n-reviewers\n  Tabbed Browser                  tabbrowser-reviewers\n  UI Widgets                      reusable-components-reviewers\n  Mozbase                         mozbase\n  Remote Protocol                 webdriver-reviewers\n  geckodriver                     webdriver-reviewers\n  Marionette Client \u0026 Harness     webdriver-reviewers\n\nDifferential Revision: https://phabricator.services.mozilla.com/D316517",
      "email": "sylvestre@debian.org",
      "hash": "99d6dfa3f393a3a678667fbc7625fbec58faf4f2",
      "subject": "Bug 2060811 - mots.yaml: add the review groups documented in docs/contributing/reviews.md r=shtrom"
    },
    "D316732": {
      "author": "elkal98",
      "avatar": "https://www.gravatar.com/avatar/1a61bfcc43ac59847a61d90806011fa2?d=identicon\u0026s=64",
      "cl": "D316732",
      "clUrl": "https://phabricator.services.mozilla.com/D316732",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D316732",
      "email": "khalid.alhaddad98@gmail.com",
      "hash": "31d2cf1564f54aaae2c0548e233060bcd3c9a4c1",
      "subject": "Bug 2060460 - Add depth counter and stack of frames to handle nested pauses in moz:debugging. r=jdescottes"
    },
    "D316851": {
      "author": "Anna Kulyk",
      "avatar": "https://www.gravatar.com/avatar/2c28c953ecebb4b478e4cd8e21ab56ff?d=identicon\u0026s=64",
      "cl": "D316851",
      "clUrl": "https://phabricator.services.mozilla.com/D316851",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D316851",
      "email": "akulyk@mozilla.com",
      "hash": "7ffa79ce8017972c0f4967863c46db9e4e996d45",
      "subject": "Bug 2050132 - Replace the segmented buttons in the print dialog with moz-segmented-control r=fluent-reviewers,desktop-theme-reviewers,flod,mstriemer"
    },
    "D316906": {
      "author": "fmasalha",
      "avatar": "https://www.gravatar.com/avatar/02500fde5854e7c728e2c05a7f23750f?d=identicon\u0026s=64",
      "cl": "D316906",
      "clUrl": "https://phabricator.services.mozilla.com/D316906",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D316906",
      "email": "fmasalha@mozilla.com",
      "hash": "7ffb0dbbb0aaf9f7ac5f78f907f70a56e98750a6",
      "subject": "Bug 2061457 - Added more address capture telemetry inline with other prompts r=android-reviewers,matt-tighe"
    },
    "D316914": {
      "author": "Jack Brown",
      "avatar": "https://www.gravatar.com/avatar/9390fad805dd5d2471db8ce47f8d239d?d=identicon\u0026s=64",
      "cl": "D316914",
      "clUrl": "https://phabricator.services.mozilla.com/D316914",
      "description": "This fixes a visual bug in the focus state of the bottom buttons on the sidebar.\n\nThe buttons sit flush against the top edge of a container that clips anything painted outside it, so the focus indicator, which paints 4px beyond the button's edge, gets clipped at the top.\n\nExtending that container's clip rect fixes it without moving anything, although because `overflow: clip` is not a scroll container the way `overflow: hidden` is, the list also needs an explicit `min-height: 0` so it can still shrink away and leave just the chevron when the launcher is collapsed\n\nDifferential Revision: https://phabricator.services.mozilla.com/D316914",
      "email": "jbrown@mozilla.com",
      "hash": "886011a1ee79468aba8a999a9d9dec193af86f37",
      "subject": "Bug 2049659 - Don't clip the focus indicator on the sidebar launcher's buttons - r=desktop-theme-reviewers,sfoster"
    },
    "D317075": {
      "author": "Nicholas Poon",
      "avatar": "https://www.gravatar.com/avatar/de8191595cff0507f38ca784b6613551?d=identicon\u0026s=64",
      "cl": "D317075",
      "clUrl": "https://phabricator.services.mozilla.com/D317075",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317075",
      "email": "npoon@mozilla.com",
      "hash": "b1eb45b5e54f27ee4e0857a914856bfc5877336c",
      "subject": "Bug 2055510 - Preload all popular sites before opening add shortcut bottom sheet r=android-reviewers,skhan"
    },
    "D317241": {
      "author": "Omar Gonzalez",
      "avatar": "https://www.gravatar.com/avatar/177d9c601741c3356478bd66495030f9?d=identicon\u0026s=64",
      "cl": "D317241",
      "clUrl": "https://phabricator.services.mozilla.com/D317241",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317241",
      "email": "s9tpepper@apache.org",
      "hash": "840db7ebcba1b1b40c61343c02ceb543988c642d",
      "subject": "Bug 2061357 - Add tab selector dialog to when clicking the Smart Form Fill autocomplete row edit button r=mlucks,fluent-reviewers,flod"
    },
    "D317244": {
      "author": "Dan Mehic",
      "avatar": "https://www.gravatar.com/avatar/35f749b40d5be33dba6b8a826ad95151?d=identicon\u0026s=64",
      "cl": "D317244",
      "clUrl": "https://phabricator.services.mozilla.com/D317244",
      "description": "Only the Legacy Telemetry mirror is removed. The Glean metric\ncontentblocking.cookie_behavior is left in place, so what Firefox collects is\nunchanged. StartupTelemetry.contentBlocking() already records exclusively\nthrough Glean, so no instrumentation changes are needed.\n\nBoth sides of the mirror have to go in the same commit: test_mirrors.py asserts\nevery telemetry_mirror resolves to an existing probe, and also that every\nhistogram in Histograms.json has a mirroring metric, so removing either side\nalone fails.\n\nNo test asserted on the legacy histogram, so unlike the other probes in this\nseries there is nothing to convert to Glean here.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D317244",
      "email": "dmehic@mozilla.com",
      "hash": "8e4dfa6f978b962b947cfc7dc8012d0ac1280c22",
      "subject": "Bug 2061674 - Remove the Legacy Telemetry mirror of contentblocking.cookie_behavior r=emz,janerik"
    },
    "D317262": {
      "author": "Dan Mehic",
      "avatar": "https://www.gravatar.com/avatar/35f749b40d5be33dba6b8a826ad95151?d=identicon\u0026s=64",
      "cl": "D317262",
      "clUrl": "https://phabricator.services.mozilla.com/D317262",
      "description": "Only the Legacy Telemetry mirrors are removed. The Glean metrics\ncontentblocking.storage_access_remaining_days and dom.storage_access_api_ui are\nleft in place, so what Firefox collects is unchanged.\nContentBlockingTelemetryService.cpp and dom/base/Document.cpp already record\nexclusively through Glean, so no instrumentation changes are needed.\n\nBoth sides of each mirror have to go in the same commit: test_mirrors.py asserts\nevery telemetry_mirror resolves to an existing probe, and also that every\nhistogram in Histograms.json has a mirroring metric, so removing either side\nalone fails.\n\nstorage_access_granted_count, which this bug originally also covered, is\ndeliberately left alone and moved to bug 2061972. Deployed Redash queries still\nread its Legacy Telemetry histogram directly out of the main ping, so removing\nthat mirror would break them.\n\nThat split has consequences for browser_contentBlockingTelemetry.js, which\nasserts on both probes. Only the storage_access_remaining_days assertions are\nconverted here. The metric is a linear custom distribution over 0..60 with a\nbucket per day, so the expected day count is also its bucket index and the\nassertion translates directly. TelemetryTestUtils was used only by that\nassertion and its import is removed.\n\nThe rest of the file stays on Legacy Telemetry on purpose. The\ngetSnapshotForHistograms call in clearTelemetry, the toolkit.telemetry.ipcBatchTimeout\npref and the aProbeInParent parameter of testTelemetry all exist to serve\nSTORAGE_ACCESS_GRANTED_COUNT and only become dead once bug 2061972 lands.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D317262",
      "email": "dmehic@mozilla.com",
      "hash": "262d11b43cea2beeaaddf615343eb2f3e130e878",
      "subject": "Bug 2061377 - Remove the Legacy Telemetry mirrors of storage_access_remaining_days and storage_access_api_ui r=emz,janerik"
    },
    "D317272": {
      "author": "Dan Mehic",
      "avatar": "https://www.gravatar.com/avatar/35f749b40d5be33dba6b8a826ad95151?d=identicon\u0026s=64",
      "cl": "D317272",
      "clUrl": "https://phabricator.services.mozilla.com/D317272",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317272",
      "email": "dmehic@mozilla.com",
      "hash": "e104b67dcb58aa11ae5dd1e766d1a357fd8af8cc",
      "subject": "Bug 2065449 - Log the actual error when a FedCM mochitest fails to get a credential r=manuel"
    },
    "D317462": {
      "author": "t-p-white",
      "avatar": "https://www.gravatar.com/avatar/22a9310c1f58a884132acc7cea6f3c6b?d=identicon\u0026s=64",
      "cl": "D317462",
      "clUrl": "https://phabricator.services.mozilla.com/D317462",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317462",
      "email": "towhite@mozilla.com",
      "hash": "02221a88247d4377a457b61f91ac1ffb1ad197f4",
      "subject": "Bug 2060524 - [experiment] Part 1: Add a Nimbus feature flag and secret setting to control feature enablement. r=android-reviewers,sfamisa"
    },
    "D317463": {
      "author": "t-p-white",
      "avatar": "https://www.gravatar.com/avatar/22a9310c1f58a884132acc7cea6f3c6b?d=identicon\u0026s=64",
      "cl": "D317463",
      "clUrl": "https://phabricator.services.mozilla.com/D317463",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317463",
      "email": "towhite@mozilla.com",
      "hash": "5c0fbcea4d3e408e93c3a079ac8686f0223b49ac",
      "subject": "Bug 2060524 - [experiment] Part 2: Add the notification channel and logic to build and show the weekly privacy report notification, deep-linking to the protections dashboard. r=android-reviewers,sfamisa,android-l10n-reviewers,parker"
    },
    "D317464": {
      "author": "t-p-white",
      "avatar": "https://www.gravatar.com/avatar/22a9310c1f58a884132acc7cea6f3c6b?d=identicon\u0026s=64",
      "cl": "D317464",
      "clUrl": "https://phabricator.services.mozilla.com/D317464",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317464",
      "email": "towhite@mozilla.com",
      "hash": "d4947cf74c53922f6a8ebbc83aef20015104b533",
      "subject": "Bug 2060524 - [experiment] Part 3: Add the PrivacyReportNotificationWorker and schedule it weekly. r=android-reviewers,sfamisa"
    },
    "D317535": {
      "author": "Finn Terdal",
      "avatar": "https://www.gravatar.com/avatar/d79c73f794f46f7f3eccd2b9d35991a1?d=identicon\u0026s=64",
      "cl": "D317535",
      "clUrl": "https://phabricator.services.mozilla.com/D317535",
      "description": "Adds support for a pre-onboarding screen that prompts the user to make\nFirefox the default browser and adds Firefox to the taskbar. Also\nhandles the Terms of Use acceptance, and a link to manage telemetry\ndata. Note that currently the link to Manage diagnostic and interactive\ndata doesn't do anything, which will be handled in a future ticket.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D317535",
      "email": "fterdal@mozilla.com",
      "hash": "e84634735170164c024c0e3155f1592aca1ef8f9",
      "subject": "Bug 2060248 - FRO Template Updates for Terms of Service r=omc-reviewers,emcminn"
    },
    "D317553": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D317553",
      "clUrl": "https://phabricator.services.mozilla.com/D317553",
      "description": "The Herald rules only cover part of the tree, and where they do not match,\nthe command fell back to walking the version control history. mots.yaml\nknows which module owns a path and which reviewer group reviews it, so use\nit as a second source: on a 1500-file sample it supplies a reviewer group\nfor 394 paths that had no matching Herald rule, and adds a group Herald\nmissed on 69 more.\n\nOnly meta.review_group is suggested. meta.group is a mailing list rather\nthan a Phabricator group, and owners and peers are individuals, which this\ncommand does not suggest.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D317553",
      "email": "sylvestre@debian.org",
      "hash": "cebc5c31e1cdd7afd14108cf3c07994771951326",
      "subject": "Bug 2060808 - file-info reviewers: also use mots.yaml as input r=shtrom"
    },
    "D317554": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D317554",
      "clUrl": "https://phabricator.services.mozilla.com/D317554",
      "description": "Point contributors at `mach file-info reviewers` as the first thing to try when\nlooking for a reviewer, in both the quickref and the reviews page, and describe\nthe three kinds of suggestion it reports. The version control history remains\ndocumented as the fallback.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D317554",
      "email": "sylvestre@debian.org",
      "hash": "c8128c027a9c5da3b5a5a5f04260d071179fe4dd",
      "subject": "Bug 2060808 - docs: document mach file-info reviewers r=firefox-source-docs-reviewers,ahal"
    },
    "D317663": {
      "author": "az",
      "avatar": "https://www.gravatar.com/avatar/788a42b35c139431ccaf9575c6626a93?d=identicon\u0026s=64",
      "cl": "D317663",
      "clUrl": "https://phabricator.services.mozilla.com/D317663",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317663",
      "email": "azebrowski@mozilla.com",
      "hash": "ff56538148fb41292aca9554120ba4e9a2b312fe",
      "subject": "Bug 2057114 - Improve GMP plugin task handling r=aosmond,media-playback-reviewers"
    },
    "D317860": {
      "author": "Dan Mehic",
      "avatar": "https://www.gravatar.com/avatar/35f749b40d5be33dba6b8a826ad95151?d=identicon\u0026s=64",
      "cl": "D317860",
      "clUrl": "https://phabricator.services.mozilla.com/D317860",
      "description": "Only the Legacy Telemetry mirrors are removed. The Glean events are left in\nplace, so what Firefox collects is unchanged.\n\nBoth sides of each mirror have to go in the same commit. test_mirrors.py asserts\nthat every telemetry_mirror resolves to an existing probe, and separately that\nevery event probe has a mirroring metric, so removing either side alone fails.\n\nBoth probes survive with a reduced object list: security.ui.protections#show\nkeeps protection_report, and #click keeps vpn_app_link_android and\nvpn_app_link_ios, which still mirror. The sentence about the VPN banner is\ndropped from the #show description, since it only described vpn_banner.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D317860",
      "email": "dmehic@mozilla.com",
      "hash": "b8ecaa068299c0de6d3101e45d3c2e349306b6c6",
      "subject": "Bug 2062676 - Remove the Legacy Telemetry mirrors of the security.ui.protections VPN events r=emz,janerik"
    },
    "D317863": {
      "author": "Jeff Boek",
      "avatar": "https://www.gravatar.com/avatar/2443098baa37fb4accac0e4b3b8573dc?d=identicon\u0026s=64",
      "cl": "D317863",
      "clUrl": "https://phabricator.services.mozilla.com/D317863",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317863",
      "email": "j@jboek.com",
      "hash": "9764b4daf3bb1bc5b68148f2a5e3bf8afa515717",
      "subject": "Bug 2047013 - Allows rating of summarizations r=android-reviewers,android-l10n-reviewers,matt-tighe,parker"
    },
    "D317991": {
      "author": "Dan Mehic",
      "avatar": "https://www.gravatar.com/avatar/35f749b40d5be33dba6b8a826ad95151?d=identicon\u0026s=64",
      "cl": "D317991",
      "clUrl": "https://phabricator.services.mozilla.com/D317991",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317991",
      "email": "dmehic@mozilla.com",
      "hash": "dddd3ebf8c01bcbf38c5ba24812e9df1ea6fff8a",
      "subject": "Bug 2039978 - Remove browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled r=manuel,tgiles"
    },
    "D318135": {
      "author": "Anna Kulyk",
      "avatar": "https://www.gravatar.com/avatar/2c28c953ecebb4b478e4cd8e21ab56ff?d=identicon\u0026s=64",
      "cl": "D318135",
      "clUrl": "https://phabricator.services.mozilla.com/D318135",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318135",
      "email": "akulyk@mozilla.com",
      "hash": "438243dc75e52bc28bdfa9f651d25a31eba25a50",
      "subject": "Bug 2049732 - Implement label truncation with ellipsis in moz-segmented-control r=extension-reviewers,desktop-theme-reviewers,mstriemer,rpl"
    },
    "D318174": {
      "author": "nickgrato",
      "avatar": "https://www.gravatar.com/avatar/a7b6ca56863cce809ebb726fa44ef43b?d=identicon\u0026s=64",
      "cl": "D318174",
      "clUrl": "https://phabricator.services.mozilla.com/D318174",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318174",
      "email": "ngrato@gmail.com",
      "hash": "17b3d2a974d317b9064c6db13c335a241f23dba8",
      "subject": "Bug 2062113 - Create Monitor Tool bar button r=jlewis,fluent-reviewers,desktop-theme-reviewers,sfoster,bolsson"
    },
    "D318363": {
      "author": "hanna.alemu",
      "avatar": "https://www.gravatar.com/avatar/01dd47c87b2b841eb1c8b45508c49c7d?d=identicon\u0026s=64",
      "cl": "D318363",
      "clUrl": "https://phabricator.services.mozilla.com/D318363",
      "description": "Several tests used CFR messages only as a generic base template, so they have to\nmove to a surviving surface before the templates can be removed. This relocates\nInfoBar.schema.json out of templates/CFR/, moves INFOBAR_ACTION_86 into\nPanelTestProvider, and converts the remaining cfr_doorhanger and\ncfr_urlbar_chiclet fixtures to infobar.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D318363",
      "email": "halemu@mozilla.com",
      "hash": "d6932e8bd90c9257926fb8a8853b033abbaea7b7",
      "subject": "Bug 2041980 - Move ASRouter tests off CFR message templates. r=omc-reviewers,andhuang"
    },
    "D318518": {
      "author": "t-p-white",
      "avatar": "https://www.gravatar.com/avatar/22a9310c1f58a884132acc7cea6f3c6b?d=identicon\u0026s=64",
      "cl": "D318518",
      "clUrl": "https://phabricator.services.mozilla.com/D318518",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318518",
      "email": "towhite@mozilla.com",
      "hash": "b187adb78c33a37dce1dd2c37ece705eac909fdb",
      "subject": "Bug 2060524 - [experiment] Part 4: Added a secret setting to force the number of trackers to meet the threshold for showing the privacy report notification. r=android-reviewers,sfamisa"
    },
    "D318595": {
      "author": "Lukáš Lipinský",
      "avatar": "https://www.gravatar.com/avatar/b1c00e637e0ae3c1511057c39468aa08?d=identicon\u0026s=64",
      "cl": "D318595",
      "clUrl": "https://phabricator.services.mozilla.com/D318595",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318595",
      "email": "6032558+Mr-Tao@users.noreply.github.com",
      "hash": "2c64f95f241f4697c3dde082ae60ba626918ad64",
      "subject": "Bug 1776179 - Listen for text track changes before a track is active. r=kpatenio"
    },
    "D318612": {
      "author": "Lukáš Lipinský",
      "avatar": "https://www.gravatar.com/avatar/b1c00e637e0ae3c1511057c39468aa08?d=identicon\u0026s=64",
      "cl": "D318612",
      "clUrl": "https://phabricator.services.mozilla.com/D318612",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318612",
      "email": "6032558+Mr-Tao@users.noreply.github.com",
      "hash": "5d53c509fd7c127e83deb29e92d045c706cd5c25",
      "subject": "Bug 1776179 - Observe text tracks added after PiP opens. r=kpatenio"
    },
    "D318677": {
      "author": "James Teh",
      "avatar": "https://www.gravatar.com/avatar/749580f8bd5af77c57367e6c2717e283?d=identicon\u0026s=64",
      "cl": "D318677",
      "clUrl": "https://phabricator.services.mozilla.com/D318677",
      "description": "A PDocAccessible is tied to a single DOM document only.\nConversely, PBrowser encompasses an entire document tree within a content process; i.e. a tab and all its in-process iframes, or an OOP iframe and all its nested in-process iframes.\nTherefore, it is a better fit for PDocAccessible to be managed by PWindowGlobal, which is also associated one to one with a single DOM document.\n\nThis patch largely moves code and changes calls in order to switch to the new manager.\nHowever, there are a few noteworthy changes:\n\n1. PDocAccessible's constructor no longer takes a BrowsingContext.\n  This isn't necessary now because a PWindowGlobal is associated with a single BrowsingContext, so we can get the BrowsingContext from there.\n2. Use Manager() in DocAccessibleParent::RecvPrinting to get the window context, rather than going via the BrowsingContext.\n  Now that PDocAccessible is managed by PWindowGlobal, we don't need the indirection, and going directly is more precise.\n3. Remove handling for the case that the manager is being destroyed in RecvPDocAccessibleConstructor.\n  Unlike BrowserParent, WindowGlobalParent doesn't have an intermediate \"destroying\" state.\n  it's either alive or it isn't, and if it isn't, it can't receive IPDL messages.\n4. In RecvPDocAccessibleConstructor, change the code which cleans up a previous top level DocAccessibleParent so that it walks the BrowsingContext's WindowContexts rather than using BrowserParent::GetTopLevelDocAccessible.\n  Because DOM keeps the current WindowContext up to date and PDocAccessible is tied to WindowContext, GetTopLevelDocAccessible now only always returns the current top level actor, so it would return null in this case and the previous top level actor wouldn't be found, making the previous code a no-op.\n  This code is now only necessary for Android because Android strictly requires that there only be a single top level DocAccessibleParent at any given time.\n5. Clear any queued cache updates on DocAccessible when a DocAccessibleChild is prematurely destroyed.\n  Previously, this couldn't happen because PBrowser lives for the life of the tab or OOP iframe.\n  In contrast, PWindowGlobal's lifetime ends with its document.\n  That means that if the document is being torn down, the actor will be too, and that sometimes happens a little before the DocAccessible is shut down.\n6. Previously, BrowserBridgeParent::RecvSetEmbedderAccessible compared the manager of the parent doc and the child doc.\n  It can't do that any more because two DocAccessibleParents will now always have different managers.\n7. BrowserParent::GetTopLevelDocAccessible has been significantly rewritten for the new actor relationship, since it no longer has to deal with a single actor managing multiple PDocAccessibles.\n8. BrowserParent::Destroy no longer destroys the top level DocAccessibleParent.\n  BrowserParent doesn't own DocAccessibleParent any more, so we leave this to WindowGlobalParent actor teardown.\n  Also, by the time Browserparent::Destroy is called, there might not even be a current WindowGlobal any more, which means we couldn't get the DocAccessibleParent anyway.\n9. Changed various checks of IsTopLevelInContentProcess to assertions, since this is now inherently true because we get the precise WindowGlobalParent we are interested in and a PWindowGlobal only manages one PDocAccessible.\n10. A PWindowGlobal should only ever have a single PDocAccessible.\n  We enforce that in RecvPDocAccessibleConstructor.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D318677",
      "email": "jteh@mozilla.com",
      "hash": "b172b09dfbe0afabf04f5ae37e90e68e323544c0",
      "subject": "Bug 2060764 part 1: Make PDocAccessible managed by PWindowGlobal instead of PBrowser. r=eeejay,nika"
    },
    "D318678": {
      "author": "James Teh",
      "avatar": "https://www.gravatar.com/avatar/749580f8bd5af77c57367e6c2717e283?d=identicon\u0026s=64",
      "cl": "D318678",
      "clUrl": "https://phabricator.services.mozilla.com/D318678",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318678",
      "email": "jteh@mozilla.com",
      "hash": "787cdd108cf004ca62ae6e26605d496fc8c9ab86",
      "subject": "Bug 2060764 part 2: Ensure the correct same-process embedder when adding a child doc. r=eeejay,nika"
    },
    "D318699": {
      "author": "Mark Hammond",
      "avatar": "https://www.gravatar.com/avatar/892812c8e0a35b4cc1b131ad00c2ebbc?d=identicon\u0026s=64",
      "cl": "D318699",
      "clUrl": "https://phabricator.services.mozilla.com/D318699",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318699",
      "email": "mhammond@skippinet.com.au",
      "hash": "99fe1f3979e7388771dbb98d6af324b0ab72925f",
      "subject": "Bug 2063572 - bridged sync engines shouldn't log the cleartext payload. r=joschmidt,sync-reviewers,skhamis"
    },
    "D318855": {
      "author": "Sam Foster",
      "avatar": "https://www.gravatar.com/avatar/829febdab435f158003003158c098136?d=identicon\u0026s=64",
      "cl": "D318855",
      "clUrl": "https://phabricator.services.mozilla.com/D318855",
      "description": "- Turns out the chrome gaps was what broke this. Removing that whole branch for nova fixes it\n- Add a test to assert on animation behavior\n\nDifferential Revision: https://phabricator.services.mozilla.com/D318855",
      "email": "sfoster@mozilla.com",
      "hash": "0148e1873fe6e9df962316cf1504117a343264a1",
      "subject": "Bug 2052424 - Fix sidebar animation by removing no-longer-needed nova animation branch. r=jsudiaman"
    },
    "D318875": {
      "author": "Michael Hynson",
      "avatar": "https://www.gravatar.com/avatar/f9a151036e4b55248bb233ef11032b9e?d=identicon\u0026s=64",
      "cl": "D318875",
      "clUrl": "https://phabricator.services.mozilla.com/D318875",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D318875",
      "email": "mhynson@mozilla.com",
      "hash": "f917bf70fd761fafca75083e545418eeaa916493",
      "subject": "Bug 2059389 - Create/Manage Tab Group panel nova tweaks. r=desktop-theme-reviewers,tabbrowser-reviewers,nsharpley,hjones"
    },
    "D319060": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D319060",
      "clUrl": "https://phabricator.services.mozilla.com/D319060",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319060",
      "email": "kershaw@mozilla.com",
      "hash": "49efe26ca15f809794766d181b62d1a2b64d7da6",
      "subject": "Bug 2063020 - Compare the full coalescing identity on a hash hit before joining an HTTP/2 connection, r=necko-reviewers,valentin"
    },
    "D319061": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D319061",
      "clUrl": "https://phabricator.services.mozilla.com/D319061",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319061",
      "email": "kershaw@mozilla.com",
      "hash": "42ec6818671cef78d5fda4555b5fcf7dc2851be1",
      "subject": "Bug 2063020 - Test, r=necko-reviewers,valentin"
    },
    "D319219": {
      "author": "Rana Al-Khulaidi",
      "avatar": "https://www.gravatar.com/avatar/c81e0a056d1874ca3412b0d8f97fdb1e?d=identicon\u0026s=64",
      "cl": "D319219",
      "clUrl": "https://phabricator.services.mozilla.com/D319219",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319219",
      "email": "ralkhulaidi@gmail.com",
      "hash": "608db5c24f0c4199ebe041c58fe16f0ef3a144fe",
      "subject": "Bug 2060902 - Remove all non-legacyHeartbeat Normandy actions. r=nimbus-reviewers,beth"
    },
    "D319262": {
      "author": "Botond Ballo",
      "avatar": "https://www.gravatar.com/avatar/1a8842a72215d01cdd25f3736194ba92?d=identicon\u0026s=64",
      "cl": "D319262",
      "clUrl": "https://phabricator.services.mozilla.com/D319262",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319262",
      "email": "botond@mozilla.com",
      "hash": "b52e60a12855189a1996bbabddd4f58d953c6d9d",
      "subject": "Bug 2064206 - Reference START_SCROLL_ID unqualified in APZ gtests. r=ajakobi"
    },
    "D319265": {
      "author": "Botond Ballo",
      "avatar": "https://www.gravatar.com/avatar/1a8842a72215d01cdd25f3736194ba92?d=identicon\u0026s=64",
      "cl": "D319265",
      "clUrl": "https://phabricator.services.mozilla.com/D319265",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319265",
      "email": "botond@mozilla.com",
      "hash": "75b9ce835ec9de73b07977611d60297081ccd6a8",
      "subject": "Bug 2064206 - Reference ViewID unqualified in APZ gtests. r=ajakobi"
    },
    "D319273": {
      "author": "Botond Ballo",
      "avatar": "https://www.gravatar.com/avatar/1a8842a72215d01cdd25f3736194ba92?d=identicon\u0026s=64",
      "cl": "D319273",
      "clUrl": "https://phabricator.services.mozilla.com/D319273",
      "description": "This makes the Windows and Android widget implementations redundant\n(so the patch removed them), as well as restoring the previous behavior\nof the Mac widget implementation (which was inadvertently removed in\nbug 1919165).\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319273",
      "email": "botond@mozilla.com",
      "hash": "2a4845a06d329eadf6cb98beabd75ad3bc851c53",
      "subject": "Bug 2064217 - Make the default implementation of nsIWidget::GetDPI more useful. r=emilio,geckoview-reviewers,gtk-reviewers,hiro"
    },
    "D319401": {
      "author": "Julian Descottes",
      "avatar": "https://www.gravatar.com/avatar/60dd86ccfd9c63b53e9f2a34b2f48442?d=identicon\u0026s=64",
      "cl": "D319401",
      "clUrl": "https://phabricator.services.mozilla.com/D319401",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319401",
      "email": "jdescottes@mozilla.com",
      "hash": "5a9e66a9931598e232d46a0c9a746e3d15e33e65",
      "subject": "Bug 2064044 - [wdspec] Add tests for nested pauses in moz:debugging r=whimboo"
    },
    "D319427": {
      "author": "James Teh",
      "avatar": "https://www.gravatar.com/avatar/749580f8bd5af77c57367e6c2717e283?d=identicon\u0026s=64",
      "cl": "D319427",
      "clUrl": "https://phabricator.services.mozilla.com/D319427",
      "description": "We can now get the parent document using the PWindowGlobal tree instead.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319427",
      "email": "jteh@mozilla.com",
      "hash": "bd2dcae484eeef7e607f3b7957031a413c8744de",
      "subject": "Bug 2060764 part 3: Remove parent document argument to PDocAccessible constructor and PBrowserBridge::SetEmbedderAccessible. r=eeejay,nika"
    },
    "D319436": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D319436",
      "clUrl": "https://phabricator.services.mozilla.com/D319436",
      "description": "mach_commands.py now holds only the mach plumbing; the Herald, mots and\nversion control history lookups live in mozbuild/frontend/reviewers.py.\nPure code move: the functions become module API and lose their leading\nunderscore, with no behaviour change.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319436",
      "email": "sylvestre@debian.org",
      "hash": "5eebd2ca16f9dacaf28f9f8f10bc3a96794f29ee",
      "subject": "Bug 2060808 - file-info reviewers: move the reviewer suggestion logic to its own file r=shtrom"
    },
    "D319473": {
      "author": "Jeremy Swinarton",
      "avatar": "https://www.gravatar.com/avatar/d88d3fdf48ea609876f67ee42d980af2?d=identicon\u0026s=64",
      "cl": "D319473",
      "clUrl": "https://phabricator.services.mozilla.com/D319473",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319473",
      "email": "jswinarton@mozilla.com",
      "hash": "4322fbf73ba6b22f26005c696a922d43087899f7",
      "subject": "Bug 2058137: Prevent double event consumption on buttons in the list all tabs menu r=tabbrowser-reviewers,kcochrane"
    },
    "D319498": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D319498",
      "clUrl": "https://phabricator.services.mozilla.com/D319498",
      "description": "The address bar and search bar are both moz-urlbar, so they share one menu now. Each item set is scoped to its own input and hidden for the other, and AddSearchEngineHelper tracks the items it created rather than everything after its separator, which is no longer only its own.\n\nWith the wrapper an HTML element, the input's tooltip is the document's default tooltip instead of #aHTMLTooltip, because FindTooltip sends every non-XUL target there. The text still comes from the title attribute, and browser_tooltip.js checks the tooltip that opens.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319498",
      "email": "dao@mozilla.com",
      "hash": "1f8fb7a92e930bbf65e7b5c2e671d555fe177df8",
      "subject": "Bug 2064369 - Move moz-urlbar off moz-input-box onto the new API. r=desktop-theme-reviewers,hjones,daleharvey"
    },
    "D319594": {
      "author": "Elissa Cha",
      "avatar": "https://www.gravatar.com/avatar/3e35b9456250282cae28a20111cf7674?d=identicon\u0026s=64",
      "cl": "D319594",
      "clUrl": "https://phabricator.services.mozilla.com/D319594",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319594",
      "email": "echa@mozilla.com",
      "hash": "005f406beb8fe42104abef8681a76f9a1ecf37fe",
      "subject": "Bug 2064485 - remove the ‘Pick up’ prefix from PUWYLO tab group title r=pdahiya"
    },
    "D319719": {
      "author": "Julien Cristau",
      "avatar": "https://www.gravatar.com/avatar/15b9b3783e4671cd882bff1316df14c9?d=identicon\u0026s=64",
      "cl": "D319719",
      "clUrl": "https://phabricator.services.mozilla.com/D319719",
      "description": "The rpm signing task now exports the public key with the revoked subkeys\nstripped as public/build/RPM-KEY, so beetmove it next to the existing KEY\nfile, both for nightlies and in the candidates directories.\n\ngenerate_artifact_registry_gcs_sources_rpm() collects every destination\nfrom the repackage-rpm-signing artifact map, so restrict it to the .rpm\npackages to keep RPM-KEY out of the YUM repository import.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319719",
      "email": "jcristau@mozilla.com",
      "hash": "7a7b249b473931ff39885047f8010e9e73ec8a66",
      "subject": "Bug 2062342 - Publish the RPM-KEY file to archive.mozilla.org. r=taskgraph-reviewers,releng-reviewers,bhearsum"
    },
    "D319730": {
      "author": "Arnaud Bienner",
      "avatar": "https://www.gravatar.com/avatar/4ce6cc4210e212c94d690c9c8c5c19bb?d=identicon\u0026s=64",
      "cl": "D319730",
      "clUrl": "https://phabricator.services.mozilla.com/D319730",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319730",
      "email": "abienner@mozilla.com",
      "hash": "7f9d95ddd3f323d189a78141e876706550f0cf5f",
      "subject": "Bug 2060201 - Increase no-fission test variant expiry date r=asuth"
    },
    "D319754": {
      "author": "Antonio Borondo",
      "avatar": "https://www.gravatar.com/avatar/9e13743768b6d0c3767465e00941f79e?d=identicon\u0026s=64",
      "cl": "D319754",
      "clUrl": "https://phabricator.services.mozilla.com/D319754",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319754",
      "email": "aborondo@mozilla.com",
      "hash": "c0d030807cd8c8ccfb529e58d29d505894832018",
      "subject": "Bug 2059477 - Remove Legacy Telemetry mirrors of application update telemetry r=csadilek,application-update-reviewers,chumphreys,cdupuis"
    },
    "D319755": {
      "author": "Antonio Borondo",
      "avatar": "https://www.gravatar.com/avatar/9e13743768b6d0c3767465e00941f79e?d=identicon\u0026s=64",
      "cl": "D319755",
      "clUrl": "https://phabricator.services.mozilla.com/D319755",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319755",
      "email": "aborondo@mozilla.com",
      "hash": "4edf18e811a3138348bcd3a0d43d085914bd01ac",
      "subject": "Bug 2059477 - Remove Legacy Telemetry mirrors of default browser and OS environment telemetry r=csadilek,chumphreys"
    },
    "D319756": {
      "author": "Antonio Borondo",
      "avatar": "https://www.gravatar.com/avatar/9e13743768b6d0c3767465e00941f79e?d=identicon\u0026s=64",
      "cl": "D319756",
      "clUrl": "https://phabricator.services.mozilla.com/D319756",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319756",
      "email": "aborondo@mozilla.com",
      "hash": "a8de1fc464515f342f37277e4059dea8aee6d5f4",
      "subject": "Bug 2059477 - Remove Legacy Telemetry mirrors of installation and migration telemetry r=csadilek,migration-reviewers,chumphreys,browser-installer-reviewers,mconley,cdupuis"
    },
    "D319790": {
      "author": "Henrik Skupin",
      "avatar": "https://www.gravatar.com/avatar/4ab832a8d5cae15967c0da59ebfb83f7?d=identicon\u0026s=64",
      "cl": "D319790",
      "clUrl": "https://phabricator.services.mozilla.com/D319790",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319790",
      "email": "mail@hskupin.info",
      "hash": "32a4a894961d2d496e11ed00cd83625830fb828f",
      "subject": "Bug 2054442 - [remote] Use requestAnimationFrame for incremental actions transitions. r=jdescottes"
    },
    "D319791": {
      "author": "Henrik Skupin",
      "avatar": "https://www.gravatar.com/avatar/4ab832a8d5cae15967c0da59ebfb83f7?d=identicon\u0026s=64",
      "cl": "D319791",
      "clUrl": "https://phabricator.services.mozilla.com/D319791",
      "description": "A pointer move, touch move, or wheel scroll action with a duration greater\nthan zero has to be split into multiple incremental events, dispatched roughly\nonce per animation frame, instead of collapsing into a single event.\n\nAdd tests for all three input types, for both WebDriver classic and BiDi, that\nrecord the dispatched events and assert that more than one is received.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319791",
      "email": "mail@hskupin.info",
      "hash": "3f4c1fdbe36a90c103a9da5216cd88612bf399c1",
      "subject": "Bug 2054442 - [wdspec] Add tests to ensure actions with a duration dispatch multiple events. r=jdescottes"
    },
    "D319792": {
      "author": "Calixte Denizet",
      "avatar": "https://www.gravatar.com/avatar/4546427c28f29c34fe095c40c137ef35?d=identicon\u0026s=64",
      "cl": "D319792",
      "clUrl": "https://phabricator.services.mozilla.com/D319792",
      "description": "All file: URLs share one last-used directory, which may be unrelated\nto the source file.\n\nPrefer the source folder unless it is under the system temporary\ndirectory.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319792",
      "email": "calixte.denizet@gmail.com",
      "hash": "0b66f6adcfe7256342b445559409d8aaedd1d9f5",
      "subject": "Bug 2059930 - Default the save dialog to a local file's folder. r=Gijs"
    },
    "D319804": {
      "author": "Andreas Farre",
      "avatar": "https://www.gravatar.com/avatar/5251913e02e39fe0d34962cae6373a9b?d=identicon\u0026s=64",
      "cl": "D319804",
      "clUrl": "https://phabricator.services.mozilla.com/D319804",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319804",
      "email": "farre@mozilla.com",
      "hash": "4ccf14558de6362a72d49be69a54c8d68ecaa7d2",
      "subject": "Bug 2029482 - Don't make ORB exemptions for DevTools. r=dom-core-reviewers,devtools-reviewers,necko-reviewers,smaug,vhilla,valentin,ochameau"
    },
    "D319839": {
      "author": "Gopalarathnam Venkatesan",
      "avatar": "https://www.gravatar.com/avatar/f756192b8138a062f328c2e256b84325?d=identicon\u0026s=64",
      "cl": "D319839",
      "clUrl": "https://phabricator.services.mozilla.com/D319839",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319839",
      "email": "gopal@g13n.net",
      "hash": "4de2e3957bbd780cfe7028e4eb266cebbf6a9145",
      "subject": "Bug 2042426 - fixed clippy warnings in dom/base/fragmentdirectives/lib.rs r=sylvestre"
    },
    "D319861": {
      "author": "Bryan Johns",
      "avatar": "https://www.gravatar.com/avatar/26880c326c36e30d2e428dc2ac90e5e4?d=identicon\u0026s=64",
      "cl": "D319861",
      "clUrl": "https://phabricator.services.mozilla.com/D319861",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319861",
      "email": "bjohns@mozilla.com",
      "hash": "82e8e212ea9f817064ae744feaa87bb1475d235e",
      "subject": "Bug Bug 2052363 - Added bulk deletion SQLite statement; Deferred DBsize reporting r=ai-security-reviewers,again,czhou"
    },
    "D319863": {
      "author": "Dharma Ong",
      "avatar": "https://www.gravatar.com/avatar/0a7381e7eb23f16fd97036b4645ac315?d=identicon\u0026s=64",
      "cl": "D319863",
      "clUrl": "https://phabricator.services.mozilla.com/D319863",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319863",
      "email": "dharmaong00@gmail.com",
      "hash": "c947aedff44549acaa39b019a85ae6376ae8bce4",
      "subject": "Bug 2064728 - Extend SearchbarInput from base class. r=dao,search-reviewers,urlbar-reviewers,scunnane"
    },
    "D319870": {
      "author": "Gopalarathnam Venkatesan",
      "avatar": "https://www.gravatar.com/avatar/f756192b8138a062f328c2e256b84325?d=identicon\u0026s=64",
      "cl": "D319870",
      "clUrl": "https://phabricator.services.mozilla.com/D319870",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319870",
      "email": "gopal@g13n.net",
      "hash": "792302c4c00fc076fc770ee131fa7ae2348b858e",
      "subject": "Bug 2042433 - fixes clippy warnings in netwerk/base/uritemplate_glue/src/lib.rs r=sylvestre,necko-reviewers,valentin"
    },
    "D319872": {
      "author": "Gopalarathnam Venkatesan",
      "avatar": "https://www.gravatar.com/avatar/f756192b8138a062f328c2e256b84325?d=identicon\u0026s=64",
      "cl": "D319872",
      "clUrl": "https://phabricator.services.mozilla.com/D319872",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319872",
      "email": "gopal@g13n.net",
      "hash": "610e315d4a8a5e6e70606f10f8d71bfa119e8651",
      "subject": "Bug 2062096 - remove stray comment at the end of the file r=akulyk"
    },
    "D319899": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D319899",
      "clUrl": "https://phabricator.services.mozilla.com/D319899",
      "description": "The markup has no XUL element left, so the parser needs no XUL support.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319899",
      "email": "dao@mozilla.com",
      "hash": "fa5ccc55a7668a37cd3c4e3d91759a6c9f5fb3a3",
      "subject": "Bug 2064369 - Stop enabling XUL in the input's markup parser. r=mbeier"
    },
    "D319925": {
      "author": "Meg Viar",
      "avatar": "https://www.gravatar.com/avatar/99c3c115911cba94429ff3eb14fbae0a?d=identicon\u0026s=64",
      "cl": "D319925",
      "clUrl": "https://phabricator.services.mozilla.com/D319925",
      "description": "Update center-large content background to a blurred oval (see [[ https://www.figma.com/design/MPYRmdy1F5sLL0cyhkmAAs/NPO-Experiments-2026?node-id=3855-135704\u0026t=sMxOcmvMso5EuNNz-4 | Figma ]])\n\n{F77816330}\n\n{F77816353}\n\n{F77816360}\n\n{F77816366}\n\n{F77816379}\n\n{F77816393}\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319925",
      "email": "lmegviar@gmail.com",
      "hash": "64d718c32115595ad11b33547efecfc9b0e1801e",
      "subject": "Bug 2064899 - Support blurred card background for center-large layout r=omc-reviewers,jprickett,fterdal"
    },
    "D319932": {
      "author": "Kui-Feng Lee",
      "avatar": "https://www.gravatar.com/avatar/e4ac214dbabf690b7a88e624fcdbaed8?d=identicon\u0026s=64",
      "cl": "D319932",
      "clUrl": "https://phabricator.services.mozilla.com/D319932",
      "description": "about:preferences opens on the Accounts and sync page, and the download folder\ncontrol is only in the document once the Downloads page is selected, so the\ntest times out waiting for #chooseFolder. The #downloads hash selects that\npage; Firefox versions without it treat the hash as an unknown category and\nopen their default page, where their own control is.\n\nThe control takes its value from an asynchronous lookup of the download\ndirectory, so the fallback to the older #downloadFolder now happens only after\nwaiting for a value rather than on the first empty read.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D319932",
      "email": "thinker.li@gmail.com",
      "hash": "edd1927484e98b163bcfceb104109e15d5be1626",
      "subject": "Bug 2035363 - open the Downloads settings page in test_download_folder_change. r=gtk-reviewers,emilio"
    },
    "D319936": {
      "author": "Elissa Cha",
      "avatar": "https://www.gravatar.com/avatar/3e35b9456250282cae28a20111cf7674?d=identicon\u0026s=64",
      "cl": "D319936",
      "clUrl": "https://phabricator.services.mozilla.com/D319936",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D319936",
      "email": "echa@mozilla.com",
      "hash": "ccb9da77d015c33efec427987d40d51461e9933d",
      "subject": "Bug 2064452 - Hide retry on the initial PUWYLO assistant response r=pdahiya"
    },
    "D320007": {
      "author": "James Teh",
      "avatar": "https://www.gravatar.com/avatar/749580f8bd5af77c57367e6c2717e283?d=identicon\u0026s=64",
      "cl": "D320007",
      "clUrl": "https://phabricator.services.mozilla.com/D320007",
      "description": "Such a document is about to die; its content process just hasn't caught up yet.\nIt will possibly be replaced before it is fully destroyed.\nThis is particularly important on Android because we must never have more than one active DocAccessible there.\nif we do, they may try to register with the same id and collide.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320007",
      "email": "jteh@mozilla.com",
      "hash": "de89896f534d2ec730ce2afbe48b43edd66a0dd0",
      "subject": "Bug 1978133: Ignore construction of a DocAccessibleParent for a discarded BrowsingContext. r=eeejay"
    },
    "D320113": {
      "author": "Jens Stutte",
      "avatar": "https://www.gravatar.com/avatar/9dcff4a8838b41f34d204c2f4cadbcc4?d=identicon\u0026s=64",
      "cl": "D320113",
      "clUrl": "https://phabricator.services.mozilla.com/D320113",
      "description": "nsTerminator is meant to be the backstop behind AsyncShutdown, but in practice\nit wins the race for the great majority of shutdown hangs, and we then lose the\nAsyncShutdownTimeout annotation that names the blockers we were waiting for.\n\nThe countdown leading to the AsyncShutdown crash resolved after a fixed number\nof delivered timer beats. Its timer is TYPE_REPEATING_PRECISE_CAN_SKIP, which\ndrops undelivered ticks instead of queuing them, so main thread jank, which is\na given during a shutdown hang, stretched the countdown well past the intended\n60 seconds of wall clock. Poll a monotonic deadline instead. A suspended\ncomputer does not advance that clock, so we keep tolerating suspend, but a busy\nmain thread no longer buys extra time. This cannot make us crash where we did\nnot before: the terminator already enforces the same deadline from its own\nthread.\n\nAsyncShutdown also arms its countdown later than the terminator arms its own.\nThe terminator's clock for a phase starts in AdvanceShutdownPhaseInternal,\nbefore KillClearOnShutdown and before any observer of the phase runs, and the\nAsyncShutdown spinner is one of those observers. Widen the terminator's\nadditional wait from 3 to 10 seconds, so that gap, the resolution of the\ncountdown and the time it takes to annotate the crash report all fit into the\nmargin.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320113",
      "email": "jstutte@mozilla.com",
      "hash": "b45d06edd186bbea3dc39518e1b26ef6d7d04c52",
      "subject": "Bug 2065080 - Let AsyncShutdown's crash countdown run on wall clock and give it a wider margin over nsTerminator. r=xpcom-reviewers,nika"
    },
    "D320118": {
      "author": "Andreas Pehrson",
      "avatar": "https://www.gravatar.com/avatar/906f005aaa08b2d109a3fa9e1b83000d?d=identicon\u0026s=64",
      "cl": "D320118",
      "clUrl": "https://phabricator.services.mozilla.com/D320118",
      "description": "A SimpleBlock's timecode is relative to the start of its cluster and is\nserialized as an int16_t of milliseconds, so a cluster cannot span more than\n32767ms. EbmlComposer only started a new cluster on a video keyframe when the\nstream had video, so a video track that stalled for longer than that -- while\naudio kept flowing -- made the timecode overflow and crashed.\n\nApply the interval that audio-only streams already used to every stream, since\na video track cannot be relied on to keep producing keyframes. Keyframes still\nstart a cluster, so they remain aligned with one; clusters just no longer wait\nfor one. The WebM muxer guidelines allow this, saying only that keyframes\nSHOULD be placed at the beginning of clusters.\n\nThe block timecode is now bounded by the interval, which a static_assert ties\nto the format limit, so the release assertion on it is replaced by a debug-only\none covering the remaining caller contract: frames in non-decreasing time order.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320118",
      "email": "apehrson@mozilla.com",
      "hash": "c785dd3544ef9266399ef602b4e47d15237d66b3",
      "subject": "Bug 1830323 - Start a new WebM cluster on an interval, not just on keyframes. r=media-playback-reviewers,padenot"
    },
    "D320225": {
      "author": "Greg Stoll",
      "avatar": "https://www.gravatar.com/avatar/15a606ee8e65f29d1c01554972d44635?d=identicon\u0026s=64",
      "cl": "D320225",
      "clUrl": "https://phabricator.services.mozilla.com/D320225",
      "description": "I think our previous attempt to fix this in bug 1957069 was calling\nOnWindowMaximized() too early for windows that didn't adopt the\nPreXULSkeletonUI. Now we wait to call it until the window is shown. We\nalso call it if we're turning on the custom titlebar, which we know is\nwhen Windows has trouble figuring this out.\n\nAdditionally, add a pref to always clear NonRudeHWND for non-fullscreen\nwindows once they are showing.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320225",
      "email": "greg@gregstoll.com",
      "hash": "9349836256e519437f192c475e207935b8e43f6f",
      "subject": "Bug 2064534 - set window taskbar concealment more consistently r=win-reviewers,handyman"
    },
    "D320250": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320250",
      "clUrl": "https://phabricator.services.mozilla.com/D320250",
      "description": "The class is opt-in, so a menu that shows icons keeps panel-item's own padding; the per-widget rules and the switcher override that restored it are no longer needed.\n\nSubmenus stay classless: panel-item moves a submenu's panel-list into its own shadow root, out of reach of a `::part()` selector in the document.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320250",
      "email": "dao@mozilla.com",
      "hash": "c0eadb5aab8982a52e1171c81c0ba7b7ce17355d",
      "subject": "Bug 2065170 - Scope New Tab's panel-item padding to its own menus. r=ini,daleharvey,desktop-theme-reviewers,urlbar-reviewers,kcochrane"
    },
    "D320303": {
      "author": "unifolia",
      "avatar": "https://www.gravatar.com/avatar/4694b477c490cf60cd24b4c7467bcce3?d=identicon\u0026s=64",
      "cl": "D320303",
      "clUrl": "https://phabricator.services.mozilla.com/D320303",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320303",
      "email": "jlewis@mozilla.com",
      "hash": "8fc23fc09af1a4b22f561fc589299a8e5b7d74cf",
      "subject": "Bug 2050017 - Point the aiwindow browser tests at a local search engine r=Mardak"
    },
    "D320306": {
      "author": "Stephen Thompson",
      "avatar": "https://www.gravatar.com/avatar/f7173a41a5f3f5f210e160e79dda5488?d=identicon\u0026s=64",
      "cl": "D320306",
      "clUrl": "https://phabricator.services.mozilla.com/D320306",
      "description": "The fix in bug 2038951 marked split views as hidden based on their tabs' visibility. That worked for most cases, but it meant that split views can get accidentally hidden when they are in collapsed tab groups. This patch ensures that split views' hidden state is tied only the the tabs' hidden state.\n\nIt would have been fine to keep the existing approach where the split view wrapper observes for `hidden` attribute changes on its child tabs, but I don't think that very flexible and indirect approach is necessary. All of the tab hiding logic currently flows through Tabbrowser, so Tabbrowser can keep the split views in sync with its tabs at the same time it's already operating on the tabs. I hope that keeping things in Tabbrowser will make it easier to work with tab hiding code because it will be colocated.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320306",
      "email": "sthompson@mozilla.com",
      "hash": "a2bea15c3bd3408d764e4fd8681d19382a4a4dec",
      "subject": "Bug 2063789 - hide split views explicitly, not based on tab visibility r=sclements,kpatenio,tabbrowser-reviewers"
    },
    "D320432": {
      "author": "Corentin Bect",
      "avatar": "https://www.gravatar.com/avatar/f051ab06364f3531cb4d2d40227d9c6d?d=identicon\u0026s=64",
      "cl": "D320432",
      "clUrl": "https://phabricator.services.mozilla.com/D320432",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320432",
      "email": "cbect@mozilla.com",
      "hash": "fbf2ab03bc62037dc4915714ee0211e740fc0c24",
      "subject": "Bug 2064490 - Change VPN call-to-action from \"Try it\" to \"Try it free\" r=android-reviewers,android-l10n-reviewers,parker,twhite"
    },
    "D320445": {
      "author": "Nora Liu",
      "avatar": "https://www.gravatar.com/avatar/bc446c9818544e8ebd95618fc30001d0?d=identicon\u0026s=64",
      "cl": "D320445",
      "clUrl": "https://phabricator.services.mozilla.com/D320445",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320445",
      "email": "nliu@mozilla.com",
      "hash": "e3887a62b670c0b217341c4c5518b78f58c895e5",
      "subject": "Bug 2062535 - Migrate to using printf_stderr in the GC r=bthrall"
    },
    "D320460": {
      "author": "Manuel Bucher",
      "avatar": "https://www.gravatar.com/avatar/fe2c2192f4fabf01f2d2e700631bb8fe?d=identicon\u0026s=64",
      "cl": "D320460",
      "clUrl": "https://phabricator.services.mozilla.com/D320460",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320460",
      "email": "manuel@mozilla.com",
      "hash": "b4d8347c340e97dcb4b87a82f7676775ba592cbc",
      "subject": "Bug 2065548 - Re-enable browser_partitionedMessaging.js r=emz"
    },
    "D320464": {
      "author": "canalun",
      "avatar": "https://www.gravatar.com/avatar/ec346a3c1f6f34eb6e81ba7af9cb0b45?d=identicon\u0026s=64",
      "cl": "D320464",
      "clUrl": "https://phabricator.services.mozilla.com/D320464",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320464",
      "email": "i.am.kanaru.sato@gmail.com",
      "hash": "3e8c8eb84268f77afdc8e71e911a72e306f0fd84",
      "subject": "Bug 2065549 - Disable helper_pan_end_snap_to_current_position_scrollend.html on Linux. r=hiro"
    },
    "D320499": {
      "author": "Bob Owen",
      "avatar": "https://www.gravatar.com/avatar/8877ff082c9a902bbf383dc11c1aeffc?d=identicon\u0026s=64",
      "cl": "D320499",
      "clUrl": "https://phabricator.services.mozilla.com/D320499",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320499",
      "email": "bobowencode@gmail.com",
      "hash": "f5ee8f872293411d5ddc1c5ba41526f89d1bcf2a",
      "subject": "Bug 2058098 - Check for wildcard chars in user font file policy rules. r=handyman,sandbox-reviewers"
    },
    "D320566": {
      "author": "Andrew Gaul",
      "avatar": "https://www.gravatar.com/avatar/c4735ff5ae1f882942f2b3befcedbdba?d=identicon\u0026s=64",
      "cl": "D320566",
      "clUrl": "https://phabricator.services.mozilla.com/D320566",
      "description": "vroundsd_irr/vroundss_irr passed invalid_xmm as the VEX first source,\nwhich encodes vvvv=1111b -- and ROUNDSD/ROUNDSS read vvvv as their merge\noperand, so it decodes as xmm0: every rounding instruction\n(Math.floor/ceil/round/trunc and wasm nearest) carried a false\ndependency on whatever last wrote xmm0, an allocation-dependent hazard\ninvisible at the call sites. sqrtDouble/sqrtFloat32 merged from the\nstale destination like the conversions in bug 2064904. Pass the source\nregister as the merge operand instead, making the destination a pure\noutput; the fixed encodings are the same length, so generated code is\nbyte-for-byte the same size. Without AVX the legacy forms are emitted\nas before. vroundsd/vroundss now take src0 like the other VEX\nencoders, and the new roundDoubleWithMode/roundFloat32WithMode pick the\nmerge operand for all callers. visitPowHalfD now funnels through\nsqrtDouble to pick up the same fix.\n\nOn Zen 5 these merges do not measurably stall, unlike the\nfloat32\u003c-\u003edouble conversions, so this is dependency hygiene rather than\na measured win there: dependency-bound sqrt/floor microkernels change\nby under 1% and Mandreel (x10) / Octane (x3) are within noise. An\nx86lint survey of Octane's JIT output confirms the rewrite: the 12\nstale VEX merge operand findings (all vroundsd) and the lone legacy\nsqrtsd merge finding drop to zero.\n\nFound via x86lint.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320566",
      "email": "andrew@gaul.org",
      "hash": "f7b57856f171f3f0332adaaf18cfd687d52ee6d3",
      "subject": "Bug 2065620 - Pass the source as the VEX merge operand for scalar sqrt and round on x86-shared. r=jandem"
    },
    "D320568": {
      "author": "Rémi Papillié",
      "avatar": "https://www.gravatar.com/avatar/6dbd13dd334657fae5d8837fb3cdde16?d=identicon\u0026s=64",
      "cl": "D320568",
      "clUrl": "https://phabricator.services.mozilla.com/D320568",
      "description": "Having unitialized values here resulted in WebRender using the corner-shape code path, as the shape_xxx values are not exactly 1.0. This in turns triggers the loading of the superellipse variants of the box shadow shaders (even with the pref off), which are quite complex and take a long time to load on low-end platforms.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320568",
      "email": "rpapillie@mozilla.com",
      "hash": "fa65f2521d8c4abf5812ca7a9c2573c7b0592aa5",
      "subject": "Bug 2063169 - Fix uninitialized corner shape values in box shadows. r=gfx-reviewers,layout-reviewers,emilio,nical"
    },
    "D320580": {
      "author": "Kui-Feng Lee",
      "avatar": "https://www.gravatar.com/avatar/e4ac214dbabf690b7a88e624fcdbaed8?d=identicon\u0026s=64",
      "cl": "D320580",
      "clUrl": "https://phabricator.services.mozilla.com/D320580",
      "description": "WaylandMonitor gives a raw pointer to four Wayland listeners, and three of them\nkeep it alive: each takes a reference that its own callback releases when it\nruns. Finish() destroys the wp_image_description_v1 one of those listeners is\nattached to, which cancels its callback. A cancelled callback never runs, so it\nnever releases its reference, and the monitor is never freed.\n\nNo misbehaviour is needed to hit this. When a display profile changes, the\ncompositor tells us the output's colour setup changed\n(image_description_changed). Firefox answers by starting a fresh screen\nenumeration, which finishes the previous one. Finishing destroys the image\ndescription that monitor is still waiting on, so the reply never arrives and\nthe reference taken to wait for it is never released. Sending the colour change\nbefore the reply reproduces it: the monitor's destructor never runs.\n\nTwo objects are also never destroyed at all: the one\nwp_image_description_v1_get_information() returns, which ImageDescriptionReady()\ndrops, and the wl_callback from wl_display_sync(), which Finish() drops. Each\nleaks once per monitor per screen enumeration. Each also leaves a listener\npointing at the monitor after it is gone, so a malicious or broken compositor\nthat sends an event after done writes through a stale pointer.\n\nGive the monitor a single owner. mWaylandMonitors holds it, and every listener\nthat does work on it takes a scoped reference for as long as it runs, so no\ncallback can outlive what it is using. Finish() destroys every object a listener is\nattached to, so nothing can reach a monitor the getter is about to release.\n\nThat makes the reference Finish() took redundant. It covered the same window -\na callback on the stack when ScreenGetterGtk::Finish() clears mWaylandMonitors\n- by holding the monitor until a compositor round-trip completed. The\nwl_display.sync goes with it, and so does the wl_callback it was leaking.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320580",
      "email": "thinker.li@gmail.com",
      "hash": "6370a0ced6df576ab0af74162f81533ada54ff55",
      "subject": "Bug 2058664 - Give WaylandMonitor one owner instead of one per callback. r=gtk-reviewers,emilio"
    },
    "D320584": {
      "author": "Punam Dahiya",
      "avatar": "https://www.gravatar.com/avatar/bb829b468ca71bf535f2e948861dcd7c?d=identicon\u0026s=64",
      "cl": "D320584",
      "clUrl": "https://phabricator.services.mozilla.com/D320584",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320584",
      "email": "pdahiya@mozilla.com",
      "hash": "bc9fcfd94fffda2b0e57023406e7ed5bcbc22611",
      "subject": "Bug 2061030 - Hide Smart Window shortcuts based on CW newtab settings r=ngrato"
    },
    "D320589": {
      "author": "chloezhouny",
      "avatar": "https://www.gravatar.com/avatar/81576d36003a5543e067abd3d6b66f1d?d=identicon\u0026s=64",
      "cl": "D320589",
      "clUrl": "https://phabricator.services.mozilla.com/D320589",
      "description": "The test intermittently hits a no-output timeout under test-verify (seen on macosx-aarch64 and linux Wayland). The hang is not in the test body (which passes); it is the harness's post-test focus step (SimpleTest.promiseFocus) awaiting a focus event that is not reliably delivered in headless CI, with no timeout. test-verify runs the file 10x in one browser, turning the intermittent focus race into a near-perma timeout.\n\nThis is one of a cluster of aiwindow test-verify timeouts handled the same way before (bugs 2060705, 2056717). Skip under test-verify as a stopgap until the underlying harness focus issue is fixed centrally.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320589",
      "email": "chloezhouny@gmail.com",
      "hash": "d15a0740c096a8696addec0825dfaa92f9e41beb",
      "subject": "Bug 2057151 - Skip browser_aiwindow_ai_action_result.js under test-verify r=jlewis"
    },
    "D320606": {
      "author": "Botond Ballo",
      "avatar": "https://www.gravatar.com/avatar/1a8842a72215d01cdd25f3736194ba92?d=identicon\u0026s=64",
      "cl": "D320606",
      "clUrl": "https://phabricator.services.mozilla.com/D320606",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320606",
      "email": "botond@mozilla.com",
      "hash": "0fa968d56fc48393211c8100c9a3b8c2064f9957",
      "subject": "Bug 2065679 - Limit pinch locking to multi-touch pinch gestures. r=mstange"
    },
    "D320615": {
      "author": "Dana Keeler",
      "avatar": "https://www.gravatar.com/avatar/72636a193847f1a9c45521d07eb0dc6e?d=identicon\u0026s=64",
      "cl": "D320615",
      "clUrl": "https://phabricator.services.mozilla.com/D320615",
      "description": "This also takes the opportunity to update how some cryptoki values are\nserialized and make the trace debugging output more useful.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320615",
      "email": "dkeeler@mozilla.com",
      "hash": "1a327778e7c5ab4a6438047e8f48a7873c0109a4",
      "subject": "Bug 2065613 - rsclientcerts: support larger-than-neccessary buffers in C_GetAttributeValue r=jschanck"
    },
    "D320616": {
      "author": "Dana Keeler",
      "avatar": "https://www.gravatar.com/avatar/72636a193847f1a9c45521d07eb0dc6e?d=identicon\u0026s=64",
      "cl": "D320616",
      "clUrl": "https://phabricator.services.mozilla.com/D320616",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320616",
      "email": "dkeeler@mozilla.com",
      "hash": "21788aa08bca15252a28e7153d369851be2d41bb",
      "subject": "Bug 2065613 - support trust in rsclientcerts r=jschanck,supply-chain-reviewers"
    },
    "D320618": {
      "author": "Jack Brown",
      "avatar": "https://www.gravatar.com/avatar/9390fad805dd5d2471db8ce47f8d239d?d=identicon\u0026s=64",
      "cl": "D320618",
      "clUrl": "https://phabricator.services.mozilla.com/D320618",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320618",
      "email": "jbrown@mozilla.com",
      "hash": "ec8ddf36d503a019c715a3edbf1f349f9f2815dd",
      "subject": "Bug 2065645 - Don't format newtab-menu-content-tooltip without a $title. r=ini"
    },
    "D320625": {
      "author": "Bryan Olsson",
      "avatar": "https://www.gravatar.com/avatar/34df29d70aca0d9b18a6a8fbb65acd5b?d=identicon\u0026s=64",
      "cl": "D320625",
      "clUrl": "https://phabricator.services.mozilla.com/D320625",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320625",
      "email": "bolsson@mozilla.com",
      "hash": "6a74dd61b73aedbde8e809440f8ff209d0bf1dd5",
      "subject": "Bug 2065693 - Update l10n documentation, r=flod DONTBUILD"
    },
    "D320628": {
      "author": "Stephen A Pohl",
      "avatar": "https://www.gravatar.com/avatar/ceeb157ce698ad8c3e5be7c1317498bf?d=identicon\u0026s=64",
      "cl": "D320628",
      "clUrl": "https://phabricator.services.mozilla.com/D320628",
      "description": "browser_sandbox_test.js has been failing permanently since bug 2062465 moved mochitest-browser-chrome from macOS 10.15 Intel to macOS 15 AArch64. The LSOpenCFURLRef check expects kLSServerCommunicationErr (-10822), which is what LaunchServices appears to have returned on the old platform. The failures on the new platform line up with the sandbox policies: the process types that allow reading /System (content, GPU and RDD) get kLSExecutableIncorrectFormat (-10661), and the ones that do not (socket, GMP and utility) get -54. On macOS 26 the posix_spawnp check fails as well in the four process types that expect ENOENT, because they now get EPERM.\n\nA small probe run under sandbox-exec on macOS 26.6 (arm64) suggests that the error LaunchServices reports depends on which rule stops the launch: denying a read of /System/Applications returns -54, while denying the LaunchServices mach services returns kLSUnknownErr (-10810). Denying process-exec on its own does not appear to stop the launch at all, since launchservicesd performs the spawn. The specific value therefore does not look like something we can pin down across process types, macOS versions and CPU architectures, and the comment on the function already says that the important aspect to test for is that the launch is not permitted. So check only that the launch failed, and keep the returned value in the message so a failure stays diagnosable.\n\nThis also releases the CFString that the LSOpenCFURLRef test was leaking, and re-enables the test on macOS 15 AArch64, which is the only platform that runs it on macOS since the migration.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320628",
      "email": "spohl@mozilla.com",
      "hash": "25b4aaea96a1a203a16085c7e86122fac4463fd6",
      "subject": "Bug 2062463: Only check that a sandboxed macOS process cannot launch another process, not which error it gets. r=sandbox-reviewers,haik"
    },
    "D320648": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320648",
      "clUrl": "https://phabricator.services.mozilla.com/D320648",
      "description": "TabUnloader.sys.mjs lives in browser/components/tabbrowser/, and about:unloads too is part of Tabbed Browser as per browser/components/tabunloader/moz.build.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320648",
      "email": "dao@mozilla.com",
      "hash": "1877d4bf829b9ae10aec04c6c6c67df756780ff8",
      "subject": "Bug 2065756 - Move the tab unloading docs under the tabbrowser docs. r=firefox-source-docs-reviewers,sylvestre"
    },
    "D320681": {
      "author": "Andrew Gaul",
      "avatar": "https://www.gravatar.com/avatar/c4735ff5ae1f882942f2b3befcedbdba?d=identicon\u0026s=64",
      "cl": "D320681",
      "clUrl": "https://phabricator.services.mozilla.com/D320681",
      "description": "computeEffectiveAddress unconditionally emitted add xD, xN, #imm, which\ndegenerates to add xD, xN, #0 when the offset is zero. Emit Mov instead:\nvixl drops it entirely when source and destination are the same X register,\nand otherwise emits the orr-form mov alias, a candidate for zero-latency\nmove elimination, while add #0 always occupies an ALU slot. When sp is\ninvolved vixl's Mov falls back to the same add form, so sp semantics are\nunchanged.\n\nThe dominant caller is pre-barrier emission: unguardedCallPreBarrier\ncomputes the barriered slot address into PreBarrierReg, so every barriered\nstore to a zero-offset address (dynamic slot 0, element 0) hit this.\n\nFound via armlint: 2438 'ADD/SUB #0 is redundant' findings on Octane\n(2301 Ion / 51 Baseline / 82 RegExp / 4 trampoline) drop to 2. Code size\nis unchanged in the common dest != base case (mov and add are both one\ninstruction); the win is that the register move is a candidate for\nzero-latency move elimination at rename instead of always occupying an\nALU slot, and the instruction disappears entirely when dest == base. The\ndominant sites are out-of-line barrier paths, so no wall-clock change is\nexpected.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320681",
      "email": "andrew@gaul.org",
      "hash": "c15a091628d5198098b17d5be05955c2076709ee",
      "subject": "Bug 2065808 - jit/arm64: emit mov for computeEffectiveAddress with a zero offset. r=jandem"
    },
    "D320683": {
      "author": "Kagami Sascha Rosylight",
      "avatar": "https://www.gravatar.com/avatar/9f759e9904275bba9b2d86f5fb12964d?d=identicon\u0026s=64",
      "cl": "D320683",
      "clUrl": "https://phabricator.services.mozilla.com/D320683",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320683",
      "email": "krosylight@proton.me",
      "hash": "13e9ae75b3630df42e4c1fed8a1fea8ce58ff713",
      "subject": "Bug 2061689 - Update audioipc r=padenot,supply-chain-reviewers,afranchuk"
    },
    "D320686": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320686",
      "clUrl": "https://phabricator.services.mozilla.com/D320686",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320686",
      "email": "dao@mozilla.com",
      "hash": "7a1de732db167c3b644639bbdc659b4e82b90546",
      "subject": "Bug 2065769 - Make the type names in the tabbrowser's JSDoc resolve. r=kcochrane,tabbrowser-reviewers"
    },
    "D320687": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320687",
      "clUrl": "https://phabricator.services.mozilla.com/D320687",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320687",
      "email": "dao@mozilla.com",
      "hash": "e1c47d88b9f533c84b6c7979c5e185b489ae4c30",
      "subject": "Bug 2065769 - Document the tabbrowser's option-bag parameters. r=kcochrane,tabbrowser-reviewers"
    },
    "D320688": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320688",
      "clUrl": "https://phabricator.services.mozilla.com/D320688",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320688",
      "email": "dao@mozilla.com",
      "hash": "618471abdbb6321f055039790bdb9c341e007d60",
      "subject": "Bug 2065814 - Declare the tab strip's custom elements for TypeScript. r=tabbrowser-reviewers,kcochrane"
    },
    "D320689": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320689",
      "clUrl": "https://phabricator.services.mozilla.com/D320689",
      "description": "jsdoc's parser rejects a type predicate, so the @returns description would not render; it moves into the summary line, and the members still show up in the generated reference at the price of a line each in the doc build log.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320689",
      "email": "dao@mozilla.com",
      "hash": "150c126a1d748c299b6568c80b971a12b8e4afbe",
      "subject": "Bug 2065814 - Make the tabbrowser's element predicates narrow their argument. r=tabbrowser-reviewers,kcochrane"
    },
    "D320698": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320698",
      "clUrl": "https://phabricator.services.mozilla.com/D320698",
      "description": "In chrome the display spec now comes from re-parsing the URL's href rather than from the nsIURI backing the parsed URL, which agrees for anything `URL` accepts.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320698",
      "email": "dao@mozilla.com",
      "hash": "be7fe7d9aa3ef5680c42d4774456c52e3ad8896f",
      "subject": "Bug 2062213 - Make picking a result work in a content realm. r=daleharvey"
    },
    "D320716": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D320716",
      "clUrl": "https://phabricator.services.mozilla.com/D320716",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320716",
      "email": "dao@mozilla.com",
      "hash": "973a1329cbb786a2b5760fcbd7c92ae6ddd73714",
      "subject": "Bug 2062213 - Hand focus back to the page when Escape leaves the newtab bar at rest. r=daleharvey"
    },
    "D320728": {
      "author": "Andrew McCreight",
      "avatar": "https://www.gravatar.com/avatar/0a70c84cd33dba0151fe15f2f8773137?d=identicon\u0026s=64",
      "cl": "D320728",
      "clUrl": "https://phabricator.services.mozilla.com/D320728",
      "description": "This patch tracks which XPCOM components are singletons at runtime, and\nthrows an error if you attempt to call createInstance for a singleton.\nThe motivation here is that many singleton XPCOM components only expect\nto be created once, via do_GetService(), and calling do_CreateInstance()\nmultiple times could result in races or memory corruption, which we'd like\nto avoid.\n\nThe system principal is implemented as a singleton, but it isn't a service,\nand calls to createInstance with it far outnumber the calls to getService.\nFurthermore, you have to be able to createInstance it to work with\nnsBinaryStream. For these reasons, the patch changes the 'singleton' property\nfor it to False. The nsBinaryStream behavior is tested in\ntest_binarystream_systemprincipal.js.\n\nThe test browser_bug1535877.js was testing that you can safely createInstance\nthe eTLD service, but now it simply throws. That aspect is maintained by XPCOM\nand not the eTLD service itself, so I've moved the test into test_create_single.js\nand updated it for the new behavior.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320728",
      "email": "continuation@gmail.com",
      "hash": "e5895fd4d25cf202dfb187a5666f47cf119e6909",
      "subject": "Bug 2062720 - Don't allow CreateInstance for singleton XPCOM components. r=nika,necko-reviewers,valentin"
    },
    "D320751": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D320751",
      "clUrl": "https://phabricator.services.mozilla.com/D320751",
      "description": "With remote encoding, a compromised content process may be able to\nexploit the process boundary to cause us to enter states we did not\nanticipate. This patch adds explicit guards for these scenarios.\n\nIt also ensures that we handle multiple encodes in flight properly.\nBefore a second encode would attempt to reuse the same promise and\nholder as the first encode. Now we have a promise per encode call.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320751",
      "email": "aosmond@mozilla.com",
      "hash": "dbc1de358ad2dfc87edf00b8db4c8866825e33a2",
      "subject": "Bug 2065956 - Harden WMF encoding state machines to avoid edge case pitfalls. r=media-playback-reviewers,alwu"
    },
    "D320752": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D320752",
      "clUrl": "https://phabricator.services.mozilla.com/D320752",
      "description": "With remote encoding, a compromised content process may be able to\nexploit the process boundary to cause us to enter states we did not\nanticipate. This patch adds explicit guards for these scenarios.\n\nIt also ensures that we handle multiple encodes in flight properly.\nBefore a second encode would attempt to reuse the same promise and\nholder as the first encode. Now we have a promise per encode call.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320752",
      "email": "aosmond@mozilla.com",
      "hash": "de5536321cddf4ac4803188280e00cfe8b700080",
      "subject": "Bug 2065957 - Harden AppleVTEncoder state machine to avoid edge case pitfalls. r=media-playback-reviewers,alwu"
    },
    "D320774": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D320774",
      "clUrl": "https://phabricator.services.mozilla.com/D320774",
      "description": "Bug 2055145 made a text run round its clips out to the device grid, and\nbug 2056856 extended that to both axes for ancestor clips. An overflow clip sits\nflush with the inner edge of its container's painted border box, so rounding it\noutward spills a whole device row or column of scrolled content over that border.\n\nExact is correct: a text clip is applied by clamping the glyph quad's geometry,\nwith no coverage term, so it resolves at the pixel centre - the same grid the\ncontainer's snapped geometry landed on. Round-out moves it a whole pixel off that\ngrid, always in the spilling direction.\n\nSo leave a device-space prim's clips exact, as before bug 2055145. ClipSnap\ncollapses to Nearest / Exact and SnapRounding::RoundOutNonSubpx goes away; the\nbounding rect still rounds out.\n\nReplaces the bug 2055145 wrench test with one for this bug, drops the eight mac\nfuzzy annotations it added, and restores the four expectations bug 2056856\nremoved.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320774",
      "email": "git@chillybin.org",
      "hash": "4a50ca47a8dfda0a7c577a1c2ce74498fd57358f",
      "subject": "Bug 2065629 - Stop rounding a device-space text run's clips out to the device grid r=gfx-reviewers,nical"
    },
    "D320788": {
      "author": "Sotaro Ikeda",
      "avatar": "https://www.gravatar.com/avatar/a0c6bcb88fdc08a4e55f4fcf65cf0428?d=identicon\u0026s=64",
      "cl": "D320788",
      "clUrl": "https://phabricator.services.mozilla.com/D320788",
      "description": "When ANGLE GL backend is used, WebRender need to use different EGLDisplay. Then RenderEGLImageTextureHost does not work with ANGLE.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320788",
      "email": "sotaro.ikeda.g@gmail.com",
      "hash": "28d2c0d2f6d2667364302972513616476069e134",
      "subject": "Bug 2064312 - Disable SharedSurface_EGLImage with ANGLE on Android r=gfx-reviewers,nical"
    },
    "D320802": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320802",
      "clUrl": "https://phabricator.services.mozilla.com/D320802",
      "description": "mozGetElement was a 295-line `when` with one arm per SelectorStrategy: 254 lines\nof code to express 34 lookups.\n\nThe strategies are not 34 ideas. They are the product of five small ones - which\ntoolkit answers the question, what to match on, exactly or as a substring, which\nCompose semantics tree, and whether to take the single node or the first of all\nmatches - plus an optional second clause such as a sibling's or a child's text.\n\nSo Locator says what a strategy asks for, STRATEGY_LOCATORS maps every existing\nconstant to one, and four resolvers interpret it, one per toolkit. Each resolver\nis a five-to-seven arm `when` over the handle instead of a 34-arm `when` over\nstrategies, and the table is the entire compatibility surface, so every selector\ncatalog and page object compiles untouched.\n\nResolution logic: 254 -\u003e 116 lines, plus a 71-line declarative table. BasePage\noverall: 1806 -\u003e 1573 lines of code.\n\nThe line count is not the point. Adding a strategy meant adding an arm, and arms\ncould disagree about things the caller never chose: UIAUTOMATOR_WITH_RES_ID\nprefixes the package and UIAUTOMATOR_WITH_RAW_RES_ID does not, so aiming one at\na Compose test tag finds nothing and says nothing. Those are now one code path\nwith different field values, and the same is true of the merged/unmerged tree\nchoice that several Compose arms made inconsistently.\n\nVerified on device across all four layers - HomeTest, HistoryTest,\nFindInPageTest and SettingsAboutTest, 19 tests - with the same classes passing\nidentically on main.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320802",
      "email": "jajohnson@mozilla.com",
      "hash": "30de3682f9cd93b814888c7de9f7494128ffd639",
      "subject": "Bug 2065666 - [efficiency] Describe selector strategies as data and resolve them with four adapters instead of a 34-arm branch r=isabel_rios"
    },
    "D320803": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320803",
      "clUrl": "https://phabricator.services.mozilla.com/D320803",
      "description": "Eighteen of BasePage's moz* verbs were the same dozen lines with three lines of\ndifference: announce the command, announce the lookup, resolve, retry once if a\nknown overlay was covering the target, report the miss, dump the screen, throw\nwith the selector in the message - and somewhere in the middle, do the thing.\n\nCopying that skeleton eighteen times is why the verbs disagreed with each other.\nmozVerify polled and mozClick did not, so the same missing element was a timeout\nor an instant failure depending on which verb you reached for. The overlay retry\nexisted in two verbs out of eighteen. Three verbs dumped the screen on failure\nand the rest did not. None of those differences were decisions; they were the\nplaces the copies had drifted.\n\ncore/Interaction.kt holds the skeleton once. A verb is now a name, a wait\npolicy, a predicate and an action:\n\n  fun mozClickWhenEnabled(selector: Selector, ...) = require(\n      verb = \"click_when_enabled\",\n      policy = WaitPolicy.Poll(timeout, interval),\n      predicate = { ElementState.probe(it, Trait.ENABLED) },\n      action = UiActions::click,\n  )\n\nPatience is declared rather than hand-rolled, so WaitPolicy.Immediate versus\nPoll is visible at the call site instead of buried in a while loop. The overlay\nretry and the screen dump now happen for every verb because they happen in one\nplace. ElementState.isNot asserts the negative rather than negating the positive,\nbecause Compose distinguishes \"not enabled\" from \"no enabled semantics at all\".\n\ncore/UiActions.kt takes the second duplication: nine verbs each ended in the\nsame four-branch `when` over ViewInteraction / UiObject / UiObject2 /\nSemanticsNodeInteraction, with an `else -\u003e throw \"unsupported element type\"` for\nthe impossible fifth case. Sixteen hand-written cases become one dispatch.\n\nTwo behaviours are deliberately preserved rather than unified, both marked:\nmozClick still resolves through resolve() and everything else through\nmozGetElement (the asymmetry is a real defect, tracked separately, and changing\nit here would hide this refactor inside a behaviour change); and \"optional\" now\ncovers the action as well as the lookup, because mozClickIfPresent was written\nto swallow a failed UiObject click and the type dispatch would otherwise have\nstarted throwing.\n\nVerbs: 723 -\u003e 175 lines. BasePage: 1653 -\u003e 1123 lines of code.\n\nVerified on eff-firebase-api34: 87 tests across HomeTest, BookmarksTest,\nHistoryTest, SearchTest, MainMenuTest, SettingsAccessibilityTest,\nSettingsCustomizeTest, SettingsDeleteBrowsingDataTest, SettingsGeneralTest,\nSettingsHTTPSOnlyModeTest, TranslationsTest, FindInPageTest and ReaderViewTest.\nOne failure, MainMenuTest.verifyTheTranslatePageSubMenuOptionTest, is the\ndocumented local baseline failure: the translation model never downloads on this\nemulator.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320803",
      "email": "jajohnson@mozilla.com",
      "hash": "da1d35f90d3c73bffd786bd17016dfc758b4afcb",
      "subject": "Bug 2065666 - [efficiency] Give every element verb one skeleton instead of eighteen copies of it r=aaronmt"
    },
    "D320804": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320804",
      "clUrl": "https://phabricator.services.mozilla.com/D320804",
      "description": "The remaining verbs that still carried their own skeleton, and the last two\nduplications underneath them.\n\nGestures. mozSwipeElement was 103 lines: a four-branch `when` in which each\nbranch re-derived the same four directions in that backend's own vocabulary -\nsixteen cases written longhand. core/Gestures.kt makes direction a lookup and\ngives each backend one line, plus onScreen() for the case where there is no\nelement to aim at yet.\n\nRepetition. Four verbs were the same loop - swipe until it shows, swipe until it\ngoes, press back until it goes, press back until it shows - each rebuilding the\nattempt counter, the per-attempt report line and its own failure text. They also\ndisagreed about whether to check before or after the last step, so two of them\ncould take one more action than they were asked for. driveUntil() checks first\nand acts second, so a screen that is already correct costs nothing.\n\nThat fixed a three-second stall per call in mozPressBackUntilGone, which waited\nwaitingTimeShort for the element to be *present* before concluding it was gone -\nso the success path always paid the full timeout.\n\nCollections. Five verbs each fetched the match collection, rebuilt the same poll\nloop, and wrote their own \"strategy not supported\" error. requireAll() asks the\nquestion once. Only a Compose tag can match more than one element, and that is\nnow the message when a caller picks something else, instead of a bare \"not\nfound\".\n\nWaiting. WaitPolicy.Poll now backs off - 25ms, then doubling to the caller's\ninterval - so a screen that settles in 80ms costs 80ms instead of a full tick.\nThe suite spends most of its time waiting for things that have already happened.\nmozVerifyElementCount opts out, because a list still being populated passes\nthrough the expected count on its way to a larger one and probing faster would\nmake that transient easier to catch, not harder.\n\nAlso here: mozVerifyElementCount was the last unguarded closeSoftKeyboard() in\nthe tree. Espresso throws PerformException from it when the focused view's root\nis not the one it expects, and hiding the keyboard is only ever a convenience,\nso it must not fail a test. It now uses the guarded dismissSoftKeyboard(), and\nSettingsSearchTest.verifyCustomSearchEngineCanBeAddedFromSearchEngineMenuTest -\na standing local failure - passes.\n\ncore/ is now ten small files rather than one growing one: Wait, VerbHost,\nElementState, Verbs, UiActions, Gestures, Relations, Locator, Resolvers,\nUiElement.\n\nVerbs: 702 -\u003e 241 lines. BasePage: 1123 -\u003e 742 lines of code, from 1890 at the\nstart of this branch.\n\nVerified on eff-firebase-api34: 68 tests, zero failures, across every class that\ncalls a verb this touched - SearchTest, TranslationsTest, SettingsSearchTest,\nSettingsCustomizeTest, NavigationToolbarTest, NavigationToolbarExpandedTest,\nSettingsAccessibilityTest, SettingsPageSummariesTest, CreditCardAutofillTest,\nReaderViewTest, BookmarksTest, HistoryTest and UploadPermissionsTest.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320804",
      "email": "jajohnson@mozilla.com",
      "hash": "73ca42436b543fbce81492ad9e17dd789dde2ec8",
      "subject": "Bug 2065666 - [efficiency] Finish the verb consolidation: gestures, collections, repetition, and a faster wait r=aaronmt"
    },
    "D320805": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320805",
      "clUrl": "https://phabricator.services.mozilla.com/D320805",
      "description": "The last three functions carrying their own skeleton, and the resolution path\nthat was still split across two files.\n\nPage groups. \"Am I already on this page\", \"wait until I am\", and \"verify this\ngroup of elements\" were three functions iterating a group of selectors, each\nwriting its own per-selector report line and folding the results with `all {}`.\nThe polling one restarted its command on every tick, so a ten-second wait wrote\na hundred command pairs into the report to answer one question. groupPresent()\nasks once and answers; the three callers differ only in their wait policy,\nwhether they scroll, and what they do with a no.\n\nResolution. resolveComposeNode/pickDisplayed/toUiElement lived in BasePage while\nthe four strategy resolvers lived in core/Resolvers.kt, so the two halves of\n\"selector -\u003e element\" could not be read together. Resolvers.displayed() is now\nthe fifth resolver, next to the others: the four answer \"which node does this\nname\", it answers \"which of them is the one on screen\", which is the question an\ninteraction actually has. UiElement.wrap() moves to the facade it produces.\n\nPutting both paths in one file is also the precondition for closing the\nasymmetry between them - mozClick resolves through displayed(), everything else\nthrough mozGetElement, so an element can be clickable and unverifiable. That is\na behaviour change and belongs in its own patch; this one just stops the two\nhalves being in different places.\n\nAlso removed: check(), which had no callers. Speculative API in a file whose\nwhole point is that there is one way to say each thing is a defect, not a\nconvenience.\n\nBasePage: 742 -\u003e 618 lines of code, from 1890 at the start of this branch.\n\nVerified with the full package on eff-firebase-api34: 217 tests, 27 skipped, one\nfailure - MainMenuTest.verifyTheTranslatePageSubMenuOptionTest, the documented\nlocal baseline failure where the translation model never downloads.\n\nFour failures from the recorded baseline now pass, and the run contains no\nPerformException at all. Two of those are this stack's guarded keyboard dismiss;\nthe download and Play-Store handoff ones are not attributable to it - that\nbaseline was recorded on a different emulator image.\n\n47m03s for 217 tests, against a recorded 51m31s for 200. Per test that is 12.7s\nagainst 15.5s. The poll backoff and the removed three-second stall in\nmozPressBackUntilGone are the plausible causes, but a single run cannot separate\nthem from variance.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320805",
      "email": "jajohnson@mozilla.com",
      "hash": "44015b94cab9f158c87ccf595e560d6fcb59cf19",
      "subject": "Bug 2065666 - [efficiency] Move the page-group probe and the displayed-match resolver into core r=aaronmt"
    },
    "D320806": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320806",
      "clUrl": "https://phabricator.services.mozilla.com/D320806",
      "description": "Pure move, no code changes. The old section banners described a file that no\nlonger existed: \"Interaction helpers (CMD + LOC)\" sat above three verbs while\nfive more lived under \"Preconditions (CMD)\", and mozClear, mozVerifyNativeAppOpens\nand dismissSoftKeyboard shared a heading with ensureReachable because that is\nwhere they happened to be written.\n\nNow the file reads as what it is - a page's host wiring, then navigation, then a\nverb vocabulary grouped by the question each verb answers:\n\n  What the verb executor needs from a page\n  Page identity\n  Reporting internals\n  Navigation (STEP)\n  Resolution: selector -\u003e element\n  Preconditions and interference\n  Verbs: is it there?\n  Verbs: what state is it in?\n  Verbs: all the matches at once\n  Verbs: touch it\n  Verbs: type into it\n  Verbs: move the screen\n  Verbs: the device around the app\n\nVerified move-only by diffing the sorted non-blank content of both revisions with\nthe banners excluded: identical. Compiles, formats clean, and 21 tests across\nHomeTest, SettingsCustomizeTest and SearchTest pass.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320806",
      "email": "jajohnson@mozilla.com",
      "hash": "3207706c35381a999f423d9c6dac6df2417bc559",
      "subject": "Bug 2065666 - [efficiency] Reorder BasePage into sections that describe their contents r=aaronmt"
    },
    "D320807": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320807",
      "clUrl": "https://phabricator.services.mozilla.com/D320807",
      "description": "Every primitive returned Unit (or, in require's case, a Boolean nobody read), so\neach verb needed a block that called it and then said `return this` for chaining.\nTwenty-eight verbs paid three lines to say one thing:\n\n  fun mozVerifyElementAbsent(selector: Selector): BasePage {\n      requireAbsent(\"verify_absent\", selector)\n      return this\n  }\n\nThe primitives are now generic in their receiver - `fun \u003cT : VerbHost\u003e T.require(...): T` -\nso the verb is the expression:\n\n  fun mozVerifyElementAbsent(selector: Selector) = requireAbsent(\"verify_absent\", selector)\n\nrequire's Boolean return goes with it. It reported whether an `optional` verb had\nactually done anything, and nothing ever asked.\n\nAlso trimmed 48 lines of comment. I had annotated the new code with what it\nreplaced - \"six verbs, one shape, each was ~40 lines\" - which is commit-message\nmaterial, and it is already in the commit messages. What stays is what a reader\nneeds in order to change the code safely.\n\nBasePage: 618 -\u003e 560 lines of code, from 1890 at the start of this branch.\n\nVerified on eff-firebase-api34: 63 tests across HomeTest, BookmarksTest,\nSearchTest, SettingsCustomizeTest and MainMenuTest. One failure,\nMainMenuTest.verifyTheTranslatePageSubMenuOptionTest, the documented local\nbaseline failure where the translation model never downloads.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320807",
      "email": "jajohnson@mozilla.com",
      "hash": "2025c3119bbfa9674a05e5e27952c9635312cfd2",
      "subject": "Bug 2065666 - [efficiency] Return the receiver from each primitive so a verb is one expression r=aaronmt"
    },
    "D320808": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320808",
      "clUrl": "https://phabricator.services.mozilla.com/D320808",
      "description": "Documentation only.\n\nBasePage's class comment was headed \"why BasePage owns logging\". It does not own\nlogging any anymore - core/Verbs.kt does, and BasePage's entire involvement is\n`override fun reporter() = rep()`. The rest of it was a roadmap (test factories,\nreflection-based page enumeration, AI-assisted self-healing) rather than anything\nthat helps someone change this file. Replaced with what BasePage now is:\nnavigation, host wiring, and a verb vocabulary where each verb is one expression.\n\nOne sentence from it was load-bearing and moved to core/Verbs.kt, where the\nreporting actually happens: the structured log stream is the source of truth for\nwhat a test did. That is not philosophy - it is why effpretty and effverify\nexist, and it is the constraint on any future change to the report format.\n\ndocs/guides/extending-basepage.md was worse than stale, it was misleading. It\ntold the next verb author that a primitive \"must dispatch across the element\nbackends - don't hard-code one\", which is now exactly backwards: a verb that\nhand-writes a four-way `when` re-introduces the duplication that UiActions,\nGestures, ElementState and Relations removed. It now says a verb is one\nexpression, tabulates the seven primitives to choose between, and says where\nbackend behaviour goes instead. Its verb inventory was six verbs short and is\nnow generated from BasePage and grouped the way the file is; a checker in the\ncommit process confirmed all 39 are listed and nothing listed is fictional.\n\narchitecture.md claimed \"everything funnels through resolve()\", which was only\never true of mozClick and is not the organising fact now. It describes the ten\ncore files. gotchas.md B6 said new verbs go through resolve(); it now says what\nthey actually go through, and keeps the advice that matters - full-suite any core\nchange, which this branch has repeatedly justified.\n\nAlso updated the efficiency-test-authoring skill in firefox-aidev-plugins, which\ndistills these docs for agent use and carried the same resolve() instruction.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320808",
      "email": "jajohnson@mozilla.com",
      "hash": "5cf6d919f5424219948e54b49e4c33ba80f872c6",
      "subject": "Bug 2065666 - [efficiency] Make the docs describe the harness that now exists r=aaronmt"
    },
    "D320809": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320809",
      "clUrl": "https://phabricator.services.mozilla.com/D320809",
      "description": "Comments only; not a line of code changed.\n\nOne test applied throughout: does this tell a reader something the code cannot,\nand would it change what they do? What failed it:\n\n- Archaeology. mozGetElement still opened with \"was a 295-line `when`\", and the\n  navigateToPage dump explained what the code used to fail to do. The line count\n  is in the commit that made it true; it is not orientation for anyone reading\n  the file now.\n- Restatement. \"Helps avoid super long or illegal step ids due to punctuation\" sat\n  above a regex substitution and a take(120).\n- Padding. dismissKnownOverlaysIfPresent had thirteen lines saying three things.\n\nWhat stayed, shorter: the reasons a change would be wrong. mozVerifyElement must\nnot throw, because the page probes poll it and an escaped exception becomes a\nStrictMode penaltyDeath that masks the real error. dismissSoftKeyboard tolerates\nfailure because hiding the keyboard is only a convenience. mozVerifyElementCount\npolls on a fixed beat because a list still filling passes through the expected\ncount. mozClickWhenEnabled exists because a disabled control accepts the tap and\nthe test passes anyway.\n\nTwo additions, both facts a reader needs: resolve() now says outright that every\nother verb resolves through mozGetElement, so an element can be clickable and\nunverifiable (MTE-5737); and dismissSoftKeyboard says to use it rather than a\nbare closeSoftKeyboard(), which is the bug this branch fixed.\n\nSection banners are one line rather than three.\n\nBasePage comments: 168 -\u003e 105 lines. Code unchanged at 560.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320809",
      "email": "jajohnson@mozilla.com",
      "hash": "a9cd67bcc8e1adb36d011113c7cd531a855005fa",
      "subject": "Bug 2065666 - [efficiency] Tighten BasePage's comments to what a reader cannot get from the code r=aaronmt"
    },
    "D320810": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320810",
      "clUrl": "https://phabricator.services.mozilla.com/D320810",
      "description": "The reporter had six public methods that were three, and a latent bug in the\nother three. endStep, endCmd and endLoc were all `= endEvent(success, message)`,\nwhich pops whatever is on top of a stack regardless of type - so a verb that\nthrew between its start and its end left its event on the stack, and the next\nendCmd() silently closed the wrong one, shifting the indentation of every line\nafter it. Nothing detected that.\n\nstart() now hands back a Scope and you close the scope you were handed:\n\n    val cmd = cmd(verb, selector.description, \"Attempting to $verb ...\")\n    ...\n    cmd.fail(message)\n\nwhich makes the mismatch unrepresentable and lets the ArrayDeque go entirely. An\nabandoned scope now corrupts nothing, and a second close is ignored rather than\ndouble-counted.\n\nThe rest is the same de-duplication as the verbs. Type carries what differs\nbetween STEP/CMD/LOC - depth, announcer, slow threshold, summary label - so four\n`when` blocks over the same three cases become a table, and printSummary's three\nnear-identical emissions become a loop. Outcome does the same for OK/FAIL/SKIP,\nmerging endEvent and endEventSkip. Thresholds and Totals were public nested\nclasses with no callers and are gone.\n\nTestLogging.reporter is no longer nullable. It was null only before BaseTest\ninstalls one, which put a `?.` on all forty-odd call sites to express something\nno caller ever wanted to handle; TimedReporter.Silent covers the case that\nactually exists - page objects driven outside a test, by the inspector or\ntooling. Verbs.kt and BasePage.kt now contain zero `rep?.`.\n\nAlso: effpretty had no style for [SKIP], so a skipped scope - an optional element\nthat was not there - rendered as unstyled body text. LEVEL_STYLE.get() defaulted\nit silently.\n\nTimedReporter: 137 -\u003e 93 lines of code. Verbs.kt: 270 -\u003e 249.\n\nVerified output-preserving rather than assumed. Captured the Eff stream from\nHomeTest on this code and on the previous commit, normalised only the millisecond\nmeasurements, and diffed: 238 structured lines each, identical - every tag, glyph,\nindentation level, message and counter (Steps 2, Commands 11, Locators 12 on the\nfirst test; 7/33/48 on the second). effpretty's STRUCT_RE and effverify's grading\nread that stream, so this was the guard that mattered.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320810",
      "email": "jajohnson@mozilla.com",
      "hash": "9db6608cc89ad010a8b56961b5d7bab2a9d312f2",
      "subject": "Bug 2065666 - [efficiency] Hand out reporting scopes instead of pushing onto a stack r=aaronmt"
    },
    "D320811": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320811",
      "clUrl": "https://phabricator.services.mozilla.com/D320811",
      "description": "Triage over rendered English breaks silently, and this branch proved it: the verb\nconsolidation reworded eight of efftriage's thirteen matchers at once. Nothing\nfailed. Tests passed, runs passed, and the tool quietly stopped explaining\nanything. One rule had already died the same way in August, which is documented\nin efftriage's own header — so this is the second time, not the first.\n\nThe harness now emits every event twice. Prose on the Eff tag, unchanged, for a\nhuman. And one JSON object per event on a new EffJson tag for a machine, carrying\nwhat the prose only implies:\n\n  {\"type\":\"CMD\",\"verb\":\"wait_until_absent\",\"selector\":\"Translation bottom sheet\n   translate button\",\"strategy\":\"COMPOSE_BY_TEXT\",\"value\":\"Translate\",\n   \"failure\":\"still_present\",\"outcome\":\"FAIL\",\"elapsedMs\":25530.29, ...}\n\ncore/VerbHost.kt gains a Failure vocabulary — not_found, wrong_state,\naction_failed, still_present, appeared, never_settled, collection_unsatisfied,\nunsupported_strategy, condition_timeout, not_arrived, no_path — so a rule can\nmatch a value instead of a sentence. Every primitive records which one applies,\nplus the selector's identity and the label of the screen dump taken for that\nfailure, so a consumer can pair the two.\n\nThree gaps closed while wiring it:\n\n- The failure cause was dropped twice. StepResult.Fail carries a Throwable, but\n  TimedReporter built Fail(message) without one and CombinedLogger wrote only the\n  reason, so no stack ever reached either sink. It does now.\n- details.jsonl had no test boundaries, so a step could not be attributed to a\n  test — the first thing triage asks. A TestWatcher records testStart/testEnd\n  with the outcome. This turns out to matter more than expected: a real 32-test\n  run logs 82 failing records for ONE failing test, because navigateToPage asks\n  \"am I already here?\" before every move and the answer is usually no. Without\n  boundaries a consumer cannot tell those apart from the real failure.\n- outcome (OK/FAIL/SKIP) and result (PASS/FAIL) said nearly the same thing in two\n  vocabularies, and result flattened SKIP into PASS. One field now.\n\nTransport is logcat rather than a file, which was the reachability problem all\nalong: the artifacts live in app-scoped storage and the orchestrator runs\npm clear between tests, so nothing written there survives to be pulled — and the\nTAE flank configs only pull /sdcard/screenshots, which nothing in this suite\nwrites to. Logcat already survives all of that and is already captured. The file\nstays for local use.\n\neffpretty demuxes the tag: --events writes the records verbatim to a sidecar and\nnever renders them. It does the split because it is the only process reading\nlogcat during a run; a second adb logcat would race it for the same buffer and\nboth would come away with holes.\n\nAlso: effpretty had no style for [SKIP], so a skipped scope rendered as unstyled\nbody text.\n\nVerified end to end on device rather than reasoned about: a real MainMenuTest run\nproduced 1556 records, none unparseable, and the one genuine failure appears with\nfailure=still_present and its full selector identity. The corresponding efftriage\nchange lands separately.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320811",
      "email": "jajohnson@mozilla.com",
      "hash": "22b6ab6ecf9eaf2cb45fef9fcf484df956394fae",
      "subject": "Bug 2065666 - [efficiency] Emit the run as structured records, not only as prose r=aaronmt"
    },
    "D320812": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320812",
      "clUrl": "https://phabricator.services.mozilla.com/D320812",
      "description": "Every triage rule ends with \"read the dump\", which until now meant a human\nreading dozens of bullet lines of prose. The dump is now also emitted as records\n— one per node, grouped by the dump's label, across both the Compose and the\nUiAutomator layers — so \"was the element on screen under a different handle?\"\nbecomes a query instead of an eyeball exercise. That question is the most common\nconversion mistake there is, and the native layer is where it is often answered:\na system dialog or a legacy View lives outside the Compose semantics tree\nentirely, which is the whole point of gotcha A9/F1.\n\nThe prose dump is unchanged, byte for byte. It is what a person reads.\n\nGetting there meant giving StepLogger a general emitter, and that turned four\nmethods into one. info, warn, error and attachScreenshot had no callers between\nthem — attachScreenshot in particular could never have had one, because it wants\na PNG path and ScreenDump writes logcat. record(type, fields) replaces all four\nand has a real use on the day it lands. StepLogger is down from eight methods to\nfive, every one of them called.\n\nVolume is bounded: dumps only happen on failure, and MAX_STRUCTURED_NODES caps a\npathological screen at 250 nodes per layer with the truncation recorded rather\nthan silent.\n\nVerified by running the EffScreenDumpRunner devtool, which dumps deliberately, so\nthe emission path could be checked without waiting for a failure to produce one:\n36 compose records and 136 uiautomator records, correctly grouped by label and\ntagged with their layer.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320812",
      "email": "jajohnson@mozilla.com",
      "hash": "0a09c8a1ed33349b946348bfdae9a6aa856e942a",
      "subject": "Bug 2065666 - [efficiency] Make screen dumps queryable, and replace four unused sink methods with one that is used r=aaronmt"
    },
    "D320813": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320813",
      "clUrl": "https://phabricator.services.mozilla.com/D320813",
      "description": "`capture` terminated the child in the generator's `finally`, which is not the\nthing that gets killed. Python's default SIGTERM handling exits the interpreter\nwithout unwinding generators, so the cleanup never ran.\n\neffloop backgrounds `effpretty capture` and SIGTERMs it at the end of every run,\nwhich means it has been leaving one `adb logcat` attached to the device per loop\niteration, silently, forever. Two were found still attached after a day's work.\n\nA stray reader is not free: logd serves it every line and applies backpressure to\nthe app producing them. Reaping the two found here was worth about 7% on a test\nclass — small, but it accumulates with every run and nothing ever cleaned it up.\n\nThe children are now tracked at module level and reaped from an atexit hook plus\nSIGTERM/SIGHUP handlers, so the path that actually happens is covered rather than\nonly the one that doesn't.\n\nVerified by running capture under each version and counting readers after a\nSIGTERM: before, one left behind; after, none.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320813",
      "email": "jajohnson@mozilla.com",
      "hash": "03e110c4216eeee990bdc6caa5ff06330d749509",
      "subject": "Bug 2065666 - [efficiency] Stop effpretty orphaning its adb logcat child r=aaronmt"
    },
    "D320814": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320814",
      "clUrl": "https://phabricator.services.mozilla.com/D320814",
      "description": "Four tools parse this harness's output and none of them live in this repository:\neffpretty renders the console stream, efftriage diagnoses failures from the\nstructured one, effverify grades runs, and the fleet UI reads both. So a\nrewording here cannot fail anyone's CI, and is invisible until someone notices\ntheir tooling has quietly stopped working.\n\nWhich has happened twice. On 2026-08-21 the verb consolidation reworded eight of\nefftriage's thirteen matchers at once: tests green, runs green, triage silently\nexplaining nothing. One rule had already died the same way on 2026-08-13 and its\nown comment records the date. Both were found by accident, weeks apart.\n\nlog-format.json is that contract written down: the console tags and glyphs and\nindentation effpretty parses, the EffJson record types and field vocabulary,\nthe Failure values triage matches on instead of prose, and the screen-dump\nmarkers. It documents what already exists --- no behaviour changes here.\n\nThe file is deliberately data rather than prose so it can be asserted against.\nContract tests reading it live in testops-tools for now\n(tae-conversion/tests/harness_contract_tests.py) and catch drift in both\ndirections: the harness dropping something it promises, and a consumer matching\na value the harness no longer emits.\n\nThose tests belong here, in the CI that reviews the change that breaks them ---\nin testops-tools they only fire when somebody runs that suite, so a break lands\ngreen and goes red later. Moving them is a port rather than a redesign precisely\nbecause this file stays put. That move needs a gradle-config change, which is a\nconversation worth having when the toolchain has earned it rather than now.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320814",
      "email": "jajohnson@mozilla.com",
      "hash": "0d1e719c1900eea432c5c4fd5b945b5b5ff0ffaa",
      "subject": "Bug 2065973 - [efficiency] Write down the log format the harness promises r=aaronmt"
    },
    "D320815": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320815",
      "clUrl": "https://phabricator.services.mozilla.com/D320815",
      "description": "A failed test was a name and a status, so the next step was always to re-run it\nlocally and watch. That does not work for the load-sensitive failures, which are\nexactly the ones that pass when run alone.\n\nThe harness already knew the answer and threw it away. On failure it dumped the\nCompose tree as text, while dumpAll() --- which additionally captures a\nscreenshot and every element's on-screen bounds across all three layers --- was\nreserved for interactive inspection. dumpFailure now does both, so a failure\nleaves behind the picture and the map, not just the prose.\n\nTwo things found while wiring it up:\n\nnavigateToPage and mozVerifyElementsByGroup called ScreenDump.dump directly\nrather than through dumpFailure, so the one place that decides what a failure\nrecords was bypassed by the two paths that produce most failures.\n\neffviewdump-v2.py had no --json mode, but mission-control's inspect page has\nbeen invoking it with --json and treating the usage message as \"analyzer\nfailed\" --- so that overlay has been silently broken. Added analyze(), which\nreturns the same grouping, bounds and ranked selectors the HTML overlay draws.\nEmitting them from here rather than reimplementing the ranking is the point:\notherwise the selector you are shown depends on which tool you opened.\n\nVerified end to end against a deliberate failure on the homepage: 110 selectors\nin 55 groups, page detected, screenshot and log captured.\n\nNot fixed here, because it changes what a green suite means and that is not\nmine to decide: mozVerifyElementsByGroup passes vacuously for a group name that\ndoes not exist. groupPresent does selectors.all {}, and all {} on an empty list\nis true, so a typo'd group is an assertion that cannot fail.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320815",
      "email": "jajohnson@mozilla.com",
      "hash": "73a0e34b337e3e9851f3ca5c909f62eee12eeb44",
      "subject": "Bug 2065974 - [efficiency] Capture the failure screen, and give the analyzer a --json mode r=aaronmt"
    },
    "D320816": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320816",
      "clUrl": "https://phabricator.services.mozilla.com/D320816",
      "description": "testStart has always taken a meta map and nothing ever filled it, so every\nstructured trace implied a default launch. \"Was this test even running the app\nit expects?\" was therefore unanswerable after the fact, which came up\nimmediately the first time a Translations failure needed explaining --- the\nflag turned out to be applied, but only a device still running could say so.\nLaunchConfig.asMeta() puts it on the record instead.\n\nAlso adds tools.SnapshotPrimer: a BaseTest that takes its LaunchConfig from\ninstrumentation arguments, launches the app and holds it, so an emulator\nsnapshot can be taken of a device already in one group's configuration. It goes\nthrough BaseTest rather than writing preferences directly, because\nHomeActivityTestRule applies the flags and then launches --- a snapshot of\nanything else would capture a state no test is ever in.\n\nDeliberately in tools/ rather than tests/: the sweep's default suite is\nui.efficiency.tests, so this stays out of it while remaining dispatchable.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320816",
      "email": "jajohnson@mozilla.com",
      "hash": "0e30d68a37012fe62b4c83701177a74caf700992",
      "subject": "Bug 2065975 - [efficiency] Record the launch config on testStart, and add a snapshot primer r=aaronmt"
    },
    "D320817": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320817",
      "clUrl": "https://phabricator.services.mozilla.com/D320817",
      "description": "BasePage.dumpFailure covers navigateToPage and mozVerifyElementsByGroup, but a\npage object that asserts with a bare JUnit assertTrue throws straight past it ---\nBrowserPage.verifyPageContent does exactly that. So the failures with no\npage-object verb behind them, the ones most in need of a picture, produced no\nscreenshot and no element dump at all.\n\nThe dump is wrapped INSIDE the activity rule, which matters and is not obvious:\ncatching further out photographs a black screen, because the activity rule\nfinishes the activity in its own teardown before the exception reaches anything\noutside it. The first attempt did exactly that and produced a black frame with a\nfully populated element tree, which is what gave the ordering away.\n\nVerified end to end through the dispatch API: a forced failure now yields a\nscreenshot, 85 selectors across three layers with bounds, the harness log, and\nthe launch configuration the test ran under.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320817",
      "email": "jajohnson@mozilla.com",
      "hash": "81f70b17b9034bbc980b17a448945eec57892828",
      "subject": "Bug 2065976 - [efficiency] Dump the screen on any test failure r=aaronmt"
    },
    "D320818": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320818",
      "clUrl": "https://phabricator.services.mozilla.com/D320818",
      "description": "The app icon is not app data. Changing it calls\nPackageManager.setComponentEnabledSetting on activity-aliases, which lives in the\npackage manager's own state --- so `pm clear`, which wipes /data/data/\u003cpkg\u003e and\nruntime permissions, does not touch it. An icon a test switches stays switched for\nevery later test on that device.\n\nverifyTheChangeAppIconButtonTest sets the icon to Dark;\nverifyTheDefaultAppIconSettingTest then asserts it reads Default. Tests are\ndispatched per method across a work queue, so whether those two land on the same\ndevice and in which order is not fixed --- which made this an intermittent failure\nwith no intermittent cause. It was the only genuine failure in a 178-test sweep,\nand the failure screenshot showed the Customize screen reading 'Dark' where the\ntest wanted 'Default'.\n\nReset alongside the bookmarks, logins and tabs cleanup, because it is the same\nclass of problem. COMPONENT_ENABLED_STATE_DEFAULT restores whatever the manifest\ndeclares, so this is a reset rather than a guess at the right state.\n\nVerified in the worst-case order on one device --- set the icon, then assert the\ndefault --- which failed before and passes now.\n\nWorth noting for the harness generally: pm clear is the reset on read-only clones,\nand it leaves package-manager state, external storage, system settings and the\nclock alone. Measured today: a planted download directory and a changed system\nsetting both survived it. Anything a test changes outside its own app data has to\nbe undone explicitly, here or in the test.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320818",
      "email": "jajohnson@mozilla.com",
      "hash": "ab850c277bfe83fb44011ca323870d64802bbb9a",
      "subject": "Bug 2065977 - [efficiency] Reset the launcher icon between tests r=aaronmt"
    },
    "D320819": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320819",
      "clUrl": "https://phabricator.services.mozilla.com/D320819",
      "description": "StateProbe reads the app's own stores --- tabs, history, bookmarks, logins, addresses, cards, top\nsites, downloads, and the launcher icon alias --- and emits one structured record at the start of\neach test and one at the end.\n\nTwo things this makes visible that nothing else does. A count above baseline at the START is state\nthe per-test reset could not clear, which is how the launcher icon leak was found and is otherwise\ninvisible until a much later test fails for an unrelated-looking reason. And on failure, comparing\nthe two samples separates 'the store has the data and the screen does not show it', a real and\nreportable defect, from 'the test never created the data' --- today both present as an element not\nbeing found.\n\nSampling is counts only and every read is wrapped: a probe that can fail a passing test would be\nworse than no probe. The record type is added to log-format.json, since consumers outside this\nrepository parse the stream.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320819",
      "email": "jajohnson@mozilla.com",
      "hash": "83178f7ed836505890f0854410dea7c1444c1262",
      "subject": "Bug 2065971 - [efficiency] Sample app state at each test boundary r=aaronmt"
    },
    "D320820": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320820",
      "clUrl": "https://phabricator.services.mozilla.com/D320820",
      "description": "StateProbe.record went straight to TestLogging.reporter, which is TimedReporter.Silent until\nBaseTest's @Before installs a real one --- and a TestWatcher's starting() fires BEFORE @Before. So\nthe start sample of the FIRST test in every class was written to a reporter that discards\neverything.\n\nIt looked like an intermittent gap rather than a rule, because the reporter installed for one test\nis still installed for the next: only the first test of each class was ever missing, and only its\nstart half, which reads as a log that happened to roll over. What it actually cost is the one\nsample that matters most --- the first test in a class is the only one whose starting state was not\nproduced by the harness itself, so it is the one that can show what the DEVICE brought.\n\nThe lazy install already existed as BaseTest.installedReporter; it was just private to the class\nthat had it. Moved to TestLogging.installed() so anything running outside a test body reaches it,\nwith BaseTest delegating.\n\nVerified on device: all four methods of SettingsCustomizeTest now report a start sample, where the\nfirst previously reported none.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320820",
      "email": "jajohnson@mozilla.com",
      "hash": "83035c18b7159cf7ecd36d17de6105b0589f0f66",
      "subject": "Bug 2065971 - [efficiency] Install the reporter before the first test's state sample r=aaronmt"
    },
    "D320821": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320821",
      "clUrl": "https://phabricator.services.mozilla.com/D320821",
      "description": "Every real state leak so far has been a one-off nobody could reproduce on demand, which leaves the\nreporting for a dirty start as the part of the system never exercised. StateLeakDemoTest produces\none to order: step1 creates state, step2 inherits it, and the ledger has something real to show.\n\nThe leak is genuine rather than simulated, and building it answered a question worth recording. It\nleaks two ways: history, which is on disk in the Places database, and a download entry, which is in\nthe BrowserStore in the app's memory. Under 'am instrument' --- how the fleet dispatches, with no\nAndroidX Test Orchestrator --- the on-disk half is cleared between methods and the in-memory half\nis NOT. So the isolation boundary is the app's data directory, and anything the running process\nholds in memory crosses it freely. That is the mechanism behind a search engine still being\nDuckDuckGo four tests after the test that changed it, which had looked like the reset simply\nfailing.\n\nUnder Gradle the orchestrator gives each method its own process and neither half survives, so the\nsame pair passes both ways and only the recorded state differs --- which is precisely the\ndiscrepancy the ledger exists to surface.\n\nIn tools/ rather than tests/, so it stays out of the sweep's suite while remaining dispatchable by\nname. It cleans up after itself.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320821",
      "email": "jajohnson@mozilla.com",
      "hash": "ed11ef6ee4b0dda527b077fb656820bd8dd2a1bd",
      "subject": "Bug 2065971 - [efficiency] Add a demo that leaks state on purpose r=aaronmt"
    },
    "D320822": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320822",
      "clUrl": "https://phabricator.services.mozilla.com/D320822",
      "description": "Two defects in the same script, both of the same shape: a caller asks for something the script does\nnot offer, gets no error, and silently gets a worse answer.\n\n--strategies did not exist in v2. mission-control's codegen calls it to read the SelectorStrategy\nenum and validate what it is about to write; the call returned the usage text, so the set of valid\nstrategies was empty. That does not degrade codegen's answer, it inverts it. The raw-resource-id\nbranch fails CLOSED --- it will only emit UIAUTOMATOR_WITH_RAW_RES_ID if it can confirm the\nconstant exists --- so with an empty set it fell through to UIAUTOMATOR_WITH_RES_ID, which prepends\n'\u003cpackage\u003e:id/' and therefore can never match the bare Compose tag it was asked for. Every selector\ncodegen produced for a raw resource id was one that finds nothing, without erroring. The mode is\nback, reading the enum from Selector.kt rather than from a hardcoded copy, which would be the same\nfailure with an extra step. All 34 constants are found.\n\ndetect_page split every element identifier on '.' and capitalised the most common first component.\nResource ids arrive fully qualified, so a home screen with the keyboard up gave 132 elements\nbeginning 'com.google.android.inputmethod...' against 8 beginning 'homepage', and the page came out\nas 'ComPage'. Resource ids are now read from after ':id/', and reverse-DNS roots join the generic\nprefix list. The dump that produced ComPage now reads HomePage.\n\nAlso adds harnessPage to the dump: what PageStateTracker last recorded navigation reaching. The\nanalyser infers a page from pixels; this is what the harness believed. When they disagree the\nharness recorded an arrival it did not make, which is a navigation bug and was invisible before.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320822",
      "email": "jajohnson@mozilla.com",
      "hash": "a2a475e090fad93cdf4b91b12b50c6f1c7ba24aa",
      "subject": "Bug 2065974 - [efficiency] Restore --strategies, and stop reading the package as the page name r=aaronmt"
    },
    "D320823": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320823",
      "clUrl": "https://phabricator.services.mozilla.com/D320823",
      "description": "The launch configuration came from two places: seven constructor arguments on BaseTest, and an\noverridable launchConfig(). Both were live, the constructor arguments existed only to build the\ndefault the override returns, and a reader had to check both to know what a test launches with.\nAdding a flag meant changing a signature every subclass inherits.\n\nBaseTest now takes one LaunchConfig. Overriding launchConfig() stays, for the shards that pick\ntheirs from the case they were given. Seven classes passed constructor arguments; two of them ---\nMainMenuTest and SettingsPageSummariesTest --- were passing the default value, so they now pass\nnothing.\n\nThe behaviour shards had a third shape for the same idea. BehaviorBaseTestConfig held the same\nflags again, and BaseBehaviorShardTest called toBaseTestConfig() once per field to spread them\ninto the constructor for BaseTest to reassemble. It builds a LaunchConfig directly now.\n\nWorth knowing rather than a regression: that type also carried isUnifiedTrustPanelEnabled, which\nBaseTest has never accepted, so it was read from the case and dropped. A behavior case setting\nUnifiedTrustPanelEnabled has never had any effect.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320823",
      "email": "jajohnson@mozilla.com",
      "hash": "f9e9b178f729932e60bde7a4ae1cffa83e0712d9",
      "subject": "Bug 2066003 - [efficiency] Give BaseTest one way to say how the app launches r=aaronmt"
    },
    "D320824": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320824",
      "clUrl": "https://phabricator.services.mozilla.com/D320824",
      "description": "setUp gated a navigation-path summary and a page-catalog dump on java.lang.Boolean.getBoolean,\nwhich reads a JVM system property. Instrumentation arguments do not set system properties --- they\narrive through InstrumentationRegistry --- and nothing in the tree calls System.setProperty for\neither name, so both were permanently false. The page-catalog one does reflective discovery and a\ngetter call per page, and nobody could trigger it.\n\nRead from the instrumentation arguments, the same way SnapshotPrimer already reads its own:\n\n  am instrument -e logPageCatalog true ...\n\nKept rather than deleted because they are useful diagnostics that happened to be wired to the\nwrong switch. Dead code in setUp is also what makes the setup contract hard to state, which is the\nlarger point of this cleanup.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320824",
      "email": "jajohnson@mozilla.com",
      "hash": "866059486271c6449d7b8eb4c5eaf7172eb4a948",
      "subject": "Bug 2066003 - [efficiency] Make BaseTest's two debug hooks reachable r=aaronmt"
    },
    "D320825": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320825",
      "clUrl": "https://phabricator.services.mozilla.com/D320825",
      "description": "The clears lived inline in BaseTest's rule, each wrapped in runCatching with a log line. That makes\na clear that errored indistinguishable from a genuine state leak: both present as a later test\nstarting with state it did not create, and the comment in the file already said as much.\n\nAppDataCleaner is that list as one named unit. Each step has a name, clear() returns the ones that\nfailed, and it emits a `cleanup` record on the structured stream carrying the phase and the failed\nsteps --- so a consumer can say \"clean, but the clear that would have made it clean errored\",\nwhich is a different and far more actionable fact than either \"clean\" or \"dirty\". Added to\nlog-format.json, since consumers of that stream live outside this repository.\n\nStill best-effort, deliberately: a cleanup that fails the test it was preparing is worse than one\nthat did not happen. The change is that it is no longer silent.\n\nBehaviour is otherwise unchanged --- same steps, same order, same runCatching per step. The\nlauncher-icon reset moves across with its comment intact.\n\nNote recorded in the class rather than left to be rediscovered: FenixTestRule at order 0 wraps\nTestSetupRule, which separately clears history, bookmarks, site permissions, downloads and\nnotifications before any of this runs. The effective per-test cleanup is the union of the two, and\nreading either alone gives the wrong answer about what leaks.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320825",
      "email": "jajohnson@mozilla.com",
      "hash": "f4603ead492a82389bb1ba9e39898b78f7e712d5",
      "subject": "Bug 2066003 - [efficiency] Name the per-test cleanup, and stop it failing silently r=aaronmt"
    },
    "D320826": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320826",
      "clUrl": "https://phabricator.services.mozilla.com/D320826",
      "description": "Two halves of the same defect: the harness could not see state arriving, and did not tidy up state\nleaving.\n\nCLEANING ONLY AT THE START. Every clear ran in the rule's before-phase, so a failing test left\neverything it created on the device until the NEXT test cleared up on its behalf --- and if it was\nthe last test in the class, indefinitely. That is why devices are found dirty long after a run\nends. AppDataCleaner now also runs in a finally, so the failure case, which is the one that used\nto leave the mess, is tidied up too.\n\nSAMPLING TOO LATE TO SEE ANYTHING. StateProbe took its \"start\" reading from a watcher at rule order\n2, nested inside every cleanup there is. So it always sampled AFTER the harness had cleared what it\nclears, and app-data dirt could essentially never be reported --- the probe answered \"did the\ncleanup work\" when the question was \"what did this device bring\".\n\nThere is now an arrival sample at rule order -1, outside FenixTestRule. A lower order is applied\nfurther out, and FenixTestRule at 0 wraps TestSetupRule, whose before() clears history, bookmarks,\nsite permissions, downloads and notifications. Measured rather than reasoned: with the sample at\norder 1 the leak demo reported its inherited downloads and not its inherited history, because\nhistory had already been cleared two layers out. At order -1 it reports both.\n\nThe ledger reads dirt from arrival, falling back to start for runs recorded before this existed,\nand separately reports what the cleanup removed --- not dirt, since the harness handled it, but\nthe evidence a leak existed at all, which \"clean\" alone erases.\n\nVerified on device with tools/StateLeakDemoTest:\n  step1  arrival clean, changed history 0-\u003e3 and downloads 0-\u003e3\n  step2  arrival dirty history=3 downloads=3, cleanup removed history 3-\u003e0\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320826",
      "email": "jajohnson@mozilla.com",
      "hash": "79fc7d7c831d7e5a21e3dc7ec7fa030619e9e2df",
      "subject": "Bug 2066003 - [efficiency] Clean up after a test, and sample what it inherited r=aaronmt"
    },
    "D320827": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320827",
      "clUrl": "https://phabricator.services.mozilla.com/D320827",
      "description": "setUp mutated two pieces of process-wide state and restored neither.\n\nESPRESSO'S FAILURE HANDLER is a singleton. Replacing it stops Espresso's screenshot-on-failure\ntripping Fenix's StrictMode penaltyDeath, which is a real problem and well documented in the file,\nbut it was being set on every test and never put back. Under `am instrument` the process is shared\nacross a class's methods, so \"per test\" was never true --- it was the same value written\nrepeatedly to a global with no owner. Installed once per process now.\n\nPAGESTATETRACKER is a mutable global written by every page object. It stays global, because\nthreading it through every page object would be boilerplate on all of them, but it now has an\nowner and a vocabulary: reset() instead of assigning a bare \"AppEntry\", and ENTRY naming the value\nthat means \"nowhere yet\" rather than repeating the string at each site. SettingsAppIconPage was\nthe other place repeating it.\n\nThe reason this is worth more than tidiness now: ScreenDump writes the tracker into every failure\nas `harnessPage`, and mission-control shows it beside the page its analyser infers from the\nscreen. A disagreement means navigation recorded an arrival it did not make, which is a real\nfinding --- so a stale tracker has gone from an internal inconsistency to a false accusation.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320827",
      "email": "jajohnson@mozilla.com",
      "hash": "f932ea2e894f30fc775f7809556f66b25cd218f4",
      "subject": "Bug 2066003 - [efficiency] Give BaseTest's two process globals an owner r=aaronmt"
    },
    "D320828": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320828",
      "clUrl": "https://phabricator.services.mozilla.com/D320828",
      "description": "composeRule was a `!!` on a nullable backing field. Reading it before the rule at order 1 built it\ngave a NullPointerException and no hint of the cause, and the cause is a rule ordering that was\nnowhere written down. It is now a checkNotNull whose message states the ordering: outermost-first\nby ascending order, -1 samples arrival, 0 is FenixTestRule, 1 builds the activity rule, 2 records\nboundaries --- so anything at a lower order, or outside a test body, runs before it exists.\n\nThat hazard has already cost one silent bug. A watcher at order 2 recorded state through a\nreporter a later @Before had not installed yet, so the first test of every class lost its sample\nand nothing said so. The message will not prevent the next one, but it will name it in a second\nrather than an afternoon.\n\nAlso corrects a claim in the same block that was load-bearing and false. The no-retry comment\njustified itself with \"every test already runs in its own process with package data cleared\n(ANDROIDX_TEST_ORCHESTRATOR + clearPackageData)\". True under Gradle. False under `am instrument`,\nwhich is how the fleet dispatches: no orchestrator, no clearPackageData, so a class's methods share\none process and one data directory. Verified --- a download added to the BrowserStore in one method\nis still present at the start of the next, while on-disk history is not.\n\nThe decision it justifies is still right; the reason given for it was only true on one of the two\npaths we run, and the file said so to anyone reading it.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320828",
      "email": "jajohnson@mozilla.com",
      "hash": "573fb4e603e92d60175488013959a7e249b9b825",
      "subject": "Bug 2066003 - [efficiency] Say what rule order guarantees, instead of asserting it with !! r=aaronmt"
    },
    "D320829": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D320829",
      "clUrl": "https://phabricator.services.mozilla.com/D320829",
      "description": "The setup an efficiency test inherits was spread across three rules and written down in none of\nthem, so the only way to know what a test begins with was to read all three and hold the union in\nyour head. That is not a hypothetical cost. Writing up the state boundaries I concluded from\nBaseTest alone that history leaks between tests; it does not, because TestSetupRule clears it two\nlayers further out, and only catching deleteHistoryStorage in logcat settled it.\n\nBaseTest's class documentation is now that list. The rules in the order they run, what each one\nclears, and --- the part that matters most and was nowhere --- what NOTHING clears: the Gecko\nprofile in external storage with its cookies and HSTS state and certificates, the default search\nengine, fenix_preferences.xml, and anything the running process holds in memory, which under\n`am instrument` crosses freely between the methods of a class.\n\nReplaces documentation that described the logging design and the long-term intent for it. That\nmaterial is still true but it answered a question nobody has in front of a red test; the logging\nsection is now four lines and points at the contract file.\n\nNo behaviour change.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320829",
      "email": "jajohnson@mozilla.com",
      "hash": "c12a8cfd1c812b561151cf8f67fcadc9325496ad",
      "subject": "Bug 2066003 - [efficiency] State what a test starts with, in one place r=aaronmt"
    },
    "D320833": {
      "author": "Chris Peterson",
      "avatar": "https://www.gravatar.com/avatar/fce12300b80ca98151e9331523d6a2dc?d=identicon\u0026s=64",
      "cl": "D320833",
      "clUrl": "https://phabricator.services.mozilla.com/D320833",
      "description": "In C++23 mode, libc++ instantiates the UniquePtr member destructors in\nthe inline nullptr initializers when AVIFParser and AVIFDecoderInterface\nare still incomplete.\n\nRemove the redundant inline initializers and let nsAVIFDecoder's\nout-of-line constructor default-initialize the members where both types\nare complete. Default-constructed UniquePtrs are still null.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320833",
      "email": "cpeterson@mozilla.com",
      "hash": "5f8a8ac2377ff9f45bcbc6552181874f16bd3044",
      "subject": "Bug 2066013 - image: Default-initialize nsAVIFDecoder's UniquePtr members for C++23 compatibility. r=tnikkel"
    },
    "D320837": {
      "author": "Max Inden",
      "avatar": "https://www.gravatar.com/avatar/ec7202f5ae48eecc36b07aaa371fab12?d=identicon\u0026s=64",
      "cl": "D320837",
      "clUrl": "https://phabricator.services.mozilla.com/D320837",
      "description": "Bug 1949422 gave the DoH HTTP/3 connection its own idle timeout, the pref\nnetwork.trr.idle_timeout_for_http3_conn, set to 400s on early beta and\nearlier (30s otherwise) to improve connection reuse. Every other HTTP/3\nconnection uses network.http.http3.idle_timeout (30s).\n\n400s is close to seven minutes, and a window that long causes two problems.\n\nNAT rebinding: neqo only sends keep-alive pings while a request stream is\nopen, so an idle DoH connection sends nothing. RFC 4787 asks for a NAT UDP\nmapping lifetime of at least two minutes and recommends five, but many home\nrouters use less, and RFC 8085 notes that a significant fraction of deployed\nmiddleboxes use shorter timeouts still. Once the connection sits idle past\nthe router's UDP timeout the mapping is dropped and return traffic is lost;\nwith a 400s idle timeout the connection can stay dead for minutes before it\nis torn down and rebuilt.\n\nBlack holes: even with a request in flight, keep-alive does not shorten the\nteardown. An ack-eliciting packet restarts the idle timer only if none has\nbeen sent since the last packet was received (RFC 9000 section 10.1), so a\none-way black hole lives about one idle timeout past the last received\npacket.\n\nDrop the special case so the DoH connection uses the same 30s idle timeout\nas other HTTP/3 connections; 30s sits below common NAT UDP timeouts. The\ngeneral idle-timeout plumbing that bug 1949422 added is kept, only the\nDoH-specific value is removed.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320837",
      "email": "mail@max-inden.de",
      "hash": "9de9dc5115cfdaf87c6852bce3e43f0720ef752c",
      "subject": "Bug 2066016 - Don't use a special longer idle timeout for the DoH HTTP/3 connection r=necko-reviewers,valentin"
    },
    "D320849": {
      "author": "Florian Quèze",
      "avatar": "https://www.gravatar.com/avatar/0ffa237c82d28773736b6c9688b404e3?d=identicon\u0026s=64",
      "cl": "D320849",
      "clUrl": "https://phabricator.services.mozilla.com/D320849",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320849",
      "email": "florian@queze.net",
      "hash": "ebb9c3e41054b3e4c870cda416b383b922d4c8b8",
      "subject": "Bug 2066031 - Re-enable the about:processes tests on ASan and TSan, only skipping the profiler start on TSan. r=canova"
    },
    "D320853": {
      "author": "Julian Descottes",
      "avatar": "https://www.gravatar.com/avatar/60dd86ccfd9c63b53e9f2a34b2f48442?d=identicon\u0026s=64",
      "cl": "D320853",
      "clUrl": "https://phabricator.services.mozilla.com/D320853",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320853",
      "email": "jdescottes@mozilla.com",
      "hash": "4719d85550de8f70e38a4c6c4a848577d5816631",
      "subject": "Bug 2066044 - [devtools] - Add preference to simulate devtools transport slowdown r=devtools-reviewers,ochameau"
    },
    "D320856": {
      "author": "Julian Descottes",
      "avatar": "https://www.gravatar.com/avatar/60dd86ccfd9c63b53e9f2a34b2f48442?d=identicon\u0026s=64",
      "cl": "D320856",
      "clUrl": "https://phabricator.services.mozilla.com/D320856",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320856",
      "email": "jdescottes@mozilla.com",
      "hash": "fbe6bb72f9ea66f5788acd3f6c0df1321e007221",
      "subject": "Bug 2065763 - Only include RemoteControlPanel.sys.mjs for NIGHTLY_BUILD r=firefox-desktop-core-reviewers ,Gijs"
    },
    "D320866": {
      "author": "mayankleoboy1",
      "avatar": "https://www.gravatar.com/avatar/5ce84f7ec7214e92e88ac71d71c63049?d=identicon\u0026s=64",
      "cl": "D320866",
      "clUrl": "https://phabricator.services.mozilla.com/D320866",
      "description": "Add an `mReceiverMap` hash table to optimize `GetReceiverFor` lookups.\n`mReceivers` is retained as the ordered, owning storage to safely allow arbitrary destructors during garbage collection and disconnects.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320866",
      "email": "mayankleoboy1@gmail.com",
      "hash": "d48e4cfbff4b438d1e1dae4706bba5ecad3f6780",
      "subject": "Bug 2066058 - Make nsDOMMutationObserver receiver lookup O(1). r=jjaschke"
    },
    "D320895": {
      "author": "Valentin Gosu",
      "avatar": "https://www.gravatar.com/avatar/dedff9d4500fcbc5cdd1cd270f044b33?d=identicon\u0026s=64",
      "cl": "D320895",
      "clUrl": "https://phabricator.services.mozilla.com/D320895",
      "description": "It has been split into multiple subtests in bug 2017207, but the file was never actually removed.\nIt is not currently running, as it is not in the test manifest.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320895",
      "email": "valentin.gosu@gmail.com",
      "hash": "50e68d40c8813cf558e2fee99fe93421db84db45",
      "subject": "Bug 2066099 - Cleanup leftover browser_test_local_network_access.js r=necko-reviewers,kershaw"
    },
    "D320905": {
      "author": "Ayoub hedri",
      "avatar": "https://www.gravatar.com/avatar/fdbcd28dcb0e692d9c62e90ea453beb0?d=identicon\u0026s=64",
      "cl": "D320905",
      "clUrl": "https://phabricator.services.mozilla.com/D320905",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320905",
      "email": "ahedri@mozilla.com",
      "hash": "69889ef91e48ff681cd41a39a600c71aad7f8c83",
      "subject": "Bug 2066103 - Stop mirroring securityuicerterror_load_aboutcerterror r=freddyb"
    },
    "D320922": {
      "author": "Ayoub hedri",
      "avatar": "https://www.gravatar.com/avatar/fdbcd28dcb0e692d9c62e90ea453beb0?d=identicon\u0026s=64",
      "cl": "D320922",
      "clUrl": "https://phabricator.services.mozilla.com/D320922",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320922",
      "email": "ahedri@mozilla.com",
      "hash": "7151b667600bee259d865503b196c233c5393773",
      "subject": "Bug 2066115 - Stop mirroring some https related telemetry probes r=freddyb"
    },
    "D320925": {
      "author": "Leo Tenenbaum",
      "avatar": "https://www.gravatar.com/avatar/191826fbebe3973ebd6d6eb595ddb5c2?d=identicon\u0026s=64",
      "cl": "D320925",
      "clUrl": "https://phabricator.services.mozilla.com/D320925",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320925",
      "email": "ltenenbaum@mozilla.com",
      "hash": "b99c8922aea8a5c61bf55b096758691bb553beef",
      "subject": "Bug 2063871 - r=dom-core-reviewers,smaug"
    },
    "D320942": {
      "author": "Julian Descottes",
      "avatar": "https://www.gravatar.com/avatar/60dd86ccfd9c63b53e9f2a34b2f48442?d=identicon\u0026s=64",
      "cl": "D320942",
      "clUrl": "https://phabricator.services.mozilla.com/D320942",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320942",
      "email": "jdescottes@mozilla.com",
      "hash": "98702339c37f8703ac9cced97a175c7d6d92e801",
      "subject": "Bug 2066136 - Update wording for Remote Control panel r=glob,fluent-reviewers,flod"
    },
    "D320944": {
      "author": "Florian Quèze",
      "avatar": "https://www.gravatar.com/avatar/0ffa237c82d28773736b6c9688b404e3?d=identicon\u0026s=64",
      "cl": "D320944",
      "clUrl": "https://phabricator.services.mozilla.com/D320944",
      "description": "Depends on D320849\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320944",
      "email": "florian@queze.net",
      "hash": "d2597a8bd58369649f6416694f50e9f92070e288",
      "subject": "Bug 2066131 - Strip the thousands separator before parsing displayed numbers in the about:processes tests. r=firefox-desktop-core-reviewers ,Gijs"
    },
    "D320946": {
      "author": "Leo Tenenbaum",
      "avatar": "https://www.gravatar.com/avatar/191826fbebe3973ebd6d6eb595ddb5c2?d=identicon\u0026s=64",
      "cl": "D320946",
      "clUrl": "https://phabricator.services.mozilla.com/D320946",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320946",
      "email": "ltenenbaum@mozilla.com",
      "hash": "f13aa80ee21250b932da97b97f96cd75406d5457",
      "subject": "Bug 2065855 - Check for plaintext editor before design mode in HTMLEditor::IsStyleEditable. r=masayuki"
    },
    "D320956": {
      "author": "Florian Quèze",
      "avatar": "https://www.gravatar.com/avatar/0ffa237c82d28773736b6c9688b404e3?d=identicon\u0026s=64",
      "cl": "D320956",
      "clUrl": "https://phabricator.services.mozilla.com/D320956",
      "description": "Depends on D320944\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320956",
      "email": "florian@queze.net",
      "hash": "1ef836b8e22cdb399fdb8dea29885e56294b91d3",
      "subject": "Bug 2066143 - Fail explicitly when audio.play() doesn't resolve in the about:processes tests. r=firefox-desktop-core-reviewers ,Gijs"
    },
    "D320963": {
      "author": "Ayoub hedri",
      "avatar": "https://www.gravatar.com/avatar/fdbcd28dcb0e692d9c62e90ea453beb0?d=identicon\u0026s=64",
      "cl": "D320963",
      "clUrl": "https://phabricator.services.mozilla.com/D320963",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320963",
      "email": "ahedri@mozilla.com",
      "hash": "954209af30ff7288247488b0d49abdbae3005a37",
      "subject": "Bug 2066150 - Remove legacy security telemetry probes r=freddyb"
    },
    "D320966": {
      "author": "Yoshi Cheng-Hao Huang",
      "avatar": "https://www.gravatar.com/avatar/0363e83e6e847e7090abbbafb08716ee?d=identicon\u0026s=64",
      "cl": "D320966",
      "clUrl": "https://phabricator.services.mozilla.com/D320966",
      "description": "Merge static imports and dynamic imports in HostLoadImportedModule in the js\nshell.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320966",
      "email": "allstars.chh@gmail.com",
      "hash": "2498d27670c29ac0c60831e526da05e210b31ce0",
      "subject": "Bug 1968904 - Update HostLoadImportedModule impl in the js shell. r=jonco"
    },
    "D320967": {
      "author": "Yoshi Cheng-Hao Huang",
      "avatar": "https://www.gravatar.com/avatar/0363e83e6e847e7090abbbafb08716ee?d=identicon\u0026s=64",
      "cl": "D320967",
      "clUrl": "https://phabricator.services.mozilla.com/D320967",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320967",
      "email": "allstars.chh@gmail.com",
      "hash": "58519a665700015847240b09cac5a6d2b42f812b",
      "subject": "Bug 1968904 - Add jit-test to verify dynamic import is evaluated async. r=jonco"
    },
    "D320968": {
      "author": "John M. Schanck",
      "avatar": "https://www.gravatar.com/avatar/291ff310b7805a4159d7f46af196813e?d=identicon\u0026s=64",
      "cl": "D320968",
      "clUrl": "https://phabricator.services.mozilla.com/D320968",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320968",
      "email": "jschanck@mozilla.com",
      "hash": "42823af0750b6f352dcd1b21ef4984079eeafc88",
      "subject": "Bug 2063354 - upgrade NSS to 6ca13d99c4a3517d84a0b68a7a7132821d3e0591. r=nss-reviewers,keeler UPGRADE_NSS_RELEASE"
    },
    "D320971": {
      "author": "Jan-Niklas Jaeschke",
      "avatar": "https://www.gravatar.com/avatar/f8a4d2d2b8f9eec6bcb98f2ae8169d69?d=identicon\u0026s=64",
      "cl": "D320971",
      "clUrl": "https://phabricator.services.mozilla.com/D320971",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320971",
      "email": "jjaschke@mozilla.com",
      "hash": "16d354aa4f96ff69ab6e4e1004f9d5009a234e50",
      "subject": "Bug 2066113 - Inherit QueryInterface from StaticRange in CrossShadowBoundaryRange. r=dom-core-reviewers,smaug"
    },
    "D320973": {
      "author": "Daniel Holbert",
      "avatar": "https://www.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?d=identicon\u0026s=64",
      "cl": "D320973",
      "clUrl": "https://phabricator.services.mozilla.com/D320973",
      "description": "The point of our intervention here was to address a UA-sniffing-based block on\nthe stream.directv.com website. Our intervention has been targeting\nall subdomains of directv.com, which turns out to have been unnecessary and\ncounterproductive, becuase the UA override breaks the directv login flow in\nsome way.\n\nThis patch narrows the intervention to *only* target stream.directv.com. With\nthat, I've confirmed that login works again and I can still access the\nstreaming page.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320973",
      "email": "dholbert@cs.stanford.edu",
      "hash": "84e9852fc2680f89cd64afe1acffc97d38c14b80",
      "subject": "Bug 2011632: Adjust directv WebCompat intervention to more narrowly target the affected site. r=webcompat-reviewers,twisniewski"
    },
    "D320986": {
      "author": "Morgan Rae Reschenberg",
      "avatar": "https://www.gravatar.com/avatar/c05645180f9e592f7fb45b6f7a59754d?d=identicon\u0026s=64",
      "cl": "D320986",
      "clUrl": "https://phabricator.services.mozilla.com/D320986",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D320986",
      "email": "mreschenberg@berkeley.edu",
      "hash": "7fb7b68580dad3ba3e6263e380c10821b8e36277",
      "subject": "Bug 2060499: Extend a11y-checks expiration 6 months r=accessibility-platform-reviewers,Jamie"
    },
    "D320989": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D320989",
      "clUrl": "https://phabricator.services.mozilla.com/D320989",
      "description": "Huge, but mostly mechanical change. Also brings in a phf\nupdate unfortunately, albeit a fairly low risk one.\n\nThis patch makes us stop carrying tokens and source locations the error\npath, which adds a lot of bloat to the generated code unnecessarily, for\na feature that is almost always off by default. The worst offender is\nthe Tokenizer::next() error, which starts getting passed by registers\nafter this change.\n\nInstead of carrying the location in the error, rule and declaration\nparsers hand out the source location of the start of the offending\ndeclaration, and that's what ParseErrorReporter gets.\n\nThis means the reported line / column numbers now change, which needs\ntests changes. The unprintables test also gets fixed and cleaned up now\nthat we don't have a ton of different codepaths to escape.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320989",
      "email": "emilio@crisal.io",
      "hash": "94c7ff59f3a3f8d330766d8b90bc33318bdc3606",
      "subject": "Bug 2065754 - Reduce the size of cssparser errors. r=firefox-style-system-reviewers,dshin,devtools-reviewers,supply-chain-reviewers"
    },
    "D321004": {
      "author": "KS",
      "avatar": "https://www.gravatar.com/avatar/ec724a05e1cc31dcbf8e114d09256424?d=identicon\u0026s=64",
      "cl": "D321004",
      "clUrl": "https://phabricator.services.mozilla.com/D321004",
      "description": "Upstream changed sdk_inputs guard in BUILD.gn from default_toolchain to\nhost_toolchain. The CaR build's sed workaround stopped applying as a\nresult, and GN rejected the fetched SDK because its path was outside of\nroot_build_dir.\n\nInstead, symlink the in-tree SDK toolchain into out/Default and pass\nthat output directory path as mac_sdk_path. The build continues using\n$MOZ_FETCHES_DIR/MacOSX26.5.sdk as its sysroot.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321004",
      "email": "kshampur@mozilla.com",
      "hash": "9855992a9ccebeb7e59e8b26ed769ed19ef2f2ef",
      "subject": "Bug 2066139 - Expose the fetched macOS SDK under Chromium's output directory for custom CaR builds. r=aglavic"
    },
    "D321007": {
      "author": "David Shin",
      "avatar": "https://www.gravatar.com/avatar/65d83535f94ada6020fd3ae8b01f78f9?d=identicon\u0026s=64",
      "cl": "D321007",
      "clUrl": "https://phabricator.services.mozilla.com/D321007",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321007",
      "email": "dshin@mozilla.com",
      "hash": "409d9fc055cc12dd35d299cf6dd285ec58d90aed",
      "subject": "Bug 2065691: Adjust scroll-timeline-in-container-query.html to account for unknown timeline not generating an effect. r=layout-scroll-driven-animation-reviewers,boris"
    },
    "D321035": {
      "author": "Nikki Sharpley",
      "avatar": "https://www.gravatar.com/avatar/475216ceafd2f0f87e2621f9ef4fa0e1?d=identicon\u0026s=64",
      "cl": "D321035",
      "clUrl": "https://phabricator.services.mozilla.com/D321035",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321035",
      "email": "nsharpley@mozilla.com",
      "hash": "e776bcb3763a33caecd76b20e9c996a587d0abe2",
      "subject": "Bug 2059850 - Announce full account not syncing button accessible name r=morgan,fluent-reviewers,bolsson"
    },
    "D321036": {
      "author": "Exploding Joysticks",
      "avatar": "https://www.gravatar.com/avatar/1ba79b33017b89958b6d1fc35256c809?d=identicon\u0026s=64",
      "cl": "D321036",
      "clUrl": "https://phabricator.services.mozilla.com/D321036",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321036",
      "email": "ExplodingJoysticks@proton.me",
      "hash": "904964ee6be574735a9c3b140ac52275ba0cfea8",
      "subject": "Bug 1890400 - Remove nsPromptUtils.h, it is unused r=firefox-desktop-core-reviewers ,Gijs"
    },
    "D321039": {
      "author": "Nikki Sharpley",
      "avatar": "https://www.gravatar.com/avatar/475216ceafd2f0f87e2621f9ef4fa0e1?d=identicon\u0026s=64",
      "cl": "D321039",
      "clUrl": "https://phabricator.services.mozilla.com/D321039",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321039",
      "email": "nsharpley@mozilla.com",
      "hash": "622301521c8e833801d320cf6169ae02c04df766",
      "subject": "Bug 2059330 - Update tab height for Touch density in Nova r=desktop-theme-reviewers,tabbrowser-reviewers,jsudiaman,tgiles"
    },
    "D321070": {
      "author": "Tymur Boiko",
      "avatar": "https://www.gravatar.com/avatar/e5455cbc9ccf5951783c79fc29beda3c?d=identicon\u0026s=64",
      "cl": "D321070",
      "clUrl": "https://phabricator.services.mozilla.com/D321070",
      "description": "ffvpx has Vulkan Video (bug 2045971) but is still lavc 62.29.101 without\n25e187f849. PDM currently always prefers system FFmpeg when Vulkan is on,\nwhich sidelines bundled ffvpx even when the system library is older\n(e.g. FFmpeg 6.1/7.1).\n\nPrefer system FFmpeg first only when Vulkan is wanted and\navcodec_version() \u003e= bundled ffvpx's LIBAVCODEC_VERSION_INT; otherwise\nkeep ffvpx first. Force-disable direct export on bundled ffvpx while its\nlavc is at or below MOZ_FFMPEG_MIN_LAVC_FOR_VULKAN_DMABUF (25e187f849\nfloor); raise that after an ffvpx rebase that includes the fix.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321070",
      "email": "tboiko@nvidia.com",
      "hash": "ddcd2a32809b079b4cfce75c1819a726f08080ea",
      "subject": "Bug 2066189 [Linux][Vulkan Video] Enable ffvpx when system FFmpeg is older. r=alwu,media-playback-reviewers"
    },
    "D321085": {
      "author": "Sebastian Hengst",
      "avatar": "https://www.gravatar.com/avatar/4aaa2a4137aa4762d4bcd28ace9cb367?d=identicon\u0026s=64",
      "cl": "D321085",
      "clUrl": "https://phabricator.services.mozilla.com/D321085",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321085",
      "email": "aryx.github@gmx-topmail.de",
      "hash": "1ac9c360f82e17f20c6a79c02a04439ea13b6adf",
      "subject": "Bug 2065678 - ./mach test-info testrun-report: detect main branch if Git repository used also in mach_commands.py. r=ahal"
    },
    "D321089": {
      "author": "Andrea Marchesini",
      "avatar": "https://www.gravatar.com/avatar/dfb8d0427dd67216b2664131a5c31421?d=identicon\u0026s=64",
      "cl": "D321089",
      "clUrl": "https://phabricator.services.mozilla.com/D321089",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321089",
      "email": "amarchesini@mozilla.com",
      "hash": "2aa0bcf95c98681376e30d6a9aa4df2b27885abc",
      "subject": "Bug 2066155 - Cap the cookie database WAL at 512KB instead of 2MB r=valentin,cookie-reviewers"
    },
    "D321094": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D321094",
      "clUrl": "https://phabricator.services.mozilla.com/D321094",
      "description": "This was uncovered by the discussion in D317358.\n\nThe fact that we reset this flag for nested lists to false is wrong.\n\nE.g. we end up treating for `:is(#foo) span` differently to `#foo span`:\nthe first one would end up with \"foo\" in mapped_ids, while the second\nwouldn't (and would end up being a revalidation selector instead).\n\nI think the `:is(#foo)` behavior ends up being better (it avoids sharing\nbetween two elements with the same id if that id is referenced from\nselectors, but in exchange it does a lot less revalidation of children).\n\nThis matches how we treat classes, for that matter.\n\nWe could remove the flag in this patch, but since we want to use it in\nD321095, I'm keeping it. Luckily it seems rustc isn't smart enough\nto -Werror about it.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321094",
      "email": "emilio@crisal.io",
      "hash": "5666c1393719a83f61df2a813db8540c6e4073be",
      "subject": "Bug 2066283 - Fix handling of passed_rightmost_selector. r=firefox-style-system-reviewers,dshin"
    },
    "D321095": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D321095",
      "clUrl": "https://phabricator.services.mozilla.com/D321095",
      "description": "Originally in D317358, but this is the cleaned up version (I updated\nthat one instead, but then re-requesting review is a pain).\n\nThis patch tracks at the cascade-data level whether there are any\n:visited / :link selectors in non-subject position (which is rare), and\navoids the re-selector-matching on inside-link elements if so.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321095",
      "email": "emilio@crisal.io",
      "hash": "fa1266d46b9cb17d9018e1e424d3c645bcf61066",
      "subject": "Bug 2062324 - Skip the selector-matching non-link elements inside links whenever possible. r=firefox-style-system-reviewers,dshin"
    },
    "D321099": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D321099",
      "clUrl": "https://phabricator.services.mozilla.com/D321099",
      "description": "A preloaded about:newtab is swapped in under the tab openNewTabPage just opened, so the poll waiting for the bar loses the actor it runs in. Test verification fails on its second iteration.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321099",
      "email": "dao@mozilla.com",
      "hash": "f3afdf82dcae9cf01bbff5bb4806b77b3880a925",
      "subject": "Bug 2062213 - Stop the newtab tests racing a preloaded about:newtab."
    },
    "D321101": {
      "author": "Sebastian Hengst",
      "avatar": "https://www.gravatar.com/avatar/4aaa2a4137aa4762d4bcd28ace9cb367?d=identicon\u0026s=64",
      "cl": "D321101",
      "clUrl": "https://phabricator.services.mozilla.com/D321101",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321101",
      "email": "aryx.github@gmx-topmail.de",
      "hash": "46d4e5db8b1e3fcb6fcd5f69526178dc64ef4f80",
      "subject": "Bug 2065678 - ./mach test-info testrun-report: detect main branch if Git repository used: linting fixes."
    },
    "D321113": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D321113",
      "clUrl": "https://phabricator.services.mozilla.com/D321113",
      "description": "In the final reflow, the content box size is definite, but we shouldn't\nstart resolving the percentage gap to a non-zero value, because it would\ncause us to grow.\n\nThis matches Chromium and WebKit, and our behavior if we hit the \"final\nreflow optimization\", which would skip the final reflow and thus not\nre-resolve the gap.\n\nhttps://drafts.csswg.org/css-gaps-1/#gap-percent\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321113",
      "email": "emilio@crisal.io",
      "hash": "b548ced3cb9c39d952512f8bead051dbe9dc7ee0",
      "subject": "Bug 2022289 - Don't wrongly treat a percentage flex gap as definite. r=layout-reviewers,dshin"
    },
    "D321137": {
      "author": "Matthew Gaudet",
      "avatar": "https://www.gravatar.com/avatar/0c4c6c72545e010e29e8da0e3bb229ee?d=identicon\u0026s=64",
      "cl": "D321137",
      "clUrl": "https://phabricator.services.mozilla.com/D321137",
      "description": "These tests highlight the failed state of an optimization added in Bug 1960043\nand broken in Bug 1997192.\n\nThe important pieces of these test cases are\n\n1. Covering the jobs enqueued on an already settled promise\n2. Including reactions on promises greater than depth 1 (so a then on a promise then)\n\nThese alone will fail, however the tests are corrected by the child patch.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321137",
      "email": "mgaudet@mozilla.com",
      "hash": "ffab55ad6d7325acada2312324277f8104d82779",
      "subject": "Bug 2066172 - Test WebTaskSchedulingState inheritance more thoroughly r=smaug"
    },
    "D321138": {
      "author": "Matthew Gaudet",
      "avatar": "https://www.gravatar.com/avatar/0c4c6c72545e010e29e8da0e3bb229ee?d=identicon\u0026s=64",
      "cl": "D321138",
      "clUrl": "https://phabricator.services.mozilla.com/D321138",
      "description": "The optimization is incorrect for promise jobs enqueued after a promise has\nsettled, and recent architectural changes [1] mean its complexity no longer carries\nits weight. Always request both the incumbent global and optional host-defined\ndata.\n\n[1]: Bug 1983159 split the incumbent global and optional host-defined data into\nseparate slots, and Bug 2063731 additionally made the embedding lookup cheap\nwhen no WebTaskSchedulingState exists.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321138",
      "email": "mgaudet@mozilla.com",
      "hash": "3452cb7a239527ff0fbc3da72b820d6126afb7f3",
      "subject": "Bug 2066172 - Abandon incorrect 'optimized out' optimization for host defined data in JS engine r=arai"
    },
    "D321140": {
      "author": "Rong Bao",
      "avatar": "https://www.gravatar.com/avatar/ebbe93ed6a8a3d3d694d9638635e8c87?d=identicon\u0026s=64",
      "cl": "D321140",
      "clUrl": "https://phabricator.services.mozilla.com/D321140",
      "description": "This is a fixup to Bug 2065007.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321140",
      "email": "webmaster@csmantle.top",
      "hash": "c327de0a238df79e1397373cd87824965d327b32",
      "subject": "Bug 2065815 - Rename usage of macro Success to X11Success in nsXRemoteServer.cpp. r=mossop"
    },
    "D321157": {
      "author": "Updatebot",
      "avatar": "https://www.gravatar.com/avatar/cd270ac15e761e2d4c08e9c9b7cfecca?d=identicon\u0026s=64",
      "cl": "D321157",
      "clUrl": "https://phabricator.services.mozilla.com/D321157",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321157",
      "email": "updatebot@mozilla.com",
      "hash": "9d41fc4520e2b7c60cb2cd6dc8f73f903db5eca1",
      "subject": "Bug 2066352 - Update android nightly application-services version bump to e6aa0c251cda885dd31850b2912b937612ea810c r=dmeehan"
    },
    "D321158": {
      "author": "Julien Cristau",
      "avatar": "https://www.gravatar.com/avatar/15b9b3783e4671cd882bff1316df14c9?d=identicon\u0026s=64",
      "cl": "D321158",
      "clUrl": "https://phabricator.services.mozilla.com/D321158",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321158",
      "email": "jcristau@mozilla.com",
      "hash": "41c5a13daf1b372693d6d9e83bd26f053c3e537c",
      "subject": "Bug 2065710 - set UPLOAD_SYMBOLS in dxc and system symbols upload tasks. r=smarnach DONTBUILD"
    },
    "D321177": {
      "author": "Henrik Skupin",
      "avatar": "https://www.gravatar.com/avatar/4ab832a8d5cae15967c0da59ebfb83f7?d=identicon\u0026s=64",
      "cl": "D321177",
      "clUrl": "https://phabricator.services.mozilla.com/D321177",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321177",
      "email": "mail@hskupin.info",
      "hash": "79a6c4aa9f750a7ad3d0684b408cf1af4947ddc2",
      "subject": "Bug 2055174 - Do not set SO_REUSEADDR on Windows server sockets. r=necko-reviewers,Sasha,kershaw"
    },
    "D321180": {
      "author": "Henrik Skupin",
      "avatar": "https://www.gravatar.com/avatar/4ab832a8d5cae15967c0da59ebfb83f7?d=identicon\u0026s=64",
      "cl": "D321180",
      "clUrl": "https://phabricator.services.mozilla.com/D321180",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321180",
      "email": "mail@hskupin.info",
      "hash": "d44cdb07db9f444a7e94dd4eb6d0479e92e80511",
      "subject": "Bug 2064609 - [geckodriver] Document onboarding automation workaround for Firefox on Android in CHANGES.md. r=geckodriver-reviewers,jgraham DONTBUILD"
    },
    "D321199": {
      "author": "Dão Gottwald",
      "avatar": "https://www.gravatar.com/avatar/45dfe136efbb8e5f89eb0b21775ab195?d=identicon\u0026s=64",
      "cl": "D321199",
      "clUrl": "https://phabricator.services.mozilla.com/D321199",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321199",
      "email": "dao@mozilla.com",
      "hash": "5bcba6004ec6b31df2592515d36dda391dcd198c",
      "subject": "Bug 2066386 - Add a regression test for undo in the address bar. r=mbeier"
    },
    "D321222": {
      "author": "Olivia Hall",
      "avatar": "https://www.gravatar.com/avatar/9bb5ba1328acae6f1d36d1c8564bc4bf?d=identicon\u0026s=64",
      "cl": "D321222",
      "clUrl": "https://phabricator.services.mozilla.com/D321222",
      "description": "Patch updates variants for six more months:\n* aab\n* geckoview-no-fission\n* geckoview-fission\n* geckoview-fission-isolate-high-value\n* no-fission\n* geckoview-zygote\n\nAssociated autogenerated variant expiring bugs related: bug 2060200, bug 2060199, bug 2060198, bug 2060202, bug 2060197\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321222",
      "email": "ohall@mozilla.com",
      "hash": "e5ed23e07b5f68e5e71a4d77bb43fbc17d338857",
      "subject": "Bug 2060198 - Update Various GeckoView Variants r=taskgraph-reviewers,bhearsum"
    },
    "D321235": {
      "author": "Corentin Bect",
      "avatar": "https://www.gravatar.com/avatar/f051ab06364f3531cb4d2d40227d9c6d?d=identicon\u0026s=64",
      "cl": "D321235",
      "clUrl": "https://phabricator.services.mozilla.com/D321235",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321235",
      "email": "cbect@mozilla.com",
      "hash": "9d79b5b2e33d9948fce0e9cbdd4e1861b3920934",
      "subject": "Bug 2064179 - Add the missing changelog entry for Modifier.debouncedToggleable r=android-reviewers,gl"
    },
    "D321238": {
      "author": "Nikki Sharpley",
      "avatar": "https://www.gravatar.com/avatar/475216ceafd2f0f87e2621f9ef4fa0e1?d=identicon\u0026s=64",
      "cl": "D321238",
      "clUrl": "https://phabricator.services.mozilla.com/D321238",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321238",
      "email": "nsharpley@mozilla.com",
      "hash": "964738a9ee7f5383b955d2d464e730454f35834a",
      "subject": "Bug 2064729 - Replace using size 24 icons with size 16 for profiles r=desktop-theme-reviewers,kcochrane"
    },
    "D321282": {
      "author": "Rémi Papillié",
      "avatar": "https://www.gravatar.com/avatar/6dbd13dd334657fae5d8837fb3cdde16?d=identicon\u0026s=64",
      "cl": "D321282",
      "clUrl": "https://phabricator.services.mozilla.com/D321282",
      "description": "The SWGL-optimized path in ps_quad_mask did not support anti-aliasing the top and bottom edges\nof the rect when using subpixel offsets. This created visible artifacts in box shadows.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321282",
      "email": "rpapillie@mozilla.com",
      "hash": "a4496f52a24a3cd4cf468615a51226c1ab7c90f3",
      "subject": "Bug 2063169 - Fix subpixel offset in software version of ps_quad_mask. r=nical,gfx-reviewers"
    },
    "D321292": {
      "author": "Andrew Gaul",
      "avatar": "https://www.gravatar.com/avatar/c4735ff5ae1f882942f2b3befcedbdba?d=identicon\u0026s=64",
      "cl": "D321292",
      "clUrl": "https://phabricator.services.mozilla.com/D321292",
      "description": "Two irregexp character checks (CheckCharacterAfterAnd and CheckBitInTable)\nmaterialized a compile-time-constant mask with move32(mask) followed by\nand32(reg, reg). Use the 3-arg and32(Imm32, src, dest) so the mask is an\nimmediate operand: on AArch64 both the character masks and kTableMask encode\nas bitmask immediates, so the mov disappears.\n\nThe removed mov is off the critical path (it materializes in parallel with\nthe character load), so this is code-size/instruction-count only: a regex\nmicrobench (min-ms) was flat on an Apple M4. All 133 'MOV + AND/ORR/EOR\nfoldable to bitmask immediate' findings in Octane's RegExp tier drop to zero\nwith correct results.\n\nThe Ion fuse-guard case (627 findings from emitGuardObjectFuseProperty) is\ndeliberately left out: testing baked-in stub-field constants in Ion ICs is a\nmore general opportunity that needs a broader design change.\n\nFound via armlint.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321292",
      "email": "andrew@gaul.org",
      "hash": "37e63ab0a250bad1765beda56f7af2efbe7ac7c6",
      "subject": "Bug 2065829 - jit: use and32 immediate form in irregexp character checks. r=jandem"
    },
    "D321302": {
      "author": "Tymur Boiko",
      "avatar": "https://www.gravatar.com/avatar/e5455cbc9ccf5951783c79fc29beda3c?d=identicon\u0026s=64",
      "cl": "D321302",
      "clUrl": "https://phabricator.services.mozilla.com/D321302",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D321302",
      "email": "tboiko@nvidia.com",
      "hash": "e0ab553c6a46506a108169eaa7b4b102a7f378a2",
      "subject": "Bug 2066189 [Linux][Vulkan Video] nit: clarify direct-export floor TODO comments. r=stransky,media-playback-reviewers DONTBUILD"
    },
    "a0c454b78181": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62117\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "a0c454b78181ba1005a5e976be9cf8329761fd58",
      "subject": "Bug 2065662 [wpt PR 62117] - Update wpt metadata, a=testonly"
    },
    "a4e6b596a30e": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 61156\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "a4e6b596a30e077f552fed1cccb8d4f6444360c2",
      "subject": "Bug 2053639 [wpt PR 61156] - Update wpt metadata, a=testonly"
    },
    "a5bb3b0b34b8": {
      "author": "Noam Rosenthal",
      "avatar": "https://www.gravatar.com/avatar/b4d8dca6c8e6ca5df482144dbec62ec3?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nThrow when trusted types forces sanitization of XML\n\nAlso allow null sanitizer to propagate through createParserOptions.\n\nSince sanitizer doesn't work on XML, throw early to avoid a false sense\nof security.\n\nBug: 491743369\nChange-Id: I1fed9c13cd3c1303cf7b40423dd1e800a51d028d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8225007\nReviewed-by: Daniel Vogelheim \u003cvogelheim@chromium.org\u003e\nCommit-Queue: Noam Rosenthal \u003cnrosenthal@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1682188}\n\n--\n\nwpt-commits: 0aa6716748b4cb48882d117b26efafd9071afe43\nwpt-pr: 62051",
      "email": "nrosenthal@chromium.org",
      "hash": "a5bb3b0b34b8a5ebb45d4cb30e9634df425e2934",
      "subject": "Bug 2064813 [wpt PR 62051] - Throw when trusted types forces sanitization of XML, a=testonly"
    },
    "a7113a3aaff0": {
      "author": "Philip Rogers",
      "avatar": "https://www.gravatar.com/avatar/d014ff658f9fc7d0af93500e06a31921?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[html-in-canvas] Skip transforms from drawable element to canvas\n\nCanvas element transforms map a drawable element's border box directly\nto the canvas coordinate space. For nested drawable elements, ancestor\ntransforms, offsets, and clips between the drawable element and the\ncanvas should be skipped.\n\nThis patch updates the element canvas transform paint property node to\nbe parented directly under the canvas. Similarly, this patch updates\nMapLocalToAncestor, MapAncestorToLocal, and\nMapToVisualRectInAncestorSpaceInternal to jump directly between the\ndrawable element and the canvas. Additionally, GetUsedCanvasTransform\nhas been changed to require a valid CanvasForDrawing. Additionally,\npseudo elements have been prevented from being drawable.\n\nBug: 532229486\nChange-Id: I37fa0a15b5156574bdd5f4bd879272ca05e467be\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8266994\nReviewed-by: Stefan Zager \u003cszager@chromium.org\u003e\nCommit-Queue: Philip Rogers \u003cpdr@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683625}\n\n--\n\nwpt-commits: 0e668158beee8ba393247616ea6d4eece6739583\nwpt-pr: 62104",
      "email": "pdr@chromium.org",
      "hash": "a7113a3aaff0c906276e3ccf851838d0999a5b68",
      "subject": "Bug 2065445 [wpt PR 62104] - [html-in-canvas] Skip transforms from drawable element to canvas, a=testonly"
    },
    "a90a475baead": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62090\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "a90a475baead2b23108dd8d8fcf8f427e88bfa95",
      "subject": "Bug 2065367 [wpt PR 62090] - Update wpt metadata, a=testonly"
    },
    "a9166dcc484f": {
      "author": "Martin Robinson",
      "avatar": "https://www.gravatar.com/avatar/380eb5a09bbe64a6ba37c5c5691f112b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nscript: Avoid double adjustment of Selection ranges during `contenteditable` node movement\n\nThe editing specification has a different way of updating selection\nranges than the typical live range update method in the `insert` and\n`remove` algorithms. Because selections are currently represented as\nlive ranges (something that will change soon), this means that the\nadjustment was being applied twice: once by the live range update and\nthen once by the `contenteditable` code's range fixup. This change makes\nit so that the `contenteditable` fixup runs against the original\nselection boundaries, meaning that the final fixup is done only once.\n\nSigned-off-by: Martin Robinson \u003cmrobinson@igalia.com\u003e\n\n--\n\nwpt-commits: 5d45ecb5839f7882854a1086c7b8c1c53bfa9ec7\nwpt-pr: 62082",
      "email": "mrobinson@igalia.com",
      "hash": "a9166dcc484fe60a8fcb12a90ecf291b2e4c5acf",
      "subject": "Bug 2065226 [wpt PR 62082] - script: Avoid double adjustment of Selection ranges during `contenteditable` node movement, a=testonly"
    },
    "ab9380bb87e1": {
      "author": "Javier Contreras Tenorio",
      "avatar": "https://www.gravatar.com/avatar/658b99b5d4e8ccf9f3d976f302a55428?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[masonry] Expand gap decoration WPTs for rule-inset and rule-break\n\nGrid-lanes gap decorations did not have focused coverage for rule-inset\nendpoint or rule-break: none.\n\nAdd an expected failure for overlapping stacking-axis gutters, whose\npercentage basis requires union-width behavior that is not yet\nimplemented\n\nBug: 343257585\nChange-Id: I4e8f9283a4b30c51deaa378c4237f3ac5deb87b2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8269567\nReviewed-by: Kurt Catti-Schmidt \u003ckschmi@microsoft.com\u003e\nAuto-Submit: Javier Contreras \u003cjaviercon@microsoft.com\u003e\nCommit-Queue: Javier Contreras \u003cjaviercon@microsoft.com\u003e\nCr-Commit-Position: refs/heads/main@{#1683489}\n\n--\n\nwpt-commits: 853c3cec2c3bf97723904597dd240304c36592b6\nwpt-pr: 62097",
      "email": "javiercon@microsoft.com",
      "hash": "ab9380bb87e1d88a6d979678164512a8997989a1",
      "subject": "Bug 2065396 [wpt PR 62097] - [masonry] Expand gap decoration WPTs for rule-inset and rule-break, a=testonly"
    },
    "abc193b0458e": {
      "author": "Silaghi",
      "avatar": "https://www.gravatar.com/avatar/81acf29bb88b2a0ded61f47b93c59dea?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 14f9b441db2e31881f3bc0fcbc764fa38457d3bd.",
      "email": "asilaghi@mozilla.com",
      "hash": "abc193b0458e03875f6fd18e93b35d508931674d",
      "subject": "Revert \"Bug 2062352 - [Monitor Agent][Models] Record specific error codes on failed monitor runs r=ai-security-reviewers,tetchart,thasan\" for causing bc and TV failures at browser_monitor_errors.js"
    },
    "af1e008ea383": {
      "author": "Bernát Gábor",
      "avatar": "https://www.gravatar.com/avatar/f8cbaf456d5bed4fe78d758a5e8d27fc?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nHTML parser: fix legacy PI parse errors\n\nThe PI tokenizer states replaced the bogus-comment behavior for question-mark tag openings, but these older cases still count the removed tokenizer error.\n\nKeep their independent missing-doctype errors, use the current PI error and position where parsing is invalid, and remove the tokenizer error where the PI is valid.\n--\n\nwpt-commits: 8f1efd278facb6c96d46c0cd92897a8a3faeaf29\nwpt-pr: 61846",
      "email": "gaborjbernat@gmail.com",
      "hash": "af1e008ea38327007b405b2d8888555a1e143e1c",
      "subject": "Bug 2062478 [wpt PR 61846] - HTML parser: fix legacy PI parse errors, a=testonly"
    },
    "b15f69bf23e9": {
      "author": "Marcos Cáceres",
      "avatar": "https://www.gravatar.com/avatar/3ddc62295867cc82c0e270827f72d903?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[digital-credentials] Test that destroying the requesting document frees the coordinator (#62037)\n--\n\nwpt-commits: b4f80e3847f560ecf7053170c99926f1e2e5cf98\nwpt-pr: 62037",
      "email": "caceres_m@apple.com",
      "hash": "b15f69bf23e90bd709a8e2fbfdded87ed1b4a923",
      "subject": "Bug 2064665 [wpt PR 62037] - [digital-credentials] Test that destroying the requesting document frees the coordinator, a=testonly"
    },
    "b365f1454ab9": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "To fix content-color-on-visited-before-1.html, for example.",
      "email": "emilio@crisal.io",
      "hash": "b365f1454ab959dd5aed330aa5b4eb409d0c8c8d",
      "subject": "Bug 2062324 - Deal with pseudos in needs_visited_matching."
    },
    "b51cb733cfb8": {
      "author": "Helmut Januschka",
      "avatar": "https://www.gravatar.com/avatar/7f3d8f25d208327860bdfebf145e481b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nAdd JPEG XL ProPhoto RGB color management reftest\n\nAdd a ProPhoto RGB ICC fixture and compare its JPEG XL rendering\nagainst an equivalent sRGB PNG reference.\n\nBug: None\nChange-Id: I018fafdb1a693324d1b14d8ca4411881a3a332ea\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8276711\nCommit-Queue: Helmut Januschka \u003chelmut@januschka.com\u003e\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nReviewed-by: Philip Jägenstedt \u003cfoolip@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683924}\n\n--\n\nwpt-commits: f5c419d7942dd846100fbb210954bd57ea8d8238\nwpt-pr: 62113",
      "email": "helmut@januschka.com",
      "hash": "b51cb733cfb81a4dd9d6f067bfc4947384849067",
      "subject": "Bug 2065650 [wpt PR 62113] - Add JPEG XL ProPhoto RGB color management reftest, a=testonly"
    },
    "b62ac9b356f0": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62075\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "b62ac9b356f02a64a403ed4a96b74b292ddc8031",
      "subject": "Bug 2064997 [wpt PR 62075] - Update wpt metadata, a=testonly"
    },
    "bbb6a213dd86": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62101\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "bbb6a213dd86f90dbfcea9fc8e204c36c9121564",
      "subject": "Bug 2065427 [wpt PR 62101] - Update wpt metadata, a=testonly"
    },
    "bc9aaf2bf34f": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nFix css/css-values/calc-infinity-nan-serialize-length.html and css/css-values/calc-nesting-002.html (#62091)\n\ncss/css-values/calc-infinity-nan-serialize-length.html and css/css-values/calc-nesting-002.html\nincorrectly assert that a calc() expression of the form `1 * math-function()` can be simplified\nto be just `math-function()`.\n--\n\nwpt-commits: 4bcf3c46b76c81adc1be630d9d72634a076919ac\nwpt-pr: 62091",
      "email": "sam@webkit.org",
      "hash": "bc9aaf2bf34f5b420693e5cb4ccfeb8b32364b04",
      "subject": "Bug 2065370 [wpt PR 62091] - Update tests to not assume multiplications by 1 can be simplified away , a=testonly"
    },
    "bd6e3ae7ceaf": {
      "author": "Celeste Pan",
      "avatar": "https://www.gravatar.com/avatar/721cf636a0677c681a69e0bc784cfccb?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[Masonry] Use grid-axis content box size to resolve percentages in flow-tolerance\n\nWe were previously using the stacking axis size of the content box to\nresolve percentages for the flow-tolerance feature, but per spec [1],\nflow-tolerance percentages should resolve \"relative to the grid-axis\ncontent box size of the grid lanes container\".\n\n[1] https://drafts.csswg.org/css-grid-3/#placement-tolerance\n\nBug: 343257585, 517590298\nChange-Id: I68c7c9c42f80694e7b28a3602cb2882519db958f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8252957\nReviewed-by: Yanling Wang \u003cyanlingwang@microsoft.com\u003e\nReviewed-by: Javier Contreras \u003cjaviercon@microsoft.com\u003e\nCommit-Queue: Celeste Pan \u003ccelestepan@microsoft.com\u003e\nReviewed-by: Kurt Catti-Schmidt \u003ckschmi@microsoft.com\u003e\nCr-Commit-Position: refs/heads/main@{#1682431}\n\n--\n\nwpt-commits: a33cf8b9743aba44088de58e17fbc4c3b207ef1e\nwpt-pr: 62031",
      "email": "celestepan@microsoft.com",
      "hash": "bd6e3ae7ceaf7775a535170b8e9bc7637ff0da5c",
      "subject": "Bug 2064599 [wpt PR 62031] - [Masonry] Use grid-axis content box size to resolve percentages in flow-tolerance, a=testonly"
    },
    "bef4751f1d38": {
      "author": "Filip Skokan",
      "avatar": "https://www.gravatar.com/avatar/26183809ed6e67bd47627bd402f1a5cd?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[WebCryptoAPI] Expand supports() validation coverage\n\nKeep ECDH mismatched-curve cases independent of the existing overlength\nderiveBits tests. Add supports() coverage for RSA, HKDF, HMAC, EC\nderivation and import, ML-DSA contexts, and ML-KEM imported keys.\n\nRefs: https://github.com/w3c/webcrypto/issues/560\nRefs: https://github.com/w3c/webcrypto/pull/558\nRefs: https://github.com/WICG/webcrypto-modern-algos/pull/76\nRefs: https://github.com/WICG/webcrypto-modern-algos/pull/77\n\n--\n\nwpt-commits: e235e089b4e44a598f2d61e93732e0c4d9f03e04\nwpt-pr: 62115",
      "email": "panva.ip@gmail.com",
      "hash": "bef4751f1d38ccd58ea6eec9d4bea893640317e8",
      "subject": "Bug 2065664 [wpt PR 62115] - [WebCryptoAPI] Expand supports() validation coverage, a=testonly"
    },
    "c3649cb847a9": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62037\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "c3649cb847a9e0ba83fd25a2619825eda3a252ab",
      "subject": "Bug 2064665 [wpt PR 62037] - Update wpt metadata, a=testonly"
    },
    "c6452ff2b990": {
      "author": "Shiyi Zou",
      "avatar": "https://www.gravatar.com/avatar/0921af0f63c01c1f1017e56fac27a5ad?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nwebnn: validate LSTM/GRU full-sequence output unconditionally\n\nSome backends allocate the full-sequence output tensor internally\nregardless of the `returnSequence` flag but do not validate its size,\nwhich can cause an out-of-bounds write. Always validate the\nfull-sequence output descriptor so that oversized shapes are rejected\nbefore reaching the backend.\n\nBug: 546067906\nChange-Id: If58b35857c39eb272a8feb1a43a16385df2fe915\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8256436\nReviewed-by: Hu, Ningxin \u003cningxin.hu@intel.com\u003e\nCommit-Queue: Zou, Shiyi \u003cshiyi.zou@intel.com\u003e\nReviewed-by: Reilly Grant \u003creillyg@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683674}\n\n--\n\nwpt-commits: 7603ba0968894307ad737144de86c7e21614f209\nwpt-pr: 62106",
      "email": "shiyi.zou@intel.com",
      "hash": "c6452ff2b99088e75f92aa3853f7946e9de43253",
      "subject": "Bug 2065448 [wpt PR 62106] - webnn: validate LSTM/GRU full-sequence output unconditionally, a=testonly"
    },
    "c685b1a4809f": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 69889ef91e48ff681cd41a39a600c71aad7f8c83.",
      "email": "smolnar@mozilla.com",
      "hash": "c685b1a4809f7841d827709f2aa7b8310cd64462",
      "subject": "Revert \"Bug 2066103 - Stop mirroring securityuicerterror_load_aboutcerterror r=freddyb\" for causing telemetry probe failures"
    },
    "cadd8bdc06de": {
      "author": "Keith Cirkel",
      "avatar": "https://www.gravatar.com/avatar/87a4065b580b6f1e43858ab49d98c109?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nsanitizer-api: Add test cases for data- with no suffix (#62061)\n--\n\nwpt-commits: d9ca4ddcd0367223b34ebbe2bccee58b1ca107d1\nwpt-pr: 62061",
      "email": "keithamus@users.noreply.github.com",
      "hash": "cadd8bdc06de972ecb8a6bbf349ae83fd85125fd",
      "subject": "Bug 2064827 [wpt PR 62061] - sanitizer-api: Add test cases for data- with no suffix, a=testonly"
    },
    "cb0c45088e06": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62097\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "cb0c45088e06608333f4979f8a9c9b52ae6004fa",
      "subject": "Bug 2065396 [wpt PR 62097] - Update wpt metadata, a=testonly"
    },
    "cbbedc99cd9c": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321988 (#62045)\n--\n\nwpt-commits: 77be99aada5abb087f946a00190fa33a7c4a9a82\nwpt-pr: 62045",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "cbbedc99cd9c5e6c2475b933f11d52d2b4509579",
      "subject": "Bug 2064690 [wpt PR 62045] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321988, a=testonly"
    },
    "ce7754220867": {
      "author": "Derek Schuff",
      "avatar": "https://www.gravatar.com/avatar/bda7744c8dbad958700bce946b4378a3?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWasm Proposals: Install JS files for proposal tests (#62058)\n\nHTML tests converted from wasm come with a JS file for each. The updater script\nwas failing to copy them into the wpt dir along with the HTMLs. This PR\ncopies the per-test JS files along with the per-repo JS utility files (but\nnot testharness.js; we use the harness built into wpt).\n\nAlso drop the stack-switching proposal for now, as it needs a merge\nfrom the upstream spec before it wil work correctly. Instead use\nwide-arithmetic, a phase 4 proposal with an up-to-date spec repo.\n--\n\nwpt-commits: e2e97cb5437e2d816914003baa7fd6e23c401bab\nwpt-pr: 62058",
      "email": "dschuff@chromium.org",
      "hash": "ce7754220867696d4a47602562528db4835c2547",
      "subject": "Bug 2064770 [wpt PR 62058] - Wasm Proposals: Install JS files for proposal tests, a=testonly"
    },
    "cf0ba6c30c33": {
      "author": "Daniel Vogelheim",
      "avatar": "https://www.gravatar.com/avatar/98daac8e043077e228b07e1187e458ec?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nConsistently set XML parser \"already started\" flag from parseFromString.\n\nThis is a follow-on to crrev.com/c/8215568, which fixed the issue only\npartually. Because that fix compares QualifiedNames instead of calling\n`Matches()`, that fix will overlook script elements with non-empty\nprefixes.\n\nBug: 542115030, 540021703\nChange-Id: I6ffb6d4a8400e9c2d2cb6be8e84f56beb7163763\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8263155\nCommit-Queue: Daniel Vogelheim \u003cvogelheim@chromium.org\u003e\nReviewed-by: Joey Arhar \u003cjarhar@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683004}\n\n--\n\nwpt-commits: b6b2d09394f056ad846dc12e13a4f8e612a23c6a\nwpt-pr: 62067",
      "email": "vogelheim@chromium.org",
      "hash": "cf0ba6c30c333667b5e8260c53d59be474bfe8cd",
      "subject": "Bug 2064903 [wpt PR 62067] - Consistently set XML parser \"already started\" flag from parseFromString., a=testonly"
    },
    "d10240a00ab9": {
      "author": "Silaghi",
      "avatar": "https://www.gravatar.com/avatar/81acf29bb88b2a0ded61f47b93c59dea?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit e1ce2a9318ff81f8a10a37557e78fffa1b6246cc.\n\nRevert \"Bug 2007696 - Use WasmCompileTask for source phase modules; r=arai,frontend-codestyle-reviewers\"\n\nThis reverts commit 49ebc83dbd3f478140d3cf30010bbd4046e8610e.\n\nRevert \"Bug 2007696 - Add ModuleLoadRequest::IsSourcePhaseRequest; r=arai,dom-worker-reviewers,asuth\"\n\nThis reverts commit 90354546713b278dbc07315e9e04cac175b83547.\n\nRevert \"Bug 2007696 - Define WasmCompileTask; r=arai\"\n\nThis reverts commit b3723068a2d2a75ba0163648245520d99c5e5002.\n\nRevert \"Bug 2007696 - Add OffThreadCompileTask; r=arai\"\n\nThis reverts commit 103f8393dc96f86d1fcb1545d9c4c4a83dd8c229.\n\nRevert \"Bug 2007696 - Move Wasm ESM functions to public api; r=rhunt\"\n\nThis reverts commit 831b32e535e4d2017a3add3e2330f316d0c74b9e.\n\nRevert \"Bug 2007696 - Split CompileForESM into three parts; r=rhunt\"\n\nThis reverts commit 8669bb2390a24d84176853a96728a504664eed0f.",
      "email": "asilaghi@mozilla.com",
      "hash": "d10240a00ab949f2611c9435885c043031588790",
      "subject": "Revert \"Bug 2007696: apply code formatting via Lando\" for causing hazard failures at ScriptLoadContext.cpp"
    },
    "d33c0886b920": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "MANUAL PUSH: wpt sync bot\n\nwpt-head: b05b1b737e0f82d387fdc798b58b3aa85d4981bd\nwpt-type: landing",
      "email": "wptsync@mozilla.com",
      "hash": "d33c0886b920455a84b3b46529368ffc3a6da880",
      "subject": "Bug 2065819 - [wpt-sync] Update web-platform-tests to b05b1b737e0f82d387fdc798b58b3aa85d4981bd, a=testonly"
    },
    "d39603dcbe08": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit b187adb78c33a37dce1dd2c37ece705eac909fdb.\n\nRevert \"Bug 2060524 - [experiment] Part 3: Add the PrivacyReportNotificationWorker and schedule it weekly. r=android-reviewers,sfamisa\"\n\nThis reverts commit d4947cf74c53922f6a8ebbc83aef20015104b533.\n\nRevert \"Bug 2060524 - [experiment] Part 2: Add the notification channel and logic to build and show the weekly privacy report notification, deep-linking to the protections dashboard. r=android-reviewers,sfamisa,android-l10n-reviewers,parker\"\n\nThis reverts commit 5c0fbcea4d3e408e93c3a079ac8686f0223b49ac.\n\nRevert \"Bug 2060524 - [experiment] Part 1: Add a Nimbus feature flag and secret setting to control feature enablement. r=android-reviewers,sfamisa\"\n\nThis reverts commit 02221a88247d4377a457b61f91ac1ffb1ad197f4.",
      "email": "smolnar@mozilla.com",
      "hash": "d39603dcbe08704fe95f3c61afa2745b6c7f49ca",
      "subject": "Revert \"Bug 2060524 - [experiment] Part 4: Added a secret setting to force the number of trackers to meet the threshold for showing the privacy report notification. r=android-reviewers,sfamisa\" for causing fenix debug failures"
    },
    "d3f36708bd9d": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321906 (#62046)\n--\n\nwpt-commits: c25295e501cc51d5a388177b4ae265e984b321e9\nwpt-pr: 62046",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "d3f36708bd9da1939eb350f113eab62a819309e6",
      "subject": "Bug 2064694 [wpt PR 62046] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321906, a=testonly"
    },
    "db26d09d5edd": {
      "author": "Shannon Booth",
      "avatar": "https://www.gravatar.com/avatar/4adc3fd769c2b73e6d53046d86a950a0?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nTest lazy loading intersection observations outside viewport\n\nFor: https://github.com/whatwg/html/issues/10019\n\n--\n\nwpt-commits: 7fe4e301823f3cb26b0d110cc139f219eb56dba2\nwpt-pr: 59333",
      "email": "shannon.ml.booth@gmail.com",
      "hash": "db26d09d5edd29de7531fdb65470abe02e2c91a4",
      "subject": "Bug 2065073 [wpt PR 59333] - Test lazy loading intersection observations outside viewport, a=testonly"
    },
    "dd4ec0574057": {
      "author": "Silaghi",
      "avatar": "https://www.gravatar.com/avatar/81acf29bb88b2a0ded61f47b93c59dea?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit f3afdf82dcae9cf01bbff5bb4806b77b3880a925.",
      "email": "asilaghi@mozilla.com",
      "hash": "dd4ec057405786ef10481fe490c1ca6b73c24a13",
      "subject": "Revert \"Bug 2062213 - Stop the newtab tests racing a preloaded about:newtab.\" for causing bc failures at escapeWalksBackOut"
    },
    "de586710dc37": {
      "author": "Wei Wang",
      "avatar": "https://www.gravatar.com/avatar/88fe29840d9b9059c4058bb5822a8c7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[WebNN] Reject conv2d/pool2d/convTranspose2d strides, dilations and\nfilters that exceed the usable extent\n\nconv2d, pooling and convTranspose2d take strides and dilations as\nunsigned long and the only validation was a != 0 check on each value.\nWhen the input spatial size and the filter/window are 1x1, the derived\noutput size collapses to 1 for any stride/dilation, so an arbitrarily\nlarge value survives all output-size math and is serialized\nverbatim into the backend graph, even though it is semantically\nequivalent to a much smaller value and cannot legitimately arise.\n\nThis CL adds an upper bound in the output-size validation:\n- Forward conv2d and pool2d: reject a stride or dilation larger than\n  the padded input spatial size. Padding is included so that valid\n  padded windows are not rejected. A value larger than the padded\n  input can place the window at most once, so it is always equivalent\n  to a smaller value.\n- Forward conv2d and pool2d: reject an effective (dilated) filter\n  window larger than the padded input spatial size. when the\n  effective filter size exceeds the padded input, the window can\n  never be fully placed, so the operation has no valid output.\n- ConvTranspose2d: a stride or dilation larger than the output size\n  can only arise when input==1 or filter==1, where its value is a pure\n  no-op. Reject such values so that unbounded uint32 strides/dilations\n  can not flow unchecked into backends\n\nThis CL also adds WPTs for the new checks.\n\nThere is a related discussion about this in the spec issue[1].\n\n[1] https://github.com/webmachinelearning/webnn/issues/928#issuecomment-4723645239\n\nFixed: 546106051\nChange-Id: I37eea4793cbd42d2e80aab23e68c127ff0f5381d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8250961\nReviewed-by: Reilly Grant \u003creillyg@chromium.org\u003e\nReviewed-by: Phillis Tang \u003cphillis@chromium.org\u003e\nReviewed-by: Hu, Ningxin \u003cningxin.hu@intel.com\u003e\nCommit-Queue: Wang, Wei4 \u003cwei4.wang@intel.com\u003e\nCr-Commit-Position: refs/heads/main@{#1682769}\n\n--\n\nwpt-commits: e5c6f33944034560e09421e650211f5e1ccc619d\nwpt-pr: 62066",
      "email": "wei4.wang@intel.com",
      "hash": "de586710dc3731a22487ae2b8963c3877ea9611d",
      "subject": "Bug 2064894 [wpt PR 62066] - [WebNN] Reject conv2d/pool2d/convTranspose2d strides, dilations and filters that exceed the usable extent, a=testonly"
    },
    "df8999ea0459": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 1ac9c360f82e17f20c6a79c02a04439ea13b6adf.",
      "email": "smolnar@mozilla.com",
      "hash": "df8999ea045933bbccd0cfe297c57ee48d516110",
      "subject": "Revert \"Bug 2065678 - ./mach test-info testrun-report: detect main branch if Git repository used also in mach_commands.py. r=ahal\" DONTBUILD"
    },
    "e292aad6fdf9": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 61145\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "e292aad6fdf94c211383a0f1db886b579a2fc8fa",
      "subject": "Bug 2053620 [wpt PR 61145] - Update wpt metadata, a=testonly"
    },
    "e3776c24262d": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62057\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "e3776c24262d70ae47db1545ae3fa548771411c2",
      "subject": "Bug 2064856 [wpt PR 62057] - Update wpt metadata, a=testonly"
    },
    "e4c66d27783d": {
      "author": "Jochen Kühner",
      "avatar": "https://www.gravatar.com/avatar/684d81c72e1de1451ab3f80547d6797d?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nUpdate both GeometryUtils endpoints before conversion\n\nUpdating a source node does not force layout for a relativeTo endpoint\nin an unrelated display-locked subtree of the same document. Update the\ntarget endpoint separately.\n\nMake the target update unconditional whenever a target exists. A clean\nlifecycle update is a no-op. Avoiding endpoint relationship logic keeps\nthe update correct across shadow trees and future lifecycle changes.\n\nAdd WPT coverage using source and target nodes in separate content-\nvisibility locks.\n\nBug: 427918516\n\nChange-Id: I082d236c655bb5669f98e8649c9f36313b8ddd02\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8227484\nReviewed-by: Philip Rogers \u003cpdr@chromium.org\u003e\nReviewed-by: Stefan Zager \u003cszager@chromium.org\u003e\nCommit-Queue: Philip Rogers \u003cpdr@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682689}\n\n--\n\nwpt-commits: 8b65c16d049837be99b5d7a3fe114f6dce9fb683\nwpt-pr: 62077",
      "email": "jochen.kuehner@gmx.de",
      "hash": "e4c66d27783dec1e35f32cdf6a4d068aae239e0e",
      "subject": "Bug 2065016 [wpt PR 62077] - Update both GeometryUtils endpoints before conversion, a=testonly"
    },
    "e4cac4f7c005": {
      "author": "Sandor Molnar",
      "avatar": "https://www.gravatar.com/avatar/0ae9a754e7e4f14ad7409c405ee3bf9e?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 610e315d4a8a5e6e70606f10f8d71bfa119e8651.",
      "email": "smolnar@mozilla.com",
      "hash": "e4cac4f7c0055db3cc2b47d6d25cb87ac579e8ea",
      "subject": "Revert \"Bug 2062096 - remove stray comment at the end of the file r=akulyk\" for causing build bustages"
    },
    "e501b9b9e7e8": {
      "author": "Aran Donohue",
      "avatar": "https://www.gravatar.com/avatar/c818cd3456cfd286dbe16cdf185f4b3f?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nMove the WebTransport headers test to external/wpt\n\nR=flackr@chromium.org, ricea@chromium.org\n\nChange-Id: I844c3180fccad46b0f0120467c2a71dc4e3f085a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8265548\nReviewed-by: Adam Rice \u003cricea@chromium.org\u003e\nReviewed-by: Robert Flack \u003cflackr@chromium.org\u003e\nCommit-Queue: Adam Rice \u003cricea@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682887}\n\n--\n\nwpt-commits: aa2d8857a5d3990dfcb6e1b433fddbbe3e553046\nwpt-pr: 62026",
      "email": "aran.donohue@gmail.com",
      "hash": "e501b9b9e7e81e0ad248e923bc7b8935db7b71b3",
      "subject": "Bug 2064566 [wpt PR 62026] - Move the WebTransport headers test to external/wpt, a=testonly"
    },
    "e718362c9235": {
      "author": "Mason Freed",
      "avatar": "https://www.gravatar.com/avatar/406c7252554037aa604837a0ac3ce90d?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nFix focus navigation loop for internal popover invokers\n\nWhen a popover is opened with an invoker that is inside the popover\nitself (e.g. via `showPopover({source: btn})`), the focus navigation\nlogic in FocusController previously treated that internal element as\nthe scope owner for the popover.\n\nBecause the scope owner was a descendant of the popover itself,\ntraversing out of the popover focus scope (e.g. upon reaching the end\nof the popover or tabbing away) would re-resolve the popover scope from\nthe internal owner, creating a cyclic ownership chain and causing an\ninfinite loop or stack overflow crash.\n\nThis patch updates `InvokerForOpenPopover()` and\n`GetOpenPopoverTarget()` to return nullptr when\n`FlatTreeTraversal::Contains()` finds the invoker inside the popover,\npreventing internal invokers from acting as scope owners.\n\nFixed: 542274292\nChange-Id: I6ff5fed25db2b4d255cb36873d5fbc480ae620da\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8265901\nReviewed-by: Joey Arhar \u003cjarhar@chromium.org\u003e\nAuto-Submit: Mason Freed \u003cmasonf@chromium.org\u003e\nCommit-Queue: Mason Freed \u003cmasonf@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683577}\n\n--\n\nwpt-commits: c2160b7c132d0a0ba0a23e7a8ddeba2f76bce03a\nwpt-pr: 62101",
      "email": "masonf@chromium.org",
      "hash": "e718362c92356e22517d966f500d03aca300c876",
      "subject": "Bug 2065427 [wpt PR 62101] - Fix focus navigation loop for internal popover invokers, a=testonly"
    },
    "e7b721229795": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62049\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "e7b721229795f5e7bbedac46e4025fa7ecc75937",
      "subject": "Bug 2064700 [wpt PR 62049] - Update wpt metadata, a=testonly"
    },
    "e8f1d07f14e7": {
      "author": "Keith Cirkel",
      "avatar": "https://www.gravatar.com/avatar/87a4065b580b6f1e43858ab49d98c109?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nsanitizer-api: Add test cases for tables with adoption agency algorithm (#62060)\n--\n\nwpt-commits: 6745634413e4153144e23bc3e866d6b14d3e55e6\nwpt-pr: 62060",
      "email": "keithamus@users.noreply.github.com",
      "hash": "e8f1d07f14e75e2a6c22724ce44a3923ebe8254e",
      "subject": "Bug 2064825 [wpt PR 62060] - sanitizer-api: Add test cases for tables with adoption agency algorithm, a=testonly"
    },
    "e9780e40b9b5": {
      "author": "David Awogbemila",
      "avatar": "https://www.gravatar.com/avatar/80e9146a1a4d82ed5acb7c15d212f5f7?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nDo not fallback to DocumentTimeline for timeline-trigger-source: none\n\nWhen timeline-trigger-source was set to 'none' (or an unresolved named\ntimeline), ComputeTimeline returned nullptr. However,\nCSSAnimations::ComputeTimelineTrigger had a fallback that replaced a\nnull timeline with the document timeline. Because\ntimeline-trigger-source: auto resolves to the document timeline, this\ncaused 'none' to behave identically to 'auto', tripping immediately.\n\nNote: this patch adds parsing tests but there is no actual change to the parsing behavior.\nBug: 546631269\nChange-Id: Id7598760b0e157f33dac2f406ae82daf6ecadf97\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8254586\nCommit-Queue: David A \u003cawogbemila@chromium.org\u003e\nReviewed-by: Kevin Ellis \u003ckevers@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682398}\n\n--\n\nwpt-commits: 06485c5c599a7ccaddb178fd46ffce0895b51ca1\nwpt-pr: 62057",
      "email": "awogbemila@chromium.org",
      "hash": "e9780e40b9b5f72949c53db530060d7124762cca",
      "subject": "Bug 2064856 [wpt PR 62057] - Do not fallback to DocumentTimeline for timeline-trigger-source: none, a=testonly"
    },
    "eb29a0f85cbf": {
      "author": "Fr",
      "avatar": "https://www.gravatar.com/avatar/5518ddeb668d7ef7b8f5414179bf25f9?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nRevert \"[WebMCP] Expose RegisteredTool.inputSchema as an object\"\n\nThis reverts commit ec5ace9a94e9b4610a8f0ed1b9548ced902c6315.\n\nReason for revert: A packaging update failure with the \"WebMCP - Model Context Tool Inspector\" extension is currently blocking Chrome Canary users from interacting with WebMCP tools. Reverting this change temporarily to unblock users during my upcoming OOO; the CL will be relanded once the extension update is published.\n\nOriginal change's description:\n\u003e [WebMCP] Expose RegisteredTool.inputSchema as an object\n\u003e\n\u003e This CL updates the WebIDL definition for RegisteredTool.inputSchema\n\u003e from DOMString to object to align with the WebMCP specification:\n\u003e https://github.com/webmachinelearning/webmcp/pull/241\n\u003e\n\u003e In Blink, JSONStringToScriptObject() is used in\n\u003e ModelContext::OnGetScriptToolsCompleted() to parse the mojo string\n\u003e into a ScriptObject when constructing the RegisteredTool results.\n\u003e\n\u003e Web platform tests in external/wpt/webmcp/imperative/ are updated to\n\u003e expect inputSchema as a JavaScript object rather than a serialized\n\u003e JSON string.\n\u003e\n\u003e Bug: 489045948\n\u003e Change-Id: I7a28b36d725c85e24726708aecee4cd9f3cbb476\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8248081\n\u003e Reviewed-by: Dominic Farolino \u003cdom@chromium.org\u003e\n\u003e Commit-Queue: Fr \u003cbeaufort.francois@gmail.com\u003e\n\u003e Cr-Commit-Position: refs/heads/main@{#1682945}\n\nBug: 489045948\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: Id3fbbf9e22d902cc9341bd14fae78927582e1cfe\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8276309\nReviewed-by: Dominic Farolino \u003cdom@chromium.org\u003e\nCommit-Queue: Fr \u003cbeaufort.francois@gmail.com\u003e\nCr-Commit-Position: refs/heads/main@{#1683806}\n\n--\n\nwpt-commits: d1e7ae9146207a1a0c2cacc347d50546569f37d8\nwpt-pr: 62111",
      "email": "beaufort.francois@gmail.com",
      "hash": "eb29a0f85cbf26aedd44a9888c71709678e9403b",
      "subject": "Bug 2065543 [wpt PR 62111] - Revert \"[WebMCP] Expose RegisteredTool.inputSchema as an object\", a=testonly"
    },
    "eeb719a782a2": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=322081 (#62054)\n--\n\nwpt-commits: 2b4c587ca5fc1a9173a6cfd5672d45b341fb76f4\nwpt-pr: 62054",
      "email": "karlcow@apple.com",
      "hash": "eeb719a782a243eee34dc3b3d80acca570293634",
      "subject": "Bug 2064798 [wpt PR 62054] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=322081, a=testonly"
    },
    "f600dbf2e649": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62104\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "f600dbf2e649013bba431a9ed4e4ba37a940cee5",
      "subject": "Bug 2065445 [wpt PR 62104] - Update wpt metadata, a=testonly"
    },
    "f782903660a8": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/e3f056b3666182b9913ea875111920be?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\nWebKit export of https://bugs.webkit.org/show_bug.cgi?id=321986 (#62044)\n--\n\nwpt-commits: e586af389a7552e2a570a6896eb77b5b178bca01\nwpt-pr: 62044",
      "email": "52317531+Ahmad-S792@users.noreply.github.com",
      "hash": "f782903660a8e04cd79af9d671c68c14b6584665",
      "subject": "Bug 2064687 [wpt PR 62044] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=321986, a=testonly"
    },
    "f9a027e1c5c2": {
      "author": "moz-wptsync-bot",
      "avatar": "https://www.gravatar.com/avatar/c26d4d31bbd58c7c2201edd90d400494?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "wpt-pr: 62108\nwpt-type: metadata",
      "email": "wptsync@mozilla.com",
      "hash": "f9a027e1c5c266bce888bcb9f8c157304206aff9",
      "subject": "Bug 2065647 [wpt PR 62108] - Update wpt metadata, a=testonly"
    },
    "fa0a40b35698": {
      "author": "Javier Contreras",
      "avatar": "https://www.gravatar.com/avatar/658b99b5d4e8ccf9f3d976f302a55428?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "Automatic update from web-platform-tests\n[gap-decorations] Assign flex gap decoration values for reversed flex\n\nAssign listed and repeated flex gap-decoration values according to flex\nplacement order when `flex-direction` or `flex-wrap` reverses placement,\nmatching the CSSWG resolution in\nhttps://github.com/w3c/csswg-drafts/issues/14156.\n\nBy default, placement order is what we use to assign values in grid,\nmulticol, and grid lanes. The special case handling is needed for\nreversed flex and soon for reversed column fill for grid-lanes.\n\nGap geometry remains in logical paint order. Layout records reversal\nmetadata, while paint maps each stored gap to its placement-order value\nindex.\n\nSo this CL adds an accessor class (`GapDataListValueAccessor`) that will\nbe used instead of the forward-only iterator when assigning gap\ndecoration values in the reversal cases. In that same file, we make some\nof the logic previously used by `BuildRegions` into a helper function so\nwe can reuse it.\n\nIn the common case, time complexity for assigning values does not\nchange. Without reversal, the time complexity is O(A + G), where A is\nthe number of entries in the (non-expanded) list i.e. `rule-color: red,\ngreen, blue` and G is the number of gaps in the axis.\n\nWith reversals, we add an extra logarithmic factor but ONLY for cases\nwhere there are fixed integer repeaters `red, repeat(3, blue green),\nblue`. In these cases the complexity is O(A+GlogA), but even then,\nusually A will be small (in the aforementioned example it is 3).\n\nBecause of this seemingly small time complexity penalty, I will\ninvestigate getting rid of the iterator entirely and just using the\naccessor, if after profiling we see that the difference is not\nsignificant.\n\nWe add WPT coverage for direction reversal, wrap reversal, RTL\ninteraction, uneven flex lines, and `repeat(auto, ...)`.\n\nAs a small refactor, `GapDataListIterator` now stores the shared\n`RegionSlotCounts` directly, and we add a helper in `GapData` so the\niterator and accessor can reuse logic.\n\nChange-Id: I559bcf0e294a233431636d554e29985476a26a70\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8248120\nReviewed-by: Ian Kilpatrick \u003cikilpatrick@chromium.org\u003e\nReviewed-by: Kurt Catti-Schmidt \u003ckschmi@microsoft.com\u003e\nAuto-Submit: Javier Contreras \u003cjaviercon@microsoft.com\u003e\nCommit-Queue: Javier Contreras \u003cjaviercon@microsoft.com\u003e\nCr-Commit-Position: refs/heads/main@{#1683498}\n\n--\n\nwpt-commits: fbb56f5460abe38f6c43d3d3e389eb15b91e0e6b\nwpt-pr: 62096",
      "email": "javiercon@microsoft.com",
      "hash": "fa0a40b356981001a875b1880fd14b06f7b2d2fe",
      "subject": "Bug 2065391 [wpt PR 62096] - [gap-decorations] Assign flex gap decoration values for reversed flex, a=testonly"
    }
  },
  "date": "2026-08-25",
  "days": 1,
  "generatedAt": "2026-08-25T22:06:50Z",
  "markdown": "## Highlights\n- **Security** Tightened TLS negotiation so named FFDHE shares are only advertised when matching ciphersuites are enabled, reducing unnecessary key exchange surface. [Phab D311968](https://phabricator.services.mozilla.com/D311968)\n- **Perf** Mutation observer receiver lookup is now O(1), shaving overhead from DOM-heavy pages and frameworks. [Phab D320866](https://phabricator.services.mozilla.com/D320866)\n- **Networking** Firefox now verifies the full coalescing identity before joining an HTTP/2 connection, closing off incorrect connection reuse. [Phab D319060](https://phabricator.services.mozilla.com/D319060)\n- **Privacy** Sync bridged engines stop logging cleartext payloads, removing a sharp edge in sensitive sync diagnostics. [Phab D318699](https://phabricator.services.mozilla.com/D318699)\n- **UI** The print dialog switched to moz-segmented-control and picked up label truncation support, modernizing a widely used flow. [Phab D316851](https://phabricator.services.mozilla.com/D316851)\n- **Rendering** Several graphics correctness fixes landed together, including box shadow corner initialization, software quad-mask subpixel alignment, and text clip precision. [Phab D320568](https://phabricator.services.mozilla.com/D320568)\n- **Media** Media encoding paths on Apple VideoToolbox and WMF were hardened against state-machine edge cases, even after a same-day backout and reland. [Phab D320751](https://phabricator.services.mozilla.com/D320751)\n- **Mobile** Firefox for Android added an experimental weekly privacy report notification flow with Nimbus gating, scheduling, and dashboard deep links. [Phab D317462](https://phabricator.services.mozilla.com/D317462)\n- **Web Platform** A big WPT intake touched Sanitizer API, WebCrypto, WebNN, CSS masonry and gap decorations, popover focus, GeometryUtils, lazy loading, and more. [bug 2065647](https://bugzilla.mozilla.org/show_bug.cgi?id=2065647)\n- **A11y** The accessibility tree plumbing moved PDocAccessible ownership to PWindowGlobal and fixed discarded BrowsingContext handling, reducing cross-process doc edge cases. [Phab D318677](https://phabricator.services.mozilla.com/D318677)\n\n## What landed by area\n\n### DOM, layout, and style\n- **Perf** Mutation observer receiver lookup is now O(1), which should help observer-heavy apps. [Phab D320866](https://phabricator.services.mozilla.com/D320866)\n- **Rendering** Selector matching now skips non-link descendants inside links when possible, cutting unnecessary visited-style work. [Phab D321095](https://phabricator.services.mozilla.com/D321095)\n- **Rendering** Visited matching logic learned to handle pseudos correctly in another selector-path cleanup. [bug 2062324](https://bugzilla.mozilla.org/show_bug.cgi?id=2062324)\n- **Rendering** Fixed handling of `passed_rightmost_selector`, another subtle selector-engine correctness fix. [Phab D321094](https://phabricator.services.mozilla.com/D321094)\n- **Rendering** Percentage flex gaps are no longer incorrectly treated as definite. [Phab D321113](https://phabricator.services.mozilla.com/D321113)\n- **Web Platform** CrossShadowBoundaryRange now inherits QueryInterface from StaticRange. [Phab D320971](https://phabricator.services.mozilla.com/D320971)\n- **Web Platform** nsContentUtils chrome event dispatch APIs were annotated as `MOZ_CAN_RUN_SCRIPT` across a 4-part safety cleanup. [Phab D310971](https://phabricator.services.mozilla.com/D310971)\n- **Web Platform** Chrome event initialization and finalization of UA shadow now requires a script blocker. [Phab D311670](https://phabricator.services.mozilla.com/D311670)\n- **Refactor** CSS parser error objects were shrunk to reduce memory footprint. [Phab D320989](https://phabricator.services.mozilla.com/D320989)\n- **Refactor** HTMLEditor now checks for plaintext editor before design mode in `IsStyleEditable`. [Phab D320946](https://phabricator.services.mozilla.com/D320946)\n- **Refactor** A small DOM/editor follow-up landed under [bug 2063871](https://bugzilla.mozilla.org/show_bug.cgi?id=2063871). [Phab D320925](https://phabricator.services.mozilla.com/D320925)\n\n### Graphics, rendering, and platform integration\n- **Rendering** Fixed uninitialized corner-shape values in box shadows, eliminating a class of incorrect shadow rendering. [Phab D320568](https://phabricator.services.mozilla.com/D320568)\n- **Rendering** Fixed subpixel offset handling in the software path for `ps_quad_mask`. [Phab D321282](https://phabricator.services.mozilla.com/D321282)\n- **Rendering** Device-space text run clips are no longer rounded out to the device grid, improving precision. [Phab D320774](https://phabricator.services.mozilla.com/D320774)\n- **Rendering** WebRender border splitting work continued with 3 patches, though one part was also backed out later in the day. [Phab D315510](https://phabricator.services.mozilla.com/D315510)\n- **GPU** ANGLE on Android now disables `SharedSurface_EGLImage` to avoid broken paths. [Phab D320788](https://phabricator.services.mozilla.com/D320788)\n- **GPU** APZ pinch locking is now limited to actual multi-touch pinch gestures. [Phab D320606](https://phabricator.services.mozilla.com/D320606)\n- **GPU** `nsIWidget::GetDPI` got a more useful default implementation. [Phab D319273](https://phabricator.services.mozilla.com/D319273)\n- **GPU** APZ gtests were cleaned up to reference `ViewID` and `START_SCROLL_ID` unqualified. [Phab D319265](https://phabricator.services.mozilla.com/D319265)\n- **Mobile** macOS nightly enabled scroll wheel acceleration, but the change was reverted after test fallout. [Phab D151485](https://phabricator.services.mozilla.com/D151485)\n- **Build** Custom CaR builds on macOS can now find the fetched SDK under Chromium's output directory. [Phab D321004](https://phabricator.services.mozilla.com/D321004)\n- **Mobile** WaylandMonitor ownership was simplified to one owner instead of one per callback. [Phab D320580](https://phabricator.services.mozilla.com/D320580)\n\n### Networking, security, and privacy\n- **Networking** HTTP/2 connection coalescing now compares the full identity on hash hits before joining a connection. [Phab D319060](https://phabricator.services.mozilla.com/D319060)\n- **Networking** DoH over HTTP/3 no longer gets a special longer idle timeout. [Phab D320837](https://phabricator.services.mozilla.com/D320837)\n- **Networking** Windows server sockets stop setting `SO_REUSEADDR`, aligning behavior with platform expectations. [Phab D321177](https://phabricator.services.mozilla.com/D321177)\n- **Security** NSS was upgraded to `6ca13d99c4a3517d84a0b68a7a7132821d3e0591`, then immediately backed out for build issues. [Phab D320968](https://phabricator.services.mozilla.com/D320968)\n- **Security** `rsclientcerts` gained support for trust handling. [Phab D320616](https://phabricator.services.mozilla.com/D320616)\n- **Security** `rsclientcerts` now tolerates larger-than-necessary buffers in `C_GetAttributeValue`. [Phab D320615](https://phabricator.services.mozilla.com/D320615)\n- **Security** User font file policy rules now reject wildcard characters. [Phab D320499](https://phabricator.services.mozilla.com/D320499)\n- **Security** ORB exemptions are no longer granted to DevTools. [Phab D319804](https://phabricator.services.mozilla.com/D319804)\n- **Security** Sandbox validation on macOS was loosened to assert launch failure, not a specific error code. [Phab D320628](https://phabricator.services.mozilla.com/D320628)\n- **Security** Singleton XPCOM components can no longer be instantiated via `CreateInstance`. [Phab D320728](https://phabricator.services.mozilla.com/D320728)\n- **Privacy** Sync bridged engines no longer log cleartext payloads. [Phab D318699](https://phabricator.services.mozilla.com/D318699)\n- **Privacy** Several legacy telemetry mirrors were removed for storage access, VPN, cookie behavior, install and migration, default browser, OS environment, updates, security UI, HTTPS, and broader security probes. [Phab D317262](https://phabricator.services.mozilla.com/D317262)\n- **Privacy** The content blocking pref `browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled` was removed. [Phab D317991](https://phabricator.services.mozilla.com/D317991)\n- **Perf** The cookie database WAL cap dropped from 2 MB to 512 KB, reducing sqlite tail size. [Phab D321089](https://phabricator.services.mozilla.com/D321089)\n\n### JavaScript engine and developer tooling\n- **V8** JIT irregexp now uses `and32` immediate form for character checks. [Phab D321292](https://phabricator.services.mozilla.com/D321292)\n- **V8** x86-shared scalar sqrt and round now pass the source as the VEX merge operand. [Phab D320566](https://phabricator.services.mozilla.com/D320566)\n- **V8** arm64 JIT emits `mov` for `computeEffectiveAddress` with zero offset. [Phab D320681](https://phabricator.services.mozilla.com/D320681)\n- **V8** Dynamic import got a jit-test asserting it evaluates asynchronously. [Phab D320967](https://phabricator.services.mozilla.com/D320967)\n- **V8** The JS shell's `HostLoadImportedModule` implementation was updated to match that async import behavior. [Phab D320966](https://phabricator.services.mozilla.com/D320966)\n- **V8** An incorrect \"optimized out\" optimization for host-defined data was abandoned. [Phab D321138](https://phabricator.services.mozilla.com/D321138)\n- **V8** WebTaskSchedulingState inheritance got more thorough testing. [Phab D321137](https://phabricator.services.mozilla.com/D321137)\n- **DevTools** DevTools gained a pref to simulate transport slowdown, then lost it again after failures. [Phab D320853](https://phabricator.services.mozilla.com/D320853)\n- **DevTools** Nightly-only gating was added for `RemoteControlPanel.sys.mjs`. [Phab D320856](https://phabricator.services.mozilla.com/D320856)\n- **DevTools** Remote Control panel wording was updated. [Phab D320942](https://phabricator.services.mozilla.com/D320942)\n- **Build** Mochitest and xpcshell profiles are now symbolicated in automation. [Phab D316256](https://phabricator.services.mozilla.com/D316256)\n- **Build** `./mach test-info testrun-report` learned to detect the main branch in Git worktrees, after a brief backout and reland. [Phab D321085](https://phabricator.services.mozilla.com/D321085)\n- **Build** `jj` workspace checks now fail early when the workspace is stale. [Phab D300104](https://phabricator.services.mozilla.com/D300104)\n- **Build** `mach file-info reviewers` was split, documented, and extended to use `mots.yaml`. [Phab D319436](https://phabricator.services.mozilla.com/D319436)\n- **Build** `mots.yaml` review groups and exported docs got maintenance updates. [Phab D316517](https://phabricator.services.mozilla.com/D316517)\n\n### Firefox desktop UI and UX\n- **UI** The print dialog now uses `moz-segmented-control`. [Phab D316851](https://phabricator.services.mozilla.com/D316851)\n- **UI** `moz-segmented-control` gained label truncation with ellipsis. [Phab D318135](https://phabricator.services.mozilla.com/D318135)\n- **UI** New profile and Edit profile pages got refreshed input styling. [Phab D316051](https://phabricator.services.mozilla.com/D316051)\n- **UI** Profile icons now use 16px assets instead of 24px. [Phab D321238](https://phabricator.services.mozilla.com/D321238)\n- **UI** Touch-density tabs in Nova got updated height. [Phab D321039](https://phabricator.services.mozilla.com/D321039)\n- **UI** The Monitor toolbar button landed. [Phab D318174](https://phabricator.services.mozilla.com/D318174)\n- **UI** Sidebar launcher buttons no longer clip their focus indicator. [Phab D316914](https://phabricator.services.mozilla.com/D316914)\n- **UI** Findbar styling now respects lightweight theme colors better. [Phab D313812](https://phabricator.services.mozilla.com/D313812)\n- **UI** Save dialog now defaults to the current local file's folder. [Phab D319792](https://phabricator.services.mozilla.com/D319792)\n- **UI** Taskbar concealment on Windows is now set more consistently. [Phab D320225](https://phabricator.services.mozilla.com/D320225)\n- **UI** SearchbarInput now extends a common base class. [Phab D319863](https://phabricator.services.mozilla.com/D319863)\n- **UI** Search and URL bar plumbing moved off `moz-input-box` onto the new API, and XUL was disabled in the input markup parser. [Phab D319498](https://phabricator.services.mozilla.com/D319498)\n- **UI** The address bar picked up an undo regression test. [Phab D321199](https://phabricator.services.mozilla.com/D321199)\n- **UI** New Tab menu padding is now scoped to its own menus. [Phab D320250](https://phabricator.services.mozilla.com/D320250)\n- **UI** New Tab tests stopped racing preloaded `about:newtab`, and keyboard escape focus behavior was tightened. [Phab D321099](https://phabricator.services.mozilla.com/D321099)\n- **UI** Smart Window shortcuts are now hidden based on CW newtab settings. [Phab D320584](https://phabricator.services.mozilla.com/D320584)\n- **UI** Create and Manage Tab Group panels got Nova polish. [Phab D318875](https://phabricator.services.mozilla.com/D318875)\n- **UI** Split views are now hidden explicitly instead of inferring from tab visibility. [Phab D320306](https://phabricator.services.mozilla.com/D320306)\n- **UI** Tabbrowser predicates and custom element typings were tightened for TypeScript and docs. [Phab D320689](https://phabricator.services.mozilla.com/D320689)\n- **UI** The all-tabs menu no longer double-consumes button events. [Phab D319473](https://phabricator.services.mozilla.com/D319473)\n- **UI** `MozBaseInputElement` subclasses now map `title` to inner controls. [Phab D315609](https://phabricator.services.mozilla.com/D315609)\n- **Refactor** `nsPromptUtils.h` was removed as dead code. [Phab D321036](https://phabricator.services.mozilla.com/D321036)\n\n### Accessibility, remote protocol, and automation\n- **A11y** PDocAccessible is now managed by PWindowGlobal instead of PBrowser. [Phab D318677](https://phabricator.services.mozilla.com/D318677)\n- **A11y** Same-process embedder selection was fixed when adding a child doc. [Phab D318678](https://phabricator.services.mozilla.com/D318678)\n- **A11y** Parent document arguments were removed from `PDocAccessible` construction and `PBrowserBridge::SetEmbedderAccessible`. [Phab D319427](https://phabricator.services.mozilla.com/D319427)\n- **A11y** Firefox now ignores DocAccessibleParent construction for discarded BrowsingContexts. [Phab D320007](https://phabricator.services.mozilla.com/D320007)\n- **A11y** The full account not syncing button now announces a complete accessible name. [Phab D321035](https://phabricator.services.mozilla.com/D321035)\n- **A11y** `a11y-checks` test expiration was extended by 6 months. [Phab D320986](https://phabricator.services.mozilla.com/D320986)\n- **Web Platform** Remote actions transitions now use `requestAnimationFrame`, matching duration semantics better. [Phab D319790](https://phabricator.services.mozilla.com/D319790)\n- **Web Platform** WebDriver spec coverage expanded to verify multi-event action dispatch for durations. [Phab D319791](https://phabricator.services.mozilla.com/D319791)\n- **Web Platform** Nested pauses in `moz:debugging` are now tracked with a frame stack and depth counter. [Phab D316732](https://phabricator.services.mozilla.com/D316732)\n- **Web Platform** Wdspec coverage was added for nested pauses in `moz:debugging`. [Phab D319401](https://phabricator.services.mozilla.com/D319401)\n- **Mobile** Geckodriver documented an onboarding automation workaround for Firefox on Android. [Phab D321180](https://phabricator.services.mozilla.com/D321180)\n\n### Media and audio/video\n- **Media** AppleVTEncoder state transitions were hardened against edge cases. [Phab D320752](https://phabricator.services.mozilla.com/D320752)\n- **Media** WMF encoder state transitions were hardened against edge cases. [Phab D320751](https://phabricator.services.mozilla.com/D320751)\n- **Media** WebM muxing now starts a new cluster on an interval instead of only on keyframes. [Phab D320118](https://phabricator.services.mozilla.com/D320118)\n- **Media** GMP plugin task handling was improved. [Phab D317663](https://phabricator.services.mozilla.com/D317663)\n- **Media** On Linux Vulkan Video, ffvpx is now enabled when the system FFmpeg is too old. [Phab D321070](https://phabricator.services.mozilla.com/D321070)\n- **Media** Picture-in-Picture now observes text tracks added after PiP opens. [Phab D318612](https://phabricator.services.mozilla.com/D318612)\n- **Media** PiP also listens for text track changes before a track becomes active. [Phab D318595](https://phabricator.services.mozilla.com/D318595)\n- **Media** `audioipc` was updated. [Phab D320683](https://phabricator.services.mozilla.com/D320683)\n- **Media** AVIF decoder `UniquePtr` members are now default-initialized for C++23 compatibility. [Phab D320833](https://phabricator.services.mozilla.com/D320833)\n- **Media** New gtests landed for undersized image conversion surfaces, video picture-region handling, encoder dimension validation, muted large-frame video chunks, and redirected media load-error redaction. [Phab D314474](https://phabricator.services.mozilla.com/D314474)\n\n### Android and mobile product work\n- **Mobile** Firefox for Android added a 4-part experiment for weekly privacy report notifications with Nimbus control, channel setup, scheduling, and dashboard deep links. [Phab D317462](https://phabricator.services.mozilla.com/D317462)\n- **Mobile** The same privacy report experiment was temporarily reverted for debug failures. [bug 2060524](https://bugzilla.mozilla.org/show_bug.cgi?id=2060524)\n- **Mobile** Summarization results can now be rated on Android. [Phab D317863](https://phabricator.services.mozilla.com/D317863)\n- **Mobile** Address-capture telemetry was expanded to match other prompt telemetry. [Phab D316906](https://phabricator.services.mozilla.com/D316906)\n- **Mobile** The VPN CTA text changed from \"Try it\" to \"Try it free\". [Phab D320432](https://phabricator.services.mozilla.com/D320432)\n- **Mobile** Popular sites are preloaded before opening the Add Shortcut bottom sheet. [Phab D317075](https://phabricator.services.mozilla.com/D317075)\n- **Mobile** ShareData now carries the private-browsing flag, and ShareTab tests were simplified around that. [Phab D289084](https://phabricator.services.mozilla.com/D289084)\n- **Mobile** GeckoView variants were refreshed in taskgraph. [Phab D321222](https://phabricator.services.mozilla.com/D321222)\n- **Mobile** Android nightly application-services was bumped to `e6aa0c251cda885dd31850b2912b937612ea810c`. [Phab D321157](https://phabricator.services.mozilla.com/D321157)\n- **Build** The Android efficiency harness got a large cleanup pass covering structured reporting, test-boundary state sampling, failure screenshots, launcher and page plumbing, selector strategy adapters, and JSON analyzer output. [Phab D320802](https://phabricator.services.mozilla.com/D320802)\n\n### Web platform tests and standards conformance\n- **Web Platform** CSS mixins work moved forward with CSSPrivateRule exposure to CSSOM in tests. [bug 2065647](https://bugzilla.mozilla.org/show_bug.cgi?id=2065647)\n- **Web Platform** Sanitizer API coverage expanded across case folding, table adoption, `data-` edge cases, namespaces, and template elements. [bug 2065144](https://bugzilla.mozilla.org/show_bug.cgi?id=2065144)\n- **Web Platform** WebCrypto got broader `supports()` validation and `[EnforceRange]` coverage. [bug 2065664](https://bugzilla.mozilla.org/show_bug.cgi?id=2065664)\n- **Web Platform** WebNN tests tightened LSTM and GRU full-sequence validation and rejected oversized stride, dilation, and filter extents. [bug 2065448](https://bugzilla.mozilla.org/show_bug.cgi?id=2065448)\n- **Web Platform** CSS masonry and gap-decoration coverage expanded for reversed flex, rule insets, rule breaks, spanners, and percentage resolution. [bug 2065391](https://bugzilla.mozilla.org/show_bug.cgi?id=2065391)\n- **Web Platform** GeometryUtils tests now use layout geometry and update both endpoints before conversion. [bug 2064928](https://bugzilla.mozilla.org/show_bug.cgi?id=2064928)\n- **Web Platform** Popover and invoker tests improved around iframe focus movement and internal focus loops. [bug 2064951](https://bugzilla.mozilla.org/show_bug.cgi?id=2064951)\n- **Web Platform** Lazy loading got coverage for intersection observations outside the viewport. [bug 2065073](https://bugzilla.mozilla.org/show_bug.cgi?id=2065073)\n- **Web Platform** HTML parser tests fixed legacy processing-instruction parse errors. [bug 2062478](https://bugzilla.mozilla.org/show_bug.cgi?id=2062478)\n- **Web Platform** Trusted Types XML sanitization now throws in the relevant test coverage. [bug 2064813](https://bugzilla.mozilla.org/show_bug.cgi?id=2064813)\n- **Web Platform** Scroll-driven animation and timeline-trigger coverage was updated for unknown timelines and `timeline-trigger-source: none`. [bug 2065691](https://bugzilla.mozilla.org/show_bug.cgi?id=2065691)\n- **Web Platform** WPT imports also covered WebTransport headers, shared worker storage access, Wasm proposal JS installation, out-of-order streaming, digital credentials cleanup and sandbox propagation, paint timing, prerender paintholding, JPEG XL color management, calc simplification assumptions, and `if()` with `random()`. [bug 2064566](https://bugzilla.mozilla.org/show_bug.cgi?id=2064566)\n\n## Reverts \u0026 Reapplies\n- **Refactor** Reverted the Android privacy report notification experiment after Fenix debug failures. [bug 2060524](https://bugzilla.mozilla.org/show_bug.cgi?id=2060524)\n- **DevTools** Reverted the new DevTools transport slowdown pref after multiple failures. [bug 2066044](https://bugzilla.mozilla.org/show_bug.cgi?id=2066044)\n- **Media** Reverted WMF encoder hardening for build bustage, then relanded it later the same day. [bug 2065956](https://bugzilla.mozilla.org/show_bug.cgi?id=2065956)\n- **Media** Reverted AppleVTEncoder hardening for build bustage, then relanded it later the same day. [bug 2065957](https://bugzilla.mozilla.org/show_bug.cgi?id=2065957)\n- **Rendering** Reverted over-thick border interior split work after WebRender test failures. [bug 2059620](https://bugzilla.mozilla.org/show_bug.cgi?id=2059620)\n- **Privacy** Reverted telemetry mirror removals for `securityuicerterror_load_aboutcerterror`, HTTPS probes, and legacy security probes after probe failures. [bug 2066103](https://bugzilla.mozilla.org/show_bug.cgi?id=2066103)\n- **Mobile** Reverted macOS nightly scroll wheel acceleration after WPT and WR failures. [bug 1764233](https://bugzilla.mozilla.org/show_bug.cgi?id=1764233)\n- **Build** Reverted `./mach test-info testrun-report` main-branch detection once, then relanded it with fixes. [bug 2065678](https://bugzilla.mozilla.org/show_bug.cgi?id=2065678)\n- **UI** Reverted Smart Form Fill's tab selector dialog after browser-chrome failures. [bug 2061357](https://bugzilla.mozilla.org/show_bug.cgi?id=2061357)\n- **UI** Reverted a newtab preload race fix after browser-chrome failures; follow-up fixes also landed. [bug 2062213](https://bugzilla.mozilla.org/show_bug.cgi?id=2062213)\n- **UI** Reverted a sidebar animation cleanup after browser-chrome failures. [bug 2052424](https://bugzilla.mozilla.org/show_bug.cgi?id=2052424)\n- **Security** Reverted the NSS upgrade after build bustage. [bug 2063354](https://bugzilla.mozilla.org/show_bug.cgi?id=2063354)\n- **Build** Reverted several small cleanup patches for build or hazard failures, including clippy-warning removals, a stray comment removal, and a formatting-only change. [bug 2042426](https://bugzilla.mozilla.org/show_bug.cgi?id=2042426)\n- **UI** Reverted an ASRouter test migration after lint failures. [bug 2041980](https://bugzilla.mozilla.org/show_bug.cgi?id=2041980)\n- **UI** Reverted Monitor Agent error-code recording after browser-chrome and test-verify failures. [bug 2062352](https://bugzilla.mozilla.org/show_bug.cgi?id=2062352)\n",
  "repo": "firefox",
  "repoDisplay": "Firefox",
  "rollGroups": [
    {
      "name": "No",
      "count": 3
    },
    {
      "name": "Merge",
      "count": 2
    },
    {
      "name": "no",
      "count": 1
    }
  ],
  "since": "2026-08-25",
  "totals": {
    "commits": 319,
    "features": 313,
    "rolls": 6
  },
  "until": "2026-08-25"
}