{{ message }}
Repository navigation
Commit f005969
Reject non-manifest 200 responses as extension gallery service index (#331804)
* Reject non-manifest 200 responses in extension gallery manifest service
getExtensionGalleryManifestFromServiceUrl only rejected null bodies, so
any 200 carrying any JSON was accepted as a service index. A captive
portal, proxy, or SSO interstitial returning 200 with an unrelated body
(e.g. {"foo":"bar"}) or malformed resources would be published as a
manifest and the marketplace status would become Available, backed by a
garbage index; endpoint discovery then fails later, outside this
try/catch.
Validate that resources is an array of { id, type } before returning.
Throwing routes into the existing catch, which already maps to
AccessDenied - no new status or error type.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Validate manifest version and extensionQuery capability
Address PR feedback: the shape check accepted payloads without
`capabilities.extensionQuery`, which consumers dereference directly, so an
invalid service index could still be published as Available.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c415c4ab-91d1-4412-a3d9-3947b8f3f4c5
* Address manifest validation review feedback
Parse service index responses as unknown, validate their runtime shape, and
preserve compatibility with manifests that omit the unused version field.
Consolidate malformed response coverage into a table-driven test.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c415c4ab-91d1-4412-a3d9-3947b8f3f4c5
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c415c4ab-91d1-4412-a3d9-3947b8f3f4c51 parent b5ed7a7 commit f005969
2 files changed
Lines changed: 75 additions & 6 deletions
File tree
- src/vs/workbench/services/extensionManagement
- electron-browser
- test/electron-browser

0 commit comments