feat(server): gate external navigation on a per-host remote grant - #434
Merged
Conversation
Remote grants persist per domain pattern so a bundle grant is visible to the single-host lookup enforcement makes.
filvecchiato
force-pushed
the
feat/gate-external-navigation
branch
from
August 18, 2026 10:47
362003f to
4382538
Compare
Imod7
reviewed
Aug 18, 2026
Imod7
left a comment
Contributor
There was a problem hiding this comment.
In rust/crates/truapi/src/api/system.rs, the navigate_to doc still says only "Request the host to open a URL.", and that text reaches product authors through codegen. It would be good to say there that an external http or https URL now needs a RemotePermission::Remote grant for the target host, and to widen HostNavigateToError::PermissionDenied in rust/crates/truapi/src/v01/system.rs, which says "User denied the navigation prompt" but is now one of three ways to get it. RFC 0002's implicit-trigger table should also gain host_navigate_to, and note that editing the doc comment means rerunning codegen.
Collaborator
Author
|
Docs from the review body, all in
|
filvecchiato
enabled auto-merge
August 18, 2026 19:19
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.
An
http(s)navigate_toneedsRemotePermission::Remote { domains: [host] }and returnsHostNavigateToError::PermissionDeniedwithout it.remote_domain_candidates): exact host, single-level parent wildcard,*; most specific stored decision wins. One normalization rule (normalize_remote_domain, IDNA ASCII) keys both ends of the lookup.mailto:,tel:,polkadot:,dot:) consume no grant.No wire change. iOS
generateDomainCandidateswalks every parent and needs a follow-up.