{
  "commits": {
    "056a65d0b2d5": {
      "author": "Serban Stanca",
      "avatar": "https://www.gravatar.com/avatar/977312186062f329a7e4302ab972ae7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit bd92d332234416ed6f648394941194d15a7a51ac.",
      "email": "sstanca@mozilla.com",
      "hash": "056a65d0b2d56cf2edd6820479dbb8898fd0c72f",
      "subject": "Revert \"Bug 2050584. r=gfx-reviewers,nical\" for causing gl failures in test_2_conformance2__extensions__ovr_multiview2_draw_buffers.html."
    },
    "0b1b47e63659": {
      "author": "Serban Stanca",
      "avatar": "https://www.gravatar.com/avatar/977312186062f329a7e4302ab972ae7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 351e76d06c6792ca615f731745872d5085779c86.\n\nThis reverts commit 15c8ebdc7193c3b8b2bed13a35493720c1643c41.",
      "email": "sstanca@mozilla.com",
      "hash": "0b1b47e63659cb5c1f2b9c8440366c3df81d9aeb",
      "subject": "Revert \"Bug 2057509 - Allow per-scale wrench reference images. r=gfx-reviewers,gw\" for causing wrench bustages."
    },
    "1196d9441f4c": {
      "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": "1196d9441f4c455f92a36bcdee7d909c4ea0a40f",
      "subject": "Bug 2057635: apply code formatting via Lando"
    },
    "30198072e4d1": {
      "author": "Alexandru Marc",
      "avatar": "https://www.gravatar.com/avatar/f90e8bfbc9c1383d73053a8809b77e48?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 17b72d8689e088662397e6a5f9cbadc973b21a05.",
      "email": "amarc@mozilla.com",
      "hash": "30198072e4d1cebf5e5cf855a3245138dbe97889",
      "subject": "Revert \"Bug 2046592 - Add Desktop notification when active monitor meets condition r=ngrato,tetchart,fluent-reviewers,bolsson\" for causing bc failures @ browser_monitor_agent"
    },
    "352e9cd54a0d": {
      "author": "rperta",
      "avatar": "https://www.gravatar.com/avatar/95787d55656c719bd5b0c6754f5449a3?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit fc8d3638b8c023160df271d9f7a7ece29926f893.\n\nRevert \"Bug 2007174: Add createWritable() to WebTransportDatagramDuplexStream r=saschanaz,webidl\"\n\nThis reverts commit 3d334d3b17233db9fcf257a37ff07578d8aa742f.\n\nRevert \"Bug 2007174: Implement WebTransportDatagramsWritable interface r=saschanaz,webidl,smaug\"\n\nThis reverts commit 4dc01fb8be9809352190f0de7a2aa406cb52f479.\n\nRevert \"Bug 2007165: Update WebTransportSendStreamOptions r=saschanaz,webidl\"\n\nThis reverts commit a2430492c3ba60b7d5df1ff8f3ae4537629bd796.\n\nRevert \"Bug 2007165: Use per-writable algorithm and fully connect sendGroup/sendOrder r=saschanaz,necko-reviewers,valentin\"\n\nThis reverts commit 50cb89dbd315e692da9f414f4ff7c93331fa47ee.\n\nRevert \"Bug 2007150: Update wpts for WebTransport sub-protocol negotiation r=necko-reviewers,valentin\"\n\nThis reverts commit 3b5a94722152b1ba6fa1a46f8fd31618410b7495.\n\nRevert \"Bug 2007165: Hook up DOM WebTransport sendGroup support to necko \u0026 neqo implementation (early) r=necko-reviewers,webidl,kershaw,tschuster\"\n\nThis reverts commit ae9004a4a2b2828035c061ee9f97a747757cd6d9.\n\nRevert \"Bug 2007150: next step hooking up WebTransport sub-protocol support r=necko-reviewers,kershaw\"\n\nThis reverts commit 679e60c8d3174f55c095af69d8c83c143a0cd83d.\n\nRevert \"Bug 2007150: Hook up WebTransport sub-protocol negotiation r=necko-reviewers,dom-core-reviewers,smaug,valentin,ipc-reviewers\"\n\nThis reverts commit 9cc90dea3e019ab4c2162582c2df66d72a6a0a81.\n\nRevert \"Bug 2007150: Get the negotiated protocol from neqo for WebTransport r=necko-reviewers,kershaw\"\n\nThis reverts commit 20658c62af8ec7258645d692e22ecbeac4ec1fed.\n\nRevert \"Bug 2007165: Add WPTs for WebTransport SendGroup r=jib\"\n\nThis reverts commit 24d67cd36bae610c6cd470b1e82938af148c0617.\n\nRevert \"Bug 2007165: Wire up Create SendGroup WebTransport support r=necko-reviewers,kershaw\"\n\nThis reverts commit 81711771c06a3029ae49472e710265ec3d132eb9.\n\nRevert \"Bug 2007165: make WebTransport sendGroup id creation synchronous in the child r=saschanaz,necko-reviewers,valentin\"\n\nThis reverts commit ed9780c55df6a61009a49a6aec8137aa51bd3ee5.\n\nRevert \"Bug 2007165: Add API hookup for neqo to create WebTransport send groups r=necko-reviewers,kershaw\"\n\nThis reverts commit aba9ba21657e8c579b5419b257624ce141783eb2.\n\nRevert \"Bug 2007165: Implement WebTransportSendGroup interface r=saschanaz,necko-reviewers,webidl,smaug,valentin\"\n\nThis reverts commit 8e9c58616a60e8a05d34e85e567b59d19ee91cdc.\n\nRevert \"Bug 2007160: Add WPT test for WebTransport draining promise r=jib\"\n\nThis reverts commit bcd7d64215eb3fdd84dfd9d0fe8ef5d2ba06d358.\n\nRevert \"Bug 2007160: Finish hooking up Draining from neqo for WebTransport.  Add InvalidState error r=necko-reviewers,kershaw\"\n\nThis reverts commit 15ec5c3090eeb8089e6f4bf278002813e6f23059.\n\nRevert \"Bug 2007160: Add draining promise attribute to WebTranport r=necko-reviewers,webidl,saschanaz,kershaw\"\n\nThis reverts commit e336c3b62c71963cd16ae09b410111c3eefa4b9b.\n\nRevert \"Bug 2007150: Add protocols option to WebTransportOptions - partial DOM-only impl r=webidl,saschanaz,necko-reviewers,kershaw\"\n\nThis reverts commit 061cafdb376a26c8786d09399cb525ea9ed66815.\n\nRevert \"Bug 2007206: Make WebTransportHash members required r=saschanaz,webidl,necko-reviewers,kershaw\"\n\nThis reverts commit a1a9e3128b22ff428df62d82470657569ea2a84c.",
      "email": "rperta@mozilla.com",
      "hash": "352e9cd54a0d150131d8f86e6be1287ee48e1822",
      "subject": "Revert \"Bug 2007174, Bug 2007165, Bug 2007150, Bug 2007160, Bug 2007206: Add WPTs for createWritable r=jib\" for causing build bustages"
    },
    "3b28c2674c87": {
      "author": "Serban Stanca",
      "avatar": "https://www.gravatar.com/avatar/977312186062f329a7e4302ab972ae7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit e9eb24c961039abb436a85bc631c3a554c351cce.",
      "email": "sstanca@mozilla.com",
      "hash": "3b28c2674c87646386f6b3920d41e10eb4eff12b",
      "subject": "Revert \"Bug 2050584. r=gfx-reviewers,nical\" for causing gtests failures in test_2_conformance__extensions__ext-float-blend.html."
    },
    "4957be692e9c": {
      "author": "rperta",
      "avatar": "https://www.gravatar.com/avatar/95787d55656c719bd5b0c6754f5449a3?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 65e76fd8c0e3d8473a860d98c338a281d91aa3cc.",
      "email": "rperta@mozilla.com",
      "hash": "4957be692e9cfed153ac75697f31691ca2af6b03",
      "subject": "Revert \"Bug 2057009 - The shield should not start off with the check mark as default regardless if trackers are found or not. r=urlbar-reviewers,desktop-theme-reviewers,dao,daleharvey\" for causing multiple failures"
    },
    "5855f2824323": {
      "author": "iulian moraru",
      "avatar": "https://www.gravatar.com/avatar/348b805af88f773829064778b66be468?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit a502487ad3c4524224256b7c0059fd6e12f89951.",
      "email": "imoraru@mozilla.com",
      "hash": "5855f28243234435230dd4a57a8c330b8933b7a0",
      "subject": "Revert \"Bug 2058273 - Make sure newly added shared prefs are added to the shared database. r=mossop\" for causing bc failures on browser_preferences.js."
    },
    "6257b6c5f2ac": {
      "author": "Alexandru Marc",
      "avatar": "https://www.gravatar.com/avatar/f90e8bfbc9c1383d73053a8809b77e48?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 8ccf29060abe0da46201895f718e22eef0f64a78.\n\nRevert \"Bug 2041381 - pass cookies storage info while creating channel in prefetch parent. r=necko-reviewers,jesup\"\n\nThis reverts commit 008ffa2ba87ae1c6d8673cac70ca725266e63166.\n\nRevert \"Bug 2041381 - [speculation-rules] Part 6: Integrate DOM speculation rules parser with PrefetchRecord Actors and SpeculationRules manager. r=dom-core-reviewers,necko-reviewers,avandolder,kershaw\"\n\nThis reverts commit ca0146509e5cb40a83c2ba54199e199e8f435b9f.\n\nRevert \"Bug 2041381 - [speculation-rules] Part 5.2: Expose deliveryType=\"navigational-prefetch\" on PerformanceNavigationTiming r=dom-core-reviewers,necko-reviewers,webidl,emilio,canova,saschanaz,kershaw,avandolder\"\n\nThis reverts commit da473bf5d90f3ee0e954980afb5d5369d7a7dbf6.\n\nRevert \"Bug 2041381 - [speculation-rules] Part 5.1: Serve navigation from prefetch cache in DocumentLoadListener. r=necko-reviewers,cookie-reviewers,valentin\"\n\nThis reverts commit c67d0357b8d7b02051c2df59a0d1530154912486.\n\nRevert \"Bug 2041372 - [speculation-rules] Part 4.2: Implement async PrefetchMatchWaiter for the wait algorithm r=dom-core-reviewers,avandolder\"\n\nThis reverts commit d67227677ad6401be9483227037777137316ea9d.\n\nRevert \"Bug 2041372 - [speculation-rules] Part 4.1: Implement navigation matching algorithms r=dom-core-reviewers,necko-reviewers,avandolder,kershaw\"\n\nThis reverts commit 873c10649282de0309f61633b7d0fdf43b726946.\n\nRevert \"Bug 2037103 - [speculation-rules] Part 3.2: Implement OnStopRequest completion path and DedupePrefetchRecords r=dom-core-reviewers,avandolder\"\n\nThis reverts commit ce0009f861369a57fc155b138644c52bcc23d308.\n\nRevert \"Bug 2037103 - [speculation-rules] Part 3.1: Implement RecvCancel, ActorDestroy safety net, and FirePrefetchStatusUpdated stub r=dom-core-reviewers,avandolder\"\n\nThis reverts commit 7d01ece758957947ff5a7af6387435e5413a316a.\n\nRevert \"Bug 2037103 - [speculation-rules] Part 2.2: Add cross-site redirect partition-key check r=dom-core-reviewers,necko-reviewers,avandolder,valentin\"\n\nThis reverts commit e938bb5a14d65ee861b40ddc7d0e47e87ec22c3a.\n\nRevert \"Bug 2037103 - [speculation-rules] Part 2.1: Implement PrefetchRecordParent::Init() and streaming interfaces r=dom-core-reviewers,necko-reviewers,avandolder,kershaw\"\n\nThis reverts commit e1eda86cd494ce45705cb43758c69d1cbaa2856c.\n\nRevert \"Bug 2041008 - [speculation-rules] Part 1.5: Wire lifecycle log calls for prefetch actors and SpeculationRulesManager r=dom-core-reviewers,avandolder\"\n\nThis reverts commit 64fdd69b2a3f35144126516b7e973a79afe57086.\n\nRevert \"Bug 2041008 - [speculation-rules] Part 1.4: Add SpeculationRules MOZ_LOG module and prefs r=dom-core-reviewers,avandolder\"\n\nThis reverts commit 4ea28edd5548351668dae252f0a3e4615b46e7d2.\n\nRevert \"Bug 2041008 - [speculation-rules] Part 1.3: Integrate SpeculationRulesManager with Document r=dom-core-reviewers,jjaschke\"\n\nThis reverts commit 1e50caebc3a9cfc907ceb0f6cee90f82718473a3.\n\nRevert \"Bug 2041008 - [speculation-rules] Part 1.2: Add SpeculationRulesManager skeleton r=dom-core-reviewers,avandolder\"\n\nThis reverts commit cc7b215f7e4005d6b49748d057fa6aa28bad45a8.\n\nRevert \"Bug 2037102 - [speculation-rules] Part 1.1: Add PPrefetchRecord IPDL actor scaffolding r=dom-core-reviewers,necko-reviewers,avandolder,nika,kershaw\"\n\nThis reverts commit b283608ec69b939a04ebfab2470c35c27cacc67e.",
      "email": "amarc@mozilla.com",
      "hash": "6257b6c5f2ac674599e1609406cadd888b2557d2",
      "subject": "Revert (Bug 2037102, Bug 2037103, Bug 2041008, Bug 2041372, Bug 2041381) for causing multiple wpt failures"
    },
    "69a7c0664c0e": {
      "author": "Serban Stanca",
      "avatar": "https://www.gravatar.com/avatar/977312186062f329a7e4302ab972ae7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 857bf898d3cfb7dbd23b704843f2f8f2ed664f5a.\n\nThis reverts commit 47897f0709d3e321e639951a540763fcd8733cb1.",
      "email": "sstanca@mozilla.com",
      "hash": "69a7c0664c0e163c2e653511ea7370ca7ed443a9",
      "subject": "Revert \"Bug 2057509 - Allow per-scale wrench reference images. r=gfx-reviewers,gw\" for causing wrench bustages."
    },
    "D256150": {
      "author": "Duncan McIntosh",
      "avatar": "https://www.gravatar.com/avatar/8d2a45b83e51be8dece9ba489225014e?d=identicon\u0026s=64",
      "cl": "D256150",
      "clUrl": "https://phabricator.services.mozilla.com/D256150",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D256150",
      "email": "dmcintosh@mozilla.com",
      "hash": "69339ce1ad7fdbf9d9e590adb35ecfec4609c873",
      "subject": "Bug 1975797 - Ensure download progress updates eventually by using a timer. r=mak"
    },
    "D277246": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277246",
      "clUrl": "https://phabricator.services.mozilla.com/D277246",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277246",
      "email": "rjesup@mozilla.com",
      "hash": "a1a9e3128b22ff428df62d82470657569ea2a84c",
      "subject": "Bug 2007206: Make WebTransportHash members required r=saschanaz,webidl,necko-reviewers,kershaw"
    },
    "D277247": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277247",
      "clUrl": "https://phabricator.services.mozilla.com/D277247",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277247",
      "email": "rjesup@mozilla.com",
      "hash": "061cafdb376a26c8786d09399cb525ea9ed66815",
      "subject": "Bug 2007150: Add protocols option to WebTransportOptions - partial DOM-only impl r=webidl,saschanaz,necko-reviewers,kershaw"
    },
    "D277248": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277248",
      "clUrl": "https://phabricator.services.mozilla.com/D277248",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277248",
      "email": "rjesup@mozilla.com",
      "hash": "e336c3b62c71963cd16ae09b410111c3eefa4b9b",
      "subject": "Bug 2007160: Add draining promise attribute to WebTranport r=necko-reviewers,webidl,saschanaz,kershaw"
    },
    "D277249": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277249",
      "clUrl": "https://phabricator.services.mozilla.com/D277249",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277249",
      "email": "rjesup@mozilla.com",
      "hash": "8e9c58616a60e8a05d34e85e567b59d19ee91cdc",
      "subject": "Bug 2007165: Implement WebTransportSendGroup interface r=saschanaz,necko-reviewers,webidl,smaug,valentin"
    },
    "D277251": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277251",
      "clUrl": "https://phabricator.services.mozilla.com/D277251",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277251",
      "email": "rjesup@mozilla.com",
      "hash": "4dc01fb8be9809352190f0de7a2aa406cb52f479",
      "subject": "Bug 2007174: Implement WebTransportDatagramsWritable interface r=saschanaz,webidl,smaug"
    },
    "D277252": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277252",
      "clUrl": "https://phabricator.services.mozilla.com/D277252",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277252",
      "email": "rjesup@mozilla.com",
      "hash": "3d334d3b17233db9fcf257a37ff07578d8aa742f",
      "subject": "Bug 2007174: Add createWritable() to WebTransportDatagramDuplexStream r=saschanaz,webidl"
    },
    "D277253": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D277253",
      "clUrl": "https://phabricator.services.mozilla.com/D277253",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D277253",
      "email": "rjesup@mozilla.com",
      "hash": "a2430492c3ba60b7d5df1ff8f3ae4537629bd796",
      "subject": "Bug 2007165: Update WebTransportSendStreamOptions r=saschanaz,webidl"
    },
    "D280254": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D280254",
      "clUrl": "https://phabricator.services.mozilla.com/D280254",
      "description": "The 'ready to use before session is established' subtest hits the\npre-existing single-slot mWaitConnect queue (Bug 1822138): createWritable()\n(landed just before this point) lets write_N_datagrams() issue several\nconcurrent early writes, and all but the last are silently dropped, hanging\nthe promise until the harness times out. That aborts the remaining\noutgoingMaxBufferedDatagrams/incomingMaxBufferedDatagrams/MaxBufferedDatagrams\nsubtests in the same global (NOTRUN) and can push the whole-file status to\nTIMEOUT.\n\nThis is fixed for real by the later 'Allow more than one datagram to be\nqueued waiting for connection to open' patch. Until the stack reaches that\npoint, mark TIMEOUT/NOTRUN as expected here so ./mach wpt reports no\nunexpected results.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D280254",
      "email": "rjesup@mozilla.com",
      "hash": "fc8d3638b8c023160df271d9f7a7ece29926f893",
      "subject": "Bug 2007174: Add WPTs for createWritable r=jib"
    },
    "D280256": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D280256",
      "clUrl": "https://phabricator.services.mozilla.com/D280256",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D280256",
      "email": "rjesup@mozilla.com",
      "hash": "24d67cd36bae610c6cd470b1e82938af148c0617",
      "subject": "Bug 2007165: Add WPTs for WebTransport SendGroup r=jib"
    },
    "D280257": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D280257",
      "clUrl": "https://phabricator.services.mozilla.com/D280257",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D280257",
      "email": "rjesup@mozilla.com",
      "hash": "bcd7d64215eb3fdd84dfd9d0fe8ef5d2ba06d358",
      "subject": "Bug 2007160: Add WPT test for WebTransport draining promise r=jib"
    },
    "D283483": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D283483",
      "clUrl": "https://phabricator.services.mozilla.com/D283483",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D283483",
      "email": "rjesup@mozilla.com",
      "hash": "20658c62af8ec7258645d692e22ecbeac4ec1fed",
      "subject": "Bug 2007150: Get the negotiated protocol from neqo for WebTransport r=necko-reviewers,kershaw"
    },
    "D283484": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D283484",
      "clUrl": "https://phabricator.services.mozilla.com/D283484",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D283484",
      "email": "rjesup@mozilla.com",
      "hash": "679e60c8d3174f55c095af69d8c83c143a0cd83d",
      "subject": "Bug 2007150: next step hooking up WebTransport sub-protocol support r=necko-reviewers,kershaw"
    },
    "D283487": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D283487",
      "clUrl": "https://phabricator.services.mozilla.com/D283487",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D283487",
      "email": "rjesup@mozilla.com",
      "hash": "15ec5c3090eeb8089e6f4bf278002813e6f23059",
      "subject": "Bug 2007160: Finish hooking up Draining from neqo for WebTransport.  Add InvalidState error r=necko-reviewers,kershaw"
    },
    "D283488": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D283488",
      "clUrl": "https://phabricator.services.mozilla.com/D283488",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D283488",
      "email": "rjesup@mozilla.com",
      "hash": "aba9ba21657e8c579b5419b257624ce141783eb2",
      "subject": "Bug 2007165: Add API hookup for neqo to create WebTransport send groups r=necko-reviewers,kershaw"
    },
    "D283489": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D283489",
      "clUrl": "https://phabricator.services.mozilla.com/D283489",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D283489",
      "email": "rjesup@mozilla.com",
      "hash": "81711771c06a3029ae49472e710265ec3d132eb9",
      "subject": "Bug 2007165: Wire up Create SendGroup WebTransport support r=necko-reviewers,kershaw"
    },
    "D286306": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D286306",
      "clUrl": "https://phabricator.services.mozilla.com/D286306",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D286306",
      "email": "rjesup@mozilla.com",
      "hash": "50cb89dbd315e692da9f414f4ff7c93331fa47ee",
      "subject": "Bug 2007165: Use per-writable algorithm and fully connect sendGroup/sendOrder r=saschanaz,necko-reviewers,valentin"
    },
    "D287635": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D287635",
      "clUrl": "https://phabricator.services.mozilla.com/D287635",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D287635",
      "email": "rjesup@mozilla.com",
      "hash": "ed9780c55df6a61009a49a6aec8137aa51bd3ee5",
      "subject": "Bug 2007165: make WebTransport sendGroup id creation synchronous in the child r=saschanaz,necko-reviewers,valentin"
    },
    "D287808": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D287808",
      "clUrl": "https://phabricator.services.mozilla.com/D287808",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D287808",
      "email": "rjesup@mozilla.com",
      "hash": "3b5a94722152b1ba6fa1a46f8fd31618410b7495",
      "subject": "Bug 2007150: Update wpts for WebTransport sub-protocol negotiation r=necko-reviewers,valentin"
    },
    "D287810": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D287810",
      "clUrl": "https://phabricator.services.mozilla.com/D287810",
      "description": "IPC Layer (PBackground.ipdl) - Added nsString[] aProtocols parameter to CreateWebTransportParent\nDOM Layer (WebTransport.cpp) - Extracted protocols from JavaScript API options and passed them through IPC at WebTransport.cpp:260-269, 386-390\nParent Process (BackgroundParentImpl.h/cpp, WebTransportParent.h/cpp) - Updated to receive and forward protocols through the IPC chain\nNetwork Layer (nsIWebTransport.idl, WebTransportSessionProxy.cpp) -\nAdded protocols parameter to AsyncConnectWithClient interface\nImplemented code to format and send wt-available-protocols HTTP header in the correct format: \"protocol1\", \"protocol2\", \"protocol3\"\n\nDifferential Revision: https://phabricator.services.mozilla.com/D287810",
      "email": "rjesup@mozilla.com",
      "hash": "9cc90dea3e019ab4c2162582c2df66d72a6a0a81",
      "subject": "Bug 2007150: Hook up WebTransport sub-protocol negotiation r=necko-reviewers,dom-core-reviewers,smaug,valentin,ipc-reviewers"
    },
    "D295656": {
      "author": "Nicolas Grunbaum",
      "avatar": "https://www.gravatar.com/avatar/e49c6f6d2a2296f8ff216adbd0a60fe5?d=identicon\u0026s=64",
      "cl": "D295656",
      "clUrl": "https://phabricator.services.mozilla.com/D295656",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D295656",
      "email": "ngrunbaum@mozilla.com",
      "hash": "3dc37b3dce29cbcb5e151154a758871cbc2ab2f0",
      "subject": "Bug 1806181 - Add distinct errors for SDP parsing failures. r=webrtc-reviewers,bwc,diegociudadreale,!bwc"
    },
    "D302502": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302502",
      "clUrl": "https://phabricator.services.mozilla.com/D302502",
      "description": "Plumbing-only patch for Speculation Rules prefetch (M1, same-origin).\nAdds the PPrefetchRecord IPDL protocol, child/parent actor skeletons,\nand PWindowGlobal management. No behavior yet — Init/Cancel bodies and\nSpeculationRulesManager wiring follow in subsequent parts.\n\n- dom/ipc/PPrefetchRecord.ipdl (new): protocol definition\n- dom/ipc/PrefetchIPCTypes.ipdlh (new): shared IPDL types\n  (SpeculativePrefetchArgs) usable by PPrefetchRecord + PWindowGlobal\n- dom/ipc/PrefetchTypes.h (new): shared C++ enums (PrefetchState,\n  PrefetchAnonymizationPolicy, PrefetchSource) and ExchangeRecord\n- dom/ipc/PrefetchRecordChild.{h,cpp} (new): content-side actor; holds\n  URL + anon policy\n- dom/ipc/PrefetchRecordParent.{h,cpp} (new): parent-side actor; holds\n  prefetch record fields; empty RecvCancel/ActorDestroy\n- dom/ipc/PWindowGlobal.ipdl: add 'manages PPrefetchRecord;' and\n  constructor message\n- dom/ipc/WindowGlobalParent.{h,cpp}: add AllocPPrefetchRecordParent\n- dom/ipc/moz.build: wire new sources\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302502",
      "email": "smayya@mozilla.com",
      "hash": "b283608ec69b939a04ebfab2470c35c27cacc67e",
      "subject": "Bug 2037102 - [speculation-rules] Part 1.1: Add PPrefetchRecord IPDL actor scaffolding r=dom-core-reviewers,necko-reviewers,avandolder,nika,kershaw"
    },
    "D302503": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302503",
      "clUrl": "https://phabricator.services.mozilla.com/D302503",
      "description": "Empty DOM-side orchestrator class for Speculation Rules prefetch.\nHolds the active PrefetchRecordChild list; only RemoveRecord is\nimplemented for now. Document integration follows in Part 1.3;\nStartPrefetch / CancelPrefetch / GarbageCollect and rule parsing\nland in Part 6.\n\n- dom/base/SpeculationRulesManager.{h,cpp} (new): skeleton class\n- dom/base/moz.build: wire new sources\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302503",
      "email": "smayya@mozilla.com",
      "hash": "cc7b215f7e4005d6b49748d057fa6aa28bad45a8",
      "subject": "Bug 2041008 - [speculation-rules] Part 1.2: Add SpeculationRulesManager skeleton r=dom-core-reviewers,avandolder"
    },
    "D302504": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302504",
      "clUrl": "https://phabricator.services.mozilla.com/D302504",
      "description": "Adds the lazy UniquePtr\u003cSpeculationRulesManager\u003e field on Document and\nwires PrefetchRecordChild::ActorDestroy to RemoveRecord via the\nWindow -\u003e Document chain. Records-list cleanup now happens automatically\non actor death (PWindowGlobal teardown, Send__delete__, content\nprocess crash).\n\nAlso adds a Source() accessor to PrefetchRecordParent to clear a\n-Wunused-private-field warning on mSource introduced in Part 1.1.\n\n- dom/base/Document.{h,cpp}: forward declaration, member, accessor,\n  include\n- dom/ipc/PrefetchRecordChild.cpp: wire ActorDestroy -\u003e RemoveRecord\n- dom/ipc/PrefetchRecordParent.h: add Source() accessor\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302504",
      "email": "smayya@mozilla.com",
      "hash": "1e50caebc3a9cfc907ceb0f6cee90f82718473a3",
      "subject": "Bug 2041008 - [speculation-rules] Part 1.3: Integrate SpeculationRulesManager with Document r=dom-core-reviewers,jjaschke"
    },
    "D302505": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302505",
      "clUrl": "https://phabricator.services.mozilla.com/D302505",
      "description": "Logging infrastructure and pref surface for Speculation Rules\nprefetch. No log calls yet.\n\n- dom/ipc/PrefetchLog.h (new): extern LazyLogModule\n  gSpeculationRulesLog + LOG_SPECRULES macros\n- dom/ipc/PrefetchRecordParent.cpp: define gSpeculationRulesLog\n- dom/ipc/moz.build: export PrefetchLog.h\n\nPrefs added to modules/libpref/init/StaticPrefList.yaml:\n- dom.speculation_rules.enabled (false): master switch\n- dom.speculation_rules.wait_timeout_ms (2000): navigation-wait timeout\n- dom.speculation_rules.max_records_per_document (20): records cap\n- dom.speculation_rules.max_body_bytes (5242880): body cap\n- dom.speculation_rules.record_expiry_ms (300000): record expiry\n- dom.speculation_rules.same_origin_only (true): same-origin gate\n\nEnable via: MOZ_LOG=SpeculationRules:5\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302505",
      "email": "smayya@mozilla.com",
      "hash": "4ea28edd5548351668dae252f0a3e4615b46e7d2",
      "subject": "Bug 2041008 - [speculation-rules] Part 1.4: Add SpeculationRules MOZ_LOG module and prefs r=dom-core-reviewers,avandolder"
    },
    "D302506": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302506",
      "clUrl": "https://phabricator.services.mozilla.com/D302506",
      "description": "Adds MOZ_LOG=SpeculationRules:5 visibility for the actor lifecycle and\nmanager bookkeeping wired up in Parts 1.1-1.4. Each log line carries\nthe relevant arguments (URL, anonymization policy, reason code, tag\ncount, remaining records).\n\n- dom/ipc/PrefetchRecordChild.cpp: log ctor + ActorDestroy\n- dom/ipc/PrefetchRecordParent.cpp: log RecvCancel + ActorDestroy\n- dom/base/SpeculationRulesManager.cpp: log RemoveRecord\n- dom/ipc/WindowGlobalParent.cpp: log AllocPPrefetchRecordParent\n  with deserialized URL + args\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302506",
      "email": "smayya@mozilla.com",
      "hash": "64fdd69b2a3f35144126516b7e973a79afe57086",
      "subject": "Bug 2041008 - [speculation-rules] Part 1.5: Wire lifecycle log calls for prefetch actors and SpeculationRulesManager r=dom-core-reviewers,avandolder"
    },
    "D302507": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302507",
      "clUrl": "https://phabricator.services.mozilla.com/D302507",
      "description": "Implements \"start a referrer-initiated navigational prefetch\":\nHTTPS gate, same-origin gate, conditional isolation setup,\nNS_NewChannelInternal with TYPE_OTHER, Sec-Purpose header, referrer\ninfo, and AsyncOpen. Adds nsIStreamListener/nsIRequestObserver/\nnsIInterfaceRequestor/nsIChannelEventSink as base classes with full\nQI. OnDataAvailable enforces the body-bytes cap via\ndom.speculation_rules.max_body_bytes pref. OnStartRequest fills\nthe redirect chain entry with response status and No-Vary-Search\nheader. AsyncOnChannelRedirect updates the redirect chain; cross-site\npartition check follows in Part 2.3.\n\nHelper functions added: IsCrossOriginToDocument,\nPopulateIsolatedPartitionKey, ConfigureSecPurpose,\nPrefetchIPAnonymizationPolicyRequiresAnonymity, AppendRedirectChainEntry,\nFillResponseOnLastEntry.\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html#start-a-referrer-initiated-navigational-prefetch\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302507",
      "email": "smayya@mozilla.com",
      "hash": "e1eda86cd494ce45705cb43758c69d1cbaa2856c",
      "subject": "Bug 2037103 - [speculation-rules] Part 2.1: Implement PrefetchRecordParent::Init() and streaming interfaces r=dom-core-reviewers,necko-reviewers,avandolder,kershaw"
    },
    "D302508": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302508",
      "clUrl": "https://phabricator.services.mozilla.com/D302508",
      "description": "Completes AsyncOnChannelRedirect: when a redirect crosses a site\nboundary (proposedPartitionKey != sourcePartitionKey), the prefetch\nis aborted if the referrer policy would leak too much source-page\ninformation. Strict policies (strict-origin-when-cross-origin,\nstrict-origin, same-origin, no-referrer, empty) are allowed;\nno-referrer-when-downgrade, origin, origin-when-cross-origin,\nand unsafe-url are rejected.\n\nNew helpers: ComputePartitionKeyForChannel (derives partition key\nfrom the redirected URL via OriginAttributes::SetPartitionKey),\nIsReferrerPolicySufficientlyStrict.\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html#list-of-sufficiently-strict-speculative-navigation-referrer-policies\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302508",
      "email": "smayya@mozilla.com",
      "hash": "e938bb5a14d65ee861b40ddc7d0e47e87ec22c3a",
      "subject": "Bug 2037103 - [speculation-rules] Part 2.2: Add cross-site redirect partition-key check r=dom-core-reviewers,necko-reviewers,avandolder,valentin"
    },
    "D302509": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302509",
      "clUrl": "https://phabricator.services.mozilla.com/D302509",
      "description": "Implements \"cancel and discard a prefetch record\": RecvCancel\nsets state=Canceled, aborts the channel, fires the prefetchstatusupdated\nfailure event stub, and notifies state-change waiters. ActorDestroy adds\na safety net that cancels the channel if the actor dies mid-flight\n(tab close, PWindowGlobal teardown, process crash).\n\n- PrefetchRecordParent: RecvCancel (idempotent guard, channel abort,\n  FirePrefetchStatusUpdated, NotifyPrefetchStateChanged); ActorDestroy\n  safety net; FirePrefetchStatusUpdated stub (BiDi wiring deferred)\n- WindowGlobalParent: NotifyPrefetchStateChanged stub (waiter logic\n  added in Part 4.2)\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html#prefetch-record-cancel-and-discard\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302509",
      "email": "smayya@mozilla.com",
      "hash": "7d01ece758957947ff5a7af6387435e5413a316a",
      "subject": "Bug 2037103 - [speculation-rules] Part 3.1: Implement RecvCancel, ActorDestroy safety net, and FirePrefetchStatusUpdated stub r=dom-core-reviewers,avandolder"
    },
    "D302510": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302510",
      "clUrl": "https://phabricator.services.mozilla.com/D302510",
      "description": "Implements \"complete a prefetch record\": OnStopRequest success path\nsets expiry (via dom.speculation_rules.record_expiry_ms pref), deduplicates\nsame-URL completed records, sets state=Completed, fires prefetchstatusupdated\nsuccess stub, and notifies state-change waiters. OnStopRequest failure path\nuses MarkCanceled and notifies waiters.\n\nAdds MarkCanceled() helper (extracted from RecvCancel) so both RecvCancel\nand DedupePrefetchRecords can share the cancel logic without code duplication.\n\nDedupePrefetchRecords marks older Completed records with the same URL as\nCanceled.\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html#prefetch-record-complete\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302510",
      "email": "smayya@mozilla.com",
      "hash": "ce0009f861369a57fc155b138644c52bcc23d308",
      "subject": "Bug 2037103 - [speculation-rules] Part 3.2: Implement OnStopRequest completion path and DedupePrefetchRecords r=dom-core-reviewers,avandolder"
    },
    "D302512": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302512",
      "clUrl": "https://phabricator.services.mozilla.com/D302512",
      "description": "Implements the synchronous navigation matching algorithms:\n\n- \"find a matching complete prefetch record\": iterates managed\n  actors, prefers exact URL match over No-Vary-Search equivalence,\n  checks expiry and conflicting credentials on every redirect chain hop.\n\n- \"prefetch record matches a URL\": exact URL equality first, then\n  No-Vary-Search variance from redirect chain[0]'s response header via\n  mozilla::net::ParseNoVarySearchHeader /\n  URLsAreEquivalentModuloVariationConfig (bug 2038006).\n\n- IsExpectedToMatch: pre-response variant using the rule's noVarySearchHint;\n  used by \"wait for a matching prefetch record\" to identify ongoing records\n  that might complete into a match.\n\n- \"conflicting credentials exist\": computes hypothetical partition\n  key for each redirect hop; same-site always returns false (M1); M2 will\n  add nsICookieManager cookie presence check for cross-site hops.\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html#find-a-matching-complete-prefetch-record\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302512",
      "email": "smayya@mozilla.com",
      "hash": "873c10649282de0309f61633b7d0fdf43b726946",
      "subject": "Bug 2041372 - [speculation-rules] Part 4.1: Implement navigation matching algorithms r=dom-core-reviewers,necko-reviewers,avandolder,kershaw"
    },
    "D302513": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302513",
      "clUrl": "https://phabricator.services.mozilla.com/D302513",
      "description": "Implements \"wait for a matching prefetch record\": when navigation\narrives while a potentially matching prefetch is still ongoing,\nWaitForMatchingPrefetchRecord fast-paths to FindMatchingPrefetchRecord\n(sync), or registers a PrefetchMatchWaiter if ongoing records could\nsatisfy the URL.\n\nPrefetchMatchWaiter holds a MozPromise, an nsITimer for the\ndom.speculation_rules.wait_timeout_ms timeout, and an Atomic\u003cbool\u003e\nresolved flag to prevent double-resolution if the timer and a\nstate-change notification race.\nNotifyPrefetchStateChanged now iterates mPrefetchWaiters and calls\nOnRecordStateChanged on each.\n\nSpec: https://wicg.github.io/nav-speculation/prefetch.html#wait-for-a-matching-prefetch-record\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302513",
      "email": "smayya@mozilla.com",
      "hash": "d67227677ad6401be9483227037777137316ea9d",
      "subject": "Bug 2041372 - [speculation-rules] Part 4.2: Implement async PrefetchMatchWaiter for the wait algorithm r=dom-core-reviewers,avandolder"
    },
    "D302514": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302514",
      "clUrl": "https://phabricator.services.mozilla.com/D302514",
      "description": "Hooks DocumentLoadListener::Open() to check for a matching prefetch record\nbefore opening the navigation channel to the network.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302514",
      "email": "smayya@mozilla.com",
      "hash": "c67d0357b8d7b02051c2df59a0d1530154912486",
      "subject": "Bug 2041381 - [speculation-rules] Part 5.1: Serve navigation from prefetch cache in DocumentLoadListener. r=necko-reviewers,cookie-reviewers,valentin"
    },
    "D302516": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302516",
      "clUrl": "https://phabricator.services.mozilla.com/D302516",
      "description": "Propagates the activation signal from DocumentLoadListener (parent process)\nto PerformanceNavigationTiming (content process) via a new boolean on\nnsDOMNavigationTiming, which is already IPC-serialized in RedirectToRealChannelArgs.\n\nWhen a navigation is served from a speculation rules prefetch cache,\nperformance.getEntriesByType(\"navigation\")[0].deliveryType returns\n\"navigational-prefetch\" instead of the default empty string.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302516",
      "email": "smayya@mozilla.com",
      "hash": "da473bf5d90f3ee0e954980afb5d5369d7a7dbf6",
      "subject": "Bug 2041381 - [speculation-rules] Part 5.2: Expose deliveryType=\"navigational-prefetch\" on PerformanceNavigationTiming r=dom-core-reviewers,necko-reviewers,webidl,emilio,canova,saschanaz,kershaw,avandolder"
    },
    "D302517": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302517",
      "clUrl": "https://phabricator.services.mozilla.com/D302517",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D302517",
      "email": "smayya@mozilla.com",
      "hash": "ca0146509e5cb40a83c2ba54199e199e8f435b9f",
      "subject": "Bug 2041381 - [speculation-rules] Part 6: Integrate DOM speculation rules parser with PrefetchRecord Actors and SpeculationRules manager. r=dom-core-reviewers,necko-reviewers,avandolder,kershaw"
    },
    "D302518": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D302518",
      "clUrl": "https://phabricator.services.mozilla.com/D302518",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D302518",
      "email": "smayya@mozilla.com",
      "hash": "008ffa2ba87ae1c6d8673cac70ca725266e63166",
      "subject": "Bug 2041381 - pass cookies storage info while creating channel in prefetch parent. r=necko-reviewers,jesup"
    },
    "D302883": {
      "author": "unifolia",
      "avatar": "https://www.gravatar.com/avatar/4694b477c490cf60cd24b4c7467bcce3?d=identicon\u0026s=64",
      "cl": "D302883",
      "clUrl": "https://phabricator.services.mozilla.com/D302883",
      "description": "Defines the smart_window.client_error event and the parent-side\nSmartWindowTelemetry.recordClientError() that emits it.\n\nrecordClientError() is deliberately forgiving: callers hand it whatever\nwas thrown, including plain strings and cross-realm objects, and it pulls\nname/file/line off the value itself. Raw exception text is never sent -\nmessages are mapped onto a fixed set of keys derived from the reporting\nsurface or from common message text, and a caller that already knows what\na failure means passes the key itself rather than leaving the recorder to\nguess. The error type is not restated as a message key, it stays visible\nas the event's name extra. Identical (source, name, message) tuples are\ncapped per session so a hot render loop cannot flood Glean with copies of\none bug.\n\nThat vocabulary, plus the field extraction, lives in\nClientErrorTelemetry.mjs under content/ because the reporting hooks added\nin the rest of this stack run in both the chrome document and the chat\ncontent document, and both need to describe a failure the same way.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302883",
      "email": "jlewis@mozilla.com",
      "hash": "aee8b9bead83919ab5868e1e99e95a20f57e571a",
      "subject": "Bug 2040803 - Add a smart_window.client_error Glean event and its recorder r=gcardieri"
    },
    "D307834": {
      "author": "Paul Adenot",
      "avatar": "https://www.gravatar.com/avatar/56566788314477c51b94743ea7f68494?d=identicon\u0026s=64",
      "cl": "D307834",
      "clUrl": "https://phabricator.services.mozilla.com/D307834",
      "description": "Adds a mozlint linter that validates review-context.toml, the file the\nbugbug code review agent reads to inject domain knowledge into the review\nprompt. The schema/grammar is vendored verbatim from bugbug so the tree\nvalidates against the same schema the agent uses at runtime; this will be\nreplaced by a pinned stdlib-only package once bugbug publishes one.\n\nExcludes the file from test-manifest-toml, which would otherwise try to\nparse it as a ManifestParser test manifest and fail.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307834",
      "email": "paul@paul.cx",
      "hash": "2b87996cbb8bd4a70d2e5b5d7e832217d3483d87",
      "subject": "Bug 2048977 - Add review-context.toml linter for AI code review context rules. r=ai4dev-reviewers,suhaib"
    },
    "D307835": {
      "author": "Paul Adenot",
      "avatar": "https://www.gravatar.com/avatar/56566788314477c51b94743ea7f68494?d=identicon\u0026s=64",
      "cl": "D307835",
      "clUrl": "https://phabricator.services.mozilla.com/D307835",
      "description": "Loads the desktop front-end and WebIDL implementation skills as review\ncontext for patches touching the matching files.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307835",
      "email": "paul@paul.cx",
      "hash": "c865590a0ea60385775ba556d277ba032ed9bb26",
      "subject": "Bug 2048977 - Add initial review-context.toml rules. r=Gijs,smaug"
    },
    "D307836": {
      "author": "Paul Adenot",
      "avatar": "https://www.gravatar.com/avatar/56566788314477c51b94743ea7f68494?d=identicon\u0026s=64",
      "cl": "D307836",
      "clUrl": "https://phabricator.services.mozilla.com/D307836",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307836",
      "email": "paul@paul.cx",
      "hash": "52b14a5a420b6a6e47ea7f19009ce8abfb073b58",
      "subject": "Bug 2048977 - Document review-context.toml authoring. r=ai4dev-reviewers,suhaib"
    },
    "D308664": {
      "author": "Elissa Cha",
      "avatar": "https://www.gravatar.com/avatar/3e35b9456250282cae28a20111cf7674?d=identicon\u0026s=64",
      "cl": "D308664",
      "clUrl": "https://phabricator.services.mozilla.com/D308664",
      "description": "- add a new `splitViewUsed` trigger that fires after a configurable delay (`browser.tabs.splitview.trigger.delay_ms`, default 15s) of continuous Split View use, cancelling if the user leaves Split View before the delay elapses and restarting if they return\n- expose `splitViewCreateCount` in the trigger context (`browser.tabs.splitview.trigger.createCount`), tracking distinct Split View creations so message targeting can apply usage-based conditions (e.g. excluding first-time users)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308664",
      "email": "echa@mozilla.com",
      "hash": "741fcf353c26b97b2b03cfbad63a241ce7f990c9",
      "subject": "Bug 2050291 - Create SplitView Trigger that gets fired on using split view feature r=pdahiya,tabbrowser-reviewers,omc-reviewers,sclements,aminomancer"
    },
    "D309470": {
      "author": "Beatriz Rizental",
      "avatar": "https://www.gravatar.com/avatar/9409599d72dab32118398896ad5a78d4?d=identicon\u0026s=64",
      "cl": "D309470",
      "clUrl": "https://phabricator.services.mozilla.com/D309470",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D309470",
      "email": "bea@torproject.org",
      "hash": "104824e4f5031632ffd4311492ceb9f5ecfb5fea",
      "subject": "Bug 2051440 - Replace omni.ja URI parsing in GetApkURI with a direct JNI call.r=ohall,necko-reviewers,geckoview-reviewers,jesup,nalexander"
    },
    "D309778": {
      "author": "Vincent Hilla",
      "avatar": "https://www.gravatar.com/avatar/a8fd53ad2b0e29c7dcd466d08a6c4b4a?d=identicon\u0026s=64",
      "cl": "D309778",
      "clUrl": "https://phabricator.services.mozilla.com/D309778",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D309778",
      "email": "vhilla@mozilla.com",
      "hash": "3565e65886c5b9ff8df0d211de4942247652245c",
      "subject": "Bug 2051146 - Exit Fullscreen when opening Document PiP. r=edgar"
    },
    "D310118": {
      "author": "Olivia",
      "avatar": "https://www.gravatar.com/avatar/9bb5ba1328acae6f1d36d1c8564bc4bf?d=identicon\u0026s=64",
      "cl": "D310118",
      "clUrl": "https://phabricator.services.mozilla.com/D310118",
      "description": "Patch enables Firefox Labs for Android.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D310118",
      "email": "ohall@mozilla.com",
      "hash": "af3fa61831eaf1430c18868cb1cb2082db612bc7",
      "subject": "Bug 2032175 - Let Firefox Labs on Android ride the trains r=gl,android-reviewers"
    },
    "D310767": {
      "author": "smayya",
      "avatar": "https://www.gravatar.com/avatar/b032108dab3ccfada1140fb485c6e182?d=identicon\u0026s=64",
      "cl": "D310767",
      "clUrl": "https://phabricator.services.mozilla.com/D310767",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D310767",
      "email": "smayya@mozilla.com",
      "hash": "8ccf29060abe0da46201895f718e22eef0f64a78",
      "subject": "Bug 2041381 - Enable Speculation Rules API (same-origin prefetch) for nightly. r=necko-reviewers,kershaw"
    },
    "D311416": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D311416",
      "clUrl": "https://phabricator.services.mozilla.com/D311416",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D311416",
      "email": "lsalzman@mozilla.com",
      "hash": "ce9b2134b9601962b642fa12cc34c3896cd80855",
      "subject": "Bug 2053607. r=gfx-reviewers,nical"
    },
    "D311621": {
      "author": "mike a",
      "avatar": "https://www.gravatar.com/avatar/fdb71788c694eea6a9e8a29cddd6e606?d=identicon\u0026s=64",
      "cl": "D311621",
      "clUrl": "https://phabricator.services.mozilla.com/D311621",
      "description": "The flag makes the feature availalbe on nightly vie secret settings and\non a debug build by default.\n\nI scoped it down from the bug discription - we do not need an extra\nnimbus flag, will be relying on the general vpn flag.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D311621",
      "email": "mavduevskiy@mozilla.com",
      "hash": "d74460c2e84e25304ec5fea5489a0783bb102c95",
      "subject": "Bug 2049028 - Add feature flag for vpn location selection r=android-reviewers,rebecatudor273,gmalekpour"
    },
    "D311655": {
      "author": "mike a",
      "avatar": "https://www.gravatar.com/avatar/fdb71788c694eea6a9e8a29cddd6e606?d=identicon\u0026s=64",
      "cl": "D311655",
      "clUrl": "https://phabricator.services.mozilla.com/D311655",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D311655",
      "email": "mavduevskiy@mozilla.com",
      "hash": "6ca0ca4cf60806352879d80d8b3960300cdeb83b",
      "subject": "Bug 2049038 - Implement the location list UI r=android-reviewers,android-l10n-reviewers,parker,rebecatudor273,jonalmeida,gmalekpour"
    },
    "D311679": {
      "author": "Mike Hommey",
      "avatar": "https://www.gravatar.com/avatar/5d5f37905f36ca9989f88861a702cff3?d=identicon\u0026s=64",
      "cl": "D311679",
      "clUrl": "https://phabricator.services.mozilla.com/D311679",
      "description": "Bug 2033987 removed a cinttypes include, but it was actually necessary for\none specific code path. But the direct include is cstdint.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D311679",
      "email": "mh+mozilla@glandium.org",
      "hash": "629a8bcb0977121d09a8e6414f189957ba49c7ed",
      "subject": "Bug 2048097 - Add missing include for uint*_t. r=media-playback-reviewers,chunmin"
    },
    "D312042": {
      "author": "alin lastun",
      "avatar": "https://www.gravatar.com/avatar/59aa98683e895ba24835ab02aad86938?d=identicon\u0026s=64",
      "cl": "D312042",
      "clUrl": "https://phabricator.services.mozilla.com/D312042",
      "description": "- Add a new global state (AppState.microsurvey) to save the survey data.\n   - If the survey ID is the same, the reducer does not change the state. This stops the app from reloading the UI again and again when we resume the fragment.\n   - Save the \"dismiss\" action globally when the user closes the survey.\n   - Delete duplicated code from BaseBrowserFragment and HomeFragment.\n   - The fragments now just look at the global state.\n   - In BaseBrowserFragment, we no longer check if the survey ID is new. We just build the container once. The reducer is what stops it from rebuilding for the same survey.\n   - In HomeFragment, Jetpack Compose connects to the new stable state. If the user closes the survey in one place, it disappears everywhere.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312042",
      "email": "alastun@mozilla.com",
      "hash": "b2d84630a534117fe93400178c50c4bcfadbefd0",
      "subject": "Bug 2052171 - Refactor microsurvey to use global state r=android-reviewers,twhite"
    },
    "D312102": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312102",
      "clUrl": "https://phabricator.services.mozilla.com/D312102",
      "description": "Route Android's transient and permanent audio-focus loss and the subsequent\ngain through the audio session interrupt, which now suspends and resumes media\nelements as well as Web Audio and Web Speech. The legacy transport pause and\nresume on a focus change is therefore redundant and dropped; the deferred-start\nresume and the denied-request pause are unchanged.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312102",
      "email": "alwu@mozilla.com",
      "hash": "b3012872312e19aff1bba42f16677463afc588f4",
      "subject": "Bug 2048732 - Part 2: Drive the audio session interrupt from Android system audio-focus loss and gain. r=android-reviewers,pollymce"
    },
    "D312103": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312103",
      "clUrl": "https://phabricator.services.mozilla.com/D312103",
      "description": "Carries a system audio-focus change (gain, transient loss, permanent loss)\nfrom the embedder through GeckoView to the chrome media controller's\ninterrupt, so a focus loss suspends and a gain resumes the tab's audible\nWeb Audio and Web Speech. No caller drives it yet.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312103",
      "email": "alwu@mozilla.com",
      "hash": "7a446640337798b1512c58fe05b4655613eaa893",
      "subject": "Bug 2048732 - Part 1: Add a GeckoView signal to route a system audio-focus change to the audio session interrupt. r=geckoview-reviewers,android-reviewers,owlish,pollymce"
    },
    "D312202": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D312202",
      "clUrl": "https://phabricator.services.mozilla.com/D312202",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312202",
      "email": "lsalzman@mozilla.com",
      "hash": "fa9df688142f4cd6e8fa8f1623904d728caaa233",
      "subject": "Bug 2055056. r=gfx-reviewers,gw"
    },
    "D312286": {
      "author": "Emma Zuehlcke",
      "avatar": "https://www.gravatar.com/avatar/46f58cc04758e80835820f0f1d5646bb?d=identicon\u0026s=64",
      "cl": "D312286",
      "clUrl": "https://phabricator.services.mozilla.com/D312286",
      "description": "Only web content has to prove user activation to take the silent-launch\nshortcut. Chrome- and extension-triggered loads are exempt, matching the\n\"Add-on principals are always allowed\" carve-out already in\nnsExternalHelperAppService::LoadURI.\n\nnsIExternalProtocolService::loadURI takes aHasValidUserGestureActivation as\nan optional argument, and privileged callers leave it unset, so gating on it\nalone made every chrome-initiated load look gesture-less. That broke\n\"Email Link\" in the File menu, and hung the talos twinopen and damp suites:\nboth register a WebExtension protocol_handlers entry and testing/profiles/perf\nsets network.protocol-handler.external.ext+{damp,twinopen}, so the pageloader's\nchrome navigation to ext+damp:/ext+twinopen: stalled on the permission dialog\nuntil the task hit its max runtime.\n\nThe exemption is applied in both halves so they cannot drift: the prompt\ndecision in nsContentDispatchChooser._hasProtocolHandlerPermission, and the\nactivation consumption in SchemeRequiresUserActivationToLaunch, which now\ntakes the triggering principal.\n\ntest_mailto_without_user_activation_prompts drove the navigation by assigning\ncontent.location from a SpecialPowers sandbox. That sandbox is chrome and has\nno incumbent window, so LocationBase::Navigate attributed the load to the\nsystem principal - it was never testing web content. It now injects page\nscript instead.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312286",
      "email": "emz@mozilla.com",
      "hash": "8fb766fb5e96bc29bfa9a6a0c8f5c510369761b3",
      "subject": "Bug 299116 - Require user activation for opening mailto without prompt. r=Gijs,dom-core-reviewers,edgar"
    },
    "D312614": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312614",
      "clUrl": "https://phabricator.services.mozilla.com/D312614",
      "description": "Add the metric definitions for the Audio Session API telemetry set, split into\ntwo categories: media.audio_session for the spec-specific behaviour (API\nadoption and the session arbitration/selection state machine) and\nmedia.audio_focus for the platform audio-focus interaction (interruption\nlifecycle, per-source resume, and the type forwarded to the platform). The\nrecording call sites follow in later parts. The probes record no origin or URL.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312614",
      "email": "alwu@mozilla.com",
      "hash": "5bf626716285ee01354467413b8adb5a542e193d",
      "subject": "Bug 2054517 - Part 1: Define the media.audio_session and media.audio_focus Glean metrics. r=media-playback-reviewers,azebrowski"
    },
    "D312615": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312615",
      "clUrl": "https://phabricator.services.mozilla.com/D312615",
      "description": "Record the parent-side probes from the audio session manager: selected-session\nchanges, the resolved effective type of an auto session, and each arbitration\npass that inactivates a session (the media.audio_session arbitration probes),\nplus interruption counts by cause and each interruption's terminal outcome (the\nmedia.audio_focus interruption probes: recovered, ended permanently, or left\nunresolved at teardown). The audio-session-type to Glean-label mapping is shared\nthrough MediaControlUtils so Part 3 reuses it.\n\nA recovery is recorded only once the session has actually been returned to\nactive, so a session the restore declines to re-activate reports no outcome.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312615",
      "email": "alwu@mozilla.com",
      "hash": "b8d82d1d60af691e8e9c1417bef5310ce9dca9b7",
      "subject": "Bug 2054517 - Part 2: Record audio-session arbitration and interrupt telemetry in the parent. r=media-playback-reviewers,azebrowski"
    },
    "D312616": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312616",
      "clUrl": "https://phabricator.services.mozilla.com/D312616",
      "description": "Record whether a document uses navigator.audioSession and, when a page sets\naudioSession.type explicitly, which value it picks. These record from the\nnavigator.audioSession surface, which the WebIDL only exposes when the Audio\nSession API is enabled.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312616",
      "email": "alwu@mozilla.com",
      "hash": "2571fd35d3d529e346841c86b298732332db7ff4",
      "subject": "Bug 2054517 - Part 3: Record Audio Session API adoption telemetry. r=media-playback-reviewers,azebrowski"
    },
    "D312617": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312617",
      "clUrl": "https://phabricator.services.mozilla.com/D312617",
      "description": "When an interruption ends, record for each audible source the interruption\nsuspended that it was dispatched its resume signal, by source kind (media\nelement, Web Audio, or Web Speech). A source the interruption never suspended,\nor that the page took over during the interruption, is not counted.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312617",
      "email": "alwu@mozilla.com",
      "hash": "1a60251ed2bf9f5090b406d064b230c1f44b5be9",
      "subject": "Bug 2054517 - Part 4: Record per-source interrupt resume. r=media-playback-reviewers,azebrowski"
    },
    "D312618": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312618",
      "clUrl": "https://phabricator.services.mozilla.com/D312618",
      "description": "Drive each recording path and assert every probe: API adoption, arbitration\nselection and effective auto type, cross-frame arbitration inactivation,\ninterruption count and recovery outcome, and per-source resume.\n\nThe interruption outcome is asserted per suspended session: a tab whose main\nframe and cross-origin iframe are both active reports a recovery for each once\nboth are returned to active, and a resume with no preceding interruption reports\nnone.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312618",
      "email": "alwu@mozilla.com",
      "hash": "b9a766dc38361f0808cac4fe8d74b0456386cd7f",
      "subject": "Bug 2054517 - Part 5: Add browser-chrome tests for the media.audio_session and media.audio_focus probes. r=media-playback-reviewers,azebrowski"
    },
    "D312619": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D312619",
      "clUrl": "https://phabricator.services.mozilla.com/D312619",
      "description": "On Android, record the effective audio-session type Firefox forwards to the\nembedder to shape the platform audio-focus request. Record it where GeckoView\nforwards the effective type, so it captures the type actually used on the\nplatform, including the source-derived fallback (ambient for Web Audio,\ntransient for Web Speech) that the selected-session probes do not surface.\nGated on the GeckoView audio-session-type preference.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312619",
      "email": "alwu@mozilla.com",
      "hash": "98369612bb561856a4eb4555d6d3d1dfdadfd7c0",
      "subject": "Bug 2054517 - Part 6: Record the Android platform audio-focus type. r=geckoview-reviewers,owlish"
    },
    "D312642": {
      "author": "Thomas Wisniewski",
      "avatar": "https://www.gravatar.com/avatar/e3b9a54f44f5889b1216aeabd4ec1d60?d=identicon\u0026s=64",
      "cl": "D312642",
      "clUrl": "https://phabricator.services.mozilla.com/D312642",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312642",
      "email": "twisniewski@mozilla.com",
      "hash": "894d601303387f09602e166bebe80259a82b77b9",
      "subject": "Bug 2054543 - part 1: factor out common code on desktop which will also be used by Android; r=mossop"
    },
    "D312643": {
      "author": "Thomas Wisniewski",
      "avatar": "https://www.gravatar.com/avatar/e3b9a54f44f5889b1216aeabd4ec1d60?d=identicon\u0026s=64",
      "cl": "D312643",
      "clUrl": "https://phabricator.services.mozilla.com/D312643",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312643",
      "email": "twisniewski@mozilla.com",
      "hash": "39be27c0a25fa48581682a98649e4bece55e97ce",
      "subject": "Bug 2054543 - part 2: have Fenix use the factored-out toolkit code to send broken site reports with Glean; r=tthibaud,ohall,geckoview-reviewers,android-reviewers,frontend-codestyle-reviewers"
    },
    "D312650": {
      "author": "Andrea Marchesini",
      "avatar": "https://www.gravatar.com/avatar/dfb8d0427dd67216b2664131a5c31421?d=identicon\u0026s=64",
      "cl": "D312650",
      "clUrl": "https://phabricator.services.mozilla.com/D312650",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312650",
      "email": "amarchesini@mozilla.com",
      "hash": "2374635d65b095e231002690a1a40ca04c98a77e",
      "subject": "Bug 2055761 - Remove dead code: nsDocShell::INTERNAL_LOAD_FLAGS_FORCE_ALLOW_COOKIES \u0026 nsIWebNavigation::LOAD_FLAGS_FORCE_ALLOW_COOKIES r=smaug"
    },
    "D312774": {
      "author": "Ben Hearsum",
      "avatar": "https://www.gravatar.com/avatar/7bb9fa0687c2864f6d7ccf2c3b68a6a1?d=identicon\u0026s=64",
      "cl": "D312774",
      "clUrl": "https://phabricator.services.mozilla.com/D312774",
      "description": "These tasks are currently broken on Try because landoscript tries to map the hg revision to a git revision, which doesn't work for try (there's no git version of that repository). Once https://github.com/mozilla-releng/scriptworker-scripts/pull/1491 is deployed, landoscript will support having git revisions fed to it directly, which will let us fix this.\n\nThis work also kindof depends on [a mozilla-taskgraph change](https://github.com/mozilla-releng/mozilla-taskgraph/pull/238) which will require `revision` to always be passed for tag actions. This means that for the hg case, we need to look this up ourselves and feed it in. (I say \"kindof depends\" because we've actually duplicated this code into Gecko for the moment...I plan to sort this out, but in the meantime I'm simply trying to keep them in sync.)\n\nFor the git case, we simply feed in a sensible branch name based on the release type. Eventually, we'll end up using this mode for production releases as well. For these, we'll likely end up feeding a specific revision fed in through the release promotion action. (We'll probably also do this for Try when those pushes are going through git directly.)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312774",
      "email": "ben@mozilla.com",
      "hash": "ca6e9493686b3e5ed1cddb8d3a3974068463df71",
      "subject": "Bug 2055645: use direct git tagging in early-tagging and version-bump tasks r=taskgraph-reviewers,releng-reviewers,ahal"
    },
    "D312825": {
      "author": "mike a",
      "avatar": "https://www.gravatar.com/avatar/fdb71788c694eea6a9e8a29cddd6e606?d=identicon\u0026s=64",
      "cl": "D312825",
      "clUrl": "https://phabricator.services.mozilla.com/D312825",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312825",
      "email": "mavduevskiy@mozilla.com",
      "hash": "cc79806944efd9ce250e303561802ea97b736036",
      "subject": "Bug 2054588 - Add an empty state for the location list r=android-reviewers,android-l10n-reviewers,jonalmeida,gmalekpour,parker"
    },
    "D312831": {
      "author": "mike a",
      "avatar": "https://www.gravatar.com/avatar/fdb71788c694eea6a9e8a29cddd6e606?d=identicon\u0026s=64",
      "cl": "D312831",
      "clUrl": "https://phabricator.services.mozilla.com/D312831",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D312831",
      "email": "mavduevskiy@mozilla.com",
      "hash": "6086504cd24539306127e3b471c1b62a39ff48e8",
      "subject": "Bug 2049036 - Part 1: Add countries data class into the ip state r=android-reviewers,gmalekpour"
    },
    "D312921": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D312921",
      "clUrl": "https://phabricator.services.mozilla.com/D312921",
      "description": "WebDriver and Marionette screenshots normally re-render the document through\nthe software drawSnapshot path, which does not reflect WebRender-specific\nrendering. When this pref is enabled, capture.canvas instead reads back the\nactual WebRender composited framebuffer via drawWindow with USE_WIDGET_LAYERS.\n\nReadback can only return the content area composited on screen, and its\ncoordinates are relative to the chrome window rather than the document, so with\nthe pref enabled every capture degrades to the whole content area of the\nforeground tab: full-document, clip and element captures all return the\nviewport. A capture with no content area to read back, such as one taken in\nchrome scope, keeps using drawSnapshot.\n\nReadback is not usable on macOS, where the GPU process asks the parent process\nfor the composited pixels and the parent only honours that request in\nautomation, so the documentation calls that platform out as unsupported and the\nmarionette tests are skipped there.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D312921",
      "email": "git@chillybin.org",
      "hash": "0108265b167291f8fa8eef747e1db1dfdc8b2a7b",
      "subject": "Bug 2056111 - Add remote.screenshot.use_readback pref to capture screenshots via WebRender r=jdescottes"
    },
    "D313049": {
      "author": "Jonathan Sudiaman",
      "avatar": "https://www.gravatar.com/avatar/3ca705cbbd73ca8d2880c319b1d053a0?d=identicon\u0026s=64",
      "cl": "D313049",
      "clUrl": "https://phabricator.services.mozilla.com/D313049",
      "description": "Only the active row of a `\u003csidebar-tab-list\u003e` or `\u003csidebar-bookmark-list\u003e` should be a tab stop. Other rows are reachable using arrow keys.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313049",
      "email": "jsudiaman@mozilla.com",
      "hash": "a0b234446b4688a8c352f0e7a1dd78c5fc74e01e",
      "subject": "Bug 2046673 - Fix new sidebar: Tab key focuses individual history/bookmark items r=kcochrane,mstriemer"
    },
    "D313073": {
      "author": "mike a",
      "avatar": "https://www.gravatar.com/avatar/fdb71788c694eea6a9e8a29cddd6e606?d=identicon\u0026s=64",
      "cl": "D313073",
      "clUrl": "https://phabricator.services.mozilla.com/D313073",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313073",
      "email": "mavduevskiy@mozilla.com",
      "hash": "829f81ce4b731bb18818f4e882c40d3fb1df4ff1",
      "subject": "Bug 2049036 - Part 2: Use country data classes within IP protection location ui r=android-reviewers,gmalekpour"
    },
    "D313147": {
      "author": "James Teh",
      "avatar": "https://www.gravatar.com/avatar/749580f8bd5af77c57367e6c2717e283?d=identicon\u0026s=64",
      "cl": "D313147",
      "clUrl": "https://phabricator.services.mozilla.com/D313147",
      "description": "This has been around for a while now without problems.\nAlso, we depend on it in several areas of our front-end code now.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313147",
      "email": "jteh@mozilla.com",
      "hash": "6a43a3387a87df3b55df2904c094a264cd6fc9a8",
      "subject": "Bug 2055658: Remove accessibility.ARIAElementReflection.enabled pref. r=eeejay,webidl,saschanaz"
    },
    "D313208": {
      "author": "Tom Schuster",
      "avatar": "https://www.gravatar.com/avatar/643f0847a3bf01b6ac23263f1661d14e?d=identicon\u0026s=64",
      "cl": "D313208",
      "clUrl": "https://phabricator.services.mozilla.com/D313208",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313208",
      "email": "tschuster@mozilla.com",
      "hash": "664d8a16f7d7e0ab7cb65463681d90d4734b8d15",
      "subject": "Bug 2056225 - Remove unimplemented  option from Services.scriptloader.loadSubScriptWithOptions. r=arai,webcompat-reviewers,ip-protection-reviewers,sstreich,dholbert,twisniewski"
    },
    "D313313": {
      "author": "Jon Oliver",
      "avatar": "https://www.gravatar.com/avatar/2ceb46c1e98ede12e718f2bdc966aa45?d=identicon\u0026s=64",
      "cl": "D313313",
      "clUrl": "https://phabricator.services.mozilla.com/D313313",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313313",
      "email": "jooliver@mozilla.com",
      "hash": "d187a0c3062c4d26dec451c44a91f190df9882be",
      "subject": "Bug 2050348 - fix nova moz-toggle hover/active styles r=desktop-theme-reviewers,hjones"
    },
    "D313470": {
      "author": "Nicolas Chevobbe",
      "avatar": "https://www.gravatar.com/avatar/f942478f2eaeb6cc42142cdd661976a7?d=identicon\u0026s=64",
      "cl": "D313470",
      "clUrl": "https://phabricator.services.mozilla.com/D313470",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313470",
      "email": "nchevobbe@mozilla.com",
      "hash": "6e3fcb957e3005435164df56f91dba0cc17b8af4",
      "subject": "Bug 2056570 - [devtools] Put RDM toolbar after notification box in markup in Split View. r=devtools-reviewers,tabbrowser-reviewers,jsudiaman,bomsy."
    },
    "D313507": {
      "author": "Shawn Zivontsis",
      "avatar": "https://www.gravatar.com/avatar/ae3d0786cecfaac490a6982580a0087a?d=identicon\u0026s=64",
      "cl": "D313507",
      "clUrl": "https://phabricator.services.mozilla.com/D313507",
      "description": "This change has two benefits: for queries that filter on both host\nand prefix, this reduces the number of comparisons necessary since\nthe higher-cardinality column now occurs first. For queries that only\nfilter on host, this makes it possible to use the index in situations\nwhere previously it might not have been usable at all.\n\nSQLite doesn't support reordering index columns in place, so the table\nhas to be rebuilt, but it can't be dropped while moz_places references\nit. We defer the foreign keys, stash the origins in a temporary table,\ndrop and recreate moz_origins with the new constraint, then refill it.\nRefilling under the original name resolves the deferred violations left\nby the drop, so the whole change commits in one transaction without\ntouching moz_places.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313507",
      "email": "shawnz@shawnz.org",
      "hash": "135df0ad91eadb99640667df1befedd03d474b09",
      "subject": "Bug 2025999: Swap moz_origins index to UNIQUE(host, prefix) r=mak,places-reviewers"
    },
    "D313516": {
      "author": "Roger Yang",
      "avatar": "https://www.gravatar.com/avatar/d2b191d48ae0f07a2e1367002f8c1767?d=identicon\u0026s=64",
      "cl": "D313516",
      "clUrl": "https://phabricator.services.mozilla.com/D313516",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313516",
      "email": "royang@mozilla.com",
      "hash": "e653a8dcc605657436f0a8767cdee1069cc1e1d7",
      "subject": "Bug 2056590 - Add Skyflag as a new marketing partner in Adjust. r=android-reviewers,twhite"
    },
    "D313591": {
      "author": "calu",
      "avatar": "https://www.gravatar.com/avatar/7d36bab00e1e08005d8871257e7bc73a?d=identicon\u0026s=64",
      "cl": "D313591",
      "clUrl": "https://phabricator.services.mozilla.com/D313591",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313591",
      "email": "calu@mozilla.com",
      "hash": "3a67eb27ecb2b06b9c608c7e937651e4fc8428ef",
      "subject": "Bug 2047735 - Tab group expanded view now has an add new homepage tab r=android-reviewers,jdelorenzo"
    },
    "D313607": {
      "author": "Kaitlyn",
      "avatar": "https://www.gravatar.com/avatar/b104577de74c77852a93e4741c55b45a?d=identicon\u0026s=64",
      "cl": "D313607",
      "clUrl": "https://phabricator.services.mozilla.com/D313607",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313607",
      "email": "kandres@mozilla.com",
      "hash": "65e76fd8c0e3d8473a860d98c338a281d91aa3cc",
      "subject": "Bug 2057009 - The shield should not start off with the check mark as default regardless if trackers are found or not. r=urlbar-reviewers,desktop-theme-reviewers,dao,daleharvey"
    },
    "D313701": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D313701",
      "clUrl": "https://phabricator.services.mozilla.com/D313701",
      "description": "In fast mode (used by local `mach try` task generation), validate_schema()\nis a no-op, yet the `validate` transform still constructed a voluptuous or\nmsgspec worker schema for every task only to discard it immediately. Guard\nthat construction behind `not taskgraph.fast`.\n\nThe generated task graph is unchanged (full_task_set serializes byte-for-byte\nidentically before and after); this only removes work whose result was thrown\naway in fast mode.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313701",
      "email": "sylvestre@debian.org",
      "hash": "be45611f95af018cad2c03ac1a38425d1fd43977",
      "subject": "Bug 2057190 - Skip discarded per-task worker schema construction in fast taskgraph mode r=taskgraph-reviewers,ahal"
    },
    "D313702": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D313702",
      "clUrl": "https://phabricator.services.mozilla.com/D313702",
      "description": "group_name_variant() rebuilt the sorted variant_symbols list from the\nmodule-level TEST_VARIANTS constant on every call (~48k times during a full\ntask graph generation), even though the result never varies. Hoist it into a\nfunctools.cache-d helper so it is computed once.\n\nThe generated task graph is unchanged.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313702",
      "email": "sylvestre@debian.org",
      "hash": "716e0c525abe15f6e26f9d8e525d592b00827a8a",
      "subject": "Bug 2057189 - Cache invariant variant symbols in group_name_variant r=taskgraph-reviewers,bhearsum"
    },
    "D313715": {
      "author": "AndiAJ",
      "avatar": "https://www.gravatar.com/avatar/b4ea35e4d5d0c51e2affc0dc2515853c?d=identicon\u0026s=64",
      "cl": "D313715",
      "clUrl": "https://phabricator.services.mozilla.com/D313715",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313715",
      "email": "andiaj@users.noreply.github.com",
      "hash": "9d0c7d75f303b16930388cf1b8ef93d161d72c29",
      "subject": "Bug 2057199 - Migrate verifyThePrintSubMenuOptionTest UI test to the efficiency framework r=aaronmt"
    },
    "D313719": {
      "author": "Caleb Chan",
      "avatar": "https://www.gravatar.com/avatar/2238a75309adf73255119dfc6f497cf3?d=identicon\u0026s=64",
      "cl": "D313719",
      "clUrl": "https://phabricator.services.mozilla.com/D313719",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313719",
      "email": "cachan@mozilla.com",
      "hash": "0bc38be784b5288852b85a99a061f42ef73a796e",
      "subject": "Bug 2053825 - Migrated determineNonSyncableGuids to array binding. r=mak,places-reviewers"
    },
    "D313720": {
      "author": "Caleb Chan",
      "avatar": "https://www.gravatar.com/avatar/2238a75309adf73255119dfc6f497cf3?d=identicon\u0026s=64",
      "cl": "D313720",
      "clUrl": "https://phabricator.services.mozilla.com/D313720",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313720",
      "email": "cachan@mozilla.com",
      "hash": "88bb3924016e6a3f96ecb9b7d2b13afc514e86cc",
      "subject": "Bug 2053824 - Migrated fetchMany to array binding. r=mak,places-reviewers"
    },
    "D313739": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D313739",
      "clUrl": "https://phabricator.services.mozilla.com/D313739",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313739",
      "email": "rjesup@mozilla.com",
      "hash": "ae9004a4a2b2828035c061ee9f97a747757cd6d9",
      "subject": "Bug 2007165: Hook up DOM WebTransport sendGroup support to necko \u0026 neqo implementation (early) r=necko-reviewers,webidl,kershaw,tschuster"
    },
    "D313836": {
      "author": "Nicholas Poon",
      "avatar": "https://www.gravatar.com/avatar/de8191595cff0507f38ca784b6613551?d=identicon\u0026s=64",
      "cl": "D313836",
      "clUrl": "https://phabricator.services.mozilla.com/D313836",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313836",
      "email": "npoon@mozilla.com",
      "hash": "352c4e28e9969742bd835834ad2a748a2f9e9c5f",
      "subject": "Bug 2045680 - Fix send to devices bottom sheet height on rotation r=android-reviewers,gl"
    },
    "D313841": {
      "author": "Yubin Jamora",
      "avatar": "https://www.gravatar.com/avatar/c21ec870d5a27b600be6b5b58aba1a58?d=identicon\u0026s=64",
      "cl": "D313841",
      "clUrl": "https://phabricator.services.mozilla.com/D313841",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313841",
      "email": "yjamora@mozilla.com",
      "hash": "17b72d8689e088662397e6a5f9cbadc973b21a05",
      "subject": "Bug 2046592 - Add Desktop notification when active monitor meets condition r=ngrato,tetchart,fluent-reviewers,bolsson"
    },
    "D313871": {
      "author": "David Parks",
      "avatar": "https://www.gravatar.com/avatar/52b54b74a4b2589a419c3ed14cc55b65?d=identicon\u0026s=64",
      "cl": "D313871",
      "clUrl": "https://phabricator.services.mozilla.com/D313871",
      "description": "Ensures we properly tear down services on failure.  Also promotes\nNS_ENSURE_HRESULT[_VOID] to WinUtils.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313871",
      "email": "daparks@mozilla.com",
      "hash": "9c79808b516f4f00fc4c332a7de6724db06423eb",
      "subject": "Bug 2057108: Cleanup DirectManipulation initialization failure on Windows r=win-reviewers,gstoll"
    },
    "D313883": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D313883",
      "clUrl": "https://phabricator.services.mozilla.com/D313883",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313883",
      "email": "lsalzman@mozilla.com",
      "hash": "e9eb24c961039abb436a85bc631c3a554c351cce",
      "subject": "Bug 2050584. r=gfx-reviewers,nical"
    },
    "D313903": {
      "author": "Maile Lucks",
      "avatar": "https://www.gravatar.com/avatar/fb3af5da6f8f1ea9223d3d7223bcbc79?d=identicon\u0026s=64",
      "cl": "D313903",
      "clUrl": "https://phabricator.services.mozilla.com/D313903",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D313903",
      "email": "maile.lucks@gmail.com",
      "hash": "dc1e40f501ff8bb6d1324bc744e89b7e5100aefa",
      "subject": "Bug 2030683 - Show Bookmark Bar on SW New Tab based on user settings and track its usage from new tab r=places-reviewers,flozia,desktop-theme-reviewers,dao,mak"
    },
    "D313929": {
      "author": "Makoto Kato",
      "avatar": "https://www.gravatar.com/avatar/1875645d5594d36bca29657d51d24ed6?d=identicon\u0026s=64",
      "cl": "D313929",
      "clUrl": "https://phabricator.services.mozilla.com/D313929",
      "description": "When opening a new window, virtual keyboard might not work because\n`GeckoEditableParent` is not set.\n\nNormally, it is creates and attched with parent process when global document\nis created. If it is too early, it is rarely failed since root window isn't\nfound yet.\n\nWe have a fallback path to create it when taking a IME focus, but it forget\nattaching with parent process. So we should attach it on fallback path.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313929",
      "email": "m_kato@ga2.so-net.ne.jp",
      "hash": "57e674a6df172706b46693bdfbfabf358b72fde8",
      "subject": "Bug 2057393 - Set `GeckoEditableParent` if not set when taking a focus. r=geckoview-reviewers,owlish"
    },
    "D313944": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313944",
      "clUrl": "https://phabricator.services.mozilla.com/D313944",
      "description": "Faithful port of the legacy nav-\u003eclick-\u003everify smoke test: load a page, open the main menu, tap the\nBookmarks item, and verify the Bookmarks view opens. Reuses BrowserPage/MainMenuPage/BookmarksPage nav +\nMainMenuSelectors.BOOKMARKS_BUTTON; no new selectors. TestRail 3080137. Green, non-flaky (passed on try #1).\n\nParity note: the legacy test also returned to the browser and re-verified page content; that leg is omitted\nbecause the nav graph has no stateful BookmarksPage-\u003eBrowserPage return edge (logged as a harness gap for the\nstateful-nav / Pairs work).\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313944",
      "email": "jajohnson@mozilla.com",
      "hash": "0e06f964d8227ec78ab51c00c1a0591615d214ac",
      "subject": "Bug 2057417 - [efficiency] Convert MainMenuTest.verifyTheBookmarksMainMenuItemTest to ui/efficiency r=aaronmt,isabel_rios"
    },
    "D313945": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313945",
      "clUrl": "https://phabricator.services.mozilla.com/D313945",
      "description": "Ports two NavigationToolbarExpandedTest smoke tests into the efficiency ToolbarTest:\n- verifyTheExpandedToolbarMainMenuButtonTest: load a page, open the main menu, verify the\n  browser-view main-menu items (browserViewMainMenuItems group). TestRail 3333215.\n- verifyTheExpandedToolbarTabTrayButtonTest: load a page, open the tab tray, verify the open tab.\n  TestRail 3333214.\nBoth green, non-flaky (pass on try #1).\n\nAdds the shouldUseExpandedToolbar launch flag (BaseTest constructor arg + LaunchConfig field, defaulting\nto false so every existing subclass is unaffected) and sets it on ToolbarTest. The legacy class enables\nthis on its activity rule, so the flag is required for these ports to exercise the expanded toolbar\nrather than the default layout.\n\nAdds a BrowserPage -\u003e TabDrawerPage navigation edge: the tab counter is on the browser toolbar too,\nso this is generally reusable by any test that opens the tab tray from a loaded page. Uses the\nUIAutomator tab-counter variant to avoid Compose-sync hangs while GeckoView is active.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313945",
      "email": "jajohnson@mozilla.com",
      "hash": "42c7e3fb491429fa85bf86952c5c1ccf08374627",
      "subject": "Bug 2057419 - [efficiency] Convert expanded-toolbar main-menu/tab-tray smoke tests to ui/efficiency r=aaronmt,isabel_rios"
    },
    "D313946": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313946",
      "clUrl": "https://phabricator.services.mozilla.com/D313946",
      "description": "Ports two RecentlyClosedTabsTest smoke tests:\n- deleteRecentlyClosedTabsItemTest (TestRail 2195812)\n- openRecentlyClosedItemTest (TestRail 1065414)\nBoth green, non-flaky (pass on try #1).\n\nCapability build for the recently-closed screen (previously only the empty state was modeled):\n- RecentlyClosedTabsSelectors: add item-by-title (res-id title + text), item url (text-contains),\n  the delete/overflow button, and an always-present toolbar-title arrival signal. Move the empty-state\n  view out of requiredForPage into its own group so the page is reachable/assertable when populated.\n- RecentlyClosedTabsPage: verifyRecentlyClosedItem / openRecentlyClosedItem / deleteRecentlyClosedItem /\n  verifyEmptyRecentlyClosedList.\n- Tests reuse on.tabDrawer.closeTabWithTitle + the on.home.navigateToPage() re-sync idiom (from HomeTest)\n  to close the only tab and route to the recently-closed list.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313946",
      "email": "jajohnson@mozilla.com",
      "hash": "6fe590930dad672c4e37cbc5e325a047fd4a8181",
      "subject": "Bug 2057411 - [efficiency] Convert recently-closed tabs delete/open smoke tests to ui/efficiency r=aaronmt,isabel_rios"
    },
    "D313947": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313947",
      "clUrl": "https://phabricator.services.mozilla.com/D313947",
      "description": "Ports two UnifiedTrustPanelTest smoke tests:\n- verifySecurePageConnectionFromQuickSettingsWithNoTrackersTest (TestRail 3186718)\n- verifyInsecurePageConnectionFromQuickSettingsWithTrackersTest (TestRail 3186721)\nBoth green, non-flaky (pass on try #1).\n\nShared capability (reused by these and the custom-tab connection variants still to convert):\n- UnifiedTrustPanelPage.verifyUnifiedTrustPanelItems(...): parameterized assertion of the full\n  trust-panel state (site identity, ETP banner + toggle on/off, trackers-blocked option, connection\n  security), mirroring the legacy helper; plus clickTheEnhancedTrackingProtectionOption().\n- UnifiedTrustPanelSelectors: ETP banner / toggle / trackers-blocked / connection-security / privacy-link.\n- Trust-panel nav edge now opens from secure, unsecure, OR unknown pages (the site-info button tag\n  varies with the page's security state). ToolbarSelectors gains UNSECURE/UNKNOWN site-information\n  buttons. Unblocks insecure-page trust-panel access generally.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313947",
      "email": "jajohnson@mozilla.com",
      "hash": "8f99a978892cdfca93e57f5fb89853659e9fa5bd",
      "subject": "Bug 2057420 - [efficiency] Convert quick-settings page-connection smoke tests + trust-panel state capability r=aaronmt"
    },
    "D313948": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313948",
      "clUrl": "https://phabricator.services.mozilla.com/D313948",
      "description": "Custom tabs run in their own activity (CustomTabActivity), launched by an intent rather than an in-app\nnav path. Adds that as a reusable harness capability:\n- CustomTabsPage.launchCustomTab(url, customMenuItem): fires createCustomTabIntent at IntentReceiverActivity\n  (FLAG_ACTIVITY_NEW_TASK), waits for the custom-tab toolbar, sets page state. No NavigationRegistry edge --\n  custom tabs are launch-reached (this removes the previous illegal empty-steps edge). Plus openMainMenu().\n- CustomTabsSelectors: device-level (UIAutomator) locators so they resolve across the activity switch --\n  redesigned-toolbar menu button (\"More options\"), close button (\"Return to previous app\"), and main-menu items.\n- PageContext gains on.customTabs.\n\nConverts CustomTabsTest.verifyCustomTabMenuItemsTest (TestRail 249644). Green, non-flaky.\nUnlocks the rest of the custom-tab family + the custom-tab connection variants (reuse the trust-panel verifier).\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313948",
      "email": "jajohnson@mozilla.com",
      "hash": "f2caae15afd516ac4dc9bb4639ea306779802182",
      "subject": "Bug 2057412 - [efficiency] Add custom-tab launch capability + convert verifyCustomTabMenuItemsTest r=aaronmt,isabel_rios"
    },
    "D313949": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313949",
      "clUrl": "https://phabricator.services.mozilla.com/D313949",
      "description": "Reuses the custom-tab launch capability: launch a custom tab, verify the close button, open the menu,\ntap \"Open in Firefox\", and confirm the page opens in the full browser with one open tab.\nTestRail 249645. Green, non-flaky.\n\nAdds ToolbarSelectors.TAB_COUNTER_WITH_COUNT(openTabs) so the legacy verifyTabCounter(\"1\") assertion\ncarries over. UIAutomator-backed rather than Compose: it is asserted on BrowserPage while GeckoView is\nactive, where Compose sync can hang.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313949",
      "email": "jajohnson@mozilla.com",
      "hash": "42177aeb349f585e0dd2020b7c89fab1d12fca45",
      "subject": "Bug 2057416 - [efficiency] Convert CustomTabsTest.openCustomTabInFirefoxTest to ui/efficiency r=isabel_rios"
    },
    "D313950": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313950",
      "clUrl": "https://phabricator.services.mozilla.com/D313950",
      "description": "ScreenDump.dumpUiAutomator(): native View-hierarchy snapshot (res-id / text / content-desc / clickable)\ncomplementing the existing Compose dump. Needed to author UIAUTOMATOR_*/ESPRESSO_* selectors for legacy\nView screens (RecyclerViews, res-id widgets) that never appear in the Compose semantics tree — e.g. the\nrecently-closed screen dumps 0 Compose nodes but its res-ids (recently_closed_empty_view, etc.) show here.\n\nEffScreenDumpRunner (devtools): navigates to a page by PageContext property (instrumentation arg\neffdump.page) and emits both dumps, so selectors are authored from ground truth instead of stale legacy\nrobots. Graph-navigable pages only.\n\nThe TAE flank config (arm-tae-tests.yml) scans the whole efficiency.devtools package, so dumpPage is\ngated with assumeFalse(isTestLab()): skipped on Firebase, still runnable by hand from Android Studio or\nthe command line. @Ignore would have blocked the manual runs this tool exists for.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313950",
      "email": "jajohnson@mozilla.com",
      "hash": "57592225ef4926d9ebcd574f4309960b88e9dc2c",
      "subject": "Bug 2057415 - [efficiency] Add on-demand screen-dump dev tool (Compose + native/UIAutomator) r=isabel_rios"
    },
    "D313951": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313951",
      "clUrl": "https://phabricator.services.mozilla.com/D313951",
      "description": "ScreenDump.dumpEspresso(): walks the foreground activity's View hierarchy via an Espresso root ViewAction,\nlogging id / class / text / hint / content-desc / clickable with nesting. Complements the Compose and\nUIAutomator dumps: Espresso sees id-less views and View classes/structure the accessibility (UIAutomator)\ntree omits -- validated on the recently-closed screen (id-less toolbar title, recently_closed_list\nRecyclerView, LibrarySiteItemView row, nesting). EffScreenDumpRunner now emits all three (compose /\nespresso / uiautomator), matching the framework's Espresso-first preference for res-ids on Views.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313951",
      "email": "jajohnson@mozilla.com",
      "hash": "760cc9a46818ffbff876f53045917f4e2071f207",
      "subject": "Bug 2057418 - [efficiency] Add Espresso in-process view-tree dump to ScreenDump/effdump r=aaronmt,isabel_rios"
    },
    "D313952": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313952",
      "clUrl": "https://phabricator.services.mozilla.com/D313952",
      "description": "Reuses the custom-tab launch capability + the trust-panel clear-cookies verify. Adds one edge: CustomTabsPage\n-\u003e UnifiedTrustPanelPage via the custom-tab toolbar \"Site information\" button (CustomTabsSelectors.SITE_INFO_BUTTON).\nTestRail 3186714. Green first try, non-flaky.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313952",
      "email": "jajohnson@mozilla.com",
      "hash": "dc7954f986ab8f11fa706e90e6cd75f4fbb0ddf7",
      "subject": "Bug 2057421 - [efficiency] Convert verifyClearCookiesAndSiteDataFromQuickSettingsInCustomTabsTest to ui/efficiency r=isabel_rios"
    },
    "D313953": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313953",
      "clUrl": "https://phabricator.services.mozilla.com/D313953",
      "description": "Adds web-content interaction to CustomTabsPage (clickWebContent / verifyWebContent), reusing the\ndevice-level BrowserPageSelectors.PAGE_CONTENT locator (GeckoView content is matched device-wide, so it\nworks inside a custom tab). Converts, reusing custom-tab launch + MENU_BACK / MENU_FORWARD:\n- verifyTheMainMenuBackButtonFromCustomTabTest (TestRail 3080096)\n- verifyTheMainMenuForwardButtonFromCustomTabTest (TestRail 3080097)\nBoth green first try.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313953",
      "email": "jajohnson@mozilla.com",
      "hash": "0659130c597b6224f96447562ff7401b3ff33b36",
      "subject": "Bug 2057414 - [efficiency] Convert custom-tab back/forward-from-menu smoke tests to ui/efficiency r=aaronmt"
    },
    "D313954": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313954",
      "clUrl": "https://phabricator.services.mozilla.com/D313954",
      "description": "Converts UnifiedTrustPanelTest.verifyInsecurePageConnectionFromQuickSettingsWithNoTrackersInCustomTabsTest\n(TestRail 3186711) -- pure reuse of custom-tab launch + the CustomTabsPage-\u003etrust-panel site-info edge +\nverifyUnifiedTrustPanelItems (no new capability).\n\nHardening: WEBSITE_TITLE / WEBSITE_URL now match the unique testTags (unified.trust.panel.website[.url])\n*and* the expected text, via a new COMPOSE_BY_TAG_AND_TEXT strategy. Text alone was ambiguous because the\nhost also renders in the address bar (gotcha A7); the tag alone would have stopped asserting which site\nthe panel describes. Matching both keeps the disambiguation and the content assertion, and fixes it for\nevery trust-panel test. Full UnifiedTrustPanelTest re-verified green (5 tests).\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313954",
      "email": "jajohnson@mozilla.com",
      "hash": "ce7b780b459390d6658d32b53dd1a0b7ff2a4274",
      "subject": "Bug 2057413 - [efficiency] Convert insecure-connection-in-custom-tab test + harden trust-panel website selectors r=isabel_rios"
    },
    "D313955": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313955",
      "clUrl": "https://phabricator.services.mozilla.com/D313955",
      "description": "Adds a CustomTabsPage -\u003e FindInPagePage nav edge (custom-tab menu -\u003e Find in page). Converts\nverifyTheFindInPageMenuItemInACustomTabTest (TestRail 3080101). Green first try.\n\nCarries over the legacy next/prev cycling (1/3 .. 3/3 and back) via FindInPagePage.verifyFindInPageElement,\nthe next/prev/close button assertions, and a FIND_IN_PAGE_BAR check that the bar is gone after closing.\n\nParity gap: the legacy test then reopened find-in-page, searched \"3\" for a 1/1 result and closed with the\ndevice back button. That leg is omitted -- closing the bar returns to the custom tab but leaves\nPageStateTracker on FindInPagePage, and there is no return edge to re-sync it, so navigateToPage() would\nlook for a FindInPagePage -\u003e FindInPagePage path. Logged as the same stateful-nav harness gap as\nBookmarksPage -\u003e BrowserPage, not a locator issue.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313955",
      "email": "jajohnson@mozilla.com",
      "hash": "1a0fa2031efea39de157bd8b482c3171c033932b",
      "subject": "Bug 2057409 - [efficiency] Convert find-in-page-in-custom-tab smoke test to ui/efficiency r=isabel_rios"
    },
    "D313956": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D313956",
      "clUrl": "https://phabricator.services.mozilla.com/D313956",
      "description": "Foundational logins capability (reused by the logins/autofill family + login-save-in-custom-tab):\n- BrowserPageSelectors: SUBMIT_LOGIN_BUTTON (web form submit; raw web DOM id via the raw-resourceId\n  strategy, no package prefix) + SAVE_LOGIN_PROMPT (app res-id feature_prompt_login_fragment).\n- BrowserPage: clickSubmitLoginButton / verifySaveLoginPromptIsDisplayed / verifySaveLoginPromptIsNotDisplayed.\n- SettingsSavePasswords: NEVER_SAVE_OPTION + clickNeverSaveOption(); plus a SettingsSavePasswordsPage -\u003e\n  HomePage back-edge (up-button chain) so a test can set a passwords option then load a page (home-\u003ebrowser).\n\nConverts LoginsTest.verifyNeverSaveLoginOptionTest (TestRail 517818) into SettingsPasswordsTest. Green.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D313956",
      "email": "jajohnson@mozilla.com",
      "hash": "d320dafdd616708549366fee75b4c1c344478c69",
      "subject": "Bug 2057407 - [efficiency] Logins capability + convert verifyNeverSaveLoginOptionTest r=isabel_rios"
    },
    "D314014": {
      "author": "Nicolas Silva",
      "avatar": "https://www.gravatar.com/avatar/a375423648d373880fdd9e4eccc6b920?d=identicon\u0026s=64",
      "cl": "D314014",
      "clUrl": "https://phabricator.services.mozilla.com/D314014",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314014",
      "email": "nsilva@mozilla.com",
      "hash": "47897f0709d3e321e639951a540763fcd8733cb1",
      "subject": "Bug 2057509 - Add a way to run a wrench test case with different device pixel scales. r=gfx-reviewers,gw"
    },
    "D314016": {
      "author": "Andrej Glavic",
      "avatar": "https://www.gravatar.com/avatar/68d765f01bb43512f2fe065284f95d76?d=identicon\u0026s=64",
      "cl": "D314016",
      "clUrl": "https://phabricator.services.mozilla.com/D314016",
      "description": "We got a bug report that we are creating only 'settled' scenarios, not 'full' scenarios for the conditioned profiles on macosx.\nFor context, we create both on windows and linux.\nThis PR adds the 'full' scenario and migrates the jobs away from the old 1015s to the newer 1500s\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314016",
      "email": "aglavic@mozilla.com",
      "hash": "25b02bf17409158537cc504f9caa520131010448",
      "subject": "Bug 1892418 - Enable full scenario for macosx conditioned profiles. r=perftest-reviewers,sparky"
    },
    "D314024": {
      "author": "Nicolas Silva",
      "avatar": "https://www.gravatar.com/avatar/a375423648d373880fdd9e4eccc6b920?d=identicon\u0026s=64",
      "cl": "D314024",
      "clUrl": "https://phabricator.services.mozilla.com/D314024",
      "description": "With this change, when wrench loads a reference for a test run a certain scale (say 0.5), it will first look for foo-scale:0.5.png and fall back to foo.png if the former does not exist.\nThis enables declaring reftest at multiple scales and png reference images in a single line for example scale(1, 2, 0.5) == foo.yaml foo.png.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314024",
      "email": "nsilva@mozilla.com",
      "hash": "857bf898d3cfb7dbd23b704843f2f8f2ed664f5a",
      "subject": "Bug 2057509 - Allow per-scale wrench reference images. r=gfx-reviewers,gw"
    },
    "D314029": {
      "author": "Yubin Jamora",
      "avatar": "https://www.gravatar.com/avatar/c21ec870d5a27b600be6b5b58aba1a58?d=identicon\u0026s=64",
      "cl": "D314029",
      "clUrl": "https://phabricator.services.mozilla.com/D314029",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314029",
      "email": "yjamora@mozilla.com",
      "hash": "187f271899f8051410567cf436fa10c649f9e0bf",
      "subject": "Bug 2057599 - Part 2: Prefill monitor condition from the /monitor command text r=ngrato"
    },
    "D314041": {
      "author": "Arnaud Bienner",
      "avatar": "https://www.gravatar.com/avatar/4ce6cc4210e212c94d690c9c8c5c19bb?d=identicon\u0026s=64",
      "cl": "D314041",
      "clUrl": "https://phabricator.services.mozilla.com/D314041",
      "description": "Follow-up of D314033.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314041",
      "email": "abienner@mozilla.com",
      "hash": "a928e88ec1df34426074ec090d26fa3bc370efb2",
      "subject": "Bug 2057597 - Migrate older code to QM_SCOPED_CONTEXT. r=janv"
    },
    "D314143": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D314143",
      "clUrl": "https://phabricator.services.mozilla.com/D314143",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314143",
      "email": "lsalzman@mozilla.com",
      "hash": "13e1c72443c893ad3c3d8b1d793898af14b1fe2a",
      "subject": "Bug 2057098. r=gfx-reviewers,bradwerth"
    },
    "D314159": {
      "author": "Matthew Gregan",
      "avatar": "https://www.gravatar.com/avatar/aeea283b2f56b75a7c959ccfb660a619?d=identicon\u0026s=64",
      "cl": "D314159",
      "clUrl": "https://phabricator.services.mozilla.com/D314159",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314159",
      "email": "kinetik@flim.org",
      "hash": "2d21d14a9528ac075ad60cb3a034cfcf548289c5",
      "subject": "Bug 2057682 - Update libcubeb to ef47ae58. r=cubeb-reviewers,padenot"
    },
    "D314204": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D314204",
      "clUrl": "https://phabricator.services.mozilla.com/D314204",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314204",
      "email": "lsalzman@mozilla.com",
      "hash": "4a24932876e866c3b20a430777cabba7409420c6",
      "subject": "Bug 2057103. r=jfkthame"
    },
    "D314220": {
      "author": "Tymur Boiko",
      "avatar": "https://www.gravatar.com/avatar/e5455cbc9ccf5951783c79fc29beda3c?d=identicon\u0026s=64",
      "cl": "D314220",
      "clUrl": "https://phabricator.services.mozilla.com/D314220",
      "description": "Older NVIDIA drivers may not expose tiled modifiers for multiplanar YCbCr\nimages (ImageFormatProperties2 fails), so negotiation collapses to LINEAR.\nRestore a same-device arch-specific BL fallback for the copy-path export\nbuffers, and disable direct decode export in that case so we do not put\nDRM-modifier tiling on decode images the query already rejected.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314220",
      "email": "tboiko@nvidia.com",
      "hash": "24a742d26012d979c93abdef76c9c944366cf27a",
      "subject": "Bug 2056939 - Restore the NVIDIA block-linear modifier with a reduced block height. r=alwu"
    },
    "D314267": {
      "author": "Andrea Marchesini",
      "avatar": "https://www.gravatar.com/avatar/dfb8d0427dd67216b2664131a5c31421?d=identicon\u0026s=64",
      "cl": "D314267",
      "clUrl": "https://phabricator.services.mozilla.com/D314267",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314267",
      "email": "amarchesini@mozilla.com",
      "hash": "08ff63f4457d4c50bd9bd6dba7648f91ee21c32d",
      "subject": "Bug 2057680 - Fix Add-Container dialog size r=Gijs"
    },
    "D314308": {
      "author": "Nicolas Chevobbe",
      "avatar": "https://www.gravatar.com/avatar/f942478f2eaeb6cc42142cdd661976a7?d=identicon\u0026s=64",
      "cl": "D314308",
      "clUrl": "https://phabricator.services.mozilla.com/D314308",
      "description": "In the RDM toolbar document, we have a media query to switch the toolbar between\na single line to two lines when the toolbar gets too narrow.\nIn parallel, we used to have a ResizeObserver on the browserStack element to\ncheck if it was narrow, and in such case, add a special case on the iframe that\nrenders the toolbar (to update the height if needed).\nThis was a bit overkill, as we only need to know when the media query \"matches\"\nstate is updated (which would only apply when the browserStack element width\nis changed).\n\nIn this patch, we're setting a MediaQueryList change listener for the media query\ncondition we set in the CSS. This way we'll only try to toggle the appropriate\nclass when the media query gets applied/is no longer applied, and not for every\nchange in the browserStack size.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314308",
      "email": "nchevobbe@mozilla.com",
      "hash": "8734e6acc3dd0b675e87baeb97b1e152f5afd771",
      "subject": "Bug 2057983 - [devtools] Replace RDM ResizeObserver with a MediaQueryList change listener. r=devtools-reviewers,bomsy."
    },
    "D314309": {
      "author": "Nicolas Chevobbe",
      "avatar": "https://www.gravatar.com/avatar/f942478f2eaeb6cc42142cdd661976a7?d=identicon\u0026s=64",
      "cl": "D314309",
      "clUrl": "https://phabricator.services.mozilla.com/D314309",
      "description": "Make sure the attributes are properly updated whenever the available space for\nthe toolbox changes (e.g. the \"Find in page\" bar is toggled, notifications are\nadded in split view, RDM is toggled, Firefox sidebar is enabled, …)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314309",
      "email": "nchevobbe@mozilla.com",
      "hash": "87c2c49197ed7725d57b679f077cdf63f1083041",
      "subject": "Bug 2057434 - [devtools] Extend test coverage of DevTools toolbox splitter aria-value(min|max) attribute values. r=devtools-reviewers,bomsy."
    },
    "D314323": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D314323",
      "clUrl": "https://phabricator.services.mozilla.com/D314323",
      "description": "*aResult is dereferenced by the SetDefined(false) call right above, so the\nextra `\u0026\u0026 *aResult` in the registry fallback condition is dead. Both element\nconstructors on this path are infallible.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314323",
      "email": "sylvestre@debian.org",
      "hash": "f9db12789e8f5f8574d8f9e6d9b5f7a50b7d8e8a",
      "subject": "Bug 2058054 - Coverity CID 1697192: drop redundant null check after dereference in NewXULOrHTMLElement r=edgar"
    },
    "D314346": {
      "author": "Florian Quèze",
      "avatar": "https://www.gravatar.com/avatar/0ffa237c82d28773736b6c9688b404e3?d=identicon\u0026s=64",
      "cl": "D314346",
      "clUrl": "https://phabricator.services.mozilla.com/D314346",
      "description": "The goBack() call in process_switching_through_navigation_features is a\nsilent no-op unless the about:newtab session history entry is marked as\nhaving had user interaction. That flag is set by the system principal load\nof the http page, but it reaches the parent process as an asynchronous\nWindowContext update that races with the entry for the new load becoming\nthe active one. When it loses the race the flag lands on the http entry\ninstead, canGoBack stays false, and the test waits forever for a location\nchange that never comes. Waiting longer cannot help: by the time the load\nhas completed the flag has already been applied to the wrong entry.\n\nSet browser.navigation.requireUserInteraction to false, matching what\nbrowser_hashChangeProxyState.js and browser_remoteness_switch.js already do\nfor programmatic history navigation, and drop the skip-if annotations.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314346",
      "email": "florian@queze.net",
      "hash": "6ae1a3d840fe0f0c12534e6eca075ba10a61c9ca",
      "subject": "Bug 1934364 - Fix intermittent timeout in browser_new_tab_in_privilegedabout_process_pref.js, r=tabbrowser-reviewers,sclements."
    },
    "D314347": {
      "author": "AndiAJ",
      "avatar": "https://www.gravatar.com/avatar/b4ea35e4d5d0c51e2affc0dc2515853c?d=identicon\u0026s=64",
      "cl": "D314347",
      "clUrl": "https://phabricator.services.mozilla.com/D314347",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314347",
      "email": "andiaj@users.noreply.github.com",
      "hash": "364fac47aa2dc0e1a3807c883843253a528d1bf2",
      "subject": "Bug 2058121 - Migrate privateTabsDoNotPersistAfterClosingAppTest UI test to the efficiency framework r=aaronmt"
    },
    "D314407": {
      "author": "unifolia",
      "avatar": "https://www.gravatar.com/avatar/4694b477c490cf60cd24b4c7467bcce3?d=identicon\u0026s=64",
      "cl": "D314407",
      "clUrl": "https://phabricator.services.mozilla.com/D314407",
      "description": "Adds window \"error\" and \"unhandledrejection\" listeners to ai-window and\nroutes what they catch into SmartWindowTelemetry.recordClientError().\n\nErrors thrown from inside Lit's update cycle are the ones we most want to\nsee, so they are bucketed separately from anything else that reaches the\nwindow: classifyClientErrorSource() checks whether the stack passes\nthrough lit.all.mjs. Both it and the listener wiring go in the shared\nClientErrorTelemetry module, since the chat content document installs the\nsame hooks later in this stack and only differs in how it reports what\nthey catch.\n\nEach event also carries the conversation the window was showing at the\ntime (mode, chat id, assistant message count, model), which is what makes\na report actionable.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314407",
      "email": "jlewis@mozilla.com",
      "hash": "0957dfd2aa168af86bfa4e27d7a3210b3b8c3d15",
      "subject": "Bug 2040803 - Record uncaught Smart Window chrome document errors r=gcardieri"
    },
    "D314408": {
      "author": "unifolia",
      "avatar": "https://www.gravatar.com/avatar/4694b477c490cf60cd24b4c7467bcce3?d=identicon\u0026s=64",
      "cl": "D314408",
      "clUrl": "https://phabricator.services.mozilla.com/D314408",
      "description": "The chat content document runs in a privileged-about content process and\ncannot touch Glean, so failures there are dispatched as a composed\nAIChatContent:ClientError CustomEvent, relayed by AIChatContentChild, and\nrecorded by AIChatContentParent against the ai-window that owns the\nbrowser. That gives content-process errors the same correlation extras\nas chrome-side ones. The relayed detail already carries the event's own\nfield names, so nothing is renamed as it crosses.\n\nai-chat-content installs the same window \"error\"/\"unhandledrejection\"\nhooks as ai-window, plus a guard for message payloads that aren't\ndispatchable at all. The child actor also reports its own failures to\nhand a message to the content document, which were previously only\nvisible in the browser console. That one is only recognizable from where\nit is caught, so it travels as an explicit messageKey rather than leaving\nthe parent to work out what the failure was.\n\nBecause one throw can be both explicitly caught and rethrown into the\nwindow listeners, dispatchClientError() keeps a WeakSet of error objects\nit has already reported so it only sends one event per error.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314408",
      "email": "jlewis@mozilla.com",
      "hash": "e2648d4d1a76bd0d7010019ac0c8ab9de5f98c46",
      "subject": "Bug 2040803 - Relay Smart Window chat content failures to the parent r=gcardieri"
    },
    "D314409": {
      "author": "unifolia",
      "avatar": "https://www.gravatar.com/avatar/4694b477c490cf60cd24b4c7467bcce3?d=identicon\u0026s=64",
      "cl": "D314409",
      "clUrl": "https://phabricator.services.mozilla.com/D314409",
      "description": "Model output is the least predictable input the chat UI has, so a\nmalformed response that trips the markdown parser or the sanitizer is\nworth its own bucket. Wrap the setHTML() call in ai-chat-message and\nreport the failure before rethrowing, leaving the existing failure\nbehaviour untouched.\n\nThe rethrown error also reaches the window \"error\" listener, but the\nWeakSet in dispatchClientError() means it is still only reported once,\nand as \"markdown\" rather than \"lit-render\".\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314409",
      "email": "jlewis@mozilla.com",
      "hash": "d9e82ffb669750270382610041658f923b6913b7",
      "subject": "Bug 2040803 - Record Smart Window markdown render failures r=gcardieri"
    },
    "D314422": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D314422",
      "clUrl": "https://phabricator.services.mozilla.com/D314422",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314422",
      "email": "aosmond@mozilla.com",
      "hash": "cb1452f15ce50af7e045360f7815fcfe7a3f29ac",
      "subject": "Bug 1605115 - Part 1. Add CMYK and inverted CMYK to SurfaceFormat. r=gfx-reviewers,bradwerth"
    },
    "D314423": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D314423",
      "clUrl": "https://phabricator.services.mozilla.com/D314423",
      "description": "This fallback should already be much faster than the implementation\nin nsJPEGDecoder, which is removed in a later patch in this series.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314423",
      "email": "aosmond@mozilla.com",
      "hash": "866fd512bc5c3be0df423bff5835672f3ce88403",
      "subject": "Bug 1605115 - Part 2. Add fallback implementation for CMYK swizzling. r=gfx-reviewers,bradwerth"
    },
    "D314425": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D314425",
      "clUrl": "https://phabricator.services.mozilla.com/D314425",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314425",
      "email": "aosmond@mozilla.com",
      "hash": "661088f6ae5dfcce9318a02a0aed9549eaf0d1ee",
      "subject": "Bug 1605115 - Part 3. Add SIMD variants of CMYK swizzling. r=gfx-reviewers,bradwerth"
    },
    "D314426": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D314426",
      "clUrl": "https://phabricator.services.mozilla.com/D314426",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314426",
      "email": "aosmond@mozilla.com",
      "hash": "45bd33862252a289cab56aae1daaaad6b889b468",
      "subject": "Bug 1605115 - Part 4. Add correctness and performance tests for CMYK swizzling. r=gfx-reviewers,bradwerth"
    },
    "D314427": {
      "author": "Andrew Osmond",
      "avatar": "https://www.gravatar.com/avatar/bff3d32989145dfc299efa3b8dac36f7?d=identicon\u0026s=64",
      "cl": "D314427",
      "clUrl": "https://phabricator.services.mozilla.com/D314427",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314427",
      "email": "aosmond@mozilla.com",
      "hash": "aa75c5de03afe65b8d51d8b3be14ebdfc8e0fd90",
      "subject": "Bug 1605115 - Part 5. Switch nsJPEGDecoder to use the new CMYK swizzling. r=gfx-reviewers,bradwerth"
    },
    "D314438": {
      "author": "Luca Greco",
      "avatar": "https://www.gravatar.com/avatar/cb15f57474d95eb43c5d903ae3fa34ae?d=identicon\u0026s=64",
      "cl": "D314438",
      "clUrl": "https://phabricator.services.mozilla.com/D314438",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314438",
      "email": "lgreco@mozilla.com",
      "hash": "c9613cee10bb57d6989a07036860ac2c1e22dee2",
      "subject": "Bug 2058235 - Fix browser_ext_management_themes.js default theme name assertion hit when browser.nova.enabled is true. r=willdurand"
    },
    "D314453": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314453",
      "clUrl": "https://phabricator.services.mozilla.com/D314453",
      "description": "Two UIAutomator selector strategies mirroring legacy MatcherHelper matchers that no\nefficiency strategy covered:\n- UIAUTOMATOR_WITH_RES_ID_CONTAINING_TEXT: package-prefixed app res-id + textContains.\n- UIAUTOMATOR_WITH_WEB_ID_AND_TEXT: raw web DOM id + exact text (web/GeckoView content).\n\nAdds OverlayRegistry + BasePage.dismissKnownOverlaysIfPresent(), auto-invoked by\nmozClick/mozVerify on a locate miss (dismiss + retry once) so a system dialog covering\nthe app (e.g. the Android stylus-handwriting prompt) cannot masquerade as\nelement-not-found. Seeded with the stylus prompt.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314453",
      "email": "jajohnson@mozilla.com",
      "hash": "e30cbf77e00d80ff07d49cd0cb2ed831b3f87655",
      "subject": "Bug 2057954 - [efficiency] Add res-id-containing-text \u0026 web-id-and-text selector strategies and auto-dismiss blocking system overlays r=aaronmt"
    },
    "D314454": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314454",
      "clUrl": "https://phabricator.services.mozilla.com/D314454",
      "description": "On a locate failure ScreenDump now emits Compose + UIAutomator + Espresso layers plus a\n[windows] summary (window titles/types, IME/overlay flags, focused input) instead of\nCompose only. This surfaces system dialogs, legacy Views, and the soft keyboard that sit\non top of the app and cause spurious \"element not found\" failures, letting an author tell\n\"covered / focus stolen\" from \"genuinely absent\" from the report alone.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314454",
      "email": "jajohnson@mozilla.com",
      "hash": "336a5231046ec041ce4072ffc72198a363f4f50f",
      "subject": "Bug 2057955 - [efficiency] Emit all layers plus a window/focus summary on ScreenDump failure r=isabel_rios"
    },
    "D314455": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314455",
      "clUrl": "https://phabricator.services.mozilla.com/D314455",
      "description": "Clears saved autofill addresses at the start of every attempt in the retry rule, inside the same\nDispatchers.IO block as the existing session-storage cleanup (getAllAddresses/deleteAddress are suspend\nstorage calls, so they belong off the runBlocking thread alongside it).\n\nA leftover address from a failed first attempt changes the Autofill settings layout and can push\n\"Add address\" off-screen, so a one-off failure would otherwise turn into a retry that fails for a\ndifferent reason and hides the original cause.\n\nBest-effort (runCatching) so a storage error never fails the attempt on its own, but the failure is\nlogged rather than swallowed: silently failing to clear is indistinguishable from a state leak, which\nis exactly the condition this is meant to prevent.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314455",
      "email": "jajohnson@mozilla.com",
      "hash": "3d88a589f14a2b5ab2f6dab5d8ea65c69db2f503",
      "subject": "Bug 2057956 - [efficiency] BaseTest: clear autofill state between retry attempts r=isabel_rios"
    },
    "D314456": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314456",
      "clUrl": "https://phabricator.services.mozilla.com/D314456",
      "description": "Faithful port of legacy NavigationToolbarExpandedTest.verifyTheExpandedToolbarNewTabButtonTest\nonto ui/efficiency (launches with the expanded toolbar, taps the new-tab button, verifies\nthe search/edit view opens).\n\nCarries over every legacy assertion: page content after load, the search view opening in edit mode, the\n\"Search or enter address\" placeholder, and keyboard visibility.\n\nTwo supporting additions:\n- SearchBarSelectors.SEARCH_BAR_PLACEHOLDER - the placeholder is exposed as the address bar's\n  content-description rather than as text, keyed off R.string.search_hint.\n- BasePage.mozIsKeyboardVisible() / mozVerifyKeyboardVisible() - reads the accessibility window list for\n  an IME window instead of shelling out to `dumpsys input_method` and grepping its output the way the\n  legacy AppAndSystemHelper.verifyKeyboardVisibility does. Shared on BasePage so it is reusable rather\n  than another page-local copy of the same window-type check.\n\nTestRail: https://mozilla.testrail.io/index.php?/cases/view/3333213\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314456",
      "email": "jajohnson@mozilla.com",
      "hash": "fcd244789bf6ae9330adbcaf77e2ebc8093f0582",
      "subject": "Bug 2057957 - [efficiency] Convert verifyTheExpandedToolbarNewTabButtonTest to ui/efficiency r=isabel_rios"
    },
    "D314457": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314457",
      "clUrl": "https://phabricator.services.mozilla.com/D314457",
      "description": "Faithful port of legacy AddressAutofillTest.verifyAddressAutofillTest: add and save an\naddress in Settings \u003e Autofill, load the web address form, trigger the autofill prompt,\nselect the saved address, and verify the street field autofills. Adds SettingsAutofill\naddress-form page/selectors and BrowserPage web-autofill helpers.\n\nAddress values live in a new ui/efficiency/data/AddressTestData rather than inline in the test. The same\nstreet/city/zip are typed into the settings form, matched in the suggestion list and asserted in the\nautofilled web field, so those uses have to agree — and the next autofill test will need the same\nfixture. AddressDetails is an immutable data class; the legacy equivalents\n(AddressAutofillTest.FirstAddressAutofillDetails) are objects of `var`s, where one test mutating a field\nsilently changes what every other test fills in.\n\nSettingsAutofillPage.fillAndSaveAddress now takes an AddressDetails instead of eight positional strings,\nand its waitForKeyboardDismiss reuses BasePage.mozIsKeyboardVisible() (added in bug 2057957) rather than\nrepeating the IME window-type check.\n\nTestRail: https://mozilla.testrail.io/index.php?/cases/view/3205329\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314457",
      "email": "jajohnson@mozilla.com",
      "hash": "2bdea7ea9a3dc9b57127a92b845b666afbf83814",
      "subject": "Bug 2057958 - [efficiency] Convert verifyAddressAutofillTest to ui/efficiency r=isabel_rios"
    },
    "D314458": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314458",
      "clUrl": "https://phabricator.services.mozilla.com/D314458",
      "description": "Adds in-tree documentation for the ui/efficiency harness (docs/ + docs/guides/) and an\nInteractiveInspectTest devtool for exploring the live UI tree across layers.\n\nBoth devtool methods gate on assumeFalse(isTestLab()): the TAE flank config (arm-tae-tests.yml) scans the\nwhole efficiency.devtools package, and inspect() polls a trigger file for 30 minutes, which would\notherwise occupy a Firebase device slot on every TAE run. They stay runnable by hand from Android Studio\nor the command line, which @Ignore would have prevented.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314458",
      "email": "jajohnson@mozilla.com",
      "hash": "2c4de866daeb3fa3a92a427802d505a122f79ea9",
      "subject": "Bug 2057959 - [efficiency] Add in-tree harness docs and an interactive-inspect devtool r=isabel_rios,aaronmt"
    },
    "D314459": {
      "author": "Jackie Johnson",
      "avatar": "https://www.gravatar.com/avatar/679ab5b029ef3ae60883ec8b488cd982?d=identicon\u0026s=64",
      "cl": "D314459",
      "clUrl": "https://phabricator.services.mozilla.com/D314459",
      "description": "Visual tool for finding selectors during test authoring: click any element on a screenshot of the current\nscreen and see every matching selector across the Compose, Espresso and UIAutomator layers, ranked by\nstability (testTag \u003e res-id \u003e content-desc \u003e text) with a copy-pasteable catalog entry.\n\nRenders the artifacts ScreenDump.dumpAll() writes (bug 2057955) into an HTML overlay: elements boxed on\nthe screenshot, colour-coded by layer, with overlap detection so a tap on stacked elements lists all of\nthem rather than only the topmost. effview.sh is the one-command wrapper — trigger a fresh dump, pull the\nJSON + PNG with run-as, render, open.\n\nPairs with InteractiveInspectTest#inspect (bug 2057959), which keeps the app alive for interactive\nexploration so a dump can be taken per screen without a rebuild.\n\n  cd mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/efficiency/devtools/effview\n  ./effview.sh              # or ./effview.sh --no-trigger after InteractiveInspectTest#dumpOnce\n\nOutput goes to ./eff-view relative to the working directory; set OUT to write it somewhere outside the\ncheckout.\n\nSee devtools/effview/README.md for complete documentation.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314459",
      "email": "jajohnson@mozilla.com",
      "hash": "74687ec17a92aa83fdb8356e1fa36c38608b5c4f",
      "subject": "Bug 2058263 - [efficiency] Add effview interactive selector discovery tool r=isabel_rios"
    },
    "D314460": {
      "author": "yazan",
      "avatar": "https://www.gravatar.com/avatar/245b769556bb6cfddcaf1e7bcf95ef9a?d=identicon\u0026s=64",
      "cl": "D314460",
      "clUrl": "https://phabricator.services.mozilla.com/D314460",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314460",
      "email": "yalmacki@mozilla.com",
      "hash": "c13b26af40122551bca0e2de210d9b05252487de",
      "subject": "Bug 2056338 - Fix keyboard focus order for secondary top buttons in about:welcome. r=omc-reviewers,jprickett"
    },
    "D314475": {
      "author": "Florian Quèze",
      "avatar": "https://www.gravatar.com/avatar/0ffa237c82d28773736b6c9688b404e3?d=identicon\u0026s=64",
      "cl": "D314475",
      "clUrl": "https://phabricator.services.mozilla.com/D314475",
      "description": "isPanelOpen is also true while the panel is animating open, so _showPanel takes\nthe \"already open\" path and fires \"shown\" for the current notifications right\naway. The popupshown listener registered when the panel started opening was left\nin place, so it later fired \"shown\" a second time for the notifications it had\ncaptured back then, including ones that had since been replaced. Those callbacks\nran last and overwrote the panel contents.\n\nbrowser_doorhanger_form_password_edit.js hits this when a password edit lands\nwhile the doorhanger panel is animating open: the edit replaces the notification,\nand the panel then shows the password from an earlier keystroke.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314475",
      "email": "florian@queze.net",
      "hash": "771590d601cb52b02ba9d8ad5f44a696ba06b52c",
      "subject": "Bug 1788917 - Show the current notification's contents when a doorhanger is replaced while the panel is opening, r=Gijs."
    },
    "D314497": {
      "author": "Niklas Baumgardner",
      "avatar": "https://www.gravatar.com/avatar/11bd11be7b993e066e5c21fbd3405568?d=identicon\u0026s=64",
      "cl": "D314497",
      "clUrl": "https://phabricator.services.mozilla.com/D314497",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314497",
      "email": "nbaumgardner@mozilla.com",
      "hash": "630ac8bda815a81797f6435ade02817d813b0133",
      "subject": "Bug 2058273 - Make sure newly added shared prefs are added to the shared database. r=mossop"
    },
    "D314511": {
      "author": "Bryan Olsson",
      "avatar": "https://www.gravatar.com/avatar/34df29d70aca0d9b18a6a8fbb65acd5b?d=identicon\u0026s=64",
      "cl": "D314511",
      "clUrl": "https://phabricator.services.mozilla.com/D314511",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314511",
      "email": "bolsson@mozilla.com",
      "hash": "3fefb4a906c803886f84f1cbc93eed29129dc850",
      "subject": "Bug 2058326 - Add skill for generating Fluent migration recipes, r=flod,ai4dev-reviewers,padenot"
    },
    "D314515": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D314515",
      "clUrl": "https://phabricator.services.mozilla.com/D314515",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314515",
      "email": "git@chillybin.org",
      "hash": "0282aaf70ee2483cd2ec4b2a4197602630259696",
      "subject": "Bug 2058332 - Pt 1 - Remove the GPU cache's leftover scaffolding r=gfx-reviewers,nical"
    },
    "D314521": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D314521",
      "clUrl": "https://phabricator.services.mozilla.com/D314521",
      "description": "Ten more Device/Texture methods with no callers anywhere in the tree.\nUnlike the GPU cache scaffolding these do not share a single origin;\nthey are just accumulated GL wrappers that outlived their users. The\nsubpixel pair dates from when text was drawn in two blend passes --\nset_blend_mode_subpixel_dual_source, which replaced them, stays.\n\nConfirmed dead by demoting each to private and checking that rustc\nreports it as never used rather than failing to compile.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314521",
      "email": "git@chillybin.org",
      "hash": "4e7b7b27c5bd113c8dc7b598d85be7b600d50f0a",
      "subject": "Bug 2058332 - Pt 2 - Remove unused Device methods r=gfx-reviewers,ahale"
    },
    "D314523": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D314523",
      "clUrl": "https://phabricator.services.mozilla.com/D314523",
      "description": "push_clip_root_leaf, has_visible_tiles, set_active_clips_from_clip_chain\nand push_clip_instance each lost their last caller to a removal patch\n(bugs 1836063, 1851101, 2054524, 2018240) rather than being added as\nhooks. push_clip_root_node and the visible_tiles field stay.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314523",
      "email": "git@chillybin.org",
      "hash": "210d5f8c0d396bd3dd024971eb7e987550e1bc87",
      "subject": "Bug 2058332 - Pt 3 - Remove clip methods orphaned by earlier removals r=gfx-reviewers,nical"
    },
    "D314532": {
      "author": "Beatriz Rizental",
      "avatar": "https://www.gravatar.com/avatar/9409599d72dab32118398896ad5a78d4?d=identicon\u0026s=64",
      "cl": "D314532",
      "clUrl": "https://phabricator.services.mozilla.com/D314532",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314532",
      "email": "bea@torproject.org",
      "hash": "efae5aceb8f51fcb39a129bdf11f7dd3a588a675",
      "subject": "Bug 2058343 - Do not read AutoConfig from /etc/firefox when --disable-system-preferences. r=gstoll"
    },
    "D314555": {
      "author": "Dimi",
      "avatar": "https://www.gravatar.com/avatar/bd10912fd8637cc64f00edd465ca8b0d?d=identicon\u0026s=64",
      "cl": "D314555",
      "clUrl": "https://phabricator.services.mozilla.com/D314555",
      "description": "Bump the vendored application-services revision to aac41f82fd13 to pick up\nthe autofill Store::shutdown() API, which closes the store's rusqlite\nconnection synchronously (mirroring LoginStore) instead of only at GC during\nshutdown, past the late-write barrier.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314555",
      "email": "dlee@mozilla.com",
      "hash": "a3df7349899442e3ffbd890058657f451de891eb",
      "subject": "Bug 2056496 - P1. Vendor application-services with autofill Store::shutdown() r=joschmidt"
    },
    "D314556": {
      "author": "Dimi",
      "avatar": "https://www.gravatar.com/avatar/bd10912fd8637cc64f00edd465ca8b0d?d=identicon\u0026s=64",
      "cl": "D314556",
      "clUrl": "https://phabricator.services.mozilla.com/D314556",
      "description": "The Application Services autofill store's rusqlite connection was otherwise\nonly closed when its JS wrapper is garbage-collected at shutdown, which runs\nthe SQLite flush past the late-write barrier and crashes debug builds at\nLateWriteObserver.\n\nIntroduce RustAutofillStore, a new module owning the store's lifecycle: it\nopens the store lazily on first use and, on first open, registers an\nAsyncShutdown.profileChangeTeardown blocker calling the vendored\nStore::shutdown(), so the connection is closed before the late-write barrier.\nThere is one store per profile (addresses, credit cards and passports are\ncollections within it), so it is a singleton in the same shape as\nLoginManagerRustStorage: constructing it always hands back the shared\ninstance, and a second handler can never open a second connection to the\nsame file.\n\nRe-enable the Form Autofill passport tests that were disabled with\nskip-if = [\"true\"] for the LateWriteChecks crash.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314556",
      "email": "dlee@mozilla.com",
      "hash": "f6089b9bda53ae80ea8754a2029ede5a915e3747",
      "subject": "Bug 2056496 - P2. Close the autofill store from a shutdown blocker and re-enable passport tests r=credential-management-reviewers,joschmidt"
    },
    "D314557": {
      "author": "Dimi",
      "avatar": "https://www.gravatar.com/avatar/bd10912fd8637cc64f00edd465ca8b0d?d=identicon\u0026s=64",
      "cl": "D314557",
      "clUrl": "https://phabricator.services.mozilla.com/D314557",
      "description": "The application-services bump pulls in a remote_settings client change that\nmakes the collection metadata signature's `mode` field (the signature type,\ne.g. \"p384ecdsa\") required when deserializing the server changeset response.\nThe quicksuggest test harness's mock server only emitted `signature` and\n`x5u`, so the Rust Suggest backend failed to ingest with \"missing field\n`mode`\" and returned no suggestions, failing ~34 quicksuggest tests across all\nplatforms. Emit `mode` to match real Remote Settings servers.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314557",
      "email": "dlee@mozilla.com",
      "hash": "03222beff2716358075de4ae8ec4214a9f10e6f2",
      "subject": "Bug 2056496 - P3. Add signature `mode` to the quicksuggest mock Remote Settings server r=urlbar-reviewers,daisuke"
    },
    "D314582": {
      "author": "Masayuki Nakano",
      "avatar": "https://www.gravatar.com/avatar/900caab146bc7a489b3854cf10acf93f?d=identicon\u0026s=64",
      "cl": "D314582",
      "clUrl": "https://phabricator.services.mozilla.com/D314582",
      "description": "If `mTreeKind` is for `TreeKind::FlatForSelection`, `mParent-\u003eLength()`\nis wrong API if `mParent` is a shadow host or a `\u003cslot\u003e` which has\nsome assigned nodes.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314582",
      "email": "masayuki@d-toybox.com",
      "hash": "59f0d745d02cbd891418d4342a68451a64ebe430",
      "subject": "Bug 2057692 - Make `RangeBoundaryBase::IsSetAndValid()` use right API to get the max offset of the parent r=jjaschke"
    },
    "D314586": {
      "author": "Gabriel Luong",
      "avatar": "https://www.gravatar.com/avatar/8d4b3dd6d3dd0178956876e108d984c6?d=identicon\u0026s=64",
      "cl": "D314586",
      "clUrl": "https://phabricator.services.mozilla.com/D314586",
      "description": "- Add a Nimbus flag and secret settings that would be used for hiding the collections save entrypoints.\n- This is only about adding the Nimbus flags and Secret Settings and not the underlying functionality.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314586",
      "email": "gabriel.luong@gmail.com",
      "hash": "1712fd09fee97b5b0b81fda6366d547a34a006c9",
      "subject": "Bug 2058308 - Add Nimbus flag and secret setting for hiding the collections UI r=android-reviewers,npoon"
    },
    "D314587": {
      "author": "Gabriel Luong",
      "avatar": "https://www.gravatar.com/avatar/8d4b3dd6d3dd0178956876e108d984c6?d=identicon\u0026s=64",
      "cl": "D314587",
      "clUrl": "https://phabricator.services.mozilla.com/D314587",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314587",
      "email": "gabriel.luong@gmail.com",
      "hash": "ec8ca3121f0c73481c9d759d6c9d03bec9138a07",
      "subject": "Bug 2058309 - Hide Collections save entrypoints in the menu and tabs tray r=android-reviewers,npoon"
    },
    "D314592": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D314592",
      "clUrl": "https://phabricator.services.mozilla.com/D314592",
      "description": "FormAutofillHandler.fieldDetails throws until setIdentifiedFieldDetails() has\nbeen called, which only happens once the parent has round-tripped\nFormAutofill:OnFieldsDetected. A form submitted while that reply is in flight\nmade FormAutofillChild.formSubmitted call collectFormFilledData() and hit the\nthrowing getter.\n\nGuard formSubmitted() with the existing hasIdentifiedFields() predicate: when\nthe fields were never identified nothing was filled, so there is nothing to\ncapture. This covers the page-navigation and form-removal heuristics too, since\nboth funnel through formSubmitted().\n\nFormAutofill:GetFilledInfo had the same latent throw for subframes that have not\nbeen identified yet.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314592",
      "email": "sylvestre@debian.org",
      "hash": "6c5787611a445bf91f88273edcc0f7eca237c21c",
      "subject": "Bug 2058405 - Don't handle form submission before the fields are identified. r=credential-management-reviewers,dimi"
    },
    "D314599": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D314599",
      "clUrl": "https://phabricator.services.mozilla.com/D314599",
      "description": "The vendored remove_dir_all 0.5.3 is affected by RUSTSEC-2023-0018, a\ntime-of-check to time-of-use race in the crate's own Windows implementation.\nOn other platforms the crate is a plain re-export of std::fs::remove_dir_all,\nso the only in-tree call site, in webrender_bindings' program_cache, can drop\nthe dependency entirely.\n\nUpgrading in place is not practical: every fixed release is built on fs_at,\nwhich pins nix ^0.29 and windows-sys ^0.52 against the 0.30 and 0.61 we already\nvendor, and mach vendor rust rejects duplicate versions.\n\nThis was previously done in bug 1959801 and backed out in bug 1973947, because\nthird-party DLL injection on Windows detours NtOpenFile and crashed Rust's\nstd::fs::remove_dir_all (rust#143078). The agreed condition for redoing it was\nRust 1.90 becoming the minimum supported version, which happened in bug 1975583\nand shipped in Firefox 149; the tree now requires 1.90.0.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314599",
      "email": "sylvestre@debian.org",
      "hash": "42bb28d34250ecd9d4b15a51c3fa0a7b86a43fd5",
      "subject": "Bug 1975552 - Migrate from the remove_dir_all crate to std::fs::remove_dir_all r=ErichDonGubler,gfx-reviewers,supply-chain-reviewers"
    },
    "D314600": {
      "author": "Timothy Nikkel",
      "avatar": "https://www.gravatar.com/avatar/0646a42110a02dd585f200f270716852?d=identicon\u0026s=64",
      "cl": "D314600",
      "clUrl": "https://phabricator.services.mozilla.com/D314600",
      "description": "nsIMozIconURI::fileExtension is a placeholder file name rather than a bare\nextension: it keeps the leading period so callers can use it directly as a\nstand-in for a file that may not exist. The Windows backend depends on this,\nhanding the value to SHGetFileInfo as a fake file name, and a lone \".\" is a\nlegitimate value meaning the name has no extension.\n\nTwo consumers passed that value straight to nsIMIMEService, which expects a bare\nextension. On Windows, getPrimaryExtension() with \".\" stripped the period and\nthen called nsMIMEInfoBase::AppendExtension() with an empty string, tripping its\nassertion. On Linux, getTypeFromExtension() could never match the dotless tables\nit consults first, so extension lookups only succeeded by way of\nnsGIOService::GetMimeTypeFromExtension() building \"file.\" + \".html\".\n\nConvert at both boundaries, and document the convention along with the\nconversion it requires on the attribute itself.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314600",
      "email": "tnikkel@gmail.com",
      "hash": "a5b066c77d22eaacde6cf0408f867cb7c1fa3b63",
      "subject": "Bug 2057710. In moz icon protocal code, strip the placeholder file name's leading period before sending it to other code that does not expect it. r=gfx-reviewers,maxe,lsalzman"
    },
    "D314603": {
      "author": "Manuel Bucher",
      "avatar": "https://www.gravatar.com/avatar/fe2c2192f4fabf01f2d2e700631bb8fe?d=identicon\u0026s=64",
      "cl": "D314603",
      "clUrl": "https://phabricator.services.mozilla.com/D314603",
      "description": "Also fix test that was checking for the visibility of the override button.\nThe previous error was overrideable: https://searchfox.org/firefox-main/rev/4b4e59946a3db5ddf42ea730fc44c22a99877303/security/manager/ssl/NSSErrorsService.cpp#185,188\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314603",
      "email": "manuel@mozilla.com",
      "hash": "fc5694a02b1c03c2905232a2cf8cb9ddc3a64525",
      "subject": "Bug 2054991 - Fix SEC_ERROR_CA_CERT_INVALID not recoverable in felt privacy r=crypto-reviewers,keeler"
    },
    "D314604": {
      "author": "Tymur Boiko",
      "avatar": "https://www.gravatar.com/avatar/e5455cbc9ccf5951783c79fc29beda3c?d=identicon\u0026s=64",
      "cl": "D314604",
      "clUrl": "https://phabricator.services.mozilla.com/D314604",
      "description": "NVIDIA EGL/Vulkan on Wayland opens /dev/udmabuf and issues UDMABUF_CREATE\n(ioctl type 'u', e.g. 0x40187542) against a sealed memfd, checking its seals\nvia fcntl(F_GET_SEALS). Without broker + seccomp access for both, the RDD\nprocess is killed and VideoBridge sees AbnormalShutdown; later reinits fail\nto create a decoder. X11 typically never hits this path.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314604",
      "email": "tboiko@nvidia.com",
      "hash": "acf7317ebe3994f16f87c9f22b71c2fcaecbb76b",
      "subject": "Bug 2057724 - Sandbox - Allow /dev/udmabuf in RDD for Vulkan DMA-BUF export. r=jld,sandbox-reviewers"
    },
    "D314644": {
      "author": "Krist Baliev",
      "avatar": "https://www.gravatar.com/avatar/9144471bc03d7f5e8103c28b824b8f31?d=identicon\u0026s=64",
      "cl": "D314644",
      "clUrl": "https://phabricator.services.mozilla.com/D314644",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314644",
      "email": "kbaliev@mozilla.com",
      "hash": "4b0189a97d0d5562e3dfbc637d7575480819e839",
      "subject": "Bug 2058483 - CPM panel padding should be consistent. r=mtigley,credential-management-reviewers"
    },
    "D314650": {
      "author": "Calixte Denizet",
      "avatar": "https://www.gravatar.com/avatar/4546427c28f29c34fe095c40c137ef35?d=identicon\u0026s=64",
      "cl": "D314650",
      "clUrl": "https://phabricator.services.mozilla.com/D314650",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314650",
      "email": "calixte.denizet@gmail.com",
      "hash": "9d5253adaba4cab7f6d9515650b15002888d163f",
      "subject": "Bug 2058436 - Enable pdf digital signature verification by default for nightly only r=nkulatova"
    },
    "D314651": {
      "author": "Krist Baliev",
      "avatar": "https://www.gravatar.com/avatar/9144471bc03d7f5e8103c28b824b8f31?d=identicon\u0026s=64",
      "cl": "D314651",
      "clUrl": "https://phabricator.services.mozilla.com/D314651",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314651",
      "email": "kbaliev@mozilla.com",
      "hash": "c9804ff01a34b4b8c0ca63057612157b0f5e03fe",
      "subject": "Bug 2058492 - Replace current CPM search input with moz-input-search. r=mtigley,credential-management-reviewers"
    },
    "D314656": {
      "author": "Ben Hearsum",
      "avatar": "https://www.gravatar.com/avatar/7bb9fa0687c2864f6d7ccf2c3b68a6a1?d=identicon\u0026s=64",
      "cl": "D314656",
      "clUrl": "https://phabricator.services.mozilla.com/D314656",
      "description": "This contains a breaking change for landoscript payloads containing a `tag` action which will be addressed elsewhere in this stack.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314656",
      "email": "ben@mozilla.com",
      "hash": "2704895c960bc752d246d7b56df8e1874a8979a2",
      "subject": "Bug 2055645: pre: upgrade mozilla-taskgraph to 5.0.0 r=releng-reviewers,ahal"
    },
    "D314660": {
      "author": "Ben Hearsum",
      "avatar": "https://www.gravatar.com/avatar/7bb9fa0687c2864f6d7ccf2c3b68a6a1?d=identicon\u0026s=64",
      "cl": "D314660",
      "clUrl": "https://phabricator.services.mozilla.com/D314660",
      "description": "This version of taskgraph contains https://github.com/taskcluster/taskgraph/pull/1008, which avoids nested ProcessPoolExecutors, and minimizes the chance of OOMing when running `./mach taskgraph` with multiple sets of parameters at once.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314660",
      "email": "ben@mozilla.com",
      "hash": "197b50d3311842c71c8f150d8189659b23bebf71",
      "subject": "Bug 2058501: pick up taskgraph 24.2.1 r=taskgraph-reviewers,ahal"
    },
    "D314661": {
      "author": "Mike Hommey",
      "avatar": "https://www.gravatar.com/avatar/5d5f37905f36ca9989f88861a702cff3?d=identicon\u0026s=64",
      "cl": "D314661",
      "clUrl": "https://phabricator.services.mozilla.com/D314661",
      "description": "We had a \"freeze\" policy for toolchains somehow only documented in the\nRust update policy. It used to be tied to the Soft-freezes, which were\ndiscontinued in February, but extended through the use of the string\nfreeze dates.\n\nThe general rule was that toolchains ought to be frozen 7 days before\nthe soft-freeze, which itself was 4-5 days before the merge day. That\nworked out fine when release cycles were 4 weeks, because it left a\nwindow of more than 2 weeks to update toolchains.\n\nBut with 2-week release cycles, the same rule would leave us with only\na 2-3 day window, which is too short.\n\nSo we take a middle ground, whereby we make the new toolchain freeze\nlast 7 days until merge day, leaving us with a 7-day window to update\ntoolchains within the 2-week release cycle framework.\n\nWhile here, remove the historic version data for rust releases, keeping\nthe relevant versions for the latest release and still maintained ESRs,\nand update with the new release schedule.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314661",
      "email": "mh+mozilla@glandium.org",
      "hash": "c53dfb48f9fe2ca47ee7077311922ffd3366e915",
      "subject": "Bug 2058512 - Update toolchain update policy documents to account for the 2-week release cycles. r=firefox-build-system-reviewers,ahochheiden"
    },
    "D314676": {
      "author": "Leo Tenenbaum",
      "avatar": "https://www.gravatar.com/avatar/191826fbebe3973ebd6d6eb595ddb5c2?d=identicon\u0026s=64",
      "cl": "D314676",
      "clUrl": "https://phabricator.services.mozilla.com/D314676",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314676",
      "email": "ltenenbaum@mozilla.com",
      "hash": "32b577420288671b40a16e616dd5c43f699762df",
      "subject": "Bug 2057769 - Don't ignore tabindex if nothing is focusable after selection inside focused content. r=edgar"
    },
    "D314689": {
      "author": "Matthew Gaudet",
      "avatar": "https://www.gravatar.com/avatar/0c4c6c72545e010e29e8da0e3bb229ee?d=identicon\u0026s=64",
      "cl": "D314689",
      "clUrl": "https://phabricator.services.mozilla.com/D314689",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314689",
      "email": "mgaudet@mozilla.com",
      "hash": "5e068145631dcb605e3339b648c965dacd61da46",
      "subject": "Bug 2057635 - Widen the js::NumberMod integer fast path from Int32 to Int64. r=iain"
    },
    "D314690": {
      "author": "Matthew Gaudet",
      "avatar": "https://www.gravatar.com/avatar/0c4c6c72545e010e29e8da0e3bb229ee?d=identicon\u0026s=64",
      "cl": "D314690",
      "clUrl": "https://phabricator.services.mozilla.com/D314690",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314690",
      "email": "mgaudet@mozilla.com",
      "hash": "4c137f63cfd9b2fa3aa2bef9fb54aa034498e628",
      "subject": "Bug 2057635 - Inline an integer fast path for LModD. r=iain"
    },
    "D314708": {
      "author": "Jonathan Kew",
      "avatar": "https://www.gravatar.com/avatar/3982a397275d6e1f078a70157c2dcb8a?d=identicon\u0026s=64",
      "cl": "D314708",
      "clUrl": "https://phabricator.services.mozilla.com/D314708",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314708",
      "email": "jkew@mozilla.com",
      "hash": "f7a73787a92134db5697f2d21f3e3e73d5925dab",
      "subject": "Bug 2057808 - Check format 4 subtable length. r=gfx-reviewers,lsalzman"
    },
    "D314709": {
      "author": "Jonathan Kew",
      "avatar": "https://www.gravatar.com/avatar/3982a397275d6e1f078a70157c2dcb8a?d=identicon\u0026s=64",
      "cl": "D314709",
      "clUrl": "https://phabricator.services.mozilla.com/D314709",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314709",
      "email": "jkew@mozilla.com",
      "hash": "67ef6f6c26b3ab3c424d1166bf9971c653167aaa",
      "subject": "Bug 2057808 - Zero newly-allocated range. r=gfx-reviewers,lsalzman"
    },
    "D314710": {
      "author": "longsonr",
      "avatar": "https://www.gravatar.com/avatar/c5d912dac5c74b47bbaff7164f5f8bb8?d=identicon\u0026s=64",
      "cl": "D314710",
      "clUrl": "https://phabricator.services.mozilla.com/D314710",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314710",
      "email": "longsonr@gmail.com",
      "hash": "5d10c983dd794f04db0e6ae9ca103a2dd5f3de72",
      "subject": "Bug 2058578 - Add HyperlinkElementUtils interface to SVGAElement r=emilio,webidl"
    },
    "D314721": {
      "author": "Ben Hearsum",
      "avatar": "https://www.gravatar.com/avatar/7bb9fa0687c2864f6d7ccf2c3b68a6a1?d=identicon\u0026s=64",
      "cl": "D314721",
      "clUrl": "https://phabricator.services.mozilla.com/D314721",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314721",
      "email": "ben@mozilla.com",
      "hash": "a045f0dc63e9b64ff91269c6c23e92de63daf6bc",
      "subject": "Bug 2058594: optimize partial MAR operation order to minimize the chance of crashes r=yjuglaret,releng-reviewers,hneiva,cdupuis"
    },
    "D314727": {
      "author": "Leo Tenenbaum",
      "avatar": "https://www.gravatar.com/avatar/191826fbebe3973ebd6d6eb595ddb5c2?d=identicon\u0026s=64",
      "cl": "D314727",
      "clUrl": "https://phabricator.services.mozilla.com/D314727",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314727",
      "email": "ltenenbaum@mozilla.com",
      "hash": "4489638f733deee9539fdcd814414e85bfec802a",
      "subject": "Bug 2054665 - r=edgar"
    },
    "D314732": {
      "author": "alastor0325",
      "avatar": "https://www.gravatar.com/avatar/7d8bcf82fc298508ec29373ad5eefccf?d=identicon\u0026s=64",
      "cl": "D314732",
      "clUrl": "https://phabricator.services.mozilla.com/D314732",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314732",
      "email": "alastor0325@gmail.com",
      "hash": "86101509f7626ef7eee7d817b2a13a38f655eaa6",
      "subject": "Bug 2057991 - Update asynchronous promise handling in MFCDMChild. r=media-playback-reviewers,padenot"
    },
    "D314742": {
      "author": "Kelly Cochrane",
      "avatar": "https://www.gravatar.com/avatar/f989c265f3463d5df9e699d0dca074b0?d=identicon\u0026s=64",
      "cl": "D314742",
      "clUrl": "https://phabricator.services.mozilla.com/D314742",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314742",
      "email": "kcochrane@mozilla.com",
      "hash": "d573d849c063353bda3a67541ab219c8a548773a",
      "subject": "Bug 2058569 - Update gUIDensity.AUTO_COMPACT_REFERENCE_TABSTRIP_HEIGHT to 36 r=nsharpley"
    },
    "D314745": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/9f64a3c43c01820fd6be6b1ee3f326e1?d=identicon\u0026s=64",
      "cl": "D314745",
      "clUrl": "https://phabricator.services.mozilla.com/D314745",
      "description": "Interrupting a session suspends its audible sources, which makes the browsing\ncontext inaudible. The audibility-derived state update treated that as the page\ngoing quiet, so it replaced `interrupted` with `inactive` and then pruned the\nrecord, leaving the restore nothing to re-activate. Content observed a spurious\n`inactive` state, and the session only returned to `active` later when playback\nresumed, rather than through the restore.\n\nIgnore audibility changes for a context whose sources the interruption\nsuspended, so the record keeps its state and audibility until focus returns.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314745",
      "email": "alwu@mozilla.com",
      "hash": "f9fdd36c6a22f3c1f2b667641aa21520786555fc",
      "subject": "Bug 2058637 - Hold a transiently interrupted audio session across the suspension it causes. r=media-playback-reviewers,azebrowski"
    },
    "D314757": {
      "author": "David Shin",
      "avatar": "https://www.gravatar.com/avatar/65d83535f94ada6020fd3ae8b01f78f9?d=identicon\u0026s=64",
      "cl": "D314757",
      "clUrl": "https://phabricator.services.mozilla.com/D314757",
      "description": "Two simple fixes:\n\n* Scroll container frame lookup should use the pseudo-element, not the\n  originating element.\n* When eager pseudos get created, if the pseudo specifies a named timeline,\n  force a style traversal. We could plumb the sequential task for updating\n  timelines, but this is simpler, even though it causes a mostly-unnecessary\n  style traversal.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314757",
      "email": "dshin@mozilla.com",
      "hash": "eb82ee7b73197cc04216b50ea5bafae916ae12e3",
      "subject": "Bug 2058585: Support pseudo-elements becoming a named timeline. r=layout-scroll-driven-animation-reviewers,firefox-style-system-reviewers,boris,emilio"
    },
    "D314759": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314759",
      "clUrl": "https://phabricator.services.mozilla.com/D314759",
      "description": "The distinct early and late beta periods are being phased out (bug 2051729). EARLY_BETA_OR_EARLIER is\nnow defined exactly when NIGHTLY_BUILD is, keyed off the milestone rather than the app's display\nversion. This also eliminates the need for build/defines.sh, which was previously used to control\nthis define.\n\n--as-milestone gains a \"beta\" value; \"early-beta\" and \"late-beta\" are kept as deprecated aliases so\nthat existing mozconfigs keep working.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314759",
      "email": "rvandermeulen@mozilla.com",
      "hash": "937fca8523304be195dc207171c2bc8b21c411aa",
      "subject": "Bug 2052050 - Redefine EARLY_BETA_OR_EARLIER as NIGHTLY_BUILD. r=firefox-build-system-reviewers,glandium"
    },
    "D314760": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314760",
      "clUrl": "https://phabricator.services.mozilla.com/D314760",
      "description": "Its only job was rewriting build/defines.sh mid-beta-cycle, which no longer exists now that\nEARLY_BETA_OR_EARLIER is defined as NIGHTLY_BUILD.\n\nThe behavior remains implemented in landoscript; this only removes the in-tree configuration that\nused it.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314760",
      "email": "rvandermeulen@mozilla.com",
      "hash": "7187a54bc9f14fa295a65f4f97d3519a4442b3c4",
      "subject": "Bug 2052050 - Retire the early-to-late-beta merge automation. r=releng-reviewers,taskgraph-reviewers,bhearsum"
    },
    "D314762": {
      "author": "Mark Banner",
      "avatar": "https://www.gravatar.com/avatar/97526b10278bf7be90be23244678debe?d=identicon\u0026s=64",
      "cl": "D314762",
      "clUrl": "https://phabricator.services.mozilla.com/D314762",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314762",
      "email": "standard8@mozilla.com",
      "hash": "9dd18e56c4ceafd3fb7e94501049281dbbc5c7d2",
      "subject": "Bug 2058536 - Ensure default engine changed notifications for search engines are only sent when something has changed. r=search-reviewers,scunnane"
    },
    "D314763": {
      "author": "Jonathan Kew",
      "avatar": "https://www.gravatar.com/avatar/3982a397275d6e1f078a70157c2dcb8a?d=identicon\u0026s=64",
      "cl": "D314763",
      "clUrl": "https://phabricator.services.mozilla.com/D314763",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314763",
      "email": "jkew@mozilla.com",
      "hash": "a2a26d27c6013b5e38e26e31038e63a820637223",
      "subject": "Bug 2053582 - Mask invalid values in SetCanBreakBefore. r=gfx-reviewers,lsalzman,shravanrn"
    },
    "D314764": {
      "author": "Jonathan Kew",
      "avatar": "https://www.gravatar.com/avatar/3982a397275d6e1f078a70157c2dcb8a?d=identicon\u0026s=64",
      "cl": "D314764",
      "clUrl": "https://phabricator.services.mozilla.com/D314764",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314764",
      "email": "jkew@mozilla.com",
      "hash": "67319082a52e2f8180ff51c93cce8863ef5ffacd",
      "subject": "Bug 2053582 - Pass glyph count in to GetDetailedGlyphs. r=gfx-reviewers,lsalzman,shravanrn"
    },
    "D314765": {
      "author": "Jonathan Kew",
      "avatar": "https://www.gravatar.com/avatar/3982a397275d6e1f078a70157c2dcb8a?d=identicon\u0026s=64",
      "cl": "D314765",
      "clUrl": "https://phabricator.services.mozilla.com/D314765",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314765",
      "email": "jkew@mozilla.com",
      "hash": "00adefbfbe6251e545322fde909f00b4954063b1",
      "subject": "Bug 2053582 - Strengthen offset validation in gfxGraphiteShaper. r=gfx-reviewers,lsalzman,shravanrn"
    },
    "D314767": {
      "author": "Shane Hughes",
      "avatar": "https://www.gravatar.com/avatar/ba91cc0ecb95bbfaa5af7ad2c1fe4f36?d=identicon\u0026s=64",
      "cl": "D314767",
      "clUrl": "https://phabricator.services.mozilla.com/D314767",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314767",
      "email": "shughes@mozilla.com",
      "hash": "643e24a2a8e4749bc41c515c6b19b14413469c2f",
      "subject": "Bug 2056604 - ASRouter to only ingest messages from one enrollment on non-coenrolling features. r=hanna_a,omc-reviewers"
    },
    "D314773": {
      "author": "Matthew Gaudet",
      "avatar": "https://www.gravatar.com/avatar/0c4c6c72545e010e29e8da0e3bb229ee?d=identicon\u0026s=64",
      "cl": "D314773",
      "clUrl": "https://phabricator.services.mozilla.com/D314773",
      "description": "convertDoubleToPtr's contract is that either dest holds the exact integer\nvalue of src, or we branch to fail.\n\narm64 instead pairs the saturating Fcvtzs with a convert-back-and-compare\ncheck, and those two don't compose for the 64-bit case: INT64_MAX is not\nrepresentable as a double, so Scvtf rounds it back up to exactly 2^63 and the\ncomparison can't distinguish a saturated result from an exact one. An input of\n2^63 therefore passes the check and yields INT64_MAX.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314773",
      "email": "mgaudet@mozilla.com",
      "hash": "f361344238f848fae372a8f9d78e32d687262e3b",
      "subject": "Bug 2057635 - Reject the saturated result in the arm64 convertDoubleToPtr. r=iain"
    },
    "D314774": {
      "author": "Hiroyuki Ikezoe",
      "avatar": "https://www.gravatar.com/avatar/9ec516861853d265a973cd0ef66735cf?d=identicon\u0026s=64",
      "cl": "D314774",
      "clUrl": "https://phabricator.services.mozilla.com/D314774",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314774",
      "email": "hikezoe.birchill@mozilla.com",
      "hash": "f1c7b829af5bac5abd7641c3d581b84a74e9eb3c",
      "subject": "Bug 2058721 - Avoid reentrant calls of afterpaint function in helper_doubletap_zoom_smooth.html. r=tnikkel"
    },
    "D314775": {
      "author": "Hiroyuki Ikezoe",
      "avatar": "https://www.gravatar.com/avatar/9ec516861853d265a973cd0ef66735cf?d=identicon\u0026s=64",
      "cl": "D314775",
      "clUrl": "https://phabricator.services.mozilla.com/D314775",
      "description": "With the original 65px offset, the place might be out of the viewport.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314775",
      "email": "hikezoe.birchill@mozilla.com",
      "hash": "cf13a1c9d10831d12e2d88d8c56caf7983f2988e",
      "subject": "Bug 2058721 - Double tap on a place close to the `target2`. r=tnikkel"
    },
    "D314787": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314787",
      "clUrl": "https://phabricator.services.mozilla.com/D314787",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314787",
      "email": "rvandermeulen@mozilla.com",
      "hash": "6b91bdbb0ba9318903e07d273f32250ae66ea029",
      "subject": "Bug 2058739 - Update Okio to version 3.18.1. r=android-reviewers,adhingra"
    },
    "D314788": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314788",
      "clUrl": "https://phabricator.services.mozilla.com/D314788",
      "description": "This release includes the fix for CVE-2026-59171. Only the build-time apksize plugin uses org.json, and\nonly to serialize, so no parser-side configuration is needed.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314788",
      "email": "rvandermeulen@mozilla.com",
      "hash": "23cdf60a3b944e09fdf7fdb47c8b5f660adcf962",
      "subject": "Bug 2058739 - Update JSON-java to version 20260719. r=android-reviewers,adhingra"
    },
    "D314789": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314789",
      "clUrl": "https://phabricator.services.mozilla.com/D314789",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314789",
      "email": "rvandermeulen@mozilla.com",
      "hash": "673240ce6835a2dfd45d657c5fa8e09cf55a7abb",
      "subject": "Bug 2058739 - Update Sentry to version 8.50.1. r=android-reviewers,adhingra"
    },
    "D314790": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314790",
      "clUrl": "https://phabricator.services.mozilla.com/D314790",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314790",
      "email": "rvandermeulen@mozilla.com",
      "hash": "38d822e2983e7c97dbcade9153487fd00d99b24a",
      "subject": "Bug 2058739 - Update JNA to version 5.19.1. r=android-reviewers,adhingra"
    },
    "D314791": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314791",
      "clUrl": "https://phabricator.services.mozilla.com/D314791",
      "description": "Also drop the comment about keeping the version in sync with application-services, which no longer holds.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314791",
      "email": "rvandermeulen@mozilla.com",
      "hash": "db0b219247ebdc2583125f6593d267fbf4dcaec2",
      "subject": "Bug 2058739 - Update Protobuf to version 4.35.1. r=android-reviewers,adhingra"
    },
    "D314792": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314792",
      "clUrl": "https://phabricator.services.mozilla.com/D314792",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314792",
      "email": "rvandermeulen@mozilla.com",
      "hash": "3b0fefe145e6ec45964e464426c817ddfac44991",
      "subject": "Bug 2058739 - Update Spotless to version 8.9.0. r=android-reviewers,adhingra"
    },
    "D314793": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314793",
      "clUrl": "https://phabricator.services.mozilla.com/D314793",
      "description": "3.18.0 isolates the plugin's kotlin-metadata-jvm usage to workers and downgrades the Kotlin version it uses,\nwhich is what previously kept us on 3.12.0. Note 3.17.0 made the binary-compatibility check opt-in, so it now\ndefaults to off.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314793",
      "email": "rvandermeulen@mozilla.com",
      "hash": "e18cf5d0910ef3f2360edaefb9cbb1583e4ff35a",
      "subject": "Bug 2058739 - Update DAGP to version 3.18.0. r=android-reviewers,adhingra"
    },
    "D314794": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314794",
      "clUrl": "https://phabricator.services.mozilla.com/D314794",
      "description": "0.7.6 deprecated the String overloads of MarkdownParser in favour of CharSequence ones, and deprecated the\nconstructors that don't take a CancellationToken. Since android-components compiles with -Werror, adapt the\nrichtext parser: thread CharSequence through the parsing helpers and pass the cancellation token explicitly.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314794",
      "email": "rvandermeulen@mozilla.com",
      "hash": "61b7a1f629a783d533c1f7c2a2a545641b3647ac",
      "subject": "Bug 2058741 - Update intellij-markdown to version 0.7.8. r=android-reviewers,adhingra"
    },
    "D314795": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D314795",
      "clUrl": "https://phabricator.services.mozilla.com/D314795",
      "description": "The GenerativeModel interface gained typed content generation and several feature-availability checks, and\ndropped its ListenableFuture-based variants, so update the test fake to match.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314795",
      "email": "rvandermeulen@mozilla.com",
      "hash": "26e63c9e42a99a08ab8d6d77e178f8ee1db7807a",
      "subject": "Bug 2058742 - Update ML Kit GenAI Prompt API to version 1.0.0-beta4. r=android-reviewers,matt-tighe"
    },
    "D314810": {
      "author": "Drew Willcoxon",
      "avatar": "https://www.gravatar.com/avatar/fa60148022a230fe1bacc441549b1c66?d=identicon\u0026s=64",
      "cl": "D314810",
      "clUrl": "https://phabricator.services.mozilla.com/D314810",
      "description": "This adds manifests that specifically disable Nova to ensure that both Nova and\nProton remain tested regardless of whether Nova is enabled by default.\n\nI renamed the `browserNova.toml` files `browser-nova.toml` because I think\nthat's a little nicer to read.\n\nOnce Nova is enabled by default on all channels and we don't need Proton\ncoverage anymore, we can:\n\n1. Remove all `browser-nova.toml` and `browser-proton.toml` files\n2. Update `BROWSER_CHROME_MANIFESTS` in `moz.build` so it includes the usual\n   `browser.toml` files\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314810",
      "email": "adw@mozilla.com",
      "hash": "c99a42be0b72e3b7399bb8bb611b45151e52db35",
      "subject": "Bug 2058773 - Make sure urlbar tests run with and without Nova now that Nova is enabled by default on Nightly. r=daisuke,urlbar-reviewers"
    },
    "D314813": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D314813",
      "clUrl": "https://phabricator.services.mozilla.com/D314813",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314813",
      "email": "rjesup@mozilla.com",
      "hash": "471b6f0ad19688eb12f7798f9d1ceb5d35bb5a06",
      "subject": "Bug 2007165: Expose WebTransportSendGroup r=webidl,dom-worker-reviewers,emilio,edenchuang"
    },
    "D314814": {
      "author": "Randell Jesup",
      "avatar": "https://www.gravatar.com/avatar/707a3249883bc1c42dbd54339c8daf44?d=identicon\u0026s=64",
      "cl": "D314814",
      "clUrl": "https://phabricator.services.mozilla.com/D314814",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314814",
      "email": "rjesup@mozilla.com",
      "hash": "cccf383abbebc2ebe38ef3ddc51af6caf04be831",
      "subject": "Bug 2007174: Add WebTransportDatagramsWritable to interface exposure lists r=webidl,dom-worker-reviewers,emilio,edenchuang"
    },
    "D314830": {
      "author": "Hiroyuki Ikezoe",
      "avatar": "https://www.gravatar.com/avatar/9ec516861853d265a973cd0ef66735cf?d=identicon\u0026s=64",
      "cl": "D314830",
      "clUrl": "https://phabricator.services.mozilla.com/D314830",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314830",
      "email": "hikezoe.birchill@mozilla.com",
      "hash": "9b2306754bebd107c73ffc3464842edae3a3723d",
      "subject": "Bug 2058791 - Restore the scroll offset as well as the resolution in helper_doubletap_zoom_oopif-2.html. r=tnikkel"
    },
    "D314831": {
      "author": "Hiroyuki Ikezoe",
      "avatar": "https://www.gravatar.com/avatar/9ec516861853d265a973cd0ef66735cf?d=identicon\u0026s=64",
      "cl": "D314831",
      "clUrl": "https://phabricator.services.mozilla.com/D314831",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314831",
      "email": "hikezoe.birchill@mozilla.com",
      "hash": "cd2e7572edec6b75872221f71532b58a487c867b",
      "subject": "Bug 2058189 - Re-enable test_group_double_tap_zoom-2.html with Nova. r=tnikkel"
    },
    "D314832": {
      "author": "alin lastun",
      "avatar": "https://www.gravatar.com/avatar/59aa98683e895ba24835ab02aad86938?d=identicon\u0026s=64",
      "cl": "D314832",
      "clUrl": "https://phabricator.services.mozilla.com/D314832",
      "description": "Move `IPProtectionAction.ProxyActiveShown` dispatch to `onAnimationStarted` callback in `CustomTabBrowserToolbarMiddleware`.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314832",
      "email": "alastun@mozilla.com",
      "hash": "5283b464541d12a8c1c3762ed438e3eadb19879c",
      "subject": "Bug 2058401 - Fix VPN animation for Custom Tabs r=android-reviewers,twhite"
    },
    "D314834": {
      "author": "Jan Varga",
      "avatar": "https://www.gravatar.com/avatar/d0903078e50c5ff651923837464991d8?d=identicon\u0026s=64",
      "cl": "D314834",
      "clUrl": "https://phabricator.services.mozilla.com/D314834",
      "description": "Apply cargo fmt to existing code to reduce unrelated formatting changes in\nfollow-up patches.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314834",
      "email": "jvarga@igalia.com",
      "hash": "abcb2cb48be643fa92567593ac9629c279381f3a",
      "subject": "Bug 2057579 - Apply cargo fmt; r=emilio,firefox-style-system-reviewers"
    },
    "D314836": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D314836",
      "clUrl": "https://phabricator.services.mozilla.com/D314836",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314836",
      "email": "sylvestre@debian.org",
      "hash": "28cc1260439cee77d7ed6230e620d6ae0c5ca18b",
      "subject": "Bug 2058809 - Update sccache to 0.17.0 r=firefox-build-system-reviewers,glandium"
    },
    "D314838": {
      "author": "Drew Willcoxon",
      "avatar": "https://www.gravatar.com/avatar/fa60148022a230fe1bacc441549b1c66?d=identicon\u0026s=64",
      "cl": "D314838",
      "clUrl": "https://phabricator.services.mozilla.com/D314838",
      "description": "This updates all the SVGs so that the paths and masks are scaled (from 24 to 20\nunits) and shifted over more toward the corner. Doing it this way turned out to\nbe a lot simpler than updating the CSS, which I did try at first. Plus, whenever\nthese are redrawn to the new smaller size, we should be able to just swap out\nthe SVGs, or at least the paths in them, without having to touch the CSS.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314838",
      "email": "adw@mozilla.com",
      "hash": "141cd5d3c37c81861152a023399ce2514b9fd81f",
      "subject": "Bug 2058817 - [Nova] Draw favicon badges at a slightly smaller size. r=dao,desktop-theme-reviewers,urlbar-reviewers"
    },
    "D314841": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D314841",
      "clUrl": "https://phabricator.services.mozilla.com/D314841",
      "description": "The sibling dmgInstallHelper.md is already Markdown; this converts the\nlast RST file in that documentation tree.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314841",
      "email": "sylvestre@debian.org",
      "hash": "b7d808f39dd6b41e7ea17750f1b0604f2b3d302f",
      "subject": "Bug 2038819 - Convert toolkit/mozapps/dmgInstallHelper docs index to Markdown r=firefox-build-system-reviewers,ahochheiden"
    },
    "D314842": {
      "author": "Sylvestre Ledru",
      "avatar": "https://www.gravatar.com/avatar/fb0fd07485efdfc05e02987075fdbab0?d=identicon\u0026s=64",
      "cl": "D314842",
      "clUrl": "https://phabricator.services.mozilla.com/D314842",
      "description": "The RST documentation has been converted to Markdown, so the fixture\nshould use a file type that still exists in the tree.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314842",
      "email": "sylvestre@debian.org",
      "hash": "968b6c33c1c1786b6517a9364d726b22b0967460",
      "subject": "Bug 2038819 - Rename the codespell lint fixture from .rst to .md"
    },
    "D314845": {
      "author": "Julian Seward",
      "avatar": "https://www.gravatar.com/avatar/5edb95922c89f29d92b7febcba5669de?d=identicon\u0026s=64",
      "cl": "D314845",
      "clUrl": "https://phabricator.services.mozilla.com/D314845",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314845",
      "email": "jseward@acm.org",
      "hash": "469f25e72ab31369a3d1f1c91974308fbc213491",
      "subject": "Bug 2058654.  r=jandem."
    },
    "D314854": {
      "author": "Alexandra Borovova",
      "avatar": "https://www.gravatar.com/avatar/b5f1ef97b56e8d368128ed4a4206a6ff?d=identicon\u0026s=64",
      "cl": "D314854",
      "clUrl": "https://phabricator.services.mozilla.com/D314854",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314854",
      "email": "aborovova@mozilla.com",
      "hash": "e9226a5eee5402f83199a7eff84e4959d12ad6e4",
      "subject": "Bug 2058762 - Update metadata for permissions/crashtests/permissions-query.any.js."
    },
    "D314855": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D314855",
      "clUrl": "https://phabricator.services.mozilla.com/D314855",
      "description": "Doing this creates problems because the GC assumes that a container can't be\nboth grow and be freed in the same GC cycle (because if it is freed then there\nwere no references to it and so nothing could access it to grow it).\n\nUnfortuantely this is baked in to the memory tracking. The simplest thing to do\nhere is to not count this memory against the zone. In most cases it is\ntransient anyway: finalization registry records are added to it during sweeping\nand then removed when they have been passed to the callback.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314855",
      "email": "jcoppeard@mozilla.com",
      "hash": "ae6cef69e126ab39b84d88fb72eb6b2257715234",
      "subject": "Bug 2057460 - Don't track memory for queued finalization registry records against the zone r=spidermonkey-reviewers,jandem"
    },
    "D314856": {
      "author": "Alexandra Borovova",
      "avatar": "https://www.gravatar.com/avatar/b5f1ef97b56e8d368128ed4a4206a6ff?d=identicon\u0026s=64",
      "cl": "D314856",
      "clUrl": "https://phabricator.services.mozilla.com/D314856",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314856",
      "email": "aborovova@mozilla.com",
      "hash": "14f47542619728e623df5e6e3c1ccbdbd0359263",
      "subject": "Bug 2058763 - Update metadata for css/css-overscroll-behavior/overscroll-behavior.html."
    },
    "D314907": {
      "author": "Delia Pop",
      "avatar": "https://www.gravatar.com/avatar/9bc6f69101aaf2750dbd3cfc9d6b37d8?d=identicon\u0026s=64",
      "cl": "D314907",
      "clUrl": "https://phabricator.services.mozilla.com/D314907",
      "description": "Converted the verifyTheMainMenuBackButtonLongPressTest and verifyTheMainMenuForwardButtonLongPressTest UI tests to the efficiency framework.\n\nThe new UI tests successfully passed 25x on Firebase. [[ https://treeherder.mozilla.org/jobs?repo=try\u0026landoInstance=lando-prod-2025\u0026landoCommitID=72788 | Try ]]\n\nAll efficiency UI tests successfully passed 1x on Firebase. [[ https://treeherder.mozilla.org/jobs?repo=try\u0026landoInstance=lando-prod-2025\u0026landoCommitID=72790  | Try ]]\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314907",
      "email": "dpop@mozilla.com",
      "hash": "368e314c9162c4f0bbc5861127fd50c225f9be37",
      "subject": "Bug 2058469 - Migrate verifyTheMainMenuBackButtonLongPressTest and verifyTheMainMenuForwardButtonLongPressTest UI tests to the efficiency framework r=aaronmt"
    },
    "D314909": {
      "author": "Tom Schuster",
      "avatar": "https://www.gravatar.com/avatar/643f0847a3bf01b6ac23263f1661d14e?d=identicon\u0026s=64",
      "cl": "D314909",
      "clUrl": "https://phabricator.services.mozilla.com/D314909",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314909",
      "email": "tschuster@mozilla.com",
      "hash": "071049fcca0f1dae26706922b3a848aed49206b1",
      "subject": "Bug 2058891 - Make #hash based content selection work on about:policies. r=mkaply"
    },
    "D314912": {
      "author": "Emma Zuehlcke",
      "avatar": "https://www.gravatar.com/avatar/46f58cc04758e80835820f0f1d5646bb?d=identicon\u0026s=64",
      "cl": "D314912",
      "clUrl": "https://phabricator.services.mozilla.com/D314912",
      "description": "browser_popupNotification_security_delay.js was skipped on linux 22.04 opt with\nthe Nova design enabled, but Nova is incidental: `mach manifest skip-fails`\nderives its condition from the failing job's mozinfo, and every linux2204\nbrowser-chrome platform is Wayland with Nova on by default. A control run with\nbrowser.nova.enabled=false fails identically.\n\ntest_notificationWindowMove calls window.moveTo() and then waits for the panel's\n\"popuppositioned\" event. On Wayland a client can't position its own toplevel, so\nthe gtk_window_move() in nsWindow::NativeMoveResize does nothing, the panel's\nscreen rect never changes, nsMenuPopupFrame never dispatches the event, and the\ntest times out.\n\nSkip that task on Wayland, as browser_popup_linux_move.js already does for window\nmoves, and drop the manifest skip so the other three tasks run there again.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314912",
      "email": "emz@mozilla.com",
      "hash": "fccde1fb92745ea6dd030bf1ce6d5c03122a1603",
      "subject": "Bug 2057530 - Skip the PopupNotification window-move security delay test on Wayland. r=firefox-desktop-core-reviewers ,Gijs"
    },
    "D314940": {
      "author": "Nazım Can Altınova",
      "avatar": "https://www.gravatar.com/avatar/6ec3894dd8f6c79bebd9110120332aa9?d=identicon\u0026s=64",
      "cl": "D314940",
      "clUrl": "https://phabricator.services.mozilla.com/D314940",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314940",
      "email": "canaltinova@gmail.com",
      "hash": "d39c0f425a6ebe7cc35eea373f950fbcfebebb7f",
      "subject": "Bug 1904897 - Enable the signal profiling tests in debug since the JS leak is gone r=profiler-reviewers,mstange"
    },
    "D314956": {
      "author": "Nicolas Silva",
      "avatar": "https://www.gravatar.com/avatar/a375423648d373880fdd9e4eccc6b920?d=identicon\u0026s=64",
      "cl": "D314956",
      "clUrl": "https://phabricator.services.mozilla.com/D314956",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314956",
      "email": "nsilva@mozilla.com",
      "hash": "c3d051ab4d89118528ccdd54848f611f35a939e4",
      "subject": "Bug 2058912 - Add a webrender-wrench try preset. r=gfx-reviewers,wsmind"
    },
    "D314964": {
      "author": "Alex Cottner",
      "avatar": "https://www.gravatar.com/avatar/6dcf0c49714163287f4b35c28a0444d0?d=identicon\u0026s=64",
      "cl": "D314964",
      "clUrl": "https://phabricator.services.mozilla.com/D314964",
      "description": "This test is no longer valid as we're back down to having only 1 URL in `AppConstants.REMOTE_SETTINGS_SERVER_URLS`.\nIn D313612 I removed the v1 remote-settings server from , but missed removing this unit-test.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314964",
      "email": "acottner@mozilla.com",
      "hash": "052322c28f3d23234b4f6bf38985e76b0cf479d5",
      "subject": "Bug 2058906 - Removing secondary remote-settings server url test as we dropped v1 server from AppConstants r=leplatrem"
    },
    "D314966": {
      "author": "nirmaladvani",
      "avatar": "https://www.gravatar.com/avatar/a61e6ca34b9dfc93535b51aac017954c?d=identicon\u0026s=64",
      "cl": "D314966",
      "clUrl": "https://phabricator.services.mozilla.com/D314966",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D314966",
      "email": "nirmaladvani@live.com",
      "hash": "04410274d88b48d898ee34e9c0d578f1b56e8b4b",
      "subject": "Bug 2003177 - Remove unused dom.vr.controller.enumerate.interval pref. r=gregp"
    },
    "D314978": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D314978",
      "clUrl": "https://phabricator.services.mozilla.com/D314978",
      "description": "Do some clean-up while at it, and remove some checks that the caller\nalready does.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D314978",
      "email": "emilio@crisal.io",
      "hash": "e0da100669c053f2136b91424543a9cb0b49d947",
      "subject": "Bug 2052731 - Keep a few levels of style sharing cache around. r=firefox-style-system-reviewers,dshin"
    },
    "a57dcabf8c4c": {
      "author": "iulian moraru",
      "avatar": "https://www.gravatar.com/avatar/348b805af88f773829064778b66be468?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 13e1c72443c893ad3c3d8b1d793898af14b1fe2a.",
      "email": "imoraru@mozilla.com",
      "hash": "a57dcabf8c4c60afd804229693845d5d1cd3f6de",
      "subject": "Revert \"Bug 2057098. r=gfx-reviewers,bradwerth\" for causing windows build bustages on ScaledFontWin.cpp."
    },
    "d367ee047d76": {
      "author": "Alexandru Marc",
      "avatar": "https://www.gravatar.com/avatar/f90e8bfbc9c1383d73053a8809b77e48?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit a0b234446b4688a8c352f0e7a1dd78c5fc74e01e.",
      "email": "amarc@mozilla.com",
      "hash": "d367ee047d7657500e30df4c81ae6248c5156290",
      "subject": "Revert \"Bug 2046673 - Fix new sidebar: Tab key focuses individual history/bookmark items r=kcochrane,mstriemer\" for causing bc failures @ browser_history_keyboard_navigation"
    },
    "d72c1ebe72b1": {
      "author": "Serban Stanca",
      "avatar": "https://www.gravatar.com/avatar/977312186062f329a7e4302ab972ae7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit fc5694a02b1c03c2905232a2cf8cb9ddc3a64525.",
      "email": "sstanca@mozilla.com",
      "hash": "d72c1ebe72b1ad1bd98b2849dc3f75e440cf2f38",
      "subject": "Revert \"Bug 2054991 - Fix SEC_ERROR_CA_CERT_INVALID not recoverable in felt privacy r=crypto-reviewers,keeler\" for causing mochitests failures in browser_error_registry.js."
    },
    "def262bd5d4d": {
      "author": "Serban Stanca",
      "avatar": "https://www.gravatar.com/avatar/977312186062f329a7e4302ab972ae7b?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 630ac8bda815a81797f6435ade02817d813b0133.",
      "email": "sstanca@mozilla.com",
      "hash": "def262bd5d4daafa5de866478cf81a0a39e306c1",
      "subject": "Revert \"Bug 2058273 - Make sure newly added shared prefs are added to the shared database. r=mossop\" for causing mochitests failures in browser_preferences.js."
    }
  },
  "date": "2026-07-29",
  "days": 1,
  "generatedAt": "2026-07-29T22:07:33Z",
  "markdown": "## Highlights\n- **Web Platform** Firefox landed a big slice of WebTransport: datagram writable streams, send groups, draining, and sub-protocol negotiation, closing real API gaps for low-latency apps. [Phab D277251](https://phabricator.services.mozilla.com/D277251)\n- **Networking** Speculation Rules same-origin prefetch is now enabled on Nightly, including parser, actor, cache, and navigation plumbing for faster follow-up loads. [Phab D310767](https://phabricator.services.mozilla.com/D310767)\n- **Security** Opening `mailto:` without a prompt now requires user activation, cutting off a class of drive-by external-app launches. [Phab D312286](https://phabricator.services.mozilla.com/D312286)\n- **Media** Nightly now enables PDF digital signature verification by default, moving signed-document validation closer to real-world use. [Phab D314650](https://phabricator.services.mozilla.com/D314650)\n- **Perf** Stylo keeps several levels of style-sharing cache alive, a targeted win for repeated style resolution work. [Phab D314978](https://phabricator.services.mozilla.com/D314978)\n- **Rendering** JPEG decode work added CMYK swizzling formats, SIMD paths, tests, and decoder integration, improving correctness and throughput for CMYK images. [Phab D314427](https://phabricator.services.mozilla.com/D314427)\n- **A11y** about:welcome keyboard navigation got fixed so secondary top buttons now participate in the right focus order. [Phab D314460](https://phabricator.services.mozilla.com/D314460)\n- **Mobile** Android test infra keeps accelerating its \"efficiency\" migration with new selector tooling, screen-dump inspection, and a long list of converted UI flows. [Phab D314458](https://phabricator.services.mozilla.com/D314458)\n- **UI** Document Picture-in-Picture now exits fullscreen when opened, avoiding a weird overlapping presentation state. [Phab D309778](https://phabricator.services.mozilla.com/D309778)\n\n## What landed by area\n\n### Web Platform and DOM\n- **Web Platform** `createWritable()` landed on `WebTransportDatagramDuplexStream`, filling out the writable side of datagram transport. [Phab D277252](https://phabricator.services.mozilla.com/D277252)\n- **Web Platform** `WebTransportDatagramsWritable` was implemented in DOM. [Phab D277251](https://phabricator.services.mozilla.com/D277251)\n- **Web Platform** `WebTransportDatagramsWritable` exposure lists were wired up for the right globals. [Phab D314814](https://phabricator.services.mozilla.com/D314814)\n- **Web Platform** WPTs landed for `createWritable()`, giving the new surface conformance coverage. [Phab D280254](https://phabricator.services.mozilla.com/D280254)\n- **Web Platform** `WebTransportSendGroup` was implemented, adding explicit grouping control for outgoing transport streams. [Phab D277249](https://phabricator.services.mozilla.com/D277249)\n- **Web Platform** `WebTransportSendGroup` was exposed through WebIDL. [Phab D314813](https://phabricator.services.mozilla.com/D314813)\n- **Web Platform** DOM WebTransport send group support was hooked into necko and neqo. [Phab D313739](https://phabricator.services.mozilla.com/D313739)\n- **Web Platform** Send-group creation in the child process was made synchronous, tightening API behavior. [Phab D287635](https://phabricator.services.mozilla.com/D287635)\n- **Web Platform** The API hookup for neqo to create WebTransport send groups landed. [Phab D283488](https://phabricator.services.mozilla.com/D283488)\n- **Web Platform** Child-side support for creating send groups was wired end to end. [Phab D283489](https://phabricator.services.mozilla.com/D283489)\n- **Web Platform** `WebTransportSendStreamOptions` was updated to match the evolving model. [Phab D277253](https://phabricator.services.mozilla.com/D277253)\n- **Web Platform** The per-writable algorithm and `sendGroup`/`sendOrder` plumbing were fully connected. [Phab D286306](https://phabricator.services.mozilla.com/D286306)\n- **Web Platform** The `draining` promise attribute was added to `WebTransport`. [Phab D277248](https://phabricator.services.mozilla.com/D277248)\n- **Web Platform** Draining was fully connected from neqo, with `InvalidStateError` behavior added. [Phab D283487](https://phabricator.services.mozilla.com/D283487)\n- **Web Platform** WPT coverage landed for the WebTransport draining promise. [Phab D280257](https://phabricator.services.mozilla.com/D280257)\n- **Web Platform** The `protocols` option was added to `WebTransportOptions` in a partial DOM-first implementation. [Phab D277247](https://phabricator.services.mozilla.com/D277247)\n- **Web Platform** Sub-protocol negotiation was hooked up across the WebTransport stack. [Phab D287810](https://phabricator.services.mozilla.com/D287810)\n- **Web Platform** Negotiated protocol values are now pulled from neqo. [Phab D283483](https://phabricator.services.mozilla.com/D283483)\n- **Web Platform** Follow-up plumbing for WebTransport sub-protocol support landed. [Phab D283484](https://phabricator.services.mozilla.com/D283484)\n- **Web Platform** WPTs were updated for WebTransport sub-protocol negotiation. [Phab D287808](https://phabricator.services.mozilla.com/D287808)\n- **Web Platform** WebTransport hash members were made required, tightening API contract shape. [Phab D277246](https://phabricator.services.mozilla.com/D277246)\n- **Web Platform** `SVGAElement` gained `HyperlinkElementUtils`, improving SVG anchor behavior parity. [Phab D314710](https://phabricator.services.mozilla.com/D314710)\n- **Web Platform** The unimplemented option on `Services.scriptloader.loadSubScriptWithOptions` was removed. [Phab D313208](https://phabricator.services.mozilla.com/D313208)\n- **A11y** The pref for ARIA element reflection was removed, signaling the feature is no longer gated by that switch. [Phab D313147](https://phabricator.services.mozilla.com/D313147)\n- **Refactor** `RangeBoundaryBase::IsSetAndValid()` now uses the correct parent max-offset API. [Phab D314582](https://phabricator.services.mozilla.com/D314582)\n- **Refactor** A redundant null check after dereference in `NewXULOrHTMLElement` was dropped as part of Coverity cleanup. [Phab D314323](https://phabricator.services.mozilla.com/D314323)\n\n### Networking, loading, and privacy\n- **Networking** Speculation Rules got IPDL actor scaffolding for `PPrefetchRecord`. [Phab D302502](https://phabricator.services.mozilla.com/D302502)\n- **Networking** The `SpeculationRulesManager` skeleton landed. [Phab D302503](https://phabricator.services.mozilla.com/D302503)\n- **Networking** `Document` was integrated with `SpeculationRulesManager`. [Phab D302504](https://phabricator.services.mozilla.com/D302504)\n- **Networking** A `SpeculationRules` MOZ_LOG module and prefs landed to make the feature debuggable. [Phab D302505](https://phabricator.services.mozilla.com/D302505)\n- **Networking** Lifecycle logging was added for prefetch actors and the manager. [Phab D302506](https://phabricator.services.mozilla.com/D302506)\n- **Networking** `PrefetchRecordParent::Init()` and streaming interfaces were implemented. [Phab D302507](https://phabricator.services.mozilla.com/D302507)\n- **Networking** A cross-site redirect partition-key check landed for safer prefetch behavior. [Phab D302508](https://phabricator.services.mozilla.com/D302508)\n- **Networking** `RecvCancel`, actor-destroy handling, and a prefetch status stub were added. [Phab D302509](https://phabricator.services.mozilla.com/D302509)\n- **Networking** `OnStopRequest` completion and prefetch deduping landed. [Phab D302510](https://phabricator.services.mozilla.com/D302510)\n- **Networking** Navigation matching algorithms for speculation rules were implemented. [Phab D302512](https://phabricator.services.mozilla.com/D302512)\n- **Networking** An async `PrefetchMatchWaiter` landed for the wait algorithm. [Phab D302513](https://phabricator.services.mozilla.com/D302513)\n- **Networking** Navigation can now be served from the prefetch cache in `DocumentLoadListener`. [Phab D302514](https://phabricator.services.mozilla.com/D302514)\n- **Networking** `PerformanceNavigationTiming.deliveryType` now exposes `navigational-prefetch`. [Phab D302516](https://phabricator.services.mozilla.com/D302516)\n- **Networking** The DOM speculation-rules parser was integrated with prefetch actors and the manager. [Phab D302517](https://phabricator.services.mozilla.com/D302517)\n- **Networking** Channel creation now passes cookie-storage info in the prefetch parent. [Phab D302518](https://phabricator.services.mozilla.com/D302518)\n- **Networking** Same-origin Speculation Rules prefetch was enabled on Nightly. [Phab D310767](https://phabricator.services.mozilla.com/D310767)\n- **Privacy** Dead force-allow-cookies load flags were removed from docshell and web navigation APIs. [Phab D312650](https://phabricator.services.mozilla.com/D312650)\n- **Privacy** AutoConfig no longer reads from `/etc/firefox` when `--disable-system-preferences` is used. [Phab D314532](https://phabricator.services.mozilla.com/D314532)\n- **Privacy** Firefox Labs on Android is now allowed to \"ride the trains\", widening exposure to release channels. [Phab D310118](https://phabricator.services.mozilla.com/D310118)\n- **Privacy** The quicksuggest mock Remote Settings server gained signature mode support. [Phab D314557](https://phabricator.services.mozilla.com/D314557)\n- **Security** A felt-privacy recovery fix for `SEC_ERROR_CA_CERT_INVALID` landed, then proved unstable in tests. [Phab D314603](https://phabricator.services.mozilla.com/D314603)\n- **Security** Search default-engine change notifications now fire only when something actually changed. [Phab D314762](https://phabricator.services.mozilla.com/D314762)\n\n### Rendering, graphics, and images\n- **Rendering** Style sharing now keeps a few cache levels around instead of dropping them immediately. [Phab D314978](https://phabricator.services.mozilla.com/D314978)\n- **Rendering** Pseudo-elements can now become named timelines, extending scroll-driven animation support. [Phab D314757](https://phabricator.services.mozilla.com/D314757)\n- **Rendering** The NVIDIA block-linear modifier was restored with a reduced block height. [Phab D314220](https://phabricator.services.mozilla.com/D314220)\n- **Rendering** WebRender got a dedicated wrench try preset for graphics-focused testing. [Phab D314956](https://phabricator.services.mozilla.com/D314956)\n- **Rendering** Wrench gained support for running test cases at different device-pixel scales. [Phab D314014](https://phabricator.services.mozilla.com/D314014)\n- **Rendering** Wrench reference images can now vary per scale. [Phab D314024](https://phabricator.services.mozilla.com/D314024)\n- **Rendering** A helper test now restores scroll offset as well as resolution in double-tap zoom OOPIF coverage. [Phab D314830](https://phabricator.services.mozilla.com/D314830)\n- **Rendering** Another double-tap zoom helper now avoids reentrant `afterpaint` calls. [Phab D314774](https://phabricator.services.mozilla.com/D314774)\n- **Rendering** A nearby-target double-tap test was tightened up. [Phab D314775](https://phabricator.services.mozilla.com/D314775)\n- **Rendering** The Nova path re-enabled `test_group_double_tap_zoom-2.html`. [Phab D314831](https://phabricator.services.mozilla.com/D314831)\n- **Rendering** Font parsing now zeros newly allocated range data. [Phab D314709](https://phabricator.services.mozilla.com/D314709)\n- **Security** Font parsing now checks format 4 subtable length. [Phab D314708](https://phabricator.services.mozilla.com/D314708)\n- **Security** `gfxGraphiteShaper` got stronger offset validation. [Phab D314765](https://phabricator.services.mozilla.com/D314765)\n- **Rendering** `GetDetailedGlyphs` now takes glyph count explicitly. [Phab D314764](https://phabricator.services.mozilla.com/D314764)\n- **Rendering** Invalid values are now masked in `SetCanBreakBefore`. [Phab D314763](https://phabricator.services.mozilla.com/D314763)\n- **Rendering** `nsJPEGDecoder` switched to the new CMYK swizzling pipeline. [Phab D314427](https://phabricator.services.mozilla.com/D314427)\n- **Perf** CMYK swizzling got dedicated correctness and performance tests. [Phab D314426](https://phabricator.services.mozilla.com/D314426)\n- **Perf** SIMD CMYK swizzling variants landed. [Phab D314425](https://phabricator.services.mozilla.com/D314425)\n- **Rendering** A fallback CMYK swizzling implementation landed. [Phab D314423](https://phabricator.services.mozilla.com/D314423)\n- **Rendering** `SurfaceFormat` gained CMYK and inverted-CMYK formats. [Phab D314422](https://phabricator.services.mozilla.com/D314422)\n- **Rendering** Moz-icon protocol code now strips a leading period from placeholder file names before forwarding. [Phab D314600](https://phabricator.services.mozilla.com/D314600)\n- **GPU** WebRender cleanup removed leftover GPU-cache scaffolding. [Phab D314515](https://phabricator.services.mozilla.com/D314515)\n- **GPU** More unused `Device` methods were deleted. [Phab D314521](https://phabricator.services.mozilla.com/D314521)\n- **GPU** Orphaned clip methods from earlier removals were cleaned out. [Phab D314523](https://phabricator.services.mozilla.com/D314523)\n- **GPU** Sandbox rules now allow `/dev/udmabuf` in RDD for Vulkan DMA-BUF export. [Phab D314604](https://phabricator.services.mozilla.com/D314604)\n- **GPU** A graphics change under [bug 2050584](https://bugzilla.mozilla.org/show_bug.cgi?id=2050584) landed but was unstable enough to trigger multiple reverts. [Phab D313883](https://phabricator.services.mozilla.com/D313883)\n- **Rendering** Additional graphics work under [bug 2057098](https://bugzilla.mozilla.org/show_bug.cgi?id=2057098) landed after a brief bustage cycle. [Phab D314143](https://phabricator.services.mozilla.com/D314143)\n- **Rendering** Follow-on graphics work under [bug 2057103](https://bugzilla.mozilla.org/show_bug.cgi?id=2057103) also landed. [Phab D314204](https://phabricator.services.mozilla.com/D314204)\n- **Rendering** More graphics changes under [bug 2055056](https://bugzilla.mozilla.org/show_bug.cgi?id=2055056) landed in the same cluster. [Phab D312202](https://phabricator.services.mozilla.com/D312202)\n- **Rendering** Additional graphics work under [bug 2053607](https://bugzilla.mozilla.org/show_bug.cgi?id=2053607) landed as well. [Phab D311416](https://phabricator.services.mozilla.com/D311416)\n\n### Desktop UI, browser chrome, and onboarding\n- **UI** The bookmark bar now shows on Search-Windows New Tab based on user settings, and usage is tracked from that surface. [Phab D313903](https://phabricator.services.mozilla.com/D313903)\n- **UI** about:policies now supports `#hash`-based content selection. [Phab D314909](https://phabricator.services.mozilla.com/D314909)\n- **UI** The Add Container dialog size was fixed. [Phab D314267](https://phabricator.services.mozilla.com/D314267)\n- **UI** Doorhangers now show the current notification's contents if one replaces another while the panel is opening. [Phab D314475](https://phabricator.services.mozilla.com/D314475)\n- **A11y** Focus behavior no longer ignores `tabindex` when nothing is focusable after a selection inside focused content. [Phab D314676](https://phabricator.services.mozilla.com/D314676)\n- **A11y** The new sidebar made Tab focus individual history and bookmark items, though that change was later reverted for failures. [Phab D313049](https://phabricator.services.mozilla.com/D313049)\n- **UI** Nova draws favicon badges slightly smaller. [Phab D314838](https://phabricator.services.mozilla.com/D314838)\n- **UI** Nova `moz-toggle` hover and active styles were fixed. [Phab D313313](https://phabricator.services.mozilla.com/D313313)\n- **UI** The shield icon no longer starts with a check mark before tracker state is known, though that patch was later backed out. [Phab D313607](https://phabricator.services.mozilla.com/D313607)\n- **UI** A Split View trigger was added to record usage of the split view feature. [Phab D308664](https://phabricator.services.mozilla.com/D308664)\n- **UI** Desktop notifications can now fire when the active monitor meets a condition, though that also saw a same-day revert. [Phab D313841](https://phabricator.services.mozilla.com/D313841)\n- **A11y** `about:welcome` secondary top buttons now follow the correct keyboard focus order. [Phab D314460](https://phabricator.services.mozilla.com/D314460)\n- **UI** `gUIDensity.AUTO_COMPACT_REFERENCE_TABSTRIP_HEIGHT` was updated to 36. [Phab D314742](https://phabricator.services.mozilla.com/D314742)\n- **UI** A flaky `about:newtab` privileged-about-process timeout test was fixed. [Phab D314346](https://phabricator.services.mozilla.com/D314346)\n- **UI** URL bar tests now run both with and without Nova now that Nova is Nightly-default. [Phab D314810](https://phabricator.services.mozilla.com/D314810)\n\n### Android and GeckoView\n- **Mobile** Android tab groups expanded view now includes an add-new-homepage-tab action. [Phab D313591](https://phabricator.services.mozilla.com/D313591)\n- **Mobile** Collections save entry points were hidden in the Android menu and tabs tray. [Phab D314587](https://phabricator.services.mozilla.com/D314587)\n- **Mobile** Android gained a Nimbus flag and secret setting to hide collections UI entirely. [Phab D314586](https://phabricator.services.mozilla.com/D314586)\n- **Mobile** The VPN animation in Custom Tabs was fixed. [Phab D314832](https://phabricator.services.mozilla.com/D314832)\n- **Mobile** The send-to-devices bottom sheet now sizes correctly after rotation. [Phab D313836](https://phabricator.services.mozilla.com/D313836)\n- **Mobile** `GeckoEditableParent` is now set if missing when focus is taken. [Phab D313929](https://phabricator.services.mozilla.com/D313929)\n- **Mobile** Broken-site reports with Glean were factored out on desktop for reuse by Android. [Phab D312642](https://phabricator.services.mozilla.com/D312642)\n- **Mobile** Fenix now uses the shared toolkit broken-site-reporting code path with Glean. [Phab D312643](https://phabricator.services.mozilla.com/D312643)\n- **Mobile** Microsurvey state management was refactored to use global state. [Phab D312042](https://phabricator.services.mozilla.com/D312042)\n- **Mobile** Android added Skyflag as a new marketing partner in Adjust. [Phab D313516](https://phabricator.services.mozilla.com/D313516)\n- **Mobile** IP protection location selection got a feature flag. [Phab D311621](https://phabricator.services.mozilla.com/D311621)\n- **Mobile** The VPN location list UI landed. [Phab D311655](https://phabricator.services.mozilla.com/D311655)\n- **Mobile** An empty state was added for the location list. [Phab D312825](https://phabricator.services.mozilla.com/D312825)\n- **Mobile** Country data classes were added to IP state. [Phab D312831](https://phabricator.services.mozilla.com/D312831)\n- **Mobile** Country data classes are now used inside the IP protection location UI. [Phab D313073](https://phabricator.services.mozilla.com/D313073)\n- **Media** GeckoView gained a signal to route Android system audio-focus changes into audio-session interrupts. [Phab D312103](https://phabricator.services.mozilla.com/D312103)\n- **Media** Android system audio-focus loss and gain now drive audio-session interrupts. [Phab D312102](https://phabricator.services.mozilla.com/D312102)\n- **Mobile** `GetApkURI` now uses a direct JNI call instead of parsing `omni.ja` URIs. [Phab D309470](https://phabricator.services.mozilla.com/D309470)\n\n### Android test infrastructure\n- **Mobile** The efficiency framework gained an interactive selector-discovery tool. [Phab D314459](https://phabricator.services.mozilla.com/D314459)\n- **Mobile** In-tree harness docs and an interactive inspect devtool landed for efficiency tests. [Phab D314458](https://phabricator.services.mozilla.com/D314458)\n- **Mobile** Efficiency tests now dump all layers plus a window/focus summary on screen-dump failure. [Phab D314454](https://phabricator.services.mozilla.com/D314454)\n- **Mobile** New selector strategies landed, along with auto-dismiss support for blocking system overlays. [Phab D314453](https://phabricator.services.mozilla.com/D314453)\n- **Mobile** Espresso in-process view-tree dump was added to `ScreenDump` and `effdump`. [Phab D313951](https://phabricator.services.mozilla.com/D313951)\n- **Mobile** On-demand screen-dump tooling landed for Compose, native, and UIAutomator surfaces. [Phab D313950](https://phabricator.services.mozilla.com/D313950)\n- **Mobile** Autofill state is now cleared between retry attempts in `BaseTest`. [Phab D314455](https://phabricator.services.mozilla.com/D314455)\n- **Mobile** `verifyAddressAutofillTest` moved to the efficiency framework. [Phab D314457](https://phabricator.services.mozilla.com/D314457)\n- **Mobile** The expanded-toolbar new-tab button test moved to efficiency. [Phab D314456](https://phabricator.services.mozilla.com/D314456)\n- **Mobile** Login capability support landed with a converted \"never save login\" test. [Phab D313956](https://phabricator.services.mozilla.com/D313956)\n- **Mobile** The find-in-page custom tab smoke test moved to efficiency. [Phab D313955](https://phabricator.services.mozilla.com/D313955)\n- **Mobile** The insecure-connection custom tab test moved to efficiency, with tougher trust-panel selectors. [Phab D313954](https://phabricator.services.mozilla.com/D313954)\n- **Mobile** Custom-tab back and forward menu smoke tests moved to efficiency. [Phab D313953](https://phabricator.services.mozilla.com/D313953)\n- **Mobile** The clear-cookies-and-site-data custom tab test moved to efficiency. [Phab D313952](https://phabricator.services.mozilla.com/D313952)\n- **Mobile** `openCustomTabInFirefoxTest` moved to efficiency. [Phab D313949](https://phabricator.services.mozilla.com/D313949)\n- **Mobile** Custom-tab launch capability landed with a converted menu-items test. [Phab D313948](https://phabricator.services.mozilla.com/D313948)\n- **Mobile** Quick-settings page-connection smoke tests moved to efficiency, with a trust-panel state capability added. [Phab D313947](https://phabricator.services.mozilla.com/D313947)\n- **Mobile** Recently closed tabs delete and open smoke tests moved to efficiency. [Phab D313946](https://phabricator.services.mozilla.com/D313946)\n- **Mobile** Expanded-toolbar main-menu and tab-tray smoke tests moved to efficiency. [Phab D313945](https://phabricator.services.mozilla.com/D313945)\n- **Mobile** The bookmarks main-menu item test moved to efficiency. [Phab D313944](https://phabricator.services.mozilla.com/D313944)\n- **Mobile** Main-menu back and forward long-press tests moved to efficiency. [Phab D314907](https://phabricator.services.mozilla.com/D314907)\n- **Mobile** The print submenu UI test moved to efficiency. [Phab D313715](https://phabricator.services.mozilla.com/D313715)\n- **Mobile** The private-tabs persistence test moved to efficiency. [Phab D314347](https://phabricator.services.mozilla.com/D314347)\n\n### Media, PDF, and WebRTC\n- **Media** `MFCDMChild` got updated async promise handling. [Phab D314732](https://phabricator.services.mozilla.com/D314732)\n- **Media** New Glean metrics were defined for `media.audio_session` and `media.audio_focus`. [Phab D312614](https://phabricator.services.mozilla.com/D312614)\n- **Media** Parent-side telemetry for audio-session arbitration and interrupts landed. [Phab D312615](https://phabricator.services.mozilla.com/D312615)\n- **Media** Audio Session API adoption telemetry landed. [Phab D312616](https://phabricator.services.mozilla.com/D312616)\n- **Media** Per-source interrupt-resume telemetry landed. [Phab D312617](https://phabricator.services.mozilla.com/D312617)\n- **Media** Browser-chrome tests landed for the audio-session and audio-focus probes. [Phab D312618](https://phabricator.services.mozilla.com/D312618)\n- **Media** Firefox now records the Android platform audio-focus type. [Phab D312619](https://phabricator.services.mozilla.com/D312619)\n- **Media** A transiently interrupted audio session is now held across the suspension it causes. [Phab D314745](https://phabricator.services.mozilla.com/D314745)\n- **Media** `libcubeb` was updated to `ef47ae58`. [Phab D314159](https://phabricator.services.mozilla.com/D314159)\n- **Media** WebRTC SDP parsing now reports distinct parsing errors instead of a blurrier failure bucket. [Phab D295656](https://phabricator.services.mozilla.com/D295656)\n- **Media** PDF digital signature verification is now enabled by default on Nightly only. [Phab D314650](https://phabricator.services.mozilla.com/D314650)\n- **Media** A missing `uint*_t` include was added in media code. [Phab D311679](https://phabricator.services.mozilla.com/D311679)\n\n### Tooling, build, storage, and developer experience\n- **Build** Partial MAR operations were reordered to reduce crash risk during updates. [Phab D314721](https://phabricator.services.mozilla.com/D314721)\n- **Build** `sccache` was updated to 0.17.0. [Phab D314836](https://phabricator.services.mozilla.com/D314836)\n- **Build** The early-to-late-beta merge automation was retired. [Phab D314760](https://phabricator.services.mozilla.com/D314760)\n- **Build** `EARLY_BETA_OR_EARLIER` was redefined as `NIGHTLY_BUILD`. [Phab D314759](https://phabricator.services.mozilla.com/D314759)\n- **Build** Early-tagging and version-bump tasks now use direct git tagging. [Phab D312774](https://phabricator.services.mozilla.com/D312774)\n- **Build** `mozilla-taskgraph` was upgraded to 5.0.0. [Phab D314656](https://phabricator.services.mozilla.com/D314656)\n- **Build** Taskgraph 24.2.1 was picked up. [Phab D314660](https://phabricator.services.mozilla.com/D314660)\n- **Perf** Fast taskgraph mode now skips discarded per-task worker schema construction. [Phab D313701](https://phabricator.services.mozilla.com/D313701)\n- **Perf** Taskgraph now caches invariant variant symbols in `group_name_variant`. [Phab D313702](https://phabricator.services.mozilla.com/D313702)\n- **Build** Toolchain update policy docs were refreshed for 2-week release cycles. [Phab D314661](https://phabricator.services.mozilla.com/D314661)\n- **Refactor** The codebase moved from the `remove_dir_all` crate to `std::fs::remove_dir_all`. [Phab D314599](https://phabricator.services.mozilla.com/D314599)\n- **Refactor** Older QuotaManager code was migrated to `QM_SCOPED_CONTEXT`. [Phab D314041](https://phabricator.services.mozilla.com/D314041)\n- **Perf** The `moz_origins` index is now `UNIQUE(host, prefix)`. [Phab D313507](https://phabricator.services.mozilla.com/D313507)\n- **Refactor** Places `fetchMany` was migrated to array binding. [Phab D313720](https://phabricator.services.mozilla.com/D313720)\n- **Refactor** Places `determineNonSyncableGuids` was migrated to array binding. [Phab D313719](https://phabricator.services.mozilla.com/D313719)\n- **Perf** Download progress updates now eventually flush via a timer. [Phab D256150](https://phabricator.services.mozilla.com/D256150)\n- **V8** Finalization registry queued records are no longer charged against the JS zone's memory accounting. [Phab D314855](https://phabricator.services.mozilla.com/D314855)\n- **V8** `js::NumberMod` widened its integer fast path from Int32 to Int64. [Phab D314689](https://phabricator.services.mozilla.com/D314689)\n- **V8** `LModD` got an inline integer fast path. [Phab D314690](https://phabricator.services.mozilla.com/D314690)\n- **V8** arm64 `convertDoubleToPtr` now rejects saturated results. [Phab D314773](https://phabricator.services.mozilla.com/D314773)\n- **Perf** Signal profiling tests were re-enabled in debug now that the JS leak is gone. [Phab D314940](https://phabricator.services.mozilla.com/D314940)\n- **DevTools** Responsive Design Mode now uses a `MediaQueryList` change listener instead of a `ResizeObserver`. [Phab D314308](https://phabricator.services.mozilla.com/D314308)\n- **DevTools** In Split View markup, the RDM toolbar now sits after the notification box. [Phab D313470](https://phabricator.services.mozilla.com/D313470)\n- **DevTools** DevTools extended test coverage for toolbox splitter `aria-value(min|max)` attributes. [Phab D314309](https://phabricator.services.mozilla.com/D314309)\n- **DevTools** A `remote.screenshot.use_readback` pref was added to capture screenshots via WebRender. [Phab D312921](https://phabricator.services.mozilla.com/D312921)\n- **Build** AI review context support gained a linter for `review-context.toml` rules. [Phab D307834](https://phabricator.services.mozilla.com/D307834)\n- **Build** Initial `review-context.toml` rules landed. [Phab D307835](https://phabricator.services.mozilla.com/D307835)\n- **Build** `review-context.toml` authoring was documented. [Phab D307836](https://phabricator.services.mozilla.com/D307836)\n- **Build** A skill for generating Fluent migration recipes was added. [Phab D314511](https://phabricator.services.mozilla.com/D314511)\n- **Build** The codespell lint fixture was renamed from `.rst` to `.md`. [Phab D314842](https://phabricator.services.mozilla.com/D314842)\n- **Build** `toolkit/mozapps/dmgInstallHelper` docs index was converted to Markdown. [Phab D314841](https://phabricator.services.mozilla.com/D314841)\n\n### Passwords, search, experiments, and Smart Window\n- **UI** The Credential Manager panel replaced its search input with `moz-input-search`. [Phab D314651](https://phabricator.services.mozilla.com/D314651)\n- **UI** Credential Manager panel padding was made consistent. [Phab D314644](https://phabricator.services.mozilla.com/D314644)\n- **Privacy** Form submission is no longer handled before the fields are identified. [Phab D314592](https://phabricator.services.mozilla.com/D314592)\n- **Refactor** Application-services was vendored with `autofill Store::shutdown()`. [Phab D314555](https://phabricator.services.mozilla.com/D314555)\n- **Privacy** The autofill store is now closed from a shutdown blocker, and passport tests were re-enabled. [Phab D314556](https://phabricator.services.mozilla.com/D314556)\n- **Privacy** ASRouter now ingests messages from only one enrollment for non-coenrolling features. [Phab D314767](https://phabricator.services.mozilla.com/D314767)\n- **Refactor** Shared prefs are now supposed to be added to the shared database when introduced, though this patch was later reverted for failures. [Phab D314497](https://phabricator.services.mozilla.com/D314497)\n- **UI** Smart Window now records markdown render failures. [Phab D314409](https://phabricator.services.mozilla.com/D314409)\n- **UI** Smart Window now relays chat content failures to the parent process. [Phab D314408](https://phabricator.services.mozilla.com/D314408)\n- **UI** Smart Window now records uncaught chrome document errors. [Phab D314407](https://phabricator.services.mozilla.com/D314407)\n- **UI** Smart Window gained a `smart_window.client_error` Glean event and recorder. [Phab D302883](https://phabricator.services.mozilla.com/D302883)\n- **UI** The `/monitor` command can now prefill the monitor condition from command text. [Phab D314029](https://phabricator.services.mozilla.com/D314029)\n- **Refactor** A small SpiderMonkey change under [bug 2058654](https://bugzilla.mozilla.org/show_bug.cgi?id=2058654) landed without much fanfare. [Phab D314845](https://phabricator.services.mozilla.com/D314845)\n- **Refactor** A browser change under [bug 2054665](https://bugzilla.mozilla.org/show_bug.cgi?id=2054665) also landed with a sparse commit title. [Phab D314727](https://phabricator.services.mozilla.com/D314727)\n\n## Reverts \u0026 Reapplies\n- **Refactor** Reverted shared-prefs database registration after `browser_preferences.js` failures surfaced in mochitest and browser-chrome. [bug 2058273](https://bugzilla.mozilla.org/show_bug.cgi?id=2058273)\n- **A11y** Reverted the new sidebar Tab-navigation fix after `browser_history_keyboard_navigation` failures. [bug 2046673](https://bugzilla.mozilla.org/show_bug.cgi?id=2046673)\n- **Networking** Backed out the Speculation Rules prefetch stack after multiple WPT failures, even though the full series and Nightly pref enable landed in the same window. [bug 2037102](https://bugzilla.mozilla.org/show_bug.cgi?id=2037102)\n- **Rendering** Wrench per-scale reference image support was reverted twice for bustage after landing. [bug 2057509](https://bugzilla.mozilla.org/show_bug.cgi?id=2057509)\n- **Security** Reverted the `SEC_ERROR_CA_CERT_INVALID` felt-privacy recovery fix after `browser_error_registry.js` mochitest failures. [bug 2054991](https://bugzilla.mozilla.org/show_bug.cgi?id=2054991)\n- **GPU** Reverted a graphics change under [bug 2050584](https://bugzilla.mozilla.org/show_bug.cgi?id=2050584) twice for GL and gtest failures. [bug 2050584](https://bugzilla.mozilla.org/show_bug.cgi?id=2050584)\n- **UI** Reverted active-monitor desktop notifications after browser-chrome failures in `browser_monitor_agent`. [bug 2046592](https://bugzilla.mozilla.org/show_bug.cgi?id=2046592)\n- **UI** Reverted the shield default-checkmark fix after multiple failures. [bug 2057009](https://bugzilla.mozilla.org/show_bug.cgi?id=2057009)\n- **Rendering** Reverted a graphics change under [bug 2057098](https://bugzilla.mozilla.org/show_bug.cgi?id=2057098) for a Windows build bustage, then relanded later in the day. [bug 2057098](https://bugzilla.mozilla.org/show_bug.cgi?id=2057098)\n- **Web Platform** Reverted the WebTransport landing bundle once for build bustage before the individual patches appeared again in the queue. [bug 2007174](https://bugzilla.mozilla.org/show_bug.cgi?id=2007174)",
  "repo": "firefox",
  "repoDisplay": "Firefox",
  "rollGroups": [
    {
      "name": "No",
      "count": 3
    }
  ],
  "since": "2026-07-29",
  "totals": {
    "commits": 256,
    "features": 253,
    "rolls": 3
  },
  "until": "2026-07-29"
}