LGTM2 On Wed, Jun 14, 2023 at 8:36 AM Yoav Weiss <yoavwe...@chromium.org> wrote:
> LGTM1 > > On Friday, June 9, 2023 at 8:04:29 PM UTC+2 Ari Chivukula wrote: > >> Done >> https://github.com/WebKit/standards-positions/issues/51#issuecomment-1584956430 >> >> On Fri, Jun 9, 2023, 1:57 PM Rick Byers <rby...@chromium.org> wrote: >> >>> Thanks Ari, looks great! >>> >>> Can you also please post an update to the WebKit positions threads >>> <https://github.com/WebKit/standards-positions/issues/51#issuecomment-1470519891>? >>> I see you've landed fixes in CSP for 2 of the 3 issues Anne filed (great!), >>> but it would be good to know if WebKit folks still feel the state of >>> integration with CSP is such that they can't support this yet. Of course we >>> can choose to disagree, we should just be clear about where any >>> disagreement is. >>> >>> Thanks, >>> Rick >>> >>> On Fri, Jun 9, 2023 at 12:05 PM Ari Chivukula <aric...@chromium.org> >>> wrote: >>> >>>> Code and WPTs shipped here: >>>> https://chromium-review.googlesource.com/c/chromium/src/+/4555927 >>>> >>>> Spec shipped here: >>>> https://github.com/w3c/webappsec-permissions-policy/pull/516 >>>> >>>> ~ Ari Chivukula (Their/There/They're) >>>> >>>> >>>> On Wed, Apr 19, 2023 at 12:05 PM Rick Byers <rby...@chromium.org> >>>> wrote: >>>> >>>>> Hi Ari, >>>>> Given the discussion on your other intent >>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/f28WWMD8HVE/m/xCrQN-8hAgAJ>, >>>>> can you try to get spec PRs and WPTs landed for this before shipping this >>>>> too? >>>>> >>>>> Thanks, >>>>> Rick >>>>> >>>>> On Wed, Apr 12, 2023 at 12:06 PM Ari Chivukula <aric...@chromium.org> >>>>> wrote: >>>>> >>>>>> I don't have a draft of the CSP or Permissions Policy spec changes >>>>>> yet. There won't be any breaking changes for either needed, the change is >>>>>> to a superset of supported matching options for Permissions Policy. >>>>>> >>>>>> ~ Ari Chivukula (Their/There/They're) >>>>>> >>>>>> >>>>>> On Wed, Apr 5, 2023 at 11:22 AM Alex Russell < >>>>>> slightly...@chromium.org> wrote: >>>>>> >>>>>>> I'm not sure I understand this response. Do you have a draft change >>>>>>> to the CSP spec posted someplace? Will that update be a breaking change >>>>>>> to >>>>>>> the wildcard support being requested for launch in this thread? >>>>>>> >>>>>>> Best, >>>>>>> >>>>>>> Alex >>>>>>> >>>>>>> On Wednesday, April 5, 2023 at 6:29:27 AM UTC-7 Ari Chivukula wrote: >>>>>>> >>>>>>>> The PR needs to be updated to depend on CSP logic but I don't want >>>>>>>> to make that change until this expansion of wildcard support is >>>>>>>> approved >>>>>>>> and launched with some WPTs. It'll require making changes to the CSP >>>>>>>> spec >>>>>>>> itself and it all feels a bit too speculative until the launch in >>>>>>>> chrome is >>>>>>>> unblocked. >>>>>>>> >>>>>>>> On Wed, Apr 5, 2023, 4:57 AM Yoav Weiss <yoavwe...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Mar 14, 2023 at 3:34 PM Ari Chivukula < >>>>>>>>> aric...@chromium.org> wrote: >>>>>>>>> >>>>>>>>>> Contact emails >>>>>>>>>> >>>>>>>>>> aric...@chromium.org, miketa...@chromium.org, >>>>>>>>>> iclell...@chromium.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Prior Work >>>>>>>>>> >>>>>>>>>> Wildcards in Permissions Policy Origins >>>>>>>>>> <https://chromestatus.com/feature/5170361717489664> >>>>>>>>>> >>>>>>>>>> Specification >>>>>>>>>> >>>>>>>>>> https://github.com/w3c/webappsec-permissions-policy/pull/482 >>>>>>>>>> >>>>>>>>> >>>>>>>>> Any blockers for the PR to land? >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Background >>>>>>>>>> >>>>>>>>>> In M108 Chrome added support for wildcards in permissions policy >>>>>>>>>> structured like SCHEME://*.HOST:PORT (e.g., https://*.foo.com/) >>>>>>>>>> where a valid Origin could be constructed from SCHEME://HOST:PORT >>>>>>>>>> (e.g., >>>>>>>>>> https://foo.com/). This required that the HOST was at least >>>>>>>>>> eTLD+1 (a registrable domain). This meant that https://*. >>>>>>>>>> bar.foo.com/ works but https://*.com/ won’t (if you wanted to >>>>>>>>>> allow all domains to use the feature, you had to delegate to *). >>>>>>>>>> Wildcards >>>>>>>>>> in the scheme and port section were unsupported and https://*. >>>>>>>>>> foo.com/ did not delegate to https://foo.com/. >>>>>>>>>> >>>>>>>>>> Before, a permissions policy might need to look like: >>>>>>>>>> >>>>>>>>>> permissions-policy: ch-ua-platform-version=(self "https://foo.com" >>>>>>>>>> "https://cdn1.foo.com" "https://cdn2.foo.com") >>>>>>>>>> >>>>>>>>>> In M108 and later, it could look like: >>>>>>>>>> >>>>>>>>>> permissions-policy: ch-ua-platform-version=(self "https://foo.com" >>>>>>>>>> "https://*.foo.com") >>>>>>>>>> >>>>>>>>>> Summary >>>>>>>>>> >>>>>>>>>> Subdomain wildcards in allowlists provided some valuable >>>>>>>>>> flexibility, but differed from existing wildcard parsers and >>>>>>>>>> required novel >>>>>>>>>> code and spec work. This intent will reduce that overhead by reusing >>>>>>>>>> parts >>>>>>>>>> of the existing Content Security Policy spec >>>>>>>>>> <https://www.w3.org/TR/CSP/#framework-directive-source-list> and >>>>>>>>>> permitting ‘scheme + wildcard domain’ and ‘wildcard port’ in the >>>>>>>>>> allowlist. >>>>>>>>>> >>>>>>>>>> Specifically, this intent would adopt the definition of >>>>>>>>>> host-source <https://www.w3.org/TR/CSP/#grammardef-host-source> >>>>>>>>>> and scheme-source >>>>>>>>>> <https://www.w3.org/TR/CSP/#grammardef-scheme-source> instead of >>>>>>>>>> origin <https://www.w3.org/TR/permissions-policy/#allowlists> in >>>>>>>>>> the Allowlist definition while requiring that the path-part >>>>>>>>>> <https://www.w3.org/TR/CSP/#grammardef-path-part> is empty (as >>>>>>>>>> Permissions Policies apply to matching origins). This would change >>>>>>>>>> three >>>>>>>>>> things from the prior wildcard implementation (all of which expand >>>>>>>>>> the >>>>>>>>>> range of allowed wildcards and none of which add new restrictions): >>>>>>>>>> >>>>>>>>>> (1) Removing the eTLD+1 requirement for subdomain wildcards >>>>>>>>>> >>>>>>>>>> Previously, you could not have a subdomain wildcard like >>>>>>>>>> “https://*.com” >>>>>>>>>> but could have one like “https://*.example.com”. >>>>>>>>>> >>>>>>>>>> Now, you can have subdomain wildcards both like “https://*.com” >>>>>>>>>> and “https://*.example.com”. >>>>>>>>>> >>>>>>>>>> (2) Allowing scheme restrictions on wildcard domains. >>>>>>>>>> >>>>>>>>>> Previously, you could allow “*” but not restrict to a specific >>>>>>>>>> scheme like “https://*” or “https:”. >>>>>>>>>> >>>>>>>>>> Now, you can still allow “*” but have the option of delegating to >>>>>>>>>> just a specific scheme like “https://*” or “https:” (the >>>>>>>>>> behavior of these is identical). >>>>>>>>>> >>>>>>>>>> (3) Allowing port wildcards. >>>>>>>>>> >>>>>>>>>> Previously you could delegate to the default https port like “ >>>>>>>>>> https://example.com” or “https://example.com:443” (the behavior >>>>>>>>>> of these is identical), but there was no way to explicitly delegate >>>>>>>>>> to all >>>>>>>>>> ports like “https://example.com:*”. >>>>>>>>>> >>>>>>>>>> Now, you can still delegate to “https://example.com” or >>>>>>>>>> “https://example.com:443” but delegation is also permitted to a >>>>>>>>>> wildcard port like “https://example.com:*”. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Blink component >>>>>>>>>> >>>>>>>>>> Blink>PermissionsAPI >>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EPermissionsAPI> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Motivation >>>>>>>>>> >>>>>>>>>> The Permissions Policy specification >>>>>>>>>> <https://w3c.github.io/webappsec-permissions-policy/> “defines a >>>>>>>>>> mechanism that allows developers to selectively enable and disable >>>>>>>>>> use of >>>>>>>>>> various browser features and APIs.” One capability of this mechanism >>>>>>>>>> allows >>>>>>>>>> features to be enabled only on explicitly enumerated origins (e.g., >>>>>>>>>> https://foo.com/). This mechanism is not flexible enough for the >>>>>>>>>> design of some CDNs, which deliver content via an origin that might >>>>>>>>>> be >>>>>>>>>> hosted on one of several hundred possible subdomains. Rather than >>>>>>>>>> designing >>>>>>>>>> a novel wildcard system we should reuse an existing one >>>>>>>>>> <https://www.w3.org/TR/CSP/#framework-directive-source-list> to >>>>>>>>>> reduce developer overhead and promote code/spec component reuse. >>>>>>>>>> >>>>>>>>>> There has not been a prior discussion on specifically which new >>>>>>>>>> types of wildcards should be added when we switched to using the CSP >>>>>>>>>> parser, so that discussion should be resolved in the approval of this >>>>>>>>>> intent and in the interoperability/TAG issues below. >>>>>>>>>> >>>>>>>>>> TAG review >>>>>>>>>> >>>>>>>>>> https://github.com/w3ctag/design-reviews/issues/765 >>>>>>>>>> >>>>>>>>>> Compatibility >>>>>>>>>> >>>>>>>>>> Depending on their user base, sites may want to entertain a >>>>>>>>>> transition period for older Chromium clients where they enumerate all >>>>>>>>>> desired origins for some versions and use wildcards for others. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Interoperability >>>>>>>>>> >>>>>>>>>> We would be the first to implement if approved. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Gecko: https://github.com/mozilla/standards-positions/issues/760 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> WebKit: https://github.com/WebKit/standards-positions/issues/51 >>>>>>>>>> >>>>>>>>> >>>>>>>>> Not necessarily a blocker to shipping IMO, but Anne raised a few >>>>>>>>> reasonably-looking issues on CSP related to this feature's >>>>>>>>> integration with >>>>>>>>> it. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Debuggability >>>>>>>>>> >>>>>>>>>> Future work might flag syntax errors in the Issues tab >>>>>>>>>> <https://docs.google.com/document/d/1lDEvj8tMeuvUs1HTTqL-44YiI-7ljeQkusM_WhUfIeE/edit> >>>>>>>>>> . >>>>>>>>>> >>>>>>>>>> Is this feature fully tested by web-platform-tests? >>>>>>>>>> >>>>>>>>>> No, but it will be. >>>>>>>>>> >>>>>>>>>> Tracking bug >>>>>>>>>> >>>>>>>>>> https://crbug.com/1418009 >>>>>>>>>> >>>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>>> >>>>>>>>>> https://chromestatus.com/feature/5170361717489664 >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> 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/CAGpy5DJRu2--NqZdPKjeF9HRc%3DcQaNFxCpYb%3DUvfsmperXPTFg%40mail.gmail.com >>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJRu2--NqZdPKjeF9HRc%3DcQaNFxCpYb%3DUvfsmperXPTFg%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/CAGpy5DJ%2Bhr8chAOPiTvaSwYzJF%2B2A1ZiVG7CUR3scv1DgEreag%40mail.gmail.com >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJ%2Bhr8chAOPiTvaSwYzJF%2B2A1ZiVG7CUR3scv1DgEreag%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/55555aaa-7ff3-43aa-a771-9ba4774d03bbn%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/55555aaa-7ff3-43aa-a771-9ba4774d03bbn%40chromium.org?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%2Bw98ZSrxe693vYKD0FFS%2BinG9pWRapCqui9CGCzT7XDUew%40mail.gmail.com.