CSS custom state, which allows custom elements to expose their own pseudo-classes, was shipped here: https://groups.google.com/a/chromium.org/g/blink-dev/c/dJibhmzE73o/m/VT-NceIhAAAJ
This feature has not been implemented in gecko or webkit yet. I recently made an effort to spec this feature in CSSWG and WHATWG, but there was pushback to change the syntax back from :--foo to :state(foo), and the CSSWG has resolved to do this as well: https://github.com/w3c/csswg-drafts/issues/4805
The UseCounter is currently at 0.03% https://chromestatus.com/metrics/feature/timeline/popularity/3796
This deprecation will have a window where we support both the old syntax and the new syntax so websites can switch to the new one.
Websites which are currently using the old syntax and don't migrate to the new syntax will have CSS selectors which become invalid which would impact the styling of their custom elements.
Switching to the new syntax should be quite easy.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
None
No milestones specified
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).
Nonehrm, this is another instance of bikeshedding after shipping, and I'm not inclined to approve. Perhaps we can discuss at next week's API OWNERs meeting?
Adding others who I know are interested in this topic.On Friday, September 29, 2023 at 9:16:13 AM UTC-7 Joey Arhar wrote:The spec for the new syntax hasn't been merged yet, I haven't finished implementing it in chromium yet, and I don't have estimated milestones yet, but I'd like to get the API owners thoughts on whether this deprecation would be acceptable to help guide the spec discussion.
I did some analysis of the top 8 websites on the chromestatus entry to see what the breakage would be like: https://docs.google.com/document/d/1BHoO12ts0E-NQQH9AMwR2sKAIV0OPB-FA_8QXMpolz0/edit?usp=sharing
I found that most of them had the affected custom elements behind display:none rules that I had to manually remove in order to use them. There was only one website where there was actual breakage by default, in which case the carousel buttons didn't work on firefox and safari.
If the new syntax is just for the CSS property and we keep CustomStateSet the same, then the affected website's buttons would continue to work but whatever custom styles they have (which I couldn't trigger) wouldn't apply anymore.
Personally, I think that this breakage would not be bad especially if we keep CustomStateSet the same, and I kind of like :state(foo) more than :--foo. However, I might have not made it clear in the spec discussions yet that we have already shipped :--foo by default for several years.
On Fri, Sep 29, 2023 at 9:15 AM Joey Arhar <jar...@chromium.org> wrote:
SummaryCSS custom state, which allows custom elements to expose their own pseudo-classes, was shipped here: https://groups.google.com/a/chromium.org/g/blink-dev/c/dJibhmzE73o/m/VT-NceIhAAAJ
This feature has not been implemented in gecko or webkit yet. I recently made an effort to spec this feature in CSSWG and WHATWG, but there was pushback to change the syntax back from :--foo to :state(foo), and the CSSWG has resolved to do this as well: https://github.com/w3c/csswg-drafts/issues/4805
The UseCounter is currently at 0.03% https://chromestatus.com/metrics/feature/timeline/popularity/3796
This deprecation will have a window where we support both the old syntax and the new syntax so websites can switch to the new one.
Blink componentBlink>HTML>CustomElements
TAG reviewNone
TAG review statusNot applicable
Link to entry on the Chrome Platform Statushttps://chromestatus.com/feature/5140610730426368
> I'd like to understand better how we wound up shipping :--foo and then having the CSSWG ask us to change it to :state(foo) instead, and what we could do in the future to avoid it happening again.I think if this was specced before shipping that would have been better and is a practice that I (and we?) currently follow, but this was shipped a number of years ago.
> As far as I can see, nobody asked for the ergonomic evidence that https://www.chromium.org/blink/guidelines/web-platform-changes-guidelines/#browser-engine-reviews says we can expect after Chrome has shipped a feature.This was my bad, I didn't realize or didn't completely consider usecounters before I presented the name change to the CSSWG.I am hoping that with an answer from the API owners, I can go back to the CSSWG and potentially change it back.There is still no merged spec in HTML or CSS for this feature yet, but I have open PRs in both specs.
Apparently +Chris Wilson had part of this discussion with Alan Stearns in April at https://github.com/w3c/csswg-drafts/issues/8730#issuecomment-1524167658, and the suggestion was that if a CSS spec for a feature is "unstable" (meaning 'not at CR'?), then we should either post "we're about to send an intent" to the last issue discussing it, or file an "Is X ready to ship?" issue. I think +Chris Harrelson is likely to have the strongest opinions about this: should we add such a rule to our launch process for CSS features?
--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CANh-dXnPrTj5PhthsMfcr5kd340pbfzuCZik1%2B7J7FC-YkKL1g%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fa862fff-e9eb-4aad-acc3-ca0849c72b06n%40chromium.org.
The API owners met yesterday and discussed this intent. Our consensus was that we would like to wait until another browser has implemented and is shipping :state before we approve shipping it in Chromium. We also don't recommend spending more time on further bikeshet spec discussions for it in the meantime, and leave the spec as-is.
On Thu, Oct 19, 2023 at 10:59 AM Chris Harrelson <chri...@chromium.org> wrote:The API owners met yesterday and discussed this intent. Our consensus was that we would like to wait until another browser has implemented and is shipping :state before we approve shipping it in Chromium. We also don't recommend spending more time on further bikeshet spec discussions for it in the meantime, and leave the spec as-is."bikeshed", that is.
Thanks Chris and the API Owners for having this discussion! I am sympathetic to this being a hard problem with the strong potential to set a bad precedent.On Fri, Oct 20, 2023 at 3:00 AM Chris Harrelson <chri...@chromium.org> wrote:On Thu, Oct 19, 2023 at 10:59 AM Chris Harrelson <chri...@chromium.org> wrote:The API owners met yesterday and discussed this intent. Our consensus was that we would like to wait until another browser has implemented and is shipping :state before we approve shipping it in Chromium. We also don't recommend spending more time on further bikeshet spec discussions for it in the meantime, and leave the spec as-is."bikeshed", that is.With my HTML spec editor hat on, I have a clarifying point and question."Leave the spec as-is": right now there are unmerged CSS and HTML spec PRs, plus a WICG spec. So it's not clear exactly which spec you're referring to, but I guess the advice is for Chromium engineers to not invest effort in changing any of these three work items for bikeshed considerations. (Let me know if this is incorrect.) Of course, other community members can continue to work on the spec if they wish.
For the purposes of WHATWG's multi-implementer support criteria: I will assume we cannot check the box for "Chromium supports this feature" until a different browser has shipped :state() to their stable channel. (Let me know if that is incorrect.)
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_nhUTf5QZWscrcBZ5h6ixUkwLv%2BxKk9temGqPRt%3De_tw%40mail.gmail.com.
> > For the purposes of WHATWG's multi-implementer support criteria: I will assume we cannot check the box for "Chromium supports this feature" until a different browser has shipped :state() to their stable channel. (Let me know if that is incorrect.)>> Chromium does support the feature, and it should be marked as such in the WHATWG. (We've shipped it in fact, just with a slightly different name for the moment.)Yeah I'm worried that not merging the spec would be a confusing signal to Apple and then they might never implement anything. I'd like to see the HTML spec get merged as :state().
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btw%2Bbw61Ekw_4D%3Dw31U_WcDQbOrO0HpbbRSvq7TmTPpFQpA%40mail.gmail.com.
On Fri, Oct 20, 2023 at 9:00 AM Joey Arhar <jar...@chromium.org> wrote:> > For the purposes of WHATWG's multi-implementer support criteria: I will assume we cannot check the box for "Chromium supports this feature" until a different browser has shipped :state() to their stable channel. (Let me know if that is incorrect.)>> Chromium does support the feature, and it should be marked as such in the WHATWG. (We've shipped it in fact, just with a slightly different name for the moment.)Yeah I'm worried that not merging the spec would be a confusing signal to Apple and then they might never implement anything. I'd like to see the HTML spec get merged as :state().+1!
On Sat, Oct 21, 2023 at 1:10 AM Chris Harrelson <chri...@chromium.org> wrote:On Fri, Oct 20, 2023 at 9:00 AM Joey Arhar <jar...@chromium.org> wrote:> > For the purposes of WHATWG's multi-implementer support criteria: I will assume we cannot check the box for "Chromium supports this feature" until a different browser has shipped :state() to their stable channel. (Let me know if that is incorrect.)>> Chromium does support the feature, and it should be marked as such in the WHATWG. (We've shipped it in fact, just with a slightly different name for the moment.)Yeah I'm worried that not merging the spec would be a confusing signal to Apple and then they might never implement anything. I'd like to see the HTML spec get merged as :state().+1!I'd like to get confirmation from this from the API Owners as a whole before moving forward. This is the first time that Chromium, or indeed any implementer, has said "we will not ship the contents of this PR" (until some future condition, outside your control, comes to pass). But, supports merging the PR. Indeed, this goes against the "should" in the WHATWG working mode for feature additions; "we would be willing to implement this after another implementer ships to stable" is very different from "we would like to implement this soon".
So I'd appreciate it if the API Owners could, in their next discussion of this topic, resolve whether or not Chromium supports :state() being added to the HTML Standard, even before any other engine ships it.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra936hzGxQT%2BRvnXqtsS8CL6OHdiPCkBO%2BXaGL1hKucLgA%40mail.gmail.com.
From my API owner hat: I don't mind the change in general but don't think we should change from something that exists to something different unless it brings more interoperability, which is why I think it is a reasonable decision to not ship until at least another browser does the same.
The suggestion to avoid further massaging of the spec until another browser has caught up was a suggestion, and not a MUST, and was not intended to prevent anything already in the pipeline from landing.
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8zRq6Ua6Ut9P40xN4bQm8zMUwmoEDD_zGZSmDHqqJ77w%40mail.gmail.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btwJ5%3DbeekOhSGVSURGGD6U7Lm6AE5wbxvUNOq7FwFg92sg%40mail.gmail.com.
If you don't mind - that way it will show up in our review queue.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btwK42RLxygrC5wLdt25_658xSjwoknrUfAAQV5y%2BSokVWw%40mail.gmail.com.