Fix native host file services, startup viewport, and SVG rendering - #60
Merged
Merged
Conversation
danwalmsley
added this pull request to stack #63
September 9, 2026 23:00
Preserve origin-checked Blob revocation, native file payload cleanup, binary fetch data, and media navigation cleanup. Cover native Save and binary fetch sharing a Blob followed by URL revocation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native desktop hosts need a viewport-correct first frame, complete SVG typography and gradient paints, and asynchronous file operations that do not depend on browser uploads/downloads. These changes let FocoUI run the unmodified Kestrel and AureonStudio applications using native Open/Save dialogs and Metal rendering.
This PR is stacked on #43 and targets
codex/epic-22-gpu-foundation. It includes only the native host fixes above that branch (updated through2b66c84f).input.acceptin generated and manual bindings.Validation: rebuilt the native engine and ran the complete native V8 runtime test executable after rebasing onto the latest #43 head; generated WebIDL bindings pass
--check. Added file-service, initial viewport, SVG typography, and graphics-release regressions. In the FocoUI integration, Kestrel Open/Save was user-tested and the corrected view cube visually verified; Aureon's native pickers were also exercised.File-service scope: filesystem integration is supplied by each host; this PR provides the WebScene callbacks. Requests are limited to 64 MiB and 64 files. Provider-only streams, canvas PNG encoding, FileReader, native file drops, and File System Access APIs are not implemented here. App-authored export toasts remain unchanged and can precede completion of the native save operation. This addresses part of #57; it does not close its broader requirements.
Conflict-resolution validation: merged the latest PR43 Blob/media changes, removed the duplicate URL revocation handler, and preserved origin checks plus native file payload cleanup. The focused native file-service regression, complete native V8 runtime suite, audio graph tests, media decoding tests, and generated WebIDL binding check pass. The added regression verifies binary Blob fetch and queued native Save survive revocation while subsequent fetches fail.
There is no FocoUI dependency or platform picker implementation in this PR. The WebScene C ABI is host-neutral; the FocoUI-specific integration remains in the FocoUI repository.