Skip to content

Conversation

@SimonSiefke
Copy link
Contributor

Fixes a memory leak in extension icon widget by using addDisposableListener(this.iconElement, 'load' instead of this.iconElement.onload.

Before

When toggling the extension search view 37 times, the number of load event listeners grows to 185:

{
  "eventListenersWithStackTrace": [
    {
      "type": "load",
      "description": "() => this.iconElement.style.visibility = \"inherit\"",
      "objectId": "4623829927015327231.1.34282",
      "stack": [
        "listener (vscode/out/vs/workbench/contrib/extensions/browser/extensionsWidgets.js:125:36)",
        "ExtensionIconWidget.render (vscode/out/vs/workbench/contrib/extensions/browser/extensionsWidgets.js:126:35)",
        "ExtensionIconWidget.update (vscode/out/vs/workbench/contrib/extensions/browser/extensionsWidgets.js:70:10)",
        "set extension (vscode/out/vs/workbench/contrib/extensions/browser/extensionsWidgets.js:67:10)",
        "vscode/out/vs/workbench/contrib/extensions/common/extensions.js:57:48",
        "Array.forEach (<anonymous>)",
        "set extension (vscode/out/vs/workbench/contrib/extensions/common/extensions.js:57:21)",
        "set extension (vscode/out/vs/workbench/contrib/extensions/browser/extensionsList.js:141:39)",
        "Renderer.renderElement (vscode/out/vs/workbench/contrib/extensions/browser/extensionsList.js:175:20)"
      ],
      "count": 185,
      "originalStack": ["src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts:131:31"],
      "originalName": null
    }
]

After

No more load event listener leak detected

@sandy081 sandy081 added this to the December / January 2026 milestone Dec 9, 2025
@sandy081 sandy081 enabled auto-merge (squash) December 9, 2025 12:55
@sandy081 sandy081 merged commit ad89fb7 into microsoft:main Dec 19, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants