From 1ddb8f0667d8f7bdc10c32c042f2a3ac08ee7d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Maria=20Semprini?= Date: Tue, 10 Feb 2026 18:49:09 +0100 Subject: [PATCH] feat: jxl browser support detection (#25599) --- web/src/lib/utils/asset-utils.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/web/src/lib/utils/asset-utils.ts b/web/src/lib/utils/asset-utils.ts index a90688e0ab..84e386d620 100644 --- a/web/src/lib/utils/asset-utils.ts +++ b/web/src/lib/utils/asset-utils.ts @@ -303,9 +303,18 @@ const supportedImageMimeTypes = new Set([ const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // https://stackoverflow.com/a/23522755 if (isSafari) { - supportedImageMimeTypes.add('image/heic').add('image/heif').add('image/jxl'); + supportedImageMimeTypes.add('image/heic').add('image/heif'); } +function checkJxlSupport(): void { + const img = new Image(); + img.addEventListener('load', () => { + supportedImageMimeTypes.add('image/jxl'); + }); + img.src = 'data:image/jxl;base64,/woIAAAMABKIAgC4AF3lEgA='; // Small valid JPEG XL image +} +checkJxlSupport(); + /** * Returns true if the asset is an image supported by web browsers, false otherwise */