Parent: #268. Webview epic: #264. Release epic: #227.
Proven gap
Unchanged Code OSS intercepts trusted primary anchor clicks, keeps same-document fragments local, posts other links to the host, and prevents middle auxclick. Native WebScene currently queues every uncancelled primary HTTP(S) anchor through one external request, does not preserve target/modifier/middle disposition, ignores auxiliary cancellation/default behavior, and can walk from a child document into its retained iframe owner.
Focused implementation
- Bound anchor lookup and fragment scrolling at the target document root.
- Keep unmodified same-document fragments local, including decoded IDs,
#, and #top.
- Preserve
_blank/named-target, Ctrl/Meta/Shift primary, and middle-click disposition on the existing typed external-URL request.
- Populate the activated anchor node ID without widening request authority.
- Honor
auxclick.preventDefault() and never navigate for the right auxiliary button.
- Preserve the existing HTTP(S)-only and 8 KiB URL limits; download anchors remain separately owned.
- Add unchanged Code-shaped native and browser contracts.
Acceptance and deferred gates
Execution is deferred under the current implementation-first direction.
Parent: #268. Webview epic: #264. Release epic: #227.
Proven gap
Unchanged Code OSS intercepts trusted primary anchor clicks, keeps same-document fragments local, posts other links to the host, and prevents middle
auxclick. Native WebScene currently queues every uncancelled primary HTTP(S) anchor through one external request, does not preserve target/modifier/middle disposition, ignores auxiliary cancellation/default behavior, and can walk from a child document into its retained iframe owner.Focused implementation
#, and#top._blank/named-target, Ctrl/Meta/Shift primary, and middle-click disposition on the existing typed external-URL request.auxclick.preventDefault()and never navigate for the right auxiliary button.Acceptance and deferred gates
488b9790e1b14c83f06cdcbfdd220cd53f318d79.git diff --checkpassed.Execution is deferred under the current implementation-first direction.