Thanks! That makes sense too. I'm adding those schemes to the CL
<https://chromium-review.googlesource.com/c/chromium/src/+/5790445>.

On Tue, Aug 20, 2024 at 11:31 AM Domenic Denicola <dome...@chromium.org>
wrote:

> Excellent, thank you!
>
> Your updated section of the document states
>
> > There have been several non-special schemes (like "isolated-app://") which
> are registered
> <https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_content_client.cc;l=225;drc=0312be31243152b47aa6158749e28f61604b54ff>
> in the SchemeRegistry so that they are parsed if they were special scheme
> URLs.
>
> I believe this means that the following schemes:
>
>    - isolated-app:
>    - chrome-native:
>    - chrome-search:
>    - chrome-distiller:
>    - android-app:
>    - chrome-resource:
>    - chrome-extension:
>    - fuchsia-dir:
>
> will not match the URL Standard either. (Testing with
> --enable-features=StandardCompliantNonSpecialSchemeURLParsing on the live
> URL viewer
> <https://jsdom.github.io/whatwg-url/#url=Y2hyb21lLW5hdGl2ZTovL3g6MC9h&base=YWJvdXQ6Ymxhbms=>
>  seems
> to confirm this.)
>
> In that case, please add those schemes to your CL
> <https://chromium-review.googlesource.com/c/chromium/src/+/5790445> as
> well. Then I am happy to approve!
>
> On Mon, Aug 19, 2024 at 4:30 PM Hayato Ito <hay...@chromium.org> wrote:
>
>> Thanks for the feedback!
>>
>> On Fri, Aug 9, 2024 at 5:19 PM Domenic Denicola <dome...@chromium.org>
>> wrote:
>>
>>> I'm very excited to see this work proceeding and am looking forward to
>>> being able to LGTM. A few requests before we get there:
>>>
>>>    - From what I understand we still won't be spec-compliant
>>>    for android:, drivefs:, steam:, chromeos-steam:, and materialized-view:.
>>>    Can you add failing web platform tests for all of those cases, to ensure
>>>    that we capture this non-compliance?
>>>
>>>
>> Sounds good!  I'm adding tests here: https://crrev.com/c/5790445.
>> I'll make sure to land this CL before enabling the flag.
>>
>>
>>>
>>>    - I don't understand the role of the scheme registry after we ship
>>>    this change. What will it do? The doc says "(TBD) Remove the Scheme
>>>    Registry. This can be yet another non-trivial project. This document does
>>>    not cover this task." Are there still web-exposed behaviors between
>>>    non-registered and registered schemes? Is there a danger that people will
>>>    add more schemes to the registry and cause URL parsing to change? Or is
>>>    this purely about code cleanup as after this change the scheme registry 
>>> is
>>>    a no-op?
>>>    - In general it would be great to have a section of the doc covering
>>>    future work, such as fixing those exceptional schemes, removing the 
>>> scheme
>>>    registry, and anything else that you have in mind. In particular I'm
>>>    interested in which of these future work projects have compat impacts so 
>>> we
>>>    can know how web developers might see URL parsing change in the future.
>>>
>>>
>>>
>> Re the 2nd and the 3rd points, I've added a "Future Work
>> <https://docs.google.com/document/d/1LjxHl32fE4tCKugrK_PIso7mfXQVEeoD1wSnX2y0ZU8/edit?pli=1&resourcekey=0-d1gP4X2sG7GPl9mlTeptIA&tab=t.0#heading=h.4685f6p8tio9>"
>> section to the document to capture what I have in mind and what should be
>> done next. Thanks for the suggestion!
>> I've also removed some outdated content from the document like "(TBD)
>> Remove the Scheme Registry".
>>
>>
>>
>>
>>>
>>>
>>> On Fri, Aug 9, 2024 at 4:28 PM Hayato Ito <hay...@chromium.org> wrote:
>>>
>>>> I've added a new section, "Compatibility Risks
>>>> <https://docs.google.com/document/d/1LjxHl32fE4tCKugrK_PIso7mfXQVEeoD1wSnX2y0ZU8/edit?resourcekey=0-d1gP4X2sG7GPl9mlTeptIA&tab=t.0#heading=h.kb3fb29h4kax>",
>>>> to the doc, organizing the content more clearly.
>>>>
>>>> Thanks!
>>>>
>>>> On Fri, Aug 9, 2024 at 3:03 PM Yoav Weiss (@Shopify) <
>>>> yoavwe...@chromium.org> wrote:
>>>>
>>>>> Thanks for working on this!!
>>>>>
>>>>> 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.
>>>>>>
>>>>>
>>>>> Any particular section in that doc that talks through or estimates the
>>>>> compat risk?
>>>>>
>>>>>
>>>>>>
>>>>>> 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>
>>>>>> .
>>>>>>
>>>>>
>>>>
>>>> --
>>>> 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%3D48YmdprXVdy_3SWRqneFFcy6BRuaw_w%2BxvrjyAc2CA%40mail.gmail.com
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFpjS_1%3D48YmdprXVdy_3SWRqneFFcy6BRuaw_w%2BxvrjyAc2CA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>>
>> --
>> Hayato
>>
>

-- 
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_2mpWMv%2ByPsPEYyyQakGoac7UigY4atru1_i715RPOndg%40mail.gmail.com.

Reply via email to