Repository navigation
Qualify the Markdown local and external image resource matrix #388
Description
Parent: #266
Remaining proven acceptance gap
Exact main d4dc4fc10d98edd2a8a45a2901692c614d084652 now passes the unchanged Code OSS v6 streamed script, stylesheet, SVG/CSS image, range, validator, admission, localhost, and cache replacement gates. The #266 acceptance matrix still lacks direct unchanged-worker/native evidence for the remaining Markdown image cases: an admitted binary PNG, an admitted SVG, an external HTTPS image that falls through without acquiring local-file authority, a missing local image (404), and an out-of-root local image (401).
Chrome 153 passes the pinned Markdown broker fixture. Running that complete fixture in the native document runner reaches history.replaceState first and is blocked by the same-window navigation scope owned by #267, before any resource request. This child therefore qualifies only the resource plane through the existing exact-worker companion gate and Chrome fixture; it does not alter or duplicate navigation.
Focused scope
- Exercise local PNG and SVG byte streams through unchanged Code v6 and verify intrinsic dimensions/load completion.
- Verify external HTTPS image fallback uses the ordinary host loader and cannot be mistaken for an admitted local resource.
- Verify missing and out-of-root local images report error, open no response body, and never fall through to ambient host loading.
- Preserve existing CSP/origin,
localResourceRoots, status/range/validator, 32-body/64-MiB, timeout/cancellation, cache, filesystem, and network authority. - Add browser and native correctness plus latency, heap/RSS, and 100-cycle teardown evidence using the existing resource harnesses.
Owned paths and collisions
Owned paths are the unchanged Markdown resource fixture/Chrome oracle and native_v8_runtime_stream_fetch_tests.inc with its existing focused CTest. Runtime changes are allowed only if this exact matrix proves a generic resource defect.
This child excludes #267 navigation, #268 interaction, #382 File System/IndexedDB, #386 CSSOM layer work, #76 consolidation, AppScene, CSS implementation, and vscode-demo.
Acceptance
- Chrome and native agree on load/error outcomes and image dimensions for all five cases.
- Denied/missing local images stream zero bytes and never bypass the unchanged worker broker; the external image reaches only the ordinary host path.
- 100 mixed image cycles stay <=100 ms p95, <=8 MiB V8 heap growth, <=64 MiB retained RSS, and leave no live worker fetch/body/image tasks after unregister and engine destruction.
Activity
wieslawsoltes commentedon Sep 18, 2026
Owned from exact main
d4dc4fc10d98edd2a8a45a2901692c614d084652onfeature/webview-resource-acceptance-266.The full pinned Markdown fixture cannot yet run natively because its first
history.replaceStatesame-window navigation is rejected before resources; #267 owns that dependency. #388 stays below navigation and owns only the remaining unchanged-worker image evidence: admitted PNG/SVG, external HTTPS fallback, missing 404, and out-of-root 401, including zero-byte/fail-closed checks and mixed 100-cycle lifetime bounds.Owned paths are
tests/WebPlatformSubset/contracts/fixtures/vscode-markdown-preview-645f29c/index.html, the Chrome contract server only if an external image endpoint is required, andexperiments/WebScene.NativeEngine.Probe/tests/native_v8_runtime_stream_fetch_tests.inc. Runtime files will change only if the exact matrix proves a generic defect.Collision audit: #267/#268 own navigation/interaction; #382 owns File System/IndexedDB; #386 owns CSSOM layer paths; #76 owns docs. This slice excludes all of them, AppScene, CSS implementation, and vscode-demo.
wieslawsoltes commentedon Sep 18, 2026
Merged via #391 as
1f61af570cb73f27991c2881c129854b29e3a9b7.This test-only qualification closes the remaining admitted image resource matrix without changing runtime authority:
Exact-head evidence on
687d437e1958311edb537bde829dfbd078d8affc:webscene_native_service_worker_markdown_resourcespasses with resource/security/performance/lifecycle labels.Native-document CI was not selected because the change touched only web-platform/native probe tests. NuGet packaging was intentionally canceled. Postmerge CI and NuGet tails were canceled after the directly affected exact-head gates passed.
No #267/#268 navigation, FileSystem, CSS, AppScene, docs, consolidation #76, or vscode-demo paths changed.