Excellent, thank you! LGTM3, so excited to see this roll out.

On Tue, Aug 20, 2024 at 1:03 PM Hayato Ito <hay...@chromium.org> wrote:

> 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/CAM0wra_RTTXpb3N1XNkBxRSNSjFn38YWzXOm1QZfOt_cY3SWNQ%40mail.gmail.com.

Reply via email to