Thanks for the analysis.

I think the compat risk here is low. Since we know of at least 3 instances
that are likely to break, or at least to have a different behavior, I'd ask
that we try to reach out to those sites as an FYI about this change.

Other than that, LGTM1



On Wed, Dec 11, 2024 at 12:42 PM Munira Tursunova <moon...@google.com>
wrote:

> Thank you for your replies.
>
> I notice that we're failing all the tests on
>> https://wpt.fyi/results/css/css-values?label=master&label=experimental&aligned&q=attr
>>  ,
>> probably because this feature is not available behind the
>> experimental-web-platform-features flag.
>>
>> Can you confirm that we're passing all the tests with the
>> feature-specific flag enabled? Or are there interesting failures left that
>> are worth highlighting?
>>
>
>  Yes, the attr() tests should pass once the runtime flag is enabled.
>
> Regarding potential open spec issues, I found 6
>> <https://github.com/w3c/csswg-drafts/issues?q=is%3Aopen+label%3Acss-values-5+attr+in%3Atitle>,
>> including two that the TAG highlighted in their review plus one tagged as
>> "Agenda+" implying it's still an active topic for discussion. If you think
>> we don't need to resolve those issues before shipping, can you explain why
>> in more detail?
>
>
>  I have looked at the issues, most of them are not relevant anymore with
> the new attr() syntax. This also applies to the open issue mentioned in TAG
> review (issue 5079 <https://github.com/w3c/csswg-drafts/issues/5079>), I
> don't think this is relevant anymore since according to CSS Values and
> Units Module Level 5:
> <https://drafts.csswg.org/css-values-5/#attr-security>
>
> Using an attr()-tainted value as or in a <url> makes a declaration invalid
>> at computed-value time.
>
>
> There is one issue that might be still relevant (issue 10503
> <https://github.com/w3c/csswg-drafts/issues/10503>), but I don't think it
> should block the shipping since it's a serialization issue and the spec
> might already be interpreted that way.
>
> Beyond what Vlad and Dominic has mentioned, we're also missing formal
>> signals from other vendors. They have requested that we not use generic
>> opinions from staff as official signals. You can find how to get formals
>> vendor signals by following the link "signals on their opinion of the API"
>> in https://www.chromium.org/blink/launching-features/
>
>
> Thanks, filed https://github.com/mozilla/standards-positions/issues/1143
>  and https://github.com/WebKit/standards-positions/issues/435
> <https://github.com/WebKit/standards-positions/issues/435>.
>
> The second example (
>> https://github.com/tursunova/web-platform-explainer/blob/main/advanced-attr-explainer.md#example-2
>>  )
>> seems plausible in that it may be a valid way to organize information on a
>> parent in data attributes and use that in children to display. I have found
>> examples where a similar pattern happens on the element itself (var is set
>> on an element via attr, and then used in element::before's content). I
>> assume that this case will be fine in that the behavior change won't affect
>> it right?
>
>
> Yes, that should work fine, the only dangerous scenarios are when the
> attr() function is used on the parent element, but the attribute is defined
> on the child element.
>
> Regarding compatibility, the scenarios you outlined
>> <https://github.com/tursunova/web-platform-explainer/blob/main/advanced-attr-explainer.md#backwards-compatibility>
>>  as
>> changing behavior seem rare enough that I hope they don't cause problems.
>> However, have you made any attempt to quantify them, e.g. via use counter?
>> (It's OK if not.)
>
>
> Is the plan to roll this out via finch and monitor for breakages?
>>
>
>
>> Is there some data you could reasonably collect (UMA and/or a cluster
>> telemetry run perhaps) to try to put an upper bound on the breaking change
>> risk? I think we all expect that the risk is low, but is it extremely low
>> and so something we should just launch with a finch killswitch ready to use
>> at the first sign of issue, or is it only very low meaning we need to go
>> further - especially for our enterprise change guidelines
>> <https://www.chromium.org/developers/enterprise-changes/>?
>
>
> Manually checked the content of the websites from httparchieve query
> results, most of the pages use body, attr() and var() on the same pseudo
> element, which shouldn’t cause the breakages. The upper bound percentage
> for breakages is *~0.005%*. Summed up the analysis for gathered data from
> httparchieve in the doc
> <https://docs.google.com/document/d/15pi0QVsZkOIbxDY6p8tH5v1E-UabMC8aR4YXfYb9C1Q/edit?usp=sharing>
> .
>
>
>
> Thank you,
> Munira
>
> On Wed, Dec 4, 2024 at 5:41 PM Rick Byers <rby...@chromium.org> wrote:
>
>> Discussed in API owners meeting today that we don't really understand the
>> compat risk here. Vlad makes a compelling argument that the risk in example
>> #2 may be non-trivial (especially when considering inheritance scenarios
>> beyond just custom properties). Also you'll need to request enterprise
>> review and they're going to want to know what the extent of the compat risk
>> is (do we need a policy opt-out and 3-release heads up in the release
>> notes?).
>>
>> Is there some data you could reasonably collect (UMA and/or a cluster
>> telemetry run perhaps) to try to put an upper bound on the breaking change
>> risk? I think we all expect that the risk is low, but is it extremely low
>> and so something we should just launch with a finch killswitch ready to use
>> at the first sign of issue, or is it only very low meaning we need to go
>> further - especially for our enterprise change guidelines
>> <https://www.chromium.org/developers/enterprise-changes/>?
>>
>> Thanks,
>>    Rick
>>
>> On Wed, Dec 4, 2024 at 9:43 AM Daniel Bratell <bratel...@gmail.com>
>> wrote:
>>
>>> Beyond what Vlad and Dominic has mentioned, we're also missing formal
>>> signals from other vendors. They have requested that we not use generic
>>> opinions from staff as official signals. You can find how to get formals
>>> vendor signals by following the link "signals on their opinion of the API"
>>> in https://www.chromium.org/blink/launching-features/
>>>
>>> /Daniel
>>> On 2024-12-04 03:29, Vladimir Levin wrote:
>>>
>>>
>>>
>>> On Mon, Dec 2, 2024 at 10:47 PM Domenic Denicola <dome...@chromium.org>
>>> wrote:
>>>
>>>> Thank you, that explainer is very helpful!
>>>>
>>>> I notice that we're failing all the tests on
>>>> https://wpt.fyi/results/css/css-values?label=master&label=experimental&aligned&q=attr
>>>> , probably because this feature is not available behind the
>>>> experimental-web-platform-features flag.
>>>>
>>>> Can you confirm that we're passing all the tests with the
>>>> feature-specific flag enabled? Or are there interesting failures left that
>>>> are worth highlighting?
>>>>
>>>> Regarding compatibility, the scenarios you outlined
>>>> <https://github.com/tursunova/web-platform-explainer/blob/main/advanced-attr-explainer.md#backwards-compatibility>
>>>> as changing behavior seem rare enough that I hope they don't cause
>>>> problems. However, have you made any attempt to quantify them, e.g. via use
>>>> counter? (It's OK if not.)
>>>>
>>>
>>> The second example (
>>> https://github.com/tursunova/web-platform-explainer/blob/main/advanced-attr-explainer.md#example-2
>>> ) seems plausible in that it may be a valid way to organize information on
>>> a parent in data attributes and use that in children to display. I have
>>> found examples where a similar pattern happens on the element itself (var
>>> is set on an element via attr, and then used in element::before's content).
>>> I assume that this case will be fine in that the behavior change won't
>>> affect it right? I couldn't find any examples of parent to child var
>>> transfer (the breaking case), but that of course doesn't mean that it
>>> doesn't exist.
>>>
>>> Is the plan to roll this out via finch and monitor for breakages?
>>>
>>> Thanks,
>>> Vlad
>>>
>>>
>>>> Regarding potential open spec issues, I found 6
>>>> <https://github.com/w3c/csswg-drafts/issues?q=is%3Aopen+label%3Acss-values-5+attr+in%3Atitle>,
>>>> including two that the TAG highlighted in their review plus one tagged as
>>>> "Agenda+" implying it's still an active topic for discussion. If you think
>>>> we don't need to resolve those issues before shipping, can you explain why
>>>> in more detail?
>>>>
>>>>
>>>> On Tue, Dec 3, 2024 at 12:31 AM Munira Tursunova <moon...@google.com>
>>>> wrote:
>>>>
>>>>> Thank you, Domenic!
>>>>>
>>>>> I uploaded explainer here:
>>>>> https://github.com/tursunova/web-platform-explainer/blob/main/advanced-attr-explainer.md
>>>>> .
>>>>>
>>>>> On Wed, Nov 27, 2024 at 3:02 AM Domenic Denicola <dome...@chromium.org>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 26, 2024 at 8:07 PM Chromestatus <
>>>>>> ad...@cr-status.appspotmail.com> wrote:
>>>>>>
>>>>>>> Contact emails moon...@google.com, chris...@chromium.org
>>>>>>>
>>>>>>> Explainer None
>>>>>>
>>>>>>
>>>>>> Some sort of explainer would be appreciated for this change,
>>>>>> especially given the security complexity.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Specification https://drafts.csswg.org/css-values-5/#attr-notation
>>>>>>>
>>>>>>> Summary
>>>>>>>
>>>>>>> Implement the augmentation to attr() specified in CSS Level 5, which
>>>>>>> allows types besides <string> and usage in all CSS properties (besides
>>>>>>> pseudo-element 'content'). Example: <style> div { background-color:
>>>>>>> attr(data-foo type(<color>), red); } </style> <div
>>>>>>> data-foo="blue">test</div>
>>>>>>>
>>>>>>>
>>>>>>> Blink component Blink>CSS
>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS>
>>>>>>>
>>>>>>> Search tags css <http:///features#tags:css>, css-values
>>>>>>> <http:///features#tags:css-values>, attr
>>>>>>> <http:///features#tags:attr>
>>>>>>>
>>>>>>> TAG review https://github.com/w3ctag/design-reviews/issues/513
>>>>>>>
>>>>>>> TAG review status Pending
>>>>>>>
>>>>>>> Risks
>>>>>>>
>>>>>>>
>>>>>>> Interoperability and Compatibility
>>>>>>>
>>>>>>> No browser has implemented this feature yet. Even though there's no
>>>>>>> negative signals from other browsers, there's still a minimal
>>>>>>> interoperability risk that we end up the only implementation. There are
>>>>>>> also a few known cases where this advanced version behaves differently 
>>>>>>> from
>>>>>>> the basic version in pseudo-element content property, which is a
>>>>>>> compatibility risk: - https://bit.ly/2XDhHtg -
>>>>>>> https://bit.ly/3grF3ur
>>>>>>>
>>>>>>>
>>>>>>> *Gecko*: No signal (
>>>>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=435426)
>>>>>>>
>>>>>>> *WebKit*: No signal (https://bugs.webkit.org/show_bug.cgi?id=26609)
>>>>>>>
>>>>>>> *Web developers*: No signals
>>>>>>>
>>>>>>> *Other signals*:
>>>>>>>
>>>>>>> Security
>>>>>>>
>>>>>>> attr() can be used by injected CSS for data exfiltration.
>>>>>>> https://github.com/w3c/csswg-drafts/issues/5092
>>>>>>>
>>>>>>
>>>>>> How have you resolved these security issues? (A writeup as part of an
>>>>>> explainer, perhaps with an alternatives considered section, would help
>>>>>> here.)
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 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
>>>>>>>
>>>>>>> No additional DevTools support is needed. attr() function is
>>>>>>> inspectable in DevTools same way as any other CSS substitution function.
>>>>>>>
>>>>>>>
>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>> https://wpt.fyi/results/css/css-values?label=master&label=experimental&aligned&q=attr
>>>>>>>
>>>>>>>
>>>>>>> Flag name on about://flags CSSAdvancedAttrFunction
>>>>>>>
>>>>>>> Finch feature name CSSAdvancedAttrFunction
>>>>>>>
>>>>>>> Requires code in //chrome? False
>>>>>>>
>>>>>>> Tracking bug
>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=246571
>>>>>>>
>>>>>>> Estimated milestones
>>>>>>> Shipping on desktop 133
>>>>>>> Shipping on Android 133
>>>>>>> Shipping on WebView 133
>>>>>>>
>>>>>>> Anticipated spec changes
>>>>>>>
>>>>>>> Open questions about a feature may be a source of future web compat
>>>>>>> or interop issues. Please list open issues (e.g. links to known github
>>>>>>> issues in the project for the feature specification) whose resolution 
>>>>>>> may
>>>>>>> introduce web compat/interop risk (e.g., changing to naming or 
>>>>>>> structure of
>>>>>>> the API in a non-backward-compatible way).
>>>>>>> None
>>>>>>>
>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>> https://chromestatus.com/feature/4680129030651904?gate=5932337540366336
>>>>>>>
>>>>>>> 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 visit
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6745abd8.2b0a0220.19a388.0324.GAE%40google.com
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6745abd8.2b0a0220.19a388.0324.GAE%40google.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 visit
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra8-8CgACPS80AmMh2p8kMBW0LtCBrRDARbY%3Di_EWzdfpw%40mail.gmail.com
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra8-8CgACPS80AmMh2p8kMBW0LtCBrRDARbY%3Di_EWzdfpw%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 visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NVy6Lvzwz1ifRBm4yfBwYsPO21V3vvAvvQsD2K8b2HaA%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NVy6Lvzwz1ifRBm4yfBwYsPO21V3vvAvvQsD2K8b2HaA%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 visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7ada5371-84d5-40d8-8a6f-82fc15e9c49c%40gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7ada5371-84d5-40d8-8a6f-82fc15e9c49c%40gmail.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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2MN2s83Vg2qjKy%2BpfVBRmbgY8UKsmXnAK3TkcgsPA_bhg%40mail.gmail.com.

Reply via email to