> 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.

On Wed, Oct 4, 2023 at 1:00 PM Jeffrey Yasskin <jyass...@chromium.org>
wrote:

> +1 on the API owners discussing this.
>
> 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.
>
> It looks like the initial proposal was :state(foo); the CSSWG asked to
> change it to :--foo in 2020
> <https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-591547956>;
> we shipped that in M90 in 2021
> <https://chromestatus.com/feature/6537562418053120> (with a feature entry
> that still says :state 🙃); then Ryosuke suggested undoing that change in
> January 2023
> <https://github.com/whatwg/html/pull/8467#issuecomment-1381645661>, and
> the CSSWG accepted that suggestion in August
> <https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-1663111980>.
> 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. It doesn't seem like
> this feature was so contentious that the team needed to use a name change
> as a bargaining chip, so we should probably have insisted on more evidence
> before agreeing with the change. Maybe that's still a "should" instead of a
> "should have": Joey's second email
> <https://groups.google.com/a/chromium.org/g/blink-dev/c/JvpHoUfhJYE/m/wPAHJzIvAQAJ>
>  might
> say that the CSSWG's resolution
> <https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-1663111980>
> about this isn't as committed as it appears to an external observer?
>
> Should we generally hold off on shipping CSS features until they land in
> an official draft, or even in a CR? Should we be clearer to the CSSWG when
> we decide to ship ahead of their consensus that the bar for changes is
> going up? There's not good support for this kind of per-WG restriction in
> Chrome Status yet, but maybe it'll fit near
> https://github.com/GoogleChrome/chromium-dashboard/issues/3390...
>
> Jeffrey
>
> On Fri, Sep 29, 2023 at 12:32 PM Alex Russell <slightly...@chromium.org>
> wrote:
>
>> hrm, 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:
>>>
>>>> Contact emailsjar...@chromium.org
>>>>
>>>> ExplainerNone
>>>>
>>>> Specificationhttps://github.com/whatwg/html/pull/8467
>>>>
>>>> Summary
>>>>
>>>> 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.
>>>>
>>>>
>>>> Blink componentBlink>HTML>CustomElements
>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EHTML%3ECustomElements>
>>>>
>>>> TAG reviewNone
>>>>
>>>> TAG review statusNot applicable
>>>>
>>>> Risks
>>>>
>>>>
>>>> Interoperability and Compatibility
>>>>
>>>> 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.
>>>>
>>>>
>>>> *Gecko*: No signal
>>>>
>>>> *WebKit*: No signal (
>>>> https://github.com/whatwg/html/pull/8467#issuecomment-1381645661)
>>>>
>>>> *Web developers*: No signals
>>>>
>>>> *Other signals*:
>>>>
>>>> Activation
>>>>
>>>> Switching to the new syntax should be quite easy.
>>>>
>>>>
>>>> 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
>>>>
>>>> None
>>>>
>>>>
>>>> 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
>>>>
>>>> Flag name on chrome://flagsNone
>>>>
>>>> Finch feature nameNone
>>>>
>>>> Non-finch justificationNone
>>>>
>>>> Requires code in //chrome?False
>>>>
>>>> Estimated milestones
>>>>
>>>> No milestones specified
>>>>
>>>>
>>>> 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/5140610730426368
>>>>
>>>> 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 on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btwKZixsRFkiLgoHLF9BS17aWDpuR%2BA13toSmgjyFnop%3Diw%40mail.gmail.com.

Reply via email to