3 potential sites in the 12 M for something almost certainly
minor/superficial UI breakage indeed seems exceedingly low risk to me.

LGTM3 to ship. But as always, if you get reports of breakage prior to
hitting stable, please use the kill-switch and circle back here for a more
thorough compat analysis discussion.

Rick


On Wed, Dec 11, 2024 at 4:01 PM Mike Taylor <miketa...@chromium.org> wrote:

> +1 to Vladimir's recommendation here. LGTM2
> On 12/11/24 4:00 PM, Vladimir Levin wrote:
>
> 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
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2MN2s83Vg2qjKy%2BpfVBRmbgY8UKsmXnAK3TkcgsPA_bhg%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/CAFUtAY-va%3DS%2BZ6OxN3dcW328vNzQjdR0q5F7V-hVU_3ivfQxAA%40mail.gmail.com.

Reply via email to