diff --git a/Libraries/LibGfx/ImageFormats/AVIFLoader.cpp b/Libraries/LibGfx/ImageFormats/AVIFLoader.cpp index f10030bbccc..1f68fc3c91b 100644 --- a/Libraries/LibGfx/ImageFormats/AVIFLoader.cpp +++ b/Libraries/LibGfx/ImageFormats/AVIFLoader.cpp @@ -68,6 +68,11 @@ static ErrorOr decode_avif_header(AVIFLoadingContext& context) if (context.decoder == nullptr) { return Error::from_string_literal("failed to allocate AVIF decoder"); } + + // This makes the decoder not error if an item in the file is missing the mandatory pixi property. + // Reason for this is that older versions of ImageMagick do not set this property, which leads to + // broken web content if the error is not ignored. + context.decoder->strictFlags &= ~AVIF_STRICT_PIXI_REQUIRED; } avifResult result = avifDecoderSetIOMemory(context.decoder, context.data.data(), context.data.size()); diff --git a/Tests/LibGfx/test-inputs/avif/missing-pixi-property.avif b/Tests/LibGfx/test-inputs/avif/missing-pixi-property.avif new file mode 100644 index 00000000000..0c538b1655f Binary files /dev/null and b/Tests/LibGfx/test-inputs/avif/missing-pixi-property.avif differ