LGTM2 On Thu, Aug 8, 2024 at 9:47 AM Philip Jägenstedt <foo...@chromium.org> wrote:
> LGTM1, very happy to see this make progress! > > It's unfortunate that rolling this out with Finch and enterprise policy > does not look feasible, but very good that we still have a kill switch. > Keep a close eye on incoming bugs will also be important. > > Good luck! :D > > On Thu, Aug 8, 2024 at 10:09 AM Hayato Ito <hay...@chromium.org> wrote: > >> Contact emails >> >> hay...@chromium.org >> >> Explainer >> >> http://bit.ly/url-non-special >> >> Specification >> >> https://url.spec.whatwg.org/ <https://url.spec.whatwg.org/#url-parsing> >> >> Summary >> >> Support non-special scheme URLs. >> >> Previously, Chromium's URL parser didn't handle non-special scheme URLs >> properly. It treated these URLs as “opaque paths”, which didn’t align with >> the URL Standard. >> >> Now, Chromium’s URL parser correctly processes non-special URLs. >> >> Examples: >> >> Before: >> >> > const url = new URL("git://host/path"); >> >> > url.host >> >> "" >> >> > url.pathname >> >> "//host/path" >> >> > url.host = "newhost"; >> >> > url.host >> >> "" >> >> > const url = new URL("git://a b/path"); >> >> > url.pathname >> >> "//a b/path" >> >> >> After: >> >> > const url = new URL("git://host/path"); >> >> > url.host >> >> "host" >> >> > url.pathname >> >> "/path" >> >> > url.host = "newhost"; >> >> > url.host >> >> "newhost" >> >> > url.href >> >> "git://newhost/path" >> >> > const url = new URL("git://a b/path"); >> >> => throws Exception. // A space character is not allowed as a hostname. >> >> See http://bit.ly/url-non-special for more details. >> >> >> As part of our Interop 2024 efforts, this change delivers the following >> improvements: >> >> - >> >> Boosts WPT URL Score: 936 previously failing subtests in the WPT URL >> tests (link >> >> <https://docs.google.com/document/d/1LjxHl32fE4tCKugrK_PIso7mfXQVEeoD1wSnX2y0ZU8/edit?resourcekey=0-d1gP4X2sG7GPl9mlTeptIA&tab=t.0#heading=h.ji1rj1k19sgh>) >> now pass, raising the score from 87.0% to 94.7%. >> - >> >> Fixes code relying on incorrect URL behavior: 527 tests (link >> >> <https://docs.google.com/spreadsheets/d/1Pqw1iKXK_lxHj-kLIAeRFs-khFz-BPZDio1W7SgEVE4/edit?usp=sharing>) >> and related code in Chromium that depended on the previous behavior are >> now >> fixed or mitigated, including: >> - >> >> Web tests that relied on non-compliant non-special URL behavior >> (e.g. “javascript://a b” URL) >> - >> >> Non-special schemes used internally by Chromium code base, >> including ChromeOS (e.g. “steam:”, “materialized-view://”, >> “cros-apps://”) >> >> >> >> Blink component >> >> Internals>Network >> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3ENetwork> >> >> TAG review >> >> Not applicable >> >> Risks >> >> Interoperability and Compatibility >> >> Since Safari and Firefox already support non-special scheme URLs, the >> likelihood of public websites breaking due to this change is likely low. >> See here >> <https://docs.google.com/document/d/1LjxHl32fE4tCKugrK_PIso7mfXQVEeoD1wSnX2y0ZU8/edit?resourcekey=0-d1gP4X2sG7GPl9mlTeptIA&tab=t.0> >> for a rough estimation of the non-special scheme URL usages. >> >> Gecko: Shipped >> >> WebKit: Shipped >> >> Web developers: Generally seems positive. >> >> Some signals (from interop 2024 discussions >> <https://github.com/web-platform-tests/interop/issues/424>) are: >> >> - >> >> > Confusion because URL parsers across Blink, Gecko, WebKit, Node, >> and Deno do not interop well. The root cause is nearly always parser bugs >> in Blink or Gecko: >> https://twitter.com/oleg008/status/1699087223751073883 >> >> >> - >> >> > URL is very widely used - custom schemes are commonly used for >> links to native apps, or when dealing with developer tooling like >> databases. They may also become exceedingly more common with import maps. >> >> >> Other potential risks and assessments: >> >> >> - >> >> Enterprise usage: It's difficult to predict how non-special URLs are >> used in the wild, especially by enterprise customers with in-house apps. >> While adding an Enterprise Policy was considered to mitigate risks, >> technical limitations make it difficult to support URLs. See >> http://bit.ly/url-non-special for more info. We'll disable the >> feature with Finch (StandardCompliantNonSpecialSchemeURLParsing flag) in >> case this causes serious issues. >> - >> >> Impacts on well-known non-special schemes: See here >> >> <https://docs.google.com/document/d/1LjxHl32fE4tCKugrK_PIso7mfXQVEeoD1wSnX2y0ZU8/edit?resourcekey=0-d1gP4X2sG7GPl9mlTeptIA&tab=t.0#heading=h.k3rirdjyomw6> >> for the impacts on “javascript://”, “data:”, and so on. >> - >> >> Impacts on dependent components: This change affects components >> relying on URL behavior, like Origin >> <https://url.spec.whatwg.org/#origin>. See the Security section below. >> >> >> >> Security >> >> In Chromium, GURL, KURL, and web-facing URL APIs share the common URL >> parser backends, which reside in //url. As a result, this web-facing change >> will also affect core components like url::Origin, kurl::SecurityOrigin. >> >> For detailed information on how url::Origin, kurl::SecurityOrigin, and >> web-facing url.origin are impacted, please refer to this CL’s description >> <https://chromium-review.googlesource.com/c/chromium/src/+/5309015>. >> >> TL;DR. This is a complex issue due to historical reasons. While most >> components remain unaffected, there are some nuances, particularly >> regarding the “Android WebView Hack”. We’ve preserved the current Origin >> behavior for Android WebView. >> >> WebView application risks >> >> Beyond the aforementioned "Android WebView Hack", there are no other >> changes specific to WebView. >> >> >> Will this feature be supported on all six Blink platforms (Windows, Mac, >> Linux, Chrome OS, 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 (dashboard >> <https://wpt.fyi/results/url?label=master&label=experimental&product=chrome&product=firefox&product=safari&aligned&view=interop&q=label%3Ainterop-2023-url> >> ) >> >> Flag name >> >> StandardCompliantNonSpecialSchemeURLParsing >> >> Requires code in //chrome? >> >> False >> >> Tracking bug >> >> https://crbug.com/1416006 >> >> Estimated milestones >> >> M130 >> >> Link to entry on the Chrome Platform Status >> >> https://chromestatus.com/feature/5201116810182656 >> >> Links to previous Intent discussions >> >> Previous I2S >> <https://groups.google.com/a/chromium.org/g/blink-dev/c/wYuPrIQzDTA/m/uoL4bXR2BgAJ>. >> The previous I2S mail was sent last year but please consider this intent >> to ship as a new one. >> >> >> -- >> Hayato >> >> -- >> 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/CAFpjS_1_R%3D%2BHXYgTCuLD_WGR0foLKVnxAU9am1QbHyAZ%3D%2B3Ohw%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFpjS_1_R%3D%2BHXYgTCuLD_WGR0foLKVnxAU9am1QbHyAZ%3D%2B3Ohw%40mail.gmail.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/CAARdPYdo4SEr05zmLKj4U4OD3f8Gx0taa-7B%3D-5n1K69b6_mgw%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdo4SEr05zmLKj4U4OD3f8Gx0taa-7B%3D-5n1K69b6_mgw%40mail.gmail.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/CAOMQ%2Bw-jhgUxfT2McH7OViLUoBGLLQDmR%2ByYPcS287L0vaUw6A%40mail.gmail.com.