{
  "commits": {
    "3491d6d69955": {
      "author": "agoloman",
      "avatar": "https://www.gravatar.com/avatar/cd12c4a70c28dead95af1f72ff892316?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit ef3838d71d92f48d4faed4465f77985ed8db12dc.",
      "email": "agoloman@mozilla.com",
      "hash": "3491d6d69955ce56fbb7162525b186b467fbb08a",
      "subject": "Revert \"Bug 2005072 - Implement proposed loading attribute for video and audio elements. r=dom-core-reviewers,media-playback-reviewers,webidl,layout-reviewers,smaug,emilio,pehrsons,alwu\" for causing build bustages @nsHtml5TreeBuilderCppSupplement.h."
    },
    "43fca0ceb308": {
      "author": "agoloman",
      "avatar": "https://www.gravatar.com/avatar/cd12c4a70c28dead95af1f72ff892316?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 316ee2a6085ba6e0bb74d48b65a47cf9c4e59fa8.",
      "email": "agoloman@mozilla.com",
      "hash": "43fca0ceb308e127b8053bc7454c94e1ba33804f",
      "subject": "Revert \"Bug 2046524 - WPT: \u003clink rel=prefetch\u003e should fire the error event for CORS-mode network failures r=sunil,necko-reviewers,valentin\" for causing mochitest failures @test_bug1268962.html."
    },
    "4537d4b76fc6": {
      "author": "agoloman",
      "avatar": "https://www.gravatar.com/avatar/cd12c4a70c28dead95af1f72ff892316?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 60516f24a64e38b6eeacba57f9fe07ab921f601c.",
      "email": "agoloman@mozilla.com",
      "hash": "4537d4b76fc64b56dbd80149701a3eb16f8c168b",
      "subject": "Revert \"Bug 2049046 - Add a unified mechanism for determining when a content process becomes untrusted, r=dom-core-reviewers,necko-reviewers,dom-worker-reviewers,valentin,edenchuang,mccr8\" for causing dt failures @ContentChild.cpp."
    },
    "D278547": {
      "author": "Brad Frost",
      "avatar": "https://www.gravatar.com/avatar/907f58caca649b54e14c3cf3b87bf29e?d=identicon\u0026s=64",
      "cl": "D278547",
      "clUrl": "https://phabricator.services.mozilla.com/D278547",
      "description": "Add support for the `loading` attribute on \u003cvideo\u003e and \u003caudio\u003e\nelements, mirroring the existing behavior for \u003cimg\u003e and \u003ciframe\u003e. The\nattribute accepts `eager` (default) and `lazy`. When `loading=\"lazy\"`\nis set, loading of the media resource and poster image, as well as\nautoplay, is deferred via an intersection observer until the element is\nnear the viewport. Gated behind the media.lazy_loading.enabled pref.\n\nSpec: https://html.spec.whatwg.org/multipage/media.html#attr-media-loading\nSpec PR: https://github.com/whatwg/html/pull/11980\n\nCo-authored-by: Scott Jehl \u003csjehl@squarespace.com\u003e\n\nDifferential Revision: https://phabricator.services.mozilla.com/D278547",
      "email": "bfrost@squarespace.com",
      "hash": "ef3838d71d92f48d4faed4465f77985ed8db12dc",
      "subject": "Bug 2005072 - Implement proposed loading attribute for video and audio elements. r=dom-core-reviewers,media-playback-reviewers,webidl,layout-reviewers,smaug,emilio,pehrsons,alwu"
    },
    "D287746": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D287746",
      "clUrl": "https://phabricator.services.mozilla.com/D287746",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D287746",
      "email": "mtigley@mozilla.com",
      "hash": "53b5143d90a0652a93815536fea8dfff76132292",
      "subject": "Bug 2023223 - P1. Replace richlist autocomplete items for logins,passwords,addresses, and form history. r=dimi,desktop-theme-reviewers,emilio,akulyk"
    },
    "D287747": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D287747",
      "clUrl": "https://phabricator.services.mozilla.com/D287747",
      "description": "Depends on D287746\n\nDifferential Revision: https://phabricator.services.mozilla.com/D287747",
      "email": "mtigley@mozilla.com",
      "hash": "c688c7bb40fafc18155d111c62e9f30a61d05161",
      "subject": "Bug 2023223 - P2. Add secondary action schema for autocomplete row items. r=dimi,desktop-theme-reviewers,akulyk"
    },
    "D287748": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D287748",
      "clUrl": "https://phabricator.services.mozilla.com/D287748",
      "description": "Depends on D307688\n\nDifferential Revision: https://phabricator.services.mozilla.com/D287748",
      "email": "mtigley@mozilla.com",
      "hash": "98afcfd0afa763a2042395a149d669a416255aa3",
      "subject": "Bug 2023223 - Update tests for logins,addresses,and payments autocomplete items. r=dimi,akulyk,search-reviewers,scunnane"
    },
    "D291097": {
      "author": "Tooru Fujisawa",
      "avatar": "https://www.gravatar.com/avatar/0432a84805ea7033f4646049963e3bf1?d=identicon\u0026s=64",
      "cl": "D291097",
      "clUrl": "https://phabricator.services.mozilla.com/D291097",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D291097",
      "email": "arai_a@mac.com",
      "hash": "5bcfc05b0528f367ee629731fed2e35a4c2e901d",
      "subject": "Bug 2027803 - Enable stencil navigation cache on nightly. r=nbp"
    },
    "D302406": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302406",
      "clUrl": "https://phabricator.services.mozilla.com/D302406",
      "description": "This can be helpful within content processes to perform additional validation\nbefore sending IPC messages which would be rejected by principal validation.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302406",
      "email": "nika@thelayzells.com",
      "hash": "91ea8e8fc078cb60d0d79b725ca80ea072b1c98f",
      "subject": "Bug 2039990 - Part 1: Add threadsafe CurrentRemoteType getter, r=smaug"
    },
    "D302407": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302407",
      "clUrl": "https://phabricator.services.mozilla.com/D302407",
      "description": "This adds principal validation calls in the places where there are visible\nPrincipalInfo instances within PBackground, as well as adding\nPrincipalValidation helpers to BackgroundParent.h.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302407",
      "email": "nika@thelayzells.com",
      "hash": "ffd53797601a4495eab8afc9b46ed67615b5c882",
      "subject": "Bug 2039990 - Part 2: Add more principal validation to PBackground, r=dom-worker-reviewers,asuth"
    },
    "D302408": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302408",
      "clUrl": "https://phabricator.services.mozilla.com/D302408",
      "description": "This adds redundant checks into the content process for the ValidatePrincipal\nchecks added in the parent process in earlier patches in this stack. This is\nintended to reduce the likelihood of hitting one of those failures in the case\nwhere the check is overly restrictive, instead blocking access to storage APIs\nin those cases with an exception.\n\nThis should hopefully reduce the risk of enabling these checks in builds.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302408",
      "email": "nika@thelayzells.com",
      "hash": "656ec917130f8348f4159e774c466f50e8438cf6",
      "subject": "Bug 2039990 - Part 3: Check ValidatePrincipal in child, r=dom-worker-reviewers,asuth"
    },
    "D302409": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302409",
      "clUrl": "https://phabricator.services.mozilla.com/D302409",
      "description": "Pipe ThreadsafeContentParentInfo throughout LocalStorage \u0026 ClientSource such\nthat the local storage state is more generally available there. This should\nhave no behaviour changes, and is just setup for the following parts.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302409",
      "email": "nika@thelayzells.com",
      "hash": "1cf1129c7c54e774f1a1df317363bba31ba57786",
      "subject": "Bug 2039990 - Part 4: Use ThreadsafeContentParentHandle in LocalStorage \u0026 ClientSource actors, r=dom-worker-reviewers,asuth"
    },
    "D302410": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302410",
      "clUrl": "https://phabricator.services.mozilla.com/D302410",
      "description": "Call ValidatePrincipal on the principals in LocalStorage using the newly piped\nthrough ThreadsafeContentParentHandle to extract the remoteType.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302410",
      "email": "nika@thelayzells.com",
      "hash": "cff883f1f19e51f9e2dfc7ca5aa75e9b5756d25f",
      "subject": "Bug 2039990 - Part 5: ValidatePrincipal in LocalStorage actors, r=dom-worker-reviewers,asuth"
    },
    "D302411": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302411",
      "clUrl": "https://phabricator.services.mozilla.com/D302411",
      "description": "This call-site was already doing validation on principals for the Cache API.\nThe new checks make this validation more thorough.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302411",
      "email": "nika@thelayzells.com",
      "hash": "d0de412fe134f0361985de7da092693412d86ffa",
      "subject": "Bug 2039990 - Part 6: Call ValidatePrincipal from PrincipalVerifier, r=dom-worker-reviewers,asuth"
    },
    "D302412": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302412",
      "clUrl": "https://phabricator.services.mozilla.com/D302412",
      "description": "This patch does not validate all places which pass around IPCClientInfo, as\nthat can be passed into a different process. Instead the validation is\nperformed when the ClientSource is bound.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302412",
      "email": "nika@thelayzells.com",
      "hash": "b21833fbab20b1cacf089fe82097ccab27c2f2bb",
      "subject": "Bug 2039990 - Part 7: Validate ClientSources on creation, r=dom-worker-reviewers,asuth"
    },
    "D302413": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302413",
      "clUrl": "https://phabricator.services.mozilla.com/D302413",
      "description": "This test was failing after the changes in earlier parts, as it was explicitly\naccessing storage for another origin from within the content process. The test\nwas simplified to access the current document's origin instead, as it appears\nthat is the actual use-case for this API from DevTools.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302413",
      "email": "nika@thelayzells.com",
      "hash": "dd0e10c1b367fd9a9678ec617deeef2c85f45be6",
      "subject": "Bug 2039990 - Part 8: We cant access cache for a different origin, r=dom-worker-reviewers,asuth"
    },
    "D302414": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D302414",
      "clUrl": "https://phabricator.services.mozilla.com/D302414",
      "description": "This is a bit of an aggressive approach to the implementation, and will result\nin `ValidatePrincipal` failures firing in codepaths reachable from web content.\nSpecifically the checks in the SharedWorkerService will hit this for loads\nwhich would normally fail during network fetch.\n\nIn the future, we should refactor the implementation to avoid needing to do\nvalidation in this way, by deriving these values directly within the parent\nprocess.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302414",
      "email": "nika@thelayzells.com",
      "hash": "b94f941178f0d561804233ffaf6cb1d8aa840975",
      "subject": "Bug 2039990 - Part 9: Validate principals early during SharedWorker creation, r=dom-worker-reviewers,asuth"
    },
    "D302756": {
      "author": "Caleb Chan",
      "avatar": "https://www.gravatar.com/avatar/2238a75309adf73255119dfc6f497cf3?d=identicon\u0026s=64",
      "cl": "D302756",
      "clUrl": "https://phabricator.services.mozilla.com/D302756",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D302756",
      "email": "cachan@mozilla.com",
      "hash": "9ff1916ae370265eec1ddc25406256481ba6d8cc",
      "subject": "Bug 2031838 -  Cleared private default search engine setting when user unchecks box for using a different search engine in private window. r=Standard8,akulyk"
    },
    "D305964": {
      "author": "acreskeyMoz",
      "avatar": "https://www.gravatar.com/avatar/0a42c30d7e02d9f553bfbf0e694e3f4a?d=identicon\u0026s=64",
      "cl": "D305964",
      "clUrl": "https://phabricator.services.mozilla.com/D305964",
      "description": "Only force the load event for opaque (no-cors) cross-origin responses in\nnsPrefetchNode::OnStartRequest. CORS-mode failures now fire the error event\ninstead of load, since a failed CORS check is a network error.\n\nhttps://fetch.spec.whatwg.org/#concept-http-fetch\nWPT: /preload/prefetch-events.html\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305964",
      "email": "acreskey@mozilla.com",
      "hash": "316ee2a6085ba6e0bb74d48b65a47cf9c4e59fa8",
      "subject": "Bug 2046524 - WPT: \u003clink rel=prefetch\u003e should fire the error event for CORS-mode network failures r=sunil,necko-reviewers,valentin"
    },
    "D306201": {
      "author": "Caleb Chan",
      "avatar": "https://www.gravatar.com/avatar/2238a75309adf73255119dfc6f497cf3?d=identicon\u0026s=64",
      "cl": "D306201",
      "clUrl": "https://phabricator.services.mozilla.com/D306201",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D306201",
      "email": "cachan@mozilla.com",
      "hash": "4168d4878abbeed8f5d7f51cfeeab8cc86d84069",
      "subject": "Bug 2042091 - migrated removeByFilter to array binding. r=mak,places-reviewers"
    },
    "D306434": {
      "author": "Tooru Fujisawa",
      "avatar": "https://www.gravatar.com/avatar/0432a84805ea7033f4646049963e3bf1?d=identicon\u0026s=64",
      "cl": "D306434",
      "clUrl": "https://phabricator.services.mozilla.com/D306434",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D306434",
      "email": "arai_a@mac.com",
      "hash": "0ae205d1de26dfba2d83de4f581a21bb553e52a9",
      "subject": "Bug 2043993 - Delay the cached script processing by one tick to avoid processing too early. r=bthrall"
    },
    "D306595": {
      "author": "Tooru Fujisawa",
      "avatar": "https://www.gravatar.com/avatar/0432a84805ea7033f4646049963e3bf1?d=identicon\u0026s=64",
      "cl": "D306595",
      "clUrl": "https://phabricator.services.mozilla.com/D306595",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D306595",
      "email": "arai_a@mac.com",
      "hash": "d572646d59ff68fafcb3af52bb68ab5c04ba9ba3",
      "subject": "Bug 2047352 - Reflect the stack trace for the in-memory cached script in the Network Monitor. r=devtools-reviewers,bomsy,bthrall"
    },
    "D306754": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D306754",
      "clUrl": "https://phabricator.services.mozilla.com/D306754",
      "description": "Follow-up to bug 2023453.\n\nThis also will allow appearance: base-select to work on list boxes,\neventually.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306754",
      "email": "emilio@crisal.io",
      "hash": "b1ecce9fb2ebdd9559bb0187543dbe8969730481",
      "subject": "Bug 2047603 - Move list box selection state / event handling to HTMLSelectElement. r=smaug,jjaschke,dom-core-reviewers"
    },
    "D306883": {
      "author": "Tim Giles",
      "avatar": "https://www.gravatar.com/avatar/c161a1db8cb12efdac86d88333c527ad?d=identicon\u0026s=64",
      "cl": "D306883",
      "clUrl": "https://phabricator.services.mozilla.com/D306883",
      "description": "When searching in about:preferences, paneSearchResults is a virtual\ncategory with no matching moz-page-nav-button. Because the nav is\ndeclared `allownoselection=\"true\"`, every button gets `tabindex=-1` when\nthat view is active, leaving no keyboard tab stop into the category\nlist.\n\nAdds a standalone ghost moz-button \"Back\" affordance as the first child\nof `#header-searchResults`. The header is always visible when a query is\nactive, so the button covers both the results and no-results cases.\nActivating it clears the query and calls `history.back()`, which reuses\nthe previous pane's history entry so that `FocusHistory` can restore\nfocus to the search input. This results in the previous category pane\nbeing restored when using the \"Back\" affordance.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306883",
      "email": "tgiles@mozilla.com",
      "hash": "3d8d2a47e74b554d4509468eb9024640f2fa44ac",
      "subject": "Bug 2040000 - Add Back button to preferences search results header to restore keyboard navigation. r=fluent-reviewers,desktop-theme-reviewers,akulyk,bolsson,mstriemer"
    },
    "D307070": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D307070",
      "clUrl": "https://phabricator.services.mozilla.com/D307070",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307070",
      "email": "nika@thelayzells.com",
      "hash": "db22ffccfc6de9b06c9a8eb4308f392033c38cc0",
      "subject": "Bug 2039990 - Part 10: Validate principals during IndexedDB creation, r=dom-storage-reviewers,asuth"
    },
    "D307148": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D307148",
      "clUrl": "https://phabricator.services.mozilla.com/D307148",
      "description": "Depends on D287747\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307148",
      "email": "mtigley@mozilla.com",
      "hash": "1362766afacb02c27a1f6f8a481b544c0d5c5a4c",
      "subject": "Bug 2023223 - P3. Make ImportableLoginsAutocomplete item compatible with autocomplete-row-item. r=dimi,akulyk"
    },
    "D307332": {
      "author": "Michael Kaply",
      "avatar": "https://www.gravatar.com/avatar/dc84c7d304a23e0a62a86580dd08c587?d=identicon\u0026s=64",
      "cl": "D307332",
      "clUrl": "https://phabricator.services.mozilla.com/D307332",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307332",
      "email": "mozilla@kaply.com",
      "hash": "ba7f1e692798ea95e2b04af3efd6f5c4acb553dc",
      "subject": "Bug 2048048 - Fix policy issues with new tab preferences. r=jmendez"
    },
    "D307339": {
      "author": "Olivia Hall",
      "avatar": "https://www.gravatar.com/avatar/9bb5ba1328acae6f1d36d1c8564bc4bf?d=identicon\u0026s=64",
      "cl": "D307339",
      "clUrl": "https://phabricator.services.mozilla.com/D307339",
      "description": "This patch:\n* Begins using the newly added `getAvailableFirefoxLabs` from bug 2045566\n* Added context (for string management) and Nimbus SDK to LabsMiddleware\n* Adjustment to LabsItem to use strings instead of string resources because we need to fetch strings dynamically\n* Disconnected `setItemEnrolled`, will be connected with new API in bug 2032178\n* Update tests for new LabsItem\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307339",
      "email": "ohall@mozilla.com",
      "hash": "cf65b46d2526c6e26bf281f1a33371010e9738da",
      "subject": "Bug 2032111 - Deserialize Nimbus information into LabsItem r=gl,android-reviewers"
    },
    "D307392": {
      "author": "Jonathan Mendez",
      "avatar": "https://www.gravatar.com/avatar/67d93345d6ecc730a2d98a196a240302?d=identicon\u0026s=64",
      "cl": "D307392",
      "clUrl": "https://phabricator.services.mozilla.com/D307392",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307392",
      "email": "jmendez@mozilla.com",
      "hash": "14f3594ae2f23547d50df7b53f3eb0a28fdfd2d9",
      "subject": "Bug 2044479 - Part 1: Add interface for content analysis backend r=gstoll"
    },
    "D307393": {
      "author": "Jonathan Mendez",
      "avatar": "https://www.gravatar.com/avatar/67d93345d6ecc730a2d98a196a240302?d=identicon\u0026s=64",
      "cl": "D307393",
      "clUrl": "https://phabricator.services.mozilla.com/D307393",
      "description": "Also opportunistically update RefPtr to nsCOMPtr as applicable.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307393",
      "email": "jmendez@mozilla.com",
      "hash": "a07a181d0e6509c3fbb5c0a06552e49fbaacfd10",
      "subject": "Bug 2044479 - Part 2: Add skeleton ExternalAgentBackend wired into ContentAnalysis r=gstoll"
    },
    "D307394": {
      "author": "Jonathan Mendez",
      "avatar": "https://www.gravatar.com/avatar/67d93345d6ecc730a2d98a196a240302?d=identicon\u0026s=64",
      "cl": "D307394",
      "clUrl": "https://phabricator.services.mozilla.com/D307394",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307394",
      "email": "jmendez@mozilla.com",
      "hash": "47ccc89b3625a3b2623d7b5b82de2644bf7758bc",
      "subject": "Bug 2044479 - Part 3: Move ContentAnalysis SDK communication logic to ExternalAgentBackend class r=gstoll"
    },
    "D307543": {
      "author": "Neil Deakin",
      "avatar": "https://www.gravatar.com/avatar/3e8ecccceb2961862d5cb3880ac94879?d=identicon\u0026s=64",
      "cl": "D307543",
      "clUrl": "https://phabricator.services.mozilla.com/D307543",
      "description": "This just uses a preference to denote this, and is just used as a minor optimization.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307543",
      "email": "neil@mozilla.com",
      "hash": "2e6c45c727384030cc5dcc27875abd571088defa",
      "subject": "Bug 2047394, don't use ML inference the first time it is invoked so that there is time for the model to be available, r=dimi,credential-management-reviewers"
    },
    "D307688": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D307688",
      "clUrl": "https://phabricator.services.mozilla.com/D307688",
      "description": "Depends on D307148\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307688",
      "email": "mtigley@mozilla.com",
      "hash": "300836e2f5cf98b8092400c376a893d5ba3a62fa",
      "subject": "Bug 2023223 - P4. Make insecure warning item compatible with autocomplete-row-item. r=dimi"
    },
    "D307885": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D307885",
      "clUrl": "https://phabricator.services.mozilla.com/D307885",
      "description": "The ScriptCache has a simple system for determining when the process is\nuntrusted to ensure that script cache writes are finished before\nuntrusted content is loaded in the content process.\n\nThis expands this system to more explicitly cover multiple potential\ncauses of becoming untrusted, and exposes a threadsafe flag which can be\nchecked to see if the process could have started loading untrusted\ncontent.\n\nMuch like the existing ScriptCache threshold, this is defined very\nconservatively, such that we cannot have loaded untrusted content before\nthe threshold.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307885",
      "email": "nika@thelayzells.com",
      "hash": "60516f24a64e38b6eeacba57f9fe07ab921f601c",
      "subject": "Bug 2049046 - Add a unified mechanism for determining when a content process becomes untrusted, r=dom-core-reviewers,necko-reviewers,dom-worker-reviewers,valentin,edenchuang,mccr8"
    },
    "D307905": {
      "author": "Logan Rosen",
      "avatar": "https://www.gravatar.com/avatar/bdbbf654dea1a22f3e1e955ea187f26e?d=identicon\u0026s=64",
      "cl": "D307905",
      "clUrl": "https://phabricator.services.mozilla.com/D307905",
      "description": "On Android, GeckoView autoplay permission requests can resolve asynchronously. Keep direct play() promises pending while the relevant GeckoView autoplay request is unknown or pending, then continue or reject them once the request status changes.\n\nThe status-change notification intentionally does not carry audible/inaudible payload data. Media elements re-evaluate their current autoplay policy state when notified, using the same audible/inaudible split as AutoplayPolicy, and unresolved GeckoView requests notify again when they transition or are cancelled.\n\nDenials now notify observers too. That lets pending play() promises reject once GeckoView has made a final decision; declarative autoplay elements may also re-run preload handling on denial, which is idempotent and preserves the existing late-grant path.\n\nAdd an Android mochitest regression case for an audible direct play() call with an async GeckoView autoplay allow response.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307905",
      "email": "loganrosen@gmail.com",
      "hash": "f87f8a4a2279e1519313e87eb2f2469f6376c0f5",
      "subject": "Bug 2049064 - Delay media play() while GeckoView autoplay permission request is pending r=media-playback-reviewers,padenot"
    },
    "D307974": {
      "author": "Hiroyuki Ikezoe",
      "avatar": "https://www.gravatar.com/avatar/9ec516861853d265a973cd0ef66735cf?d=identicon\u0026s=64",
      "cl": "D307974",
      "clUrl": "https://phabricator.services.mozilla.com/D307974",
      "description": "IsRootWebRenderBridgeParent() derived root-ness from mWidget, but\nFinishInitializationError() clears mWidget when WebRender initialization\nfails. After that a failed *root* bridge reports itself as a content\n(non-root) bridge. During teardown CompositorBridgeParent::DisconnectWrBridge\nthen takes the non-root path and calls EraseLayerState(), which posts an\nAPZUpdater::NotifyLayerTreeRemoved task for the root layers id onto an updater\nwhose scene-builder thread never came up, so the task is never drained and\nleaks the whole APZ tree. This is seen on headless macOS VMs where hardware\nWebRender init fails and falls back to software WebRender.\n\nRecord root-ness once at construction in a const member and return it from\nIsRootWebRenderBridgeParent(), so a failed root bridge is still treated as a\nroot bridge during teardown.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307974",
      "email": "hikezoe.birchill@mozilla.com",
      "hash": "4450a317328241f8f061ecb8ddcb1d1bd4f6571c",
      "subject": "Bug 2038639 - Track WebRenderBridgeParent root-ness with a stable flag. r=gfx-reviewers,sotaro"
    },
    "D307975": {
      "author": "Hiroyuki Ikezoe",
      "avatar": "https://www.gravatar.com/avatar/9ec516861853d265a973cd0ef66735cf?d=identicon\u0026s=64",
      "cl": "D307975",
      "clUrl": "https://phabricator.services.mozilla.com/D307975",
      "description": "When the scene builder (updater) thread was never established - mUpdaterThreadId\nis Nothing - a task queued via RunOnUpdaterThread can never be drained, because\nWakeSceneBuilder has no WebRenderAPI to wake. On headless VMs hardware WebRender\ninit can fail before the updater thread comes up, so ClearTree's task would be\nenqueued and never run; since it holds a strong reference to the APZUpdater it\nleaks the whole APZ tree. Run the ClearTree task directly on the compositor\nthread in that case.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307975",
      "email": "hikezoe.birchill@mozilla.com",
      "hash": "fe900c10bc55d3d2395eb2d9a9f929ee6892d631",
      "subject": "Bug 2038639 - Run APZUpdater::ClearTree directly when the updater thread never came up. r=gfx-reviewers,sotaro"
    },
    "D307990": {
      "author": "Sajid Anwar",
      "avatar": "https://www.gravatar.com/avatar/554aa5334d7607ad11128e48fddf84a0?d=identicon\u0026s=64",
      "cl": "D307990",
      "clUrl": "https://phabricator.services.mozilla.com/D307990",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307990",
      "email": "sajidanwar94@gmail.com",
      "hash": "5a852008860edc6434afcf4ff12e6879a0530968",
      "subject": "Bug 2048425 - Implement text-box-trim for block containers. r=layout-reviewers,jfkthame,emilio"
    },
    "D307991": {
      "author": "Sajid Anwar",
      "avatar": "https://www.gravatar.com/avatar/554aa5334d7607ad11128e48fddf84a0?d=identicon\u0026s=64",
      "cl": "D307991",
      "clUrl": "https://phabricator.services.mozilla.com/D307991",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D307991",
      "email": "sajidanwar94@gmail.com",
      "hash": "c45c1b83be38a4cc340f5c3331873b80bbbe34d3",
      "subject": "Bug 2048426 - Implement text-box-trim for inline boxes. r=layout-reviewers,emilio"
    },
    "D308081": {
      "author": "Micah Killoran",
      "avatar": "https://www.gravatar.com/avatar/917b1186aad4798d910d24f25629d145?d=identicon\u0026s=64",
      "cl": "D308081",
      "clUrl": "https://phabricator.services.mozilla.com/D308081",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308081",
      "email": "mtigley@mozilla.com",
      "hash": "781b8f83058c5959e10b37e4db7dd8bfc46f103b",
      "subject": "Bug 2048383 - Don't let a card with no expiration date empty the payment methods list. r=dimi"
    },
    "D308104": {
      "author": "calu",
      "avatar": "https://www.gravatar.com/avatar/7d36bab00e1e08005d8871257e7bc73a?d=identicon\u0026s=64",
      "cl": "D308104",
      "clUrl": "https://phabricator.services.mozilla.com/D308104",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308104",
      "email": "calu@mozilla.com",
      "hash": "35f0e8eab4107792e7a629c0c958a6a51082d1cf",
      "subject": "Bug 2038246 - Hide tab group onboarding card after 3 impressions r=android-reviewers,jdelorenzo"
    },
    "D308164": {
      "author": "Jack Brown",
      "avatar": "https://www.gravatar.com/avatar/9390fad805dd5d2471db8ce47f8d239d?d=identicon\u0026s=64",
      "cl": "D308164",
      "clUrl": "https://phabricator.services.mozilla.com/D308164",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308164",
      "email": "jbrown@mozilla.com",
      "hash": "85deea7892512b5cf4fd1bedefae002e7d080506",
      "subject": "Bug 2049535 - Add meow as explicit devDependency to fix bundle:html after fresh install. - r=mconley,thecount"
    },
    "D308166": {
      "author": "Jack Brown",
      "avatar": "https://www.gravatar.com/avatar/9390fad805dd5d2471db8ce47f8d239d?d=identicon\u0026s=64",
      "cl": "D308166",
      "clUrl": "https://phabricator.services.mozilla.com/D308166",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308166",
      "email": "jbrown@mozilla.com",
      "hash": "9fd59feb987a4c0a668c4b86d8f204de7862ec85",
      "subject": "Bug 2049528 - Add topsites.pinned_count metric to newtab ping - r=ini"
    },
    "D308180": {
      "author": "Reem H",
      "avatar": "https://www.gravatar.com/avatar/6ff5d1766c0abbbc7f56fb248b548de3?d=identicon\u0026s=64",
      "cl": "D308180",
      "clUrl": "https://phabricator.services.mozilla.com/D308180",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308180",
      "email": "42309026+reemhamz@users.noreply.github.com",
      "hash": "b877ae694383d58c47d718767b36ea647b561f88",
      "subject": "Bug 2049488 - Add crossword widget scaffold. r=nina-py"
    },
    "D308205": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D308205",
      "clUrl": "https://phabricator.services.mozilla.com/D308205",
      "description": "HandleTCPConnectionResult and HandleUDPConnectionResult were identical apart\nfrom the concrete establisher type, so collapse them into one\nHandleConnectionResult taking the ConnectionEstablisher base and using IsUDP()\nwhere the transport matters. This drops a concrete-type dependency and is the\nfirst step toward making establishers injectable for tests.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308205",
      "email": "kershaw@mozilla.com",
      "hash": "85e892f96b8a2e5da15ec3aa837198d67eb1156d",
      "subject": "Bug 2049613 - Merge the TCP and UDP Happy Eyeballs connection-result handlers, r=necko-reviewers,valentin"
    },
    "D308206": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D308206",
      "clUrl": "https://phabricator.services.mozilla.com/D308206",
      "description": "Add a ConnectionEstablisherFactory (default produces the real TCP/UDP\nestablishers) and route EstablishTCPConnection/EstablishUDPConnection through an\ninjected mEstablisherFactory instead of newing the concrete types directly. This\nlets gtests substitute establishers that complete on demand rather than opening\nreal sockets.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308206",
      "email": "kershaw@mozilla.com",
      "hash": "b708802addd8d647809d92bdb083909bd05fd73d",
      "subject": "Bug 2049613 - Create Happy Eyeballs connection establishers through a factory, r=necko-reviewers,valentin"
    },
    "D308207": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D308207",
      "clUrl": "https://phabricator.services.mozilla.com/D308207",
      "description": "EnterSucceeded/ProcessTCPConn/ProcessUDPConn told the two apart with\ndo_QueryObject\u003cnsHttpConnection\u003e/\u003cHttpConnectionUDP\u003e, which a fake connection\ncan't satisfy; branch on HttpConnectionBase::UsingHttp3() instead and let those\nmethods take HttpConnectionBase*. This is behavior-identical and removes the\nfragile concrete-type coupling so tests can pass a fake connection.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308207",
      "email": "kershaw@mozilla.com",
      "hash": "0fef75d39604f20c83db2c0a4837e080207b002f",
      "subject": "Bug 2049613 - Distinguish Happy Eyeballs TCP vs UDP connections via a virtual, r=necko-reviewers,valentin"
    },
    "D308208": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D308208",
      "clUrl": "https://phabricator.services.mozilla.com/D308208",
      "description": "Introduce HappyEyeballsConnMgrDelegate and send every gHttpHandler-\u003eConnMgr() and\nConnectionEntry call from the attempt through an injected mConnMgrDelegate; the\ndefault implementation forwards verbatim and is friended by nsHttpConnectionMgr\nso it can reach the manager's private dispatch helpers. This lets gtests observe\nand intercept the dispatch decisions without a real connection manager.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308208",
      "email": "kershaw@mozilla.com",
      "hash": "54eee4d9bd3f866c15bcdaa3197da566746676f3",
      "subject": "Bug 2049613 - Route Happy Eyeballs dispatch through a connection-manager delegate, r=necko-reviewers,valentin"
    },
    "D308209": {
      "author": "Kershaw Chang",
      "avatar": "https://www.gravatar.com/avatar/608e04ebca94be52b05c003d51d43e07?d=identicon\u0026s=64",
      "cl": "D308209",
      "clUrl": "https://phabricator.services.mozilla.com/D308209",
      "description": "Add test-only seams (establisher-factory/delegate setters, a few state\naccessors, and ZeroRttHandle::SetAnyStartedForTesting) and a gtest that drives\nthe attempt with a fake establisher factory and a recording connection-manager\ndelegate over the real engine. The tests cover dispatch, the bug 2048294/2048392\nre-dispatch guards, and 0-RTT winner/fallback offset handling without real\nsockets.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308209",
      "email": "kershaw@mozilla.com",
      "hash": "54e1c6ee4e45d726e62068ecf317f56fa7daa72d",
      "subject": "Bug 2049613 - Add gtests for HappyEyeballsConnectionAttempt, r=necko-reviewers,valentin"
    },
    "D308288": {
      "author": "longsonr",
      "avatar": "https://www.gravatar.com/avatar/c5d912dac5c74b47bbaff7164f5f8bb8?d=identicon\u0026s=64",
      "cl": "D308288",
      "clUrl": "https://phabricator.services.mozilla.com/D308288",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308288",
      "email": "longsonr@gmail.com",
      "hash": "74c0e61ea3f8b4660451701a61f1f0e214d07b7f",
      "subject": "Bug 2049407 Part 1 - Detach observers on canvas destruction r=emilio"
    },
    "D308362": {
      "author": "Olivia Hall",
      "avatar": "https://www.gravatar.com/avatar/9bb5ba1328acae6f1d36d1c8564bc4bf?d=identicon\u0026s=64",
      "cl": "D308362",
      "clUrl": "https://phabricator.services.mozilla.com/D308362",
      "description": "This patch:\n* Connects toggles and restart button to Nimbus\n* Introduces an EnrollmentResult object to simplify Nimbus response to screen response\n* Introduces a RemoveLabsItem action\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308362",
      "email": "ohall@mozilla.com",
      "hash": "1920850fdc10bd9a338c80d196dc56f2b914a106",
      "subject": "Bug 2032178 - Connect toggles to Nimbus r=gl,android-reviewers"
    },
    "D308372": {
      "author": "Michael Froman",
      "avatar": "https://www.gravatar.com/avatar/e2a2be17b9bb8a1d4d7427c810996388?d=identicon\u0026s=64",
      "cl": "D308372",
      "clUrl": "https://phabricator.services.mozilla.com/D308372",
      "description": "With upcoming macOS 27 dropping Rosetta support, we'll need a native\naarch64 version of the gn executable.  This removes the toolchain-alias\nmacosx64-aarch64-gn from macosx64-gn, and adds a real macosx64-aarch64-gn\ntask to replace the alias.  build-gn-macosx.sh takes the target triple as an\nargument.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308372",
      "email": "mfroman@mozilla.com",
      "hash": "2fa844fca424e812274158508f785ad9471a0562",
      "subject": "Bug 2049854 - build an aarch64 version of gn for Apple Silicon machines r=firefox-build-system-reviewers,sergesanspaille"
    },
    "D308376": {
      "author": "Dale Harvey",
      "avatar": "https://www.gravatar.com/avatar/030451d8cfc268d666bae9a7fe8d10ec?d=identicon\u0026s=64",
      "cl": "D308376",
      "clUrl": "https://phabricator.services.mozilla.com/D308376",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308376",
      "email": "dale@arandomurl.com",
      "hash": "ef1c3ab20a3ca0a0a9b9884311f2e22fe1eb7b1d",
      "subject": "Bug 1967090 - Run mach ts paths after use-moz-src. r=ahal,Gijs"
    },
    "D308378": {
      "author": "Dale Harvey",
      "avatar": "https://www.gravatar.com/avatar/030451d8cfc268d666bae9a7fe8d10ec?d=identicon\u0026s=64",
      "cl": "D308378",
      "clUrl": "https://phabricator.services.mozilla.com/D308378",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308378",
      "email": "dale@arandomurl.com",
      "hash": "9f0ac9b0f5e54e07bb116d7bc01ff00674a0e801",
      "subject": "Bug 2049868 - Use moz-src for dom/ipc. r=Gijs"
    },
    "D308386": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D308386",
      "clUrl": "https://phabricator.services.mozilla.com/D308386",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308386",
      "email": "lsalzman@mozilla.com",
      "hash": "3f628f2c85f422bf06b9567f33bfd4a00943cdd8",
      "subject": "Bug 2049805. r=gfx-reviewers,gw"
    },
    "D308391": {
      "author": "Lee Salzman",
      "avatar": "https://www.gravatar.com/avatar/029a38b9773f1943419c24b7c3d93761?d=identicon\u0026s=64",
      "cl": "D308391",
      "clUrl": "https://phabricator.services.mozilla.com/D308391",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308391",
      "email": "lsalzman@mozilla.com",
      "hash": "d0b01bd1bbc40cc8ad6ef01d2380e05cd5fc3e01",
      "subject": "Bug 2049822. r=gfx-reviewers,sotaro"
    },
    "D308402": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D308402",
      "clUrl": "https://phabricator.services.mozilla.com/D308402",
      "description": "Relocate the hashable interning-key fragments (PolygonKey, StretchSizeKey, the\nradial/conic gradient params, BorderSideAu/NormalBorderAu, ensure_no_corner_overlap\nand GlyphInstanceAu) into webrender_api::key_types, re-exported from their former\nhomes. Behaviour-neutral.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308402",
      "email": "git@chillybin.org",
      "hash": "2ca0014ea375384c4cc9083f9873c12a0a4298de",
      "subject": "Bug 2049895 - Pt 1 - Move more types and functions to webrender_api, in prep for content process interning r=gfx-reviewers,lsalzman"
    },
    "D308403": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D308403",
      "clUrl": "https://phabricator.services.mozilla.com/D308403",
      "description": "Move the primitive geometry helpers (simplify_repeated_primitive,\nprocess_repeat_size, compute_stretch_ratio, apply_gradient_local_clip,\noptimize_linear_gradient, optimize_radial_gradient) into the new\nwebrender_api::prim_geometry, re-exported from their former homes. Behaviour-neutral.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308403",
      "email": "git@chillybin.org",
      "hash": "d60d33ff4c8d915bff1e78618227306d5c49403e",
      "subject": "Bug 2049895 - Pt 2 - Move more types and functions to webrender_api, in prep for content process interning r=gfx-reviewers,lsalzman"
    },
    "D308404": {
      "author": "Glenn Watson",
      "avatar": "https://www.gravatar.com/avatar/3d823baa293744dbe3cbe8ce33d77065?d=identicon\u0026s=64",
      "cl": "D308404",
      "clUrl": "https://phabricator.services.mozilla.com/D308404",
      "description": "Move the interned primitive structs (RectanglePrim, BoxShadow, Image, YuvImage,\nLineDecoration, NormalBorderPrim, RadialGradient, ConicGradient) into the new\nwebrender_api::interned_prims; the Internable impls stay in webrender. Re-exported\nfrom their former homes. Behaviour-neutral.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308404",
      "email": "git@chillybin.org",
      "hash": "88be01c07cd992e145fc24a66d67b2459a419f8e",
      "subject": "Bug 2049895 - Pt 3 - Move more types and functions to webrender_api, in prep for content process interning r=gfx-reviewers,lsalzman"
    },
    "D308416": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/7d8bcf82fc298508ec29373ad5eefccf?d=identicon\u0026s=64",
      "cl": "D308416",
      "clUrl": "https://phabricator.services.mozilla.com/D308416",
      "description": "When an accurate seek completes, a decode threshold is computed and handed to\nthe video decoder so it skips the frames between the prior keyframe and the seek\ntarget. This works in the warm case, where the decoder stays alive across the\nseek (for example seeking during playback): it is only flushed, so it is still\npresent when the threshold is delivered and is unaffected by this change.\n\nIt fails in the cold case, where the decoder has been released and is recreated\nfor the seek. The decoder is released when nothing keeps it resident -- most\ncommonly after the element has been paused long enough to go dormant (scrubbing\na paused video), and also on the first seek before any frame has been decoded.\nIt is then recreated lazily, after the seeking state has already ended, so the\nthreshold computed at seek completion is dropped before it reaches the new\ndecoder and the frames before the target are no longer skipped.\n\nRemember the threshold computed at seek completion and deliver it once the\ndecoder is recreated, so the pre-target frames are skipped in the cold case too.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308416",
      "email": "alastor0325@gmail.com",
      "hash": "d312c3c78a64f563f19b2db809a623c467457a40",
      "subject": "Bug 2049301 - Part 1: Deliver the seek decode threshold after the video decoder is recreated. r=media-playback-reviewers,jolin"
    },
    "D308417": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/7d8bcf82fc298508ec29373ad5eefccf?d=identicon\u0026s=64",
      "cl": "D308417",
      "clUrl": "https://phabricator.services.mozilla.com/D308417",
      "description": "An accurate seek re-decodes every frame from the prior keyframe up to the seek\ntarget and discards all of them except the target frame. Today each decode is\nresolved only after that frame has been returned from the decoder, so the reader\nwaits for one frame's output (a cross-thread and cross-process round trip) before\nsubmitting the next sample. The decoder is left idle for that round trip between\nevery frame.\n\nWhat this removes is the per-frame round-trip latency, not decode time, so it is\nindependent of whether the decode runs in hardware or software. It hurts whenever\na frame decodes faster than the round trip, which is the common case for\nVideoToolbox on Apple silicon. A software decoder slower than the round trip\nspends most of its time decoding and sees little of this overhead, which is why\nthe gap is largest on fast hardware decode.\n\nIt is done only during the seek's keyframe to target run because those frames are\ndiscarded rather than presented, so there is no need to hand each one back before\nsubmitting the next. Outside a seek, decoded frames are needed for presentation\nand are produced at the playback cadence; there the one at a time model provides\nnatural backpressure and bounded in-flight memory, and feeding ahead would grow\nmemory with no benefit. So during the skip run, resolve each decode as soon as\nits sample is submitted; the reader then keeps the decoder fed and it stops\nidling between frames.\n\nThis cuts buffered seek latency for a cold-started seek by roughly two to three\ntimes on Apple silicon. Existing seek correctness tests continue to pass.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308417",
      "email": "alastor0325@gmail.com",
      "hash": "6a2fdf5965918b4c08f9ae5199dff63a35add87f",
      "subject": "Bug 2049301 - Part 2: Pipeline the post-seek video re-decode on macOS. r=media-playback-reviewers,jolin"
    },
    "D308419": {
      "author": "Reem H",
      "avatar": "https://www.gravatar.com/avatar/6ff5d1766c0abbbc7f56fb248b548de3?d=identicon\u0026s=64",
      "cl": "D308419",
      "clUrl": "https://phabricator.services.mozilla.com/D308419",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308419",
      "email": "42309026+reemhamz@users.noreply.github.com",
      "hash": "5fa08832b8d067b9ef9a3bb3212503baa00913bf",
      "subject": "Bug 2049914 - Hardcode 11px font-size value to be used for new tab. r=mkennedy,nina-py"
    },
    "D308426": {
      "author": "Ting-Yu Lin",
      "avatar": "https://www.gravatar.com/avatar/ae1ed412b945fef9c52eee2f809a4406?d=identicon\u0026s=64",
      "cl": "D308426",
      "clUrl": "https://phabricator.services.mozilla.com/D308426",
      "description": "This matches the `WalkInlineDescendantsToDisplayAbsoluteFrames()` counterpart in\nBug 2038072 Part 4.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308426",
      "email": "tlin@mozilla.com",
      "hash": "8f2dc90e71c77b4a9f23c149c5eafbd82d8bac65",
      "subject": "Bug 2050204 - Return early for more frame types in WalkInlineDescendantsToReflowAbsoluteFrames(). r=layout-reviewers,emilio"
    },
    "D308532": {
      "author": "Florian Quèze",
      "avatar": "https://www.gravatar.com/avatar/0ffa237c82d28773736b6c9688b404e3?d=identicon\u0026s=64",
      "cl": "D308532",
      "clUrl": "https://phabricator.services.mozilla.com/D308532",
      "description": "The profiler screenshot grabber reads pixels back with glReadPixels using\nGL_BGRA. GLES only accepts that format with the GL_EXT_read_format_bgra\nextension; on Android emulators that lack it the call raises GL_INVALID_ENUM,\nwhich the debug ErrorReactingGl wrapper turns into a fatal panic, crashing the\nGPU process whenever the profiler Screenshots feature is active.\n\nExpose whether BGRA readback is supported as a device capability. When it is\nnot, RendererScreenshotGrabber requests RGBA from the renderer and\nmap_and_recycle_screenshot swaps the red and blue channels into the BGRA8\nprofiler surface, instead of WebRender silently swizzling in the readback path.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308532",
      "email": "florian@queze.net",
      "hash": "3851c2f7200b5eb8287ea4c10928bbd8721f62f0",
      "subject": "Bug 2050057 - Read profiler screenshots as RGBA on GLES lacking GL_EXT_read_format_bgra, r=gfx-reviewers,jnicol."
    },
    "D308582": {
      "author": "Segun Famisa",
      "avatar": "https://www.gravatar.com/avatar/ce9ff32b0db44f5692a673fddca3a516?d=identicon\u0026s=64",
      "cl": "D308582",
      "clUrl": "https://phabricator.services.mozilla.com/D308582",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308582",
      "email": "sfamisa@mozilla.com",
      "hash": "d5171e9e0f4729494423b0524f289073e0f0cb6c",
      "subject": "Bug 1812063 - Implement a compat NavHostFragment and custom Navigator that respects device reduced-motion setting r=android-reviewers,kaya"
    },
    "D308594": {
      "author": "Gela",
      "avatar": "https://www.gravatar.com/avatar/45f901b5a098b6fe07dbb371691f68e0?d=identicon\u0026s=64",
      "cl": "D308594",
      "clUrl": "https://phabricator.services.mozilla.com/D308594",
      "description": "{F73472669}\n\n{F73472683}\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308594",
      "email": "gmalekpour@mozilla.com",
      "hash": "df8313a4a7deee62adc3c349babb2b301d77eb34",
      "subject": "Bug 2049948 - Fix Built-in VPN padding in horizontal mode in the Settings menu r=android-reviewers,mavduevskiy"
    },
    "D308595": {
      "author": "Nika Layzell",
      "avatar": "https://www.gravatar.com/avatar/fcf93a5a624020bf2256443c69e08b51?d=identicon\u0026s=64",
      "cl": "D308595",
      "clUrl": "https://phabricator.services.mozilla.com/D308595",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308595",
      "email": "nika@thelayzells.com",
      "hash": "fd66cdb807765445074462c5fd5dc13dcd6658b3",
      "subject": "Bug 2039990 - Part 11: Allow some tests to access system IndexedDB from content, r=dom-storage-reviewers,asuth"
    },
    "D308601": {
      "author": "Dre Grant",
      "avatar": "https://www.gravatar.com/avatar/766f0b780d039fe61b18c3a95137d8ea?d=identicon\u0026s=64",
      "cl": "D308601",
      "clUrl": "https://phabricator.services.mozilla.com/D308601",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D308601",
      "email": "dgrant@mozilla.com",
      "hash": "c58474b05de614f2f029ca568cc6111a7b1e22a4",
      "subject": "Bug 2049798 - Add World Cup semi-finals wallpaper highlight strings. r=fluent-reviewers,bolsson"
    },
    "D308616": {
      "author": "Elissa Cha",
      "avatar": "https://www.gravatar.com/avatar/3e35b9456250282cae28a20111cf7674?d=identicon\u0026s=64",
      "cl": "D308616",
      "clUrl": "https://phabricator.services.mozilla.com/D308616",
      "description": "Follow-up fix for the Smart Window user feedback chat metric where schema mismatches were causing `invalid_value` errors in Debug Ping Viewer.\nThese were not caught during local testing because artifact builds use JOG dynamic metrics and do not perform the same schema validation as full builds (see Bug 2050219).\nCan be verified by submitting Smart Window feedback on a full local build and confirming no `invalid_value` errors are reported for `microsurvey.smart_window.chat`.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308616",
      "email": "echa@mozilla.com",
      "hash": "5e6da0fd28882ca629dfd95e0a85273af0794371",
      "subject": "Bug 2050195 - Fix glean.error.invalid_value for microsurvey.smart_window.chat metric r=pdahiya,omc-reviewers,aminomancer"
    },
    "D308632": {
      "author": "Evandro Baginski",
      "avatar": "https://www.gravatar.com/avatar/3a80948a334fe9004934c6c5017472e0?d=identicon\u0026s=64",
      "cl": "D308632",
      "clUrl": "https://phabricator.services.mozilla.com/D308632",
      "description": "gecko_taskgraph overrides Taskgraph's graph_config_schema with its own strict\nschema at import time. config.yml is validated against it in load_graph_config,\nso we need to declare `release-branches` on gecko's GraphConfigSchema directly so it is\nrecognized at load. This is a short-term duplication of the field already\ndefined in mozilla-taskgraph, and can be removed once mozilla-taskgraph is able\nto extend GraphConfigSchema.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308632",
      "email": "ebaginski@thunderbird.net",
      "hash": "a944772ff6560e5954ca7bb7fe07539c6cd7cd73",
      "subject": "Bug 2050242 - Add release-branches to gecko_taskgraph's GraphConfigSchema r=taskgraph-reviewers,ahal"
    },
    "D308648": {
      "author": "Emilio Cobos Álvarez",
      "avatar": "https://www.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=identicon\u0026s=64",
      "cl": "D308648",
      "clUrl": "https://phabricator.services.mozilla.com/D308648",
      "description": "Without this fix, we bail out in:\n\n  https://searchfox.org/firefox-main/rev/c1395f54bdda7cb0ed71bbe54e2940ce16175389/gfx/skia/skia/src/pdf/SkPDFFont.cpp#160-162\n\nThis matches Skia's SkTypeface_FreeType::GetUnitsPerEm (but without the\nSkIntToScalar nonsense because the int-\u003efloat-\u003eint conversion seems\njust useless?).\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308648",
      "email": "emilio@crisal.io",
      "hash": "68d141f647054225137e0caf8cdd6712e1ea96aa",
      "subject": "Bug 2050224 - Fix SkCairoFTTypeface::onGetUPEM(). r=lsalzman"
    },
    "D308665": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/7d8bcf82fc298508ec29373ad5eefccf?d=identicon\u0026s=64",
      "cl": "D308665",
      "clUrl": "https://phabricator.services.mozilla.com/D308665",
      "description": "During the post-seek skip window the macOS video decoder re-decodes every frame\nfrom the preceding keyframe up to the seek target, but only the target frame is\nkept; the earlier frames are decoded solely to satisfy reference dependencies\nand are then discarded. Producing a full output surface for each of those frames\ndominates the re-decode time even though the surface is never used.\n\nDecode those frames for reference only, without producing an output image, so a\nseek pays surface production once for the target frame instead of once per\nre-decoded frame.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308665",
      "email": "alastor0325@gmail.com",
      "hash": "ed3efc31cbadfb715d7bfee60b0fa5ce6405a8a9",
      "subject": "Bug 2049301 - Part 3: Skip output image production for dropped frames during a macOS seek skip. r=media-playback-reviewers,jolin"
    },
    "D308666": {
      "author": "Alastor Wu",
      "avatar": "https://www.gravatar.com/avatar/7d8bcf82fc298508ec29373ad5eefccf?d=identicon\u0026s=64",
      "cl": "D308666",
      "clUrl": "https://phabricator.services.mozilla.com/D308666",
      "description": "When a seek happens during playback the reader delivers the skip threshold to\nthe live decoder for the upcoming re-decode, but the decoder flush that is part\nof the same seek runs afterward and was clearing it. As a result a seek started\nduring playback never entered the skip window and paid full output cost for\nevery re-decoded frame.\n\nStop clearing the threshold in the flush. The threshold's lifetime is owned by\nthe reader, which sets and resets it around a seek, and it is also cleared once\nthe target frame is reached during output; outside a seek it is already unset,\nso it is never left stale by preserving it across a flush.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308666",
      "email": "alastor0325@gmail.com",
      "hash": "e030c4b8ef711efbe977048e685d57205bc58918",
      "subject": "Bug 2049301 - Part 4: Preserve the macOS seek skip threshold across a decoder flush. r=media-playback-reviewers,jolin"
    },
    "D308671": {
      "author": "Dre Grant",
      "avatar": "https://www.gravatar.com/avatar/766f0b780d039fe61b18c3a95137d8ea?d=identicon\u0026s=64",
      "cl": "D308671",
      "clUrl": "https://phabricator.services.mozilla.com/D308671",
      "description": "Lock the progress-circle-wrapper to a definite size via a single\n--progress-circle-size token (driving both block-size and inline-size)\ninstead of a min-height floor, so the masked ring stays square and\nclipped during the widget height transition.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308671",
      "email": "dgrant@mozilla.com",
      "hash": "b86b02bb108f53d6047b4112309d30b89fe9a286",
      "subject": "Bug 2050299 - Contain the Focus Timer progress ring during the widget resize transition. r=reemhamz"
    },
    "D308679": {
      "author": "Ryan VanderMeulen",
      "avatar": "https://www.gravatar.com/avatar/51823ded02903fa76c961fe2a3c1318a?d=identicon\u0026s=64",
      "cl": "D308679",
      "clUrl": "https://phabricator.services.mozilla.com/D308679",
      "description": "The focus-android-test-nightly and focus-android-test-beta jobs build a signed androidTest APK for\nFirebase, which requires the test APK and the app under test to share a signing key (hence the\nnightly/beta build type). These APKs are not meant to exercise minification, but unlike the\nequivalent Fenix jobs - and unlike every *-firebase job - they were missing disable-optimization,\nso R8 ran on the test APK. Add disable-optimization to match, assembling the test APKs without\nshrinking.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308679",
      "email": "rvandermeulen@mozilla.com",
      "hash": "a63a84248f1388eb399e79c86f4a1fe570daa175",
      "subject": "Bug 2050307 - Stop minifying the Focus instrumented-test APKs r=android-reviewers,jonalmeida"
    },
    "a3455aa89429": {
      "author": "agoloman",
      "avatar": "https://www.gravatar.com/avatar/cd12c4a70c28dead95af1f72ff892316?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit cf46b7382184f0c086d0be97847828eb1a375a83.",
      "email": "agoloman@mozilla.com",
      "hash": "a3455aa89429a00f6461439f38eac956562d94a0",
      "subject": "Revert \"Bug 2048048 - Fix policy issues with new tab preferences. r=jmendez\" for causing gtest failures."
    },
    "b4aef96236e2": {
      "author": "Cosmin Sabou",
      "avatar": "https://www.gravatar.com/avatar/392cb3f0cf45743e207bd4bcde85f272?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit 1449a5cefe42fbc2e6ecad561e0fb79187eff74a.\n\nRevert \"Bug 2040673 - Also toggle the crashhelper process on appinfo.crashreporterEnabled r=gsvelto\"\n\nThis reverts commit 751d8690a29cfb5ab9729e5cf77190bcb2c901dc.\n\nRevert \"Bug 2040673 - OOPInit: early return if already called r=gsvelto\"\n\nThis reverts commit 38a2dd30f48d237d596a62c86e7ce70fcdab7a26.\n\nRevert \"Bug 2040673 - OOPInit: don't start the process if crash reporter is disabled r=gsvelto\"\n\nThis reverts commit 454d44ce5ddbe69feb5658198b5637c1e18fee77.\n\nRevert \"Bug 2040673 - Centralize crash reporter enablement semantics r=gsvelto\"\n\nThis reverts commit b01af501514eb015064e260a54b9bea58ceb0b8d.",
      "email": "csabou@mozilla.com",
      "hash": "b4aef96236e2bac9b06ecde45d316699a607c13b",
      "subject": "Revert \"Bug 2040673 - test that the crashhelper is properly disabled with the appropriate env variable r=gsvelto\" for causing gv-junit failures on PromptDelegateTest."
    },
    "d890576dc1fc": {
      "author": "agoloman",
      "avatar": "https://www.gravatar.com/avatar/cd12c4a70c28dead95af1f72ff892316?d=identicon\u0026s=64",
      "cl": "",
      "clUrl": "",
      "description": "This reverts commit ba7f1e692798ea95e2b04af3efd6f5c4acb553dc.",
      "email": "agoloman@mozilla.com",
      "hash": "d890576dc1fc5820d6da92fad86c99ad8eacd487",
      "subject": "Revert \"Bug 2048048 - Fix policy issues with new tab preferences. r=jmendez\" for causing mochitest plain failures @test_bug1268962.html."
    }
  },
  "date": "2026-06-25",
  "days": 1,
  "generatedAt": "2026-06-25T22:07:30Z",
  "markdown": "## Highlights\n- **Security** Firefox landed a broad principal-validation hardening series across PBackground, workers, LocalStorage, Cache, ClientSource, and IndexedDB to shut down cross-origin and remote-type trust gaps. [Phab D302406](https://phabricator.services.mozilla.com/D302406) [Phab D302407](https://phabricator.services.mozilla.com/D302407) [Phab D302408](https://phabricator.services.mozilla.com/D302408) [Phab D302410](https://phabricator.services.mozilla.com/D302410) [Phab D302411](https://phabricator.services.mozilla.com/D302411) [Phab D302412](https://phabricator.services.mozilla.com/D302412) [Phab D302413](https://phabricator.services.mozilla.com/D302413) [Phab D302414](https://phabricator.services.mozilla.com/D302414) [Phab D307070](https://phabricator.services.mozilla.com/D307070) [Phab D308595](https://phabricator.services.mozilla.com/D308595)\n- **Web Platform** `\u003cvideo\u003e` and `\u003caudio\u003e` got the proposed `loading` attribute implementation, a meaningful lazy-loading step for media-heavy pages, though it was backed out later for bustage. [Phab D278547](https://phabricator.services.mozilla.com/D278547)\n- **Rendering** Firefox implemented CSS `text-box-trim` for both block containers and inline boxes, moving another typography feature into the engine. [Phab D307990](https://phabricator.services.mozilla.com/D307990) [Phab D307991](https://phabricator.services.mozilla.com/D307991)\n- **Media** macOS video seek got a four-part decoder pipeline cleanup that should reduce wasted decode work and make post-seek playback recover faster and more smoothly. [Phab D308416](https://phabricator.services.mozilla.com/D308416) [Phab D308417](https://phabricator.services.mozilla.com/D308417) [Phab D308665](https://phabricator.services.mozilla.com/D308665) [Phab D308666](https://phabricator.services.mozilla.com/D308666)\n- **UI** Desktop form autofill and login autocomplete moved off old richlist rows onto the shared `autocomplete-row-item` model, which should simplify future UI work and make row actions more consistent. [Phab D287746](https://phabricator.services.mozilla.com/D287746) [Phab D287747](https://phabricator.services.mozilla.com/D287747) [Phab D307148](https://phabricator.services.mozilla.com/D307148) [Phab D307688](https://phabricator.services.mozilla.com/D307688)\n- **V8** SpiderMonkey enabled the stencil navigation cache on Nightly, a notable parser and startup-path experiment aimed at faster same-site navigations. [Phab D291097](https://phabricator.services.mozilla.com/D291097)\n- **Networking** Necko refactored Happy Eyeballs connection setup behind delegates, factories, and shared result handlers, then added gtests, which is solid groundwork for safer dual-stack dialing changes. [Phab D308205](https://phabricator.services.mozilla.com/D308205) [Phab D308206](https://phabricator.services.mozilla.com/D308206) [Phab D308207](https://phabricator.services.mozilla.com/D308207) [Phab D308208](https://phabricator.services.mozilla.com/D308208) [Phab D308209](https://phabricator.services.mozilla.com/D308209)\n- **DevTools** Network Monitor now preserves stack traces for in-memory cached scripts, making it easier to explain where cached code came from during debugging. [Phab D306595](https://phabricator.services.mozilla.com/D306595)\n- **Mobile** Android added a compat `NavHostFragment` and custom navigator that respects the device reduced-motion setting, closing a real motion-accessibility gap. [Phab D308582](https://phabricator.services.mozilla.com/D308582)\n\n## What landed by area\n\n### DOM, Storage, and Process Security\n- **Security** Added a threadsafe `CurrentRemoteType` getter as groundwork for later trust validation across process boundaries. [Phab D302406](https://phabricator.services.mozilla.com/D302406)\n- **Security** Added more principal validation to PBackground, tightening checks in a core cross-process channel. [Phab D302407](https://phabricator.services.mozilla.com/D302407)\n- **Security** Checked `ValidatePrincipal` on the child side to catch mismatches earlier. [Phab D302408](https://phabricator.services.mozilla.com/D302408)\n- **Security** Switched LocalStorage and ClientSource actors to `ThreadsafeContentParentHandle` to make validation and lifetime handling safer. [Phab D302409](https://phabricator.services.mozilla.com/D302409)\n- **Security** Wired `ValidatePrincipal` into LocalStorage actors. [Phab D302410](https://phabricator.services.mozilla.com/D302410)\n- **Security** Routed `ValidatePrincipal` through `PrincipalVerifier` so checks happen in one consistent place. [Phab D302411](https://phabricator.services.mozilla.com/D302411)\n- **Security** Validated `ClientSource` objects at creation time instead of trusting later consumers. [Phab D302412](https://phabricator.services.mozilla.com/D302412)\n- **Security** Blocked cache access for different origins, closing an origin-mixing hole. [Phab D302413](https://phabricator.services.mozilla.com/D302413)\n- **Security** Validated principals earlier during `SharedWorker` creation. [Phab D302414](https://phabricator.services.mozilla.com/D302414)\n- **Security** Validated principals during IndexedDB creation, extending the hardening into storage startup. [Phab D307070](https://phabricator.services.mozilla.com/D307070)\n- **Security** Allowed specific tests to access system IndexedDB from content so the new security checks remain testable. [Phab D308595](https://phabricator.services.mozilla.com/D308595)\n- **Security** Added a unified mechanism for deciding when a content process becomes untrusted, though that landing was later backed out for test failures. [Phab D307885](https://phabricator.services.mozilla.com/D307885)\n- **Web Platform** Moved list box selection state and event handling into `HTMLSelectElement`, a cleanup with real form-control behavior impact. [Phab D306754](https://phabricator.services.mozilla.com/D306754)\n- **Rendering** Detached SVG canvas observers on canvas destruction to avoid stale observer behavior and shutdown hazards. [Phab D308288](https://phabricator.services.mozilla.com/D308288)\n\n### CSS, Layout, and Graphics\n- **Rendering** Implemented `text-box-trim` for block containers. [Phab D307990](https://phabricator.services.mozilla.com/D307990)\n- **Rendering** Implemented `text-box-trim` for inline boxes. [Phab D307991](https://phabricator.services.mozilla.com/D307991)\n- **Rendering** Returned early for more frame types in `WalkInlineDescendantsToReflowAbsoluteFrames()`, shaving useless layout work off tricky reflow paths. [Phab D308426](https://phabricator.services.mozilla.com/D308426)\n- **GPU** Ran `APZUpdater::ClearTree` directly when the updater thread never started, fixing a shutdown and initialization edge case. [Phab D307975](https://phabricator.services.mozilla.com/D307975)\n- **GPU** Tracked `WebRenderBridgeParent` root status with a stable flag instead of deriving it indirectly. [Phab D307974](https://phabricator.services.mozilla.com/D307974)\n- **GPU** Moved more types and functions into `webrender_api` in preparation for content-process interning. [Phab D308402](https://phabricator.services.mozilla.com/D308402)\n- **GPU** Continued the `webrender_api` move to untangle more shared rendering types. [Phab D308403](https://phabricator.services.mozilla.com/D308403)\n- **GPU** Finished this three-part `webrender_api` migration chunk for content-process interning prep. [Phab D308404](https://phabricator.services.mozilla.com/D308404)\n- **Perf** Fixed `SkCairoFTTypeface::onGetUPEM()`, a low-level text and font metric correctness fix. [Phab D308648](https://phabricator.services.mozilla.com/D308648)\n- **GPU** Updated profiler screenshot readback to use RGBA when GLES lacks `GL_EXT_read_format_bgra`, improving capture reliability on constrained devices. [Phab D308532](https://phabricator.services.mozilla.com/D308532)\n- **GPU** Landed two gfx changes with minimal public description, likely in the rendering and compositing path. [Phab D308391](https://phabricator.services.mozilla.com/D308391) [Phab D308386](https://phabricator.services.mozilla.com/D308386)\n\n### Media and Web Platform\n- **Media** Delivered the seek decode threshold after macOS video decoder recreation so seek skip logic survives decoder resets. [Phab D308416](https://phabricator.services.mozilla.com/D308416)\n- **Media** Pipelined post-seek video re-decode on macOS to reduce latency after seeks. [Phab D308417](https://phabricator.services.mozilla.com/D308417)\n- **Media** Skipped output image production for dropped frames during macOS seek skip, cutting wasted decode and upload work. [Phab D308665](https://phabricator.services.mozilla.com/D308665)\n- **Media** Preserved the macOS seek skip threshold across decoder flushes so behavior stays stable after pipeline resets. [Phab D308666](https://phabricator.services.mozilla.com/D308666)\n- **Media** Delayed `media.play()` while a GeckoView autoplay permission request is pending, aligning API behavior with permission flow. [Phab D307905](https://phabricator.services.mozilla.com/D307905)\n- **Web Platform** Implemented the proposed `loading` attribute for video and audio elements, adding lazy-loading hooks for media resources. [Phab D278547](https://phabricator.services.mozilla.com/D278547)\n- **Networking** Added a WPT asserting that `\u003clink rel=prefetch\u003e` fires `error` on CORS-mode network failures, improving spec coverage for prefetch behavior. [Phab D305964](https://phabricator.services.mozilla.com/D305964)\n\n### Networking and DevTools\n- **Networking** Merged TCP and UDP Happy Eyeballs connection-result handlers so both paths share the same completion plumbing. [Phab D308205](https://phabricator.services.mozilla.com/D308205)\n- **Networking** Created Happy Eyeballs connection establishers through a factory, making transport setup easier to vary and test. [Phab D308206](https://phabricator.services.mozilla.com/D308206)\n- **Networking** Distinguished Happy Eyeballs TCP versus UDP connections through a virtual interface instead of ad hoc branching. [Phab D308207](https://phabricator.services.mozilla.com/D308207)\n- **Networking** Routed Happy Eyeballs dispatch through a connection-manager delegate for cleaner orchestration. [Phab D308208](https://phabricator.services.mozilla.com/D308208)\n- **Networking** Added gtests for `HappyEyeballsConnectionAttempt`, giving the refactor real coverage. [Phab D308209](https://phabricator.services.mozilla.com/D308209)\n- **DevTools** Reflected the stack trace for in-memory cached scripts in Network Monitor, which should make cached execution sources much easier to track down. [Phab D306595](https://phabricator.services.mozilla.com/D306595)\n- **DevTools** Delayed cached-script processing by one tick to avoid processing it before the necessary state exists. [Phab D306434](https://phabricator.services.mozilla.com/D306434)\n\n### Desktop UI, Firefox Suggest, and New Tab\n- **UI** Replaced old richlist autocomplete items for logins, passwords, addresses, and form history with `autocomplete-row-item`. [Phab D287746](https://phabricator.services.mozilla.com/D287746)\n- **UI** Added a secondary-action schema for autocomplete row items so rows can expose richer actions consistently. [Phab D287747](https://phabricator.services.mozilla.com/D287747)\n- **UI** Made the importable-logins autocomplete item compatible with the new row component. [Phab D307148](https://phabricator.services.mozilla.com/D307148)\n- **UI** Made the insecure warning item compatible with the same autocomplete-row-item path. [Phab D307688](https://phabricator.services.mozilla.com/D307688)\n- **UI** Updated tests for login, address, and payment autocomplete items after the row migration. [Phab D287748](https://phabricator.services.mozilla.com/D287748)\n- **UI** Prevented a saved card with no expiration date from blanking the whole payment methods list. [Phab D308081](https://phabricator.services.mozilla.com/D308081)\n- **Perf** Skipped ML inference on first invocation so the model has time to become available instead of failing cold-start work. [Phab D307543](https://phabricator.services.mozilla.com/D307543)\n- **UI** Added a Back button to the preferences search results header, restoring keyboard navigation in that flow. [Phab D306883](https://phabricator.services.mozilla.com/D306883)\n- **UI** Fixed new tab preference handling under enterprise policy control. [Phab D307332](https://phabricator.services.mozilla.com/D307332)\n- **Privacy** Cleared the private default search engine setting when the user turns off the separate private-window engine option. [Phab D302756](https://phabricator.services.mozilla.com/D302756)\n- **UI** Added a crossword widget scaffold to New Tab. [Phab D308180](https://phabricator.services.mozilla.com/D308180)\n- **UI** Hardcoded the 11px font size used on New Tab to match intended styling. [Phab D308419](https://phabricator.services.mozilla.com/D308419)\n- **UI** Added `topsites.pinned_count` to the New Tab ping for better telemetry on pinned-site usage. [Phab D308166](https://phabricator.services.mozilla.com/D308166)\n- **UI** Added World Cup semi-finals wallpaper highlight strings for New Tab content. [Phab D308601](https://phabricator.services.mozilla.com/D308601)\n- **Refactor** Added `meow` as an explicit devDependency so `bundle:html` works after a fresh install. [Phab D308164](https://phabricator.services.mozilla.com/D308164)\n- **Privacy** Fixed `glean.error.invalid_value` for the `microsurvey.smart_window.chat` metric. [Phab D308616](https://phabricator.services.mozilla.com/D308616)\n\n### Android and Mobile\n- **A11y** Implemented a compat `NavHostFragment` and custom navigator that respects the Android device reduced-motion setting. [Phab D308582](https://phabricator.services.mozilla.com/D308582)\n- **Mobile** Fixed Built-in VPN padding in horizontal mode in the Android Settings menu. [Phab D308594](https://phabricator.services.mozilla.com/D308594)\n- **Mobile** Contained the Focus Timer progress ring during widget resize transitions so the animation does not spill outside its bounds. [Phab D308671](https://phabricator.services.mozilla.com/D308671)\n- **Build** Stopped minifying Firefox Focus instrumented-test APKs, which should make test debugging less miserable. [Phab D308679](https://phabricator.services.mozilla.com/D308679)\n- **Mobile** Connected Labs toggles to Nimbus so experiments can drive the new controls remotely. [Phab D308362](https://phabricator.services.mozilla.com/D308362)\n- **Mobile** Deserialized Nimbus information into `LabsItem`, wiring experiment metadata into the Android Labs UI. [Phab D307339](https://phabricator.services.mozilla.com/D307339)\n- **Mobile** Hid the tab group onboarding card after three impressions to reduce repeat nagging. [Phab D308104](https://phabricator.services.mozilla.com/D308104)\n\n### Build System, Tooling, and Infrastructure\n- **Build** Built an aarch64 `gn` binary for Apple Silicon machines, smoothing native build tooling on macOS ARM. [Phab D308372](https://phabricator.services.mozilla.com/D308372)\n- **Build** Ran `mach ts paths` after `use-moz-src`, another step in the ongoing `moz-src` workflow migration. [Phab D308376](https://phabricator.services.mozilla.com/D308376)\n- **Build** Switched `dom/ipc` to `moz-src`, extending that source-layout cleanup into another major directory. [Phab D308378](https://phabricator.services.mozilla.com/D308378)\n- **Build** Added `release-branches` to `gecko_taskgraph`'s `GraphConfigSchema`, a small but useful taskgraph schema update. [Phab D308632](https://phabricator.services.mozilla.com/D308632)\n\n### Enterprise and Content Analysis\n- **Security** Added an interface for the content analysis backend, starting a cleaner enterprise scanning abstraction. [Phab D307392](https://phabricator.services.mozilla.com/D307392)\n- **Security** Added a skeleton `ExternalAgentBackend` and wired it into ContentAnalysis. [Phab D307393](https://phabricator.services.mozilla.com/D307393)\n- **Security** Moved ContentAnalysis SDK communication logic into `ExternalAgentBackend`, completing the refactor split. [Phab D307394](https://phabricator.services.mozilla.com/D307394)\n\n## Reverts \u0026 Reapplies\n- **Revert** Backed out the `\u003clink rel=prefetch\u003e` CORS-mode `error` event WPT after mochitest failures in `test_bug1268962.html`. [bug 2046524](https://bugzilla.mozilla.org/show_bug.cgi?id=2046524)\n- **Revert** Backed out the new tab enterprise policy fix after mochitest plain failures. [bug 2048048](https://bugzilla.mozilla.org/show_bug.cgi?id=2048048)\n- **Revert** Backed out the same new tab enterprise policy fix again after gtest failures. [bug 2048048](https://bugzilla.mozilla.org/show_bug.cgi?id=2048048)\n- **Revert** Backed out the unified \"content process becomes untrusted\" mechanism after dt failures in `ContentChild.cpp`. [bug 2049046](https://bugzilla.mozilla.org/show_bug.cgi?id=2049046)\n- **Revert** Backed out the `loading` attribute implementation for video and audio after a build bustage in `nsHtml5TreeBuilderCppSupplement.h`. [bug 2005072](https://bugzilla.mozilla.org/show_bug.cgi?id=2005072)\n- **Revert** Backed out the crashhelper env-var test after GeckoView JUnit failures in `PromptDelegateTest`. [bug 2040673](https://bugzilla.mozilla.org/show_bug.cgi?id=2040673)",
  "repo": "firefox",
  "repoDisplay": "Firefox",
  "rollGroups": [
    {
      "name": "No",
      "count": 3
    },
    {
      "name": "Merge",
      "count": 2
    }
  ],
  "since": "2026-06-25",
  "totals": {
    "commits": 84,
    "features": 79,
    "rolls": 5
  },
  "until": "2026-06-25"
}