Hey Traian, I'm excited about you taking on this area! At the same time, I agree with Rego that we should not be landing patches for this without a new intent that looks at the current compat landscape. Can you put this behind a flag and send a new intent? Thanks! :)
On Fri, Dec 2, 2022 at 3:48 AM Traian Captan <tcap...@chromium.org> wrote: > Hi Noam, > > Thanks for the heads up! > This patch only exposes the current `-webkit-` prefixed functionality > without needing the prefix, and the parsing strictness is the same. > > When I look at adding the extra functionality you mentioned I will port > your test case and look out for this issue. > For now, image-set without the url keyword as well as generated images > will fail parsing, Chrome will fall back to the `-webkit-` prefixed version > if defined and behave as it did before the patch. > > Regards, > Traian > > > On Thu, Dec 1, 2022 at 2:11 AM Noam Rosenthal <nrosent...@chromium.org> > wrote: > >> >> >> On Thu, Dec 1, 2022 at 1:59 AM Traian Captan <tcap...@chromium.org> >> wrote: >> >>> Hi, >>> >>> This issue has been bugging devs since 2016. >>> >>> I'm landing a patch >>> <https://chromium-review.googlesource.com/c/chromium/src/+/4063134> to >>> unprefix -webkit-image-set which will expose the current image-set >>> functionality without needing the '-webkit-' prefix. >>> >>> To address the compat issue, if both prefixed and standard versions are >>> defined in the right order, >>> and the standard version fails parsing, Chrome will fallback to the >>> prefixed version. >>> The `image-set-fallback` test has been added to verify this behavior. >>> Unprefixing image-set fixes 2 of the failing subtests of the >>> image-set-parsing >>> WPT test >>> <https://wpt.fyi/results/css/css-images/image-set/image-set-parsing.html?label=master&label=experimental&aligned&view=subtest&q=image-set-parsing> >>> >>> Hi Traian >> I implemented the same in WebKit 3 years ago, alongside other image-set >> improvements. At the time there were some strange backwards-compatibility >> issues, e.g. with empty strings, >> where I had to keep some non-standard behavior in -webkit-image-set >> around parsing : >> https://trac.webkit.org/changeset/255420/webkit >> >> Would be good to double check that we don’t repeat the same regression ☺️ >> >> The other thing WebKit has since then is support for urls without the >> url() keywords and also generated images in an image-set. I am curious if >> we have a plan to implement that or if unprefixing without them can cause >> issues. >> >> >>> As a follow up, I will investigate whether we can fix the remaining >>> compat issues. >>> >>> Regards, >>> Traian >>> >>> On Tuesday, August 30, 2016 at 8:51:03 AM UTC-7 dgla...@google.com >>> wrote: >>> >>>> LGTM3 + investigate the syntax issue mentioned by PhistucK. >>>> >>>> :DG< >>>> >>>> >>>> On Monday, August 29, 2016 at 5:06:06 PM UTC-7, Dru Knox wrote: >>>> >>>>> Is this blocked on API owner feedback? >>>>> >>>>> On Mon, Aug 15, 2016 at 1:47 AM PhistucK <phis...@gmail.com> wrote: >>>>> >>>> It has come to my attention in comment 5 >>>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=630597#c5> that >>>>>> the standard syntax is a superset of the Blink syntax. >>>>>> https://drafts.csswg.org/css-images-3/#image-set-notation >>>>>> >>>>>> Blink supports - >>>>>> background-image: image-set( url("foo.png") 1x, >>>>>> url("foo-2x.png") 2x, >>>>>> url("foo-print.png") 3x ); >>>>>> >>>>>> The standard supports this - >>>>>> background-image: image-set( "foo.png" 1x, >>>>>> url("foo-2x.png") 2x, >>>>>> "foo-print.png" 600dpi ); >>>>>> Basically, you do not need url("..."), you can enter it as a string >>>>>> without the url() function. Also, the resolution part supports more >>>>>> than just #x. >>>>>> >>>>>> I do not have Safari, but according to the unprefixing layout test, >>>>>> it looks like it does not support the standard syntax as well. >>>>>> >>>>>> Should the standard syntax be dropped? Can you talk to WebKit and see >>>>>> if they intend to implement the standard syntax? >>>>>> >>>>>> >>>>>> ☆*PhistucK* >>>>>> >>>>> On Fri, Aug 12, 2016 at 11:47 PM, Chris Harrelson < >>>>>> chri...@chromium.org> wrote: >>>>>> >>>>> LGTM2 >>>>>>> >>>>>>> On Fri, Aug 12, 2016 at 1:11 PM, Philip Jägenstedt < >>>>>>> foo...@chromium.org> wrote: >>>>>>> >>>>>> Easy LGTM1. Given that authors generally assume that prefixed things >>>>>>>> are aliases and that WebKit has made it just so, whatever problems >>>>>>>> there >>>>>>>> might be with image-set, the only way to move forward is to consider >>>>>>>> -webkit-image-set as part of the compat constraint and navigate >>>>>>>> accordingly. >>>>>>>> >>>>>>>> When it comes to tests, I guess this (like almost all) feature >>>>>>>> doesn't have a shared test suite that we actually use? Nothing in >>>>>>>> https://github.com/w3c/csswg-test/tree/master/css-images-3 and I >>>>>>>> don't know where else it would be? >>>>>>>> >>>>>>>> I suspect that contributing to csswg-tests is, like >>>>>>>> web-platform-tests, not streamlined enough to require it for shipping >>>>>>>> new >>>>>>>> things, but it would be great if you wanted to take a look at how >>>>>>>> feasible >>>>>>>> it is in this case. Even just a few reftests testing the very basics >>>>>>>> would >>>>>>>> be valuable. >>>>>>>> >>>>>>>> Finally, I wouldn't assume that compat risk is low. When things >>>>>>>> (like the Fullscreen API...) are prefixed only for a very long time, >>>>>>>> it's >>>>>>>> actually possible that merely unprefixing can break things. Let's hope >>>>>>>> this >>>>>>>> one works out. >>>>>>>> >>>>>>> On Fri, Aug 12, 2016 at 5:59 PM John Mellor <joh...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>> The CSS image-set spec is old, and has a major todo >>>>>>>>> <https://drafts.csswg.org/css-images-3/#issue-952b7afb>: it only >>>>>>>>> supports variations in screen density (1x, 2x, etc), but doesn't yet >>>>>>>>> allow >>>>>>>>> for selecting images based on viewport width >>>>>>>>> <https://html.spec.whatwg.org/multipage/embedded-content.html#viewport-based-selection> >>>>>>>>> like >>>>>>>>> the more modern <img> srcset+sizes attributes >>>>>>>>> <https://jakearchibald.com/2015/anatomy-of-responsive-images/#varying-size-and-density>. >>>>>>>>> Media queries aren't sufficient for this (though they nicely handle >>>>>>>>> the art >>>>>>>>> direction >>>>>>>>> <https://html.spec.whatwg.org/multipage/embedded-content.html#art-direction> >>>>>>>>> use >>>>>>>>> case, so CSS won't additionally need an equivalent to the <picture> >>>>>>>>> and <source> elements >>>>>>>>> <https://jakearchibald.com/2015/anatomy-of-responsive-images/#varying-width-density-and-art-direction> >>>>>>>>> ). >>>>>>>>> >>>>>>>>> That said, unprefixed image-set is perhaps already a defacto >>>>>>>>> standard (due to websites preemptively unprefixing it, and soon Safari >>>>>>>>> shipping it), so it's likely that when selecting images based on >>>>>>>>> viewport >>>>>>>>> width eventually gets added to CSS images, that will be done by >>>>>>>>> extending >>>>>>>>> the image-set syntax in a backwards compatible way. >>>>>>>>> >>>>>>>> On 8 August 2016 at 08:04, PhistucK <phis...@gmail.com> wrote: >>>>>>>>> >>>>>>>> Edge shows positive signs - >>>>>>>>>> https://developer.microsoft.com/en-us/microsoft-edge/platform/status/cssimageset?filter=f3f0000bf&search=image-set >>>>>>>>>> . >>>>>>>>>> >>>>>>>>> ☆*PhistucK* >>>>>>>>>> >>>>>>>>>> On Mon, Aug 8, 2016 at 8:51 AM, Elliott Sprehn < >>>>>>>>>> esp...@chromium.org> wrote: >>>>>>>>>> >>>>>>>>> Is our implementation compatible with Safari? Is there a test >>>>>>>>>>> suite? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Aug 7, 2016 10:31 PM, "Sunil Ratnu" <sunil...@samsung.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Contact emails*sunil...@samsung.com >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Spec* >>>>>>>>>>>> https://drafts.csswg.org/css-images-3/#image-set-notation >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Summary* >>>>>>>>>>>> Support unprefixed version of image-set. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Motivation* >>>>>>>>>>>> Currently blink implementation is "webkit" prefixed. Given >>>>>>>>>>>> Safari also recently unprefixed image-set, unprefixing can be done >>>>>>>>>>>> without >>>>>>>>>>>> any risk. >>>>>>>>>>>> >>>>>>>>>>>> Link to the WebKit change: >>>>>>>>>>>> https://trac.webkit.org/changeset/202765 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Interoperability and Compatibility Risk*Low. >>>>>>>>>>>> Firefox and Edge do not support image-set. Only Chrome and >>>>>>>>>>>> Safari support it. Safari also has recently unprefixed >>>>>>>>>>>> -webkit-image-set. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Ongoing technical constraints*None >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Will this feature be supported on all six Blink platforms >>>>>>>>>>>> (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?* >>>>>>>>>>>> Yes >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *OWP launch tracking bug* >>>>>>>>>>>> Will be using this as reference bug: >>>>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=630597 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Entry on the feature dashboard* >>>>>>>>>>>> No >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Requesting approval to ship?* >>>>>>>>>>>> Yes >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Thanks & Regards, >>>>>>>>>>>> >>>>>>>>>>>> Sunil >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>> >>>>>>> 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. >>>>>>>> >>>>>>> >>>>>>> >>>>>> -- >>> 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/116914db-f380-4590-abbc-5930a8ee77ccn%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/116914db-f380-4590-abbc-5930a8ee77ccn%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/CAFxahvs_3AvB12EV6Ry9OzaG-%3DHkvk2ujEm_FWC6t9MZHREP1g%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFxahvs_3AvB12EV6Ry9OzaG-%3DHkvk2ujEm_FWC6t9MZHREP1g%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/CAL5BFfWunc0EAk80KpKC-4X69fjzHznhhpxwm52o0_nUh8E97A%40mail.gmail.com.