diff --git a/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart b/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart index e8228815ac806..71fc79ad335a9 100644 --- a/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart +++ b/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart @@ -369,11 +369,12 @@ class SkwasmRenderer implements Renderer { if (contentType == null) { throw Exception('Could not determine content type of image from data'); } - final ui.Codec baseDecoder = SkwasmImageDecoder( + final SkwasmImageDecoder baseDecoder = SkwasmImageDecoder( contentType: contentType, dataSource: list.toJS, debugSource: 'encoded image bytes', ); + await baseDecoder.initialize(); if (targetWidth == null && targetHeight == null) { return baseDecoder; } @@ -395,11 +396,13 @@ class SkwasmRenderer implements Renderer { if (contentType == null) { throw Exception('Could not determine content type of image at url $uri'); } - return SkwasmImageDecoder( + final SkwasmImageDecoder decoder = SkwasmImageDecoder( contentType: contentType, dataSource: response.body as JSAny, debugSource: uri.toString(), ); + await decoder.initialize(); + return decoder; } @override diff --git a/lib/web_ui/test/ui/filters_test.dart b/lib/web_ui/test/ui/filters_test.dart index 1b66d5bf434f5..56feb205b21df 100644 --- a/lib/web_ui/test/ui/filters_test.dart +++ b/lib/web_ui/test/ui/filters_test.dart @@ -29,6 +29,7 @@ Future testMain() async { final ui.Codec codec = await renderer.instantiateImageCodecFromUrl( Uri(path: '/test_images/mandrill_128.png') ); + expect(codec.frameCount, 1); final ui.FrameInfo info = await codec.getNextFrame(); final ui.Image image = info.image; diff --git a/lib/web_ui/test/ui/image_golden_test.dart b/lib/web_ui/test/ui/image_golden_test.dart index c1defa07ccfed..df299250af8ba 100644 --- a/lib/web_ui/test/ui/image_golden_test.dart +++ b/lib/web_ui/test/ui/image_golden_test.dart @@ -288,6 +288,7 @@ Future testMain() async { final ui.Codec codec = await renderer.instantiateImageCodecFromUrl( Uri(path: '/test_images/mandrill_128.png') ); + expect(codec.frameCount, 1); final ui.FrameInfo info = await codec.getNextFrame(); return info.image; @@ -300,6 +301,7 @@ Future testMain() async { targetWidth: 150, targetHeight: 150, ); + expect(codec.frameCount, 1); final ui.FrameInfo info = await codec.getNextFrame(); return info.image;