Reject non-manifest 200 responses as extension gallery service index … · microsoft/vscode@f005969 · GitHub
Skip to content

Commit f005969

Browse files
mcummingCopilot
andauthored
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-3947b8f3f4c5
1 parent b5ed7a7 commit f005969

2 files changed

Lines changed: 75 additions & 6 deletions

File tree

‎src/vs/workbench/services/extensionManagement/electron-browser/extensionGalleryManifestService.ts‎

Lines changed: 39 additions & 2 deletions

‎src/vs/workbench/services/extensionManagement/test/electron-browser/extensionGalleryManifestService.test.ts‎

Lines changed: 36 additions & 4 deletions

0 commit comments

Comments
 (0)