{
  "commits": {
    "D317332": {
      "author": "Dan Mehic",
      "avatar": "https://www.gravatar.com/avatar/35f749b40d5be33dba6b8a826ad95151?d=identicon\u0026s=64",
      "cl": "D317332",
      "clUrl": "https://phabricator.services.mozilla.com/D317332",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D317332",
      "email": "dmehic@mozilla.com",
      "hash": "d8a5f87dbd07e4f3157577a05e94255466863669",
      "subject": "Bug 1850239 - Unship the Firefox plugin blocklist r=manuel"
    },
    "D320979": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D320979",
      "clUrl": "https://phabricator.services.mozilla.com/D320979",
      "description": "This is just plumbing. The parameter will be used by future patches.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320979",
      "email": "jcoppeard@mozilla.com",
      "hash": "98bc8d415e3ba177cf04ad13e9fd4570cc9a5be1",
      "subject": "Bug 2066149 - Part 1: Plumb nurseryOwned parameter through buffer allocator APIs r=sfink"
    },
    "D320980": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D320980",
      "clUrl": "https://phabricator.services.mozilla.com/D320980",
      "description": "Small refactoring to make assertions less verbose.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320980",
      "email": "jcoppeard@mozilla.com",
      "hash": "f81e7dab38d6dfc76715da1d463264d262a3e9b4",
      "subject": "Bug 2066149 - Part 2: Add FreeLists predicates for whether they contain free regions in the spcified range r=sfink"
    },
    "D320981": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D320981",
      "clUrl": "https://phabricator.services.mozilla.com/D320981",
      "description": "This is used for a heuristic in the next patch.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320981",
      "email": "jcoppeard@mozilla.com",
      "hash": "8fd3ce1ca94d556c6069aa7678711f8bcd5799ee",
      "subject": "Bug 2066149 - Part 3: Add a total BufferChunk count r=sfink"
    },
    "D320982": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D320982",
      "clUrl": "https://phabricator.services.mozilla.com/D320982",
      "description": "The adds separate free lists for mixed / tenured chunks and uses them based on\nwhether the allocation is nursery or tenured owned.\n\nWe don't want to do this all the time. For small heaps we want to share chunks\nbetween nursery and tenured owned allocations. And to prevent reducing the heap\ndensity too much we probably don't want to allocate branch new chunks for both\ntenured and nursery owned allocations (although I'm less sure on this). Mainly\nwe want to do this when allocating into previously swept partially used chunks.\n\nThis is implemented by the flag |allocTenuredInMixedChunks|. This is set to\ntrue for small heaps (currently \u003c= 4 MB) and when we run out of available\nchunks and start allocating new ones.\n\nThis simplifies BufferAllocator::startMinorSweeping and removes scanning the\nfree lists. This also lets us skip moving tenured free lists to their chunk\nheader on minor GC which was there so that scanning free lists didn't take too\nlong.\n\nWe also now set the chunk's |hasNurseryOwnedAllocs| flag in useAvailableChunk\nso we don't need to change it later any more. Changing it would now involve\nmore work as we would have to move all its free regions from |tenuredFreeLists|\nto |mixedFreeLists| which is possible but inconvenient.\n\nThis all means that we'll allocate more memory rather than allocating a nursery\nowned allocation into a chunk we're currently using for tenured allocations.\nThis doesn't show much increase in max heap size in testing so this is probably\nfine, and we can come back later and change this if it becomes a problem.\n\nreview comments\n\nDifferential Revision: https://phabricator.services.mozilla.com/D320982",
      "email": "jcoppeard@mozilla.com",
      "hash": "e3119b83c16ca511c432cde7f6ed2d8d6ee72a2b",
      "subject": "Bug 2066149 - Part 4: Partition buffer allocator free lists by chunk kind r=sfink"
    },
    "D321152": {
      "author": "Sotaro Ikeda",
      "avatar": "https://www.gravatar.com/avatar/a0c6bcb88fdc08a4e55f4fcf65cf0428?d=identicon\u0026s=64",
      "cl": "D321152",
      "clUrl": "https://phabricator.services.mozilla.com/D321152",
      "description": "Recycle TextureHost of SurfaceDescriptorD3D10 by storing the TextureHost in gl::SharedSurface or webgpu::SharedTexture.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321152",
      "email": "sotaro.ikeda.g@gmail.com",
      "hash": "6c8c4a8e499474c0d870cfe94c240d9bb673db99",
      "subject": "Bug 2036655 - Recycle DXGITextureHostD3D11 for WebGL and WebGPU r=gfx-reviewers,aosmond"
    },
    "D321310": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D321310",
      "clUrl": "https://phabricator.services.mozilla.com/D321310",
      "description": "This doesn't change any behaviour it just reorganises the following:\n - Make BufferAllocator::makeFreeRegion into FreeRegion::create\n - Make BufferAllocator::pushFreeRegionFront/Back into FreeLists::pushFront/back\n - Remove unnecessary BufferAllocator* parameter to sweep metonds\n - Move BufferAllocator::addSweptRegion methods to BufferChunk and SmallBufferRegion\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321310",
      "email": "jcoppeard@mozilla.com",
      "hash": "4a0d9dfe68e0046b321e1eb058d2ae9563181c73",
      "subject": "Bug 2066149 - Part 5: Refactor to move some methods to the relevant class r=sfink"
    },
    "D321311": {
      "author": "Jon Coppeard",
      "avatar": "https://www.gravatar.com/avatar/c9ec760b0d3a20a6775614baa4086871?d=identicon\u0026s=64",
      "cl": "D321311",
      "clUrl": "https://phabricator.services.mozilla.com/D321311",
      "description": "Rather than moving free regions in tenured chunks back to the chunk header on\nmajor GC, just clear them and rebuild if necessary. The only time we need them\nis if we abort collection as they are rebuilt when we sweep.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D321311",
      "email": "jcoppeard@mozilla.com",
      "hash": "230e079a1f7d111b3a2bfb4faedc4f1d14524f6e",
      "subject": "Bug 2066149 - Part 6: Rebuild free lists for swept chunks on demand r=sfink"
    },
    "D322119": {
      "author": "Exploding-Joysticks",
      "avatar": "https://www.gravatar.com/avatar/1ba79b33017b89958b6d1fc35256c809?d=identicon\u0026s=64",
      "cl": "D322119",
      "clUrl": "https://phabricator.services.mozilla.com/D322119",
      "description": "Differential Revision: https://phabricator.services.mozilla.com/D322119",
      "email": "ExplodingJoysticks@proton.me",
      "hash": "bde88e0509310cea9d16d473d94d7d0f48632df2",
      "subject": "Bug 2003173 - Remove the unused media.mediacapabilities.drop-threshold pref r=webidl,smaug"
    }
  },
  "date": "2026-08-30",
  "days": 1,
  "generatedAt": "2026-08-30T22:05:22Z",
  "markdown": "## Highlights\n- **V8** SpiderMonkey's buffer allocator got a 6-part overhaul that partitions free lists by chunk kind and rebuilds swept-chunk state on demand, setting up lower allocator overhead and cleaner GC behavior. [Phab D321311](https://phabricator.services.mozilla.com/D321311)\n- **GPU** Firefox now recycles DXGITextureHostD3D11 across WebGL and WebGPU, which should cut texture allocation churn on Windows and smooth graphics-heavy workloads. [Phab D321152](https://phabricator.services.mozilla.com/D321152)\n- **Security** Firefox unshipped the plugin blocklist, removing obsolete plugin-era machinery from the browser's security surface. [Phab D317332](https://phabricator.services.mozilla.com/D317332)\n- **Media** Firefox removed the unused `media.mediacapabilities.drop-threshold` pref, trimming dead MediaCapabilities configuration. [Phab D322119](https://phabricator.services.mozilla.com/D322119)\n- **Refactor** The GC allocator work also moved methods onto the classes that own them, making this part of SpiderMonkey easier to reason about and maintain. [Phab D321310](https://phabricator.services.mozilla.com/D321310)\n- **Perf** Buffer allocator free lists are now partitioned by chunk kind, a structural change that should make allocation scans cheaper under GC pressure. [Phab D320982](https://phabricator.services.mozilla.com/D320982)\n- **Perf** Firefox now tracks a total BufferChunk count in the allocator, improving internal accounting for future tuning and correctness checks. [Phab D320981](https://phabricator.services.mozilla.com/D320981)\n\n## What landed by area\n\n### SpiderMonkey GC and allocation\n- **V8** Plumbed a `nurseryOwned` parameter through buffer allocator APIs so allocation paths can distinguish nursery ownership explicitly. [Phab D320979](https://phabricator.services.mozilla.com/D320979)\n- **Perf** Added FreeLists predicates to tell whether free regions exist in a specified range, enabling more targeted allocator decisions. [Phab D320980](https://phabricator.services.mozilla.com/D320980)\n- **Perf** Added a total BufferChunk count for allocator bookkeeping and future tuning hooks. [Phab D320981](https://phabricator.services.mozilla.com/D320981)\n- **Perf** Partitioned buffer allocator free lists by chunk kind to reduce wasted scanning and better match allocation behavior. [Phab D320982](https://phabricator.services.mozilla.com/D320982)\n- **Refactor** Moved several allocator methods onto the classes that actually own the behavior, tightening the GC code structure. [Phab D321310](https://phabricator.services.mozilla.com/D321310)\n- **Perf** Rebuilt free lists for swept chunks on demand instead of eagerly, which should lower maintenance work during sweeping. [Phab D321311](https://phabricator.services.mozilla.com/D321311)\n- **V8** This full [bug 2066149](https://bugzilla.mozilla.org/show_bug.cgi?id=2066149) stack is a coherent allocator cleanup that mixes correctness plumbing, better accounting, and less work in common GC paths. [Phab D321311](https://phabricator.services.mozilla.com/D321311)\n\n### Graphics, WebGL, and WebGPU\n- **GPU** Recycled `DXGITextureHostD3D11` for both WebGL and WebGPU, reducing duplicated texture host churn in the D3D11 path. [Phab D321152](https://phabricator.services.mozilla.com/D321152)\n- **Rendering** The shared texture-host path should improve reuse in Windows graphics interop code where WebGL and WebGPU previously paid separate setup costs. [Phab D321152](https://phabricator.services.mozilla.com/D321152)\n- **Web Platform** The change in [bug 2036655](https://bugzilla.mozilla.org/show_bug.cgi?id=2036655) strengthens shared infrastructure beneath two major graphics APIs rather than changing web-facing semantics. [Phab D321152](https://phabricator.services.mozilla.com/D321152)\n\n### Media\n- **Media** Removed the unused `media.mediacapabilities.drop-threshold` pref, shrinking dead configuration surface in MediaCapabilities. [Phab D322119](https://phabricator.services.mozilla.com/D322119)\n- **Refactor** The cleanup in [bug 2003173](https://bugzilla.mozilla.org/show_bug.cgi?id=2003173) is small but healthy: one less stale pref to carry through media code and tests. [Phab D322119](https://phabricator.services.mozilla.com/D322119)\n\n### Plugins and legacy platform cleanup\n- **Security** Unshipped the Firefox plugin blocklist, continuing the retirement of legacy plugin infrastructure. [Phab D317332](https://phabricator.services.mozilla.com/D317332)\n- **Refactor** The removal in [bug 1850239](https://bugzilla.mozilla.org/show_bug.cgi?id=1850239) cuts obsolete code tied to a browser capability that no longer matters in modern Firefox. [Phab D317332](https://phabricator.services.mozilla.com/D317332)",
  "repo": "firefox",
  "repoDisplay": "Firefox",
  "rollGroups": [
    {
      "name": "No",
      "count": 3
    }
  ],
  "since": "2026-08-30",
  "totals": {
    "commits": 12,
    "features": 9,
    "rolls": 3
  },
  "until": "2026-08-30"
}