feat: bounded native webview window presentation - #194
Merged
Merged
Conversation
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.
Refs #193. Coordinated with FastLED/cli#242. Stacked on #191; merge its dependencies first.
Adds facade-owned WebviewWindowOptions (title <=1024 UTF-8 bytes, no control characters, logical dimensions 1..16384) with typed validation errors and private validated fields. New open_webview_with_options composes existing permissions and delegates to the same resource lifecycle and native builder. Existing methods retain defaults. No scripts, IPC, backend handles, extra runtime, crate, or dependency introduced.
The native close smoke now opens a configured window and verifies actual title and scale-adjusted logical client area before closing; all other lifecycle scenarios retain the original opening route. Test-only observation clones the dispatcher before synchronous queries, avoiding a backing-table lock across UI dispatch.
Verified locally: RED unresolved API -> GREEN two contract tests; GUI feature full suite (180 library tests plus integration/doc tests); strict GUI all-target Clippy; dependency isolation; formatting; single-agent review. Real Linux Xvfb close/isolation/title/800x600-size/teardown smoke passes. Windows MSVC x86-64 and macOS ARM64 crosschecks pass; native Windows CI required. Input bounds are not a GPU memory quota, and window managers may constrain sizes.
This closes the presentation gap, not complete FastLED GUI adoption. Product pre-page scripts/reload behavior, Windows zoom policy, native media/render/capture parity, and exact published release adoption remain outstanding.