On Thu, Oct 19, 2023 at 10:59 AM Chris Harrelson <chris...@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. > > We think this plan is a reasonable approach to reduce work for > web developers and Chromium implementers in the short term while still > achieving interop in the future. > > On Thu, Oct 12, 2023 at 11:41 AM Alex Russell <slightly...@chromium.org> > wrote: > >> Hey all, >> >> We've spent a LOT of time discussing this one in API OWNERS, and my >> disinclination to allow this to move forward remains. What we're observing >> in this Intent is an anti-pattern in which: >> >> - Chromium engineers follow a process that is designed to put >> developer needs above implementer preferences >> >> <https://www.w3.org/2019/09/17-components-minutes.html#:~:text=chrishtr:%20I%20think%20having%20custom%20states%20was%20the%20%231%20request%20on%20top%20of%20parts>, >> explore the design space earnestly, work with developers to vet a >> solution, >> and work to build interest with other vendors >> >> <https://groups.google.com/a/chromium.org/g/blink-dev/c/CApU9QIu3TM/m/LPKLLLahDQAJ> >> . >> - Other projects fail to implement and/or implement alternatives. >> - The API OWNERS take a calculated risk to ship first. That is >> premised on collateral the development team provides that the design >> solves >> an important problem well, demonstrating developer support and that our >> process for open development has given ample time for others to engage and >> help shape the design. >> - Time passes (often years). >> - Without implementing themselves, other vendors demand that the >> design change to achieve "consensus" within a standards body, but without >> demonstrating real deficiencies in the shipped API or even feedback from >> developers that we were wrong in some important way. >> >> >> Or put another way, spec fiction is being allowed to trump real-world >> problem solving, and that's not what our process is designed to facilitate. >> >> Not only does this pattern further escalate the costs involved in the >> process to deliver a feature where we have already paid treble to >> ice-break, it potentially breaks applications -- remember that we suffer >> from enterprise blindness in our use counters, so it's probable that we >> will also need to reach out to, e.g., Salesforce and ask them to help >> collect data. This pattern also drags us away from other work that would >> expand the platform for users and developers in productive ways. >> >> These costs may seems small on an individual feature basis, but they add >> up fast and set terrible precedent. I'm *extremely* unhappy that we seem >> to be engaging in more of it over the past year, particularly without >> strong arguments for why the new design is superior. Even the recent debate >> over this feature is largely about non-committal mild preferences: >> >> https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-1663111980 >> >> At this point I've read substantially all of the minutes related to these >> design choices, and this is *absolutely *late bikeshedding by folks who >> haven't implemented either alternative and were widely consulted at the >> time we backstopped the initial I2S. >> >> Per our conversation yesterday, I'm struggling to get to "yes" on this. >> At a minimum, I need a stronger argument for why we should make this change >> than that someone in the CSS WG had a mild preference years after the CSS >> WG was first consulted on the problem. It would help if we had a commitment >> from the Intent proposers to avoid this sort of change in future. Deciding >> to ship this would also need to be clearly disclaimed as non-precedent, and >> I'd be looking from support of the managers of these teams to prevent this >> sort of make-work in future. How close are we to agreement on that? >> >> Best, >> >> Alex >> >> On Wednesday, October 11, 2023 at 7:49:09 AM UTC-7 Brian Kardell wrote: >> >>> I don't normally weigh in on these but I just wanted to say that I think >>> this one is pretty unique for a whole bunch of reasons and it's not just an >>> example of bikeshedding after shipping by a specific vendor or something. >>> It's more than that. As much as I think this is important, and wanted it, >>> there were a million other things to talk about re: custom elements that >>> were ahead of it and it just didn't get the level of oxygen that it needed >>> from many quarters, it seems to me, in order to surface the right >>> thoughts. As it's picked up, over the last few years there were >>> disagreements, counterpoints, etc at many stages through WHATWG, TAG, >>> CSSWG... It feels like it would be good to summarize all of it somewhere - >>> and I'm not even saying the decision here is "right" or something ... I'm >>> just saying that I don't think it is as simple as "bikeshedding after >>> shipping" implies >>> >>> >>> >>> On Thursday, October 5, 2023 at 4:54:26 PM UTC-4 Chris Harrelson wrote: >>> >>>> Regarding why change to :state() instead of :--: as is typical, it was >>>> done in order to gain consensus; in particular, the CSSWG resolution notes >>>> indicate >>>> <https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-1663111980> >>>> (see >>>> comment from the chair) one motivation is to align with WHATWG and not end >>>> up with a situation where two standards groups have opposing positions in a >>>> gray-area situation and no progress is made. >>>> >>>> I don't think that 0.03% is a big problem to deprecate, and recommend >>>> we just make the change to match a hard-won consensus and move on. It's >>>> easy enough to support both syntaxes for some amount of time before >>>> removing the old one. >>>> >>>> On Thu, Oct 5, 2023 at 1:49 PM Chris Harrelson <chri...@chromium.org> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Wed, Oct 4, 2023 at 2:24 PM Jeffrey Yasskin <jyas...@chromium.org> >>>>> wrote: >>>>> >>>>>> 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? >>>>>> >>>>> >>>>> I think we generally shouldn't ship CSS features before there is >>>>> robust discussion and consensus at the CSSWG, and I think Chromium >>>>> features >>>>> have done a good job at that. The CSSWG resolution mechanism, and the >>>>> various stages of W3C standardization help to build confidence about the >>>>> degree of consensus and commitment, as do signals from other browser >>>>> vendors. I don't think we should additionally require filing an "is X >>>>> ready >>>>> to ship?" issue at the CSSWG for CSS features. >>>>> >>>>> >>>> >>>>>> Jeffrey >>>>>> >>>>>> On Wed, Oct 4, 2023 at 1:15 PM Jeffrey Yasskin <jyas...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> On Wed, Oct 4, 2023 at 1:08 PM Joey Arhar <jar...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>> > 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. >>>>>>>> >>>>>>> >>>>>>> Yeah, good point: it's totally possible that our more recent process >>>>>>> rigor is sufficient, and we don't need anything new to prevent this in >>>>>>> the >>>>>>> future. No matter what, we should expect the occasional old feature to >>>>>>> pop >>>>>>> up and be an exception. >>>>>>> >>>>>>> I do think that it's worth finding a way to write down your current >>>>>>> practice, so that it doesn't regress if you switch teams. I think you >>>>>>> mean >>>>>>> that you do "hold off on shipping CSS features until they land in an >>>>>>> official draft", so let's try to record that if it's our idea of the >>>>>>> solution. >>>>>>> >>>>>>> >>>>>>>> > 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. >>>>>>>> >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> On Wed, Oct 4, 2023 at 1:00 PM Jeffrey Yasskin <jyas...@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 < >>>>>>>>> sligh...@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+...@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 >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CANh-dXnPrTj5PhthsMfcr5kd340pbfzuCZik1%2B7J7FC-YkKL1g%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/fa862fff-e9eb-4aad-acc3-ca0849c72b06n%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fa862fff-e9eb-4aad-acc3-ca0849c72b06n%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%2Bw8SD56Qq00V-B2f60uW-OjfQDVQ7Omx3sO_J7vnfP8yXA%40mail.gmail.com.