Closed (fixed)
Project:
Drupal core
Version:
11.2.x-dev
Component:
image system
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
3 Mar 2025 at 04:11 UTC
Updated:
5 Jun 2025 at 14:59 UTC
Jump to comment: Most recent
Comments
Comment #3
mstrelan commentedQuick PoC of an image effect with fallback format. Setting to NR for feedback on the approach, please don't send it back for tests/lint/CR etc.
Comment #4
mstrelan commentedAdded a test for when AVIF is supported and another test for the fallback. Added a draft CR. This is ready for review.
Comment #5
smustgrave commentedCould the IS get some love. Wouldn't this be considered an API change?
Wonder if a CR is required?
Comment #6
mstrelan commentedUpdated the IS to hopefully make it clearer. There is already a CR, are you suggesting it might not be necessary? I think it is useful.
Comment #7
mstrelan commentedComment #8
mstrelan commentedRe #5:
It's a new plugin, not a change to an existing one, so no breakage here. You could argue the change to the protected function in GDToolkit is a BC break, but plugins are considered internal and it's a protected method as well, so I don't think it's an issue.
Comment #9
andypostI find it good/handy feature with CR)
Moreover AVIF is specifically good for big sizes with fallback
Comment #10
catchNot necessarily in this issue, could maybe be a follow-up, would we want to consider some kind of configurable filesize threshold where below a certain point we always skip AVIF and use webp instead? Have seen various discussions that decoding AVIF in the browser is a lot more expensive than webp, which can undo the bandwidth savings with smaller images.
Comment #11
smustgrave commentedOpened up #3516434: Consider falling back to webp from AVIF based on filesize for that discussion.
Comment #12
catchOne comment on the MR.
Comment #13
mstrelan commentedSwitched to keyvalue instead of state
Comment #14
catchLooks good.
Comment #15
poker10 commentedSorry for asking, maybe it is obvious, but when we added webp format and possible conversion to core and image styles (#3275557: Add webp image conversion to core's install profile's image style and #3406267: All core shipped image styles should include webp conversion), we have not added any fallback. Was webp available in all PHP installations at that time? If not, are we sure that now when avif will not be available, webp will be?
Comment #16
catch@poker10 I am fairly sure that PHP installation support was widespread when webp was added to core. imagewebp from the gd library has been available since PHP 5.4 according to https://www.php.net/manual/en/function.imagewebp.php so theoretically that means it was everywhere.
However there was also an issue that older versions of osx, from around 2015 and earlier would not render webp, regardless of browser. This delayed us enabling webp by default in image styles in core until some time during Drupal 10. So we had it available as an option for a long time before then.
With AVIF it has been somewhat the opposite, in that all the browsers we care about supported it before php did. So once we do this issue, we should be able to convert the default image styles in core and Drupal CMS over, give or take the size considerations in the follow-up.
Comment #17
catchTagging for 11.2.0 release highlights, I'll try to review this one more time. Mine was the last RTBC on this issue but not the first two, so I think I'm fine to commit this still.
Comment #20
catchCommitted/pushed to 11.x and cherry-picked to 11.2.x, thanks!
Comment #22
catch