Skip to content

Qualify the unchanged webview resource broker across representative Code OSS consumers #428

Closed

Description

@wieslawsoltes

Parent: #266
Webview epic: #264
Release epic: #227

Proven remaining gap

All existing native children of #266 are closed. Merged coverage proves the unchanged VS Code OSS v6 Service Worker for Markdown scripts/styles/images, local-resource admission, 200/206/304/401/404 and HEAD behavior, ranges and validators, bounded streaming, CacheStorage replacement continuity, localhost redirects, parser resources, nested client ancestry, and 100-cycle retirement.

The remaining #266 acceptance item is breadth: the pinned Code OSS tree routes notebook renderer/preload modules, custom-editor assets, extension-detail media, chat/MCP webview modules, Mermaid module/Codicon assets, Simple Browser scripts/styles, and release-note media through the same asWebviewUri authority and v6 worker, but no single executable gate proves that representative matrix without a consumer-specific bypass.

The unchanged v6 worker does not define a host-unavailable offline fallback. Its CacheStorage use retains a validated body for 304 reuse. Existing same-registration active-worker replacement coverage therefore satisfies the product cache behavior; durable cross-engine storage is a separate standards/authority decision and is outside this acceptance-only child.

Focused scope

  • Add a bounded executable fixture using the exact pinned 645f29c v6 worker.
  • Drive representative script/module, stylesheet/font, image/media, and fetch resources named for Markdown, notebook, custom editor, extension detail, chat/MCP, Mermaid, Simple Browser, and release notes.
  • Prove every admitted request reaches the same host broker with the expected path, method, destination, MIME/body behavior, client identity, and no direct host fallback.
  • Cover missing and out-of-root denials before bytes, a 32-concurrent-resource batch within the existing 64 MiB queued-body ceiling, one warm validator/cache reuse path, and 100 mixed-consumer cycles with bounded latency, engine-owned memory, process high-water RSS, pending requests, and teardown.
  • Run the same contract in Chrome and native, plus exact-head directly related checks.

Ownership and non-overlap

Own only the existing pinned Markdown resource fixture, the Service Worker stream/fetch native gate, a dedicated WebPlatformSubset profile, and focused validation evidence. Runtime files change only if the exact fixture proves a new generic defect.

Do not touch #425/#239 nested CSSOM paths, #288 MessagePort lifetime paths, consolidation #76, AppScene, or vscode-demo.

Acceptance

Activity

  1. wieslawsoltes commented on Sep 18, 2026

    @wieslawsoltes
    CollaboratorAuthor

    #428 completed through #431, merged as 99e852a3de72e4ceb4b47745b3cbf2f957495b9d from exact reviewed head fd9029f62bd7c78b1e10635423bd0f1ea249336d.

    The exact unchanged Code OSS 645f29c version-6 worker now has one executable acceptance matrix for Markdown Preview plus notebook, custom editor, extension detail, Chat/MCP, Mermaid/Codicon, Simple Browser, and release-notes resources. The same gate covers 401 out-of-root and 404 missing failures, MIME/body/path integrity, 32 concurrent 1 MiB responses, validator-backed 64 KiB reuse over 100 requests, and 100 CSS-image cycles.

    Evidence:

    • Chrome 153: 11/11 assertions; validator path 1.10 ms p95, 100 host requests, one streamed body; CSS-image cycles 20.30 ms p95.
    • Packaged native runtime from WebScene fc71e92f: exact resource gate passed; matrix 0.15 ms p95; V8 used heap 1,488,612 bytes and external memory 85,687 bytes after collection; RSS high-water grew about 135 MiB inside the 256 MiB bound.
    • Refreshed hosted portable V8 contract passed at the exact PR head.
    • Broad queued CI/package tails were canceled after merge under the fast policy.

    No runtime defect or new resource authority was needed. Current RSS after engine destruction remains diagnostic because the macOS allocator retains freed transfer pages; live engine-owned heap/external memory and the process high-water stay bounded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions