Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove U+0000 case in the fragment state #486

Merged
merged 1 commit into from
Apr 27, 2020
Merged

Conversation

annevk
Copy link
Member

@annevk annevk commented Apr 26, 2020

Tests: ...

Fixes #440.

(Note that I think we should make all states an explicit ordered list for clarity. Because of that I added it here, despite it only containing one step.)

(See WHATWG Working Mode: Changes for more details.)


Preview | Diff

@annevk annevk added the needs tests Moving the issue forward requires someone to write tests label Apr 26, 2020
@rmisev
Copy link
Member

rmisev commented Apr 26, 2020

LGTM. Just added tests: web-platform-tests/wpt#23256

@annevk annevk removed the needs tests Moving the issue forward requires someone to write tests label Apr 27, 2020
@annevk
Copy link
Member Author

annevk commented Apr 27, 2020

Thanks a lot, I'll merge this once it's clear nothing comes out of jsdom/whatwg-url#143.

annevk pushed a commit to web-platform-tests/wpt that referenced this pull request Apr 27, 2020
@annevk annevk merged commit 3d57401 into master Apr 27, 2020
@annevk annevk deleted the annevk/fragment-0000 branch April 27, 2020 16:49
domenic pushed a commit to jsdom/whatwg-url that referenced this pull request Apr 27, 2020
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request May 1, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256
xeonchen pushed a commit to xeonchen/gecko that referenced this pull request May 1, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request May 1, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256
xeonchen pushed a commit to xeonchen/gecko that referenced this pull request May 1, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request May 3, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256

UltraBlame original commit: 650ec6f46c2e17f43b3448bd91f3616e1622e3d9
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request May 3, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256

UltraBlame original commit: daaf57708f9447f0f68e4caadb80eac9ce03c477
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request May 3, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256

UltraBlame original commit: 650ec6f46c2e17f43b3448bd91f3616e1622e3d9
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request May 3, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256

UltraBlame original commit: daaf57708f9447f0f68e4caadb80eac9ce03c477
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request May 3, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256

UltraBlame original commit: 650ec6f46c2e17f43b3448bd91f3616e1622e3d9
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request May 3, 2020
…a=testonly

Automatic update from web-platform-tests
URL: percent encode NULLs in fragments

See whatwg/url#440 and whatwg/url#486 for context.
--

wpt-commits: efec8204e84d434d80407bb7cf8df37d33cabaa1
wpt-pr: 23256

UltraBlame original commit: daaf57708f9447f0f68e4caadb80eac9ce03c477
rmisev added a commit to upa-url/upa that referenced this pull request May 24, 2020
djc added a commit to servo/rust-url that referenced this pull request Aug 18, 2020
targos added a commit to targos/node that referenced this pull request Sep 8, 2020
nodejs-github-bot pushed a commit to nodejs/node that referenced this pull request Sep 16, 2020
Port of whatwg/url#486

PR-URL: #33770
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
joesepi pushed a commit to joesepi/node that referenced this pull request Jan 8, 2021
Port of whatwg/url#486

PR-URL: nodejs#33770
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
mjfroman pushed a commit to mjfroman/moz-libwebrtc-third-party that referenced this pull request Oct 14, 2022
At present, when canonicalizing the fragment of a URL with a special
scheme, the U+0000 code point is stripped from fragments:

     new URL('http://example.com/#hel\0lo').hash === '#hello'

However, this behavior is undesirable.

1. It is inconsistent with other browsers. Firefox and Safari both give

     new URL('http://example.com/#hel\0lo').hash === '#hel%00lo'

   This is also what the WHATWG URL Standard says since
   whatwg/url#486.

2. It is inconsistent with non-special scheme fragments. Chrome as well
   as other browsers all give

     new URL('schm://example.com/#hel\0lo').hash === '#hel%00lo'

This commit fixes these inconsistencies by always escaping U+0000 in
fragments.

One may argue that censoring U+0000 protects buggy servers not prepared
to deal with the C string terminator. While this may be a sound argument
for other parts of the URL (i.e., bug 1099721), it is not applicable to
the fragment. This is since the URL fragment is never sent to a remote
server.

The current code also cites IE as another implementation that censors
U+0000, but that is clearly anachronistic.

Bug: 1075492
Change-Id: I77ed475a5ee9210ff34cd05617228b3a455c3164
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2885695
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Timothy Gu <timothygu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#881700}
NOKEYCHECK=True
GitOrigin-RevId: b65f2228e105d767b9a6f5cffbb277c3b09e22f7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Percent encode NULLs in fragments
2 participants