From 62c01c4bc13b407af2c38e9c59806e258080d283 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Wed, 16 Mar 2022 14:58:06 -0700 Subject: [PATCH 1/2] Update the magic number for JPEG to just FF D8 FF. This matches what Wikipedia says: https://en.wikipedia.org/wiki/JPEG --- lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart b/lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart index 19e5884c985fb..1d3cfff1dcb19 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart @@ -297,10 +297,7 @@ class ImageFileFormat { ImageFileFormat([0x47, 0x49, 0x46, 0x38, 0x39, 0x61], 'image/gif'), // JPEG - ImageFileFormat([0xFF, 0xD8, 0xFF, 0xDB], 'image/jpeg'), - ImageFileFormat([0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01], 'image/jpeg'), - ImageFileFormat([0xFF, 0xD8, 0xFF, 0xEE], 'image/jpeg'), - ImageFileFormat([0xFF, 0xD8, 0xFF, 0xE1], 'image/jpeg'), + ImageFileFormat([0xFF, 0xD8, 0xFF], 'image/jpeg'), // WebP ImageFileFormat([0x52, 0x49, 0x46, 0x46, null, null, null, null, 0x57, 0x45, 0x42, 0x50], 'image/webp'), From 18e590965b509846b183e275a02d90a8ac315a9e Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Wed, 16 Mar 2022 15:12:19 -0700 Subject: [PATCH 2/2] Add test --- lib/web_ui/test/canvaskit/image_golden_test.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/web_ui/test/canvaskit/image_golden_test.dart b/lib/web_ui/test/canvaskit/image_golden_test.dart index fb140b3f79f36..4c45cc3d8f664 100644 --- a/lib/web_ui/test/canvaskit/image_golden_test.dart +++ b/lib/web_ui/test/canvaskit/image_golden_test.dart @@ -529,6 +529,13 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) { await disposePlatformView(0); }); + + test('can detect JPEG from just magic number', () async { + expect( + detectContentType( + Uint8List.fromList([0xff, 0xd8, 0xff, 0xe2, 0x0c, 0x58, 0x49, 0x43, 0x43, 0x5f])), + 'image/jpeg'); + }); }); }