Skip to content

Encode delimiters when setting an opaque URL path - #1179

Open
omrzk wants to merge 1 commit into
servo:mainfrom
omrzk:fix/opaque-path-delimiters
Open

omrzk wants to merge 1 commit into
servo:mainfrom
omrzk:fix/opaque-path-delimiters

Conversation

@omrzk

@omrzk omrzk commented Nov 7, 2026

Copy link
Copy Markdown

Setting an opaque URL path containing ? or # currently puts those delimiters into the serialized URL without updating its query/fragment fields. Reparsing then changes the URL components.

Encode those two delimiters in the path setter while retaining the existing opaque-path encoding rules and normal parsing of query/fragment delimiters. Tests cover existing query/fragment combinations, leading slashes, existing escapes, Unicode, and serialization round trips.

Fixes #1176.

Validation: the new delimiter regression fails on current main; the complete workspace test suite and 69 URL unit tests pass. Serde/exposed-internals and no-default-features/alloc suites, formatting, all-target builds and strict workspace Clippy also pass. Other platforms and the minimum Rust version were not executed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

set_path on an opaque-path URL lets a query or fragment in

1 participant