LGTM1
/Daniel
On 2024-10-08 02:11, 'Daniel Clark' via blink-dev wrote:
Contact emails
dan...@microsoft.com <mailto:dan...@microsoft.com>
Explainer
None
Specification
https://url.spec.whatwg.org/#forbidden-host-code-point
<https://url.spec.whatwg.org/#forbidden-host-code-point>
Summary
Perspec <https://url.spec.whatwg.org/#forbidden-host-code-point>,URL
hostnames cannot contain the space character, but currently URL
parsing in Chromium allows spaces in the hostname. This causes
Chromium to fail several tests included in the Interop2024HTTPS URLs
for WebSocket
<https://wpt.fyi/results/websockets?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2024-websockets>andURL
<https://wpt.fyi/results/url?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2023-url>
focus areas.
To bring Chromium into spec compliance, ideally we would ban spaces
from allspecial <https://url.spec.whatwg.org/#is-special> URL hosts,
but a difficulty with this is spaces could be used in the host part in
Windows file:// URLs (see discussion
athttps://github.com/whatwg/url/issues/599
<https://github.com/whatwg/url/issues/599>).
So, the scope of this Intent is for the change to bring Chromium
closer to spec compliance by making spaces fail URL hostname parsing
for non-file:// URLs only.
For the full change and implementation details, see
https://chromium-review.googlesource.com/c/chromium/src/+/5753305
Blink component
Blink>Network
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ENetwork>
TAG review
None. This is implementing previously specced behavior, and Gecko and
WebKit already treat spaces in URL hostnames as URL parse errors.
TAG review status
Not applicable
Risks
Interoperability and Compatibility
From an interoperability perspective this is strictly positive: the
change brings Chromium closer to spec compliance and interoperable URL
parsing behavior with other engines. There is some compat risk given
this is a web-visible change to existing URL parsing behavior. I
believe the risk to be reasonable given that we are now aligning with
the 2 other browser engines, and excluding the potentially risky
file:// URL case.
In 2021, data was collected about the use of space and other
not-allowed-per-spec characters in hostnames. See here
<https://issues.chromium.org/u/0/issues/40124263#comment31> for that
data and some discussion. On Windows, space was escaped in 0.004143%
of hostnames parsed. /Gecko/: Shipped/Shipping /WebKit/:
Shipped/Shipping /Web developers/: No signals /Other signals/: This
issue is causing Chromium/Edge failures in the Interop2024 HTTPS URLs
for WebSocket
<https://wpt.fyi/results/websockets?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2024-websockets>//and//URL
<https://wpt.fyi/results/url?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2023-url>focus
areas.
WebView application risks
/Does this intent deprecate or change behavior of existing APIs, such
that it has potentially high risk for Android WebView-based applications?/
None
Debuggability
None
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes
Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
Yes
Flag name on chrome://flags
None
Finch feature name
kDisallowSpaceCharacterInURLHostParsing
Non-finch justification
None
Requires code in //chrome?
False
Estimated milestones
Shipping on desktop
131
Anticipated spec changes
Depending on the result of https://github.com/whatwg/url/issues/599
<https://github.com/whatwg/url/issues/599>, file:// URLs may either
change to follow the same behavior of disallowing spaces, or (more
likely) change to be treated as having opaque hostnames which would
permanently allow them to have spaces. Either resolution is compatible
with this Intent since we are not changing the behavior for file:// URLs.
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5083335148437504?gate=5097602358706176
<https://chromestatus.com/feature/5083335148437504?gate=5097602358706176>
This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.
--
You received this message because you are subscribed to the Google
Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/MW4PR00MB1455962E8DC964769C03C508C57E2%40MW4PR00MB1455.namprd00.prod.outlook.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/MW4PR00MB1455962E8DC964769C03C508C57E2%40MW4PR00MB1455.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/962bb212-d0fc-41ae-8ba9-c347806f5432%40gmail.com.