#19
Add support for browser downloads
Summary
Add a browser-owned download manager with native destination selection.
Scope
- Receive download lifecycle events through an explicit Photon Engine API.
- Show queued, active, completed, failed, and cancelled downloads with progress.
- Support cancel, retry where safe, reveal/open, and clearing completed entries.
- Sanitize suggested filenames and resolve collisions without trusting server-provided paths.
- Keep file writes and cleanup off the UI thread; ask the user before choosing a non-default destination when configured.
Acceptance criteria
- A download can be tracked from start through completion or failure.
- Cancellation and shutdown clean up partial files safely.
- Destination authority comes only from the native picker or an explicit user preference.
- Progress and failure state remain understandable after the download finishes.
Design reference: Zephium keeps download records and native path authority behind bounded Rust contracts: https://github.com/zephium-browser/Zephium/blob/main/crates/zephium-core/src/downloads.rs
Activity
0No activity yet.