From 4cfd8884fea4ef5c686072840e7f5bc406485d7d Mon Sep 17 00:00:00 2001 From: Srujan Gaddam <58529443+srujzs@users.noreply.github.com> Date: Wed, 23 Nov 2022 08:03:32 -0800 Subject: [PATCH] Fix DomProgressEvent constructor (flutter/engine#37849) DomProgressEvent should have a non-synthetic constructor that accepts a String to match the MDN definition: https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent/ProgressEvent. It should also have a JS name that points to ProgressEvent. Lastly, image_golden_test is modified to use the parameter values from before the static interop migration: https://github.com/flutter/engine/blame/9276dc1ff1673152e2bd38b0aabb79313b136555/lib/web_ui/test/canvaskit/image_golden_test.dart --- engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart | 6 ++++-- .../lib/web_ui/test/canvaskit/image_golden_test.dart | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart index 8d60a25b358..155c7d40464 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart @@ -193,9 +193,11 @@ DomEvent createDomEvent(String type, String name) { return event; } -@JS() +@JS('ProgressEvent') @staticInterop -class DomProgressEvent extends DomEvent {} +class DomProgressEvent extends DomEvent { + external factory DomProgressEvent(String type); +} extension DomProgressEventExtension on DomProgressEvent { external double? get loaded; diff --git a/engine/src/flutter/lib/web_ui/test/canvaskit/image_golden_test.dart b/engine/src/flutter/lib/web_ui/test/canvaskit/image_golden_test.dart index 23532806410..d611a0fc8c7 100644 --- a/engine/src/flutter/lib/web_ui/test/canvaskit/image_golden_test.dart +++ b/engine/src/flutter/lib/web_ui/test/canvaskit/image_golden_test.dart @@ -229,7 +229,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) { final Future futureCodec = skiaInstantiateWebImageCodec('http://image-server.com/picture.jpg', null); - mock.sendEvent('load', DomProgressEvent()); + mock.sendEvent('load', DomProgressEvent('test progress event')); final ui.Codec codec = await futureCodec; expect(codec.frameCount, 1); final ui.Image image = (await codec.getNextFrame()).image; @@ -277,7 +277,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) { try { final Future futureCodec = skiaInstantiateWebImageCodec( 'url-does-not-matter', null); - mock.sendEvent('error', DomProgressEvent()); + mock.sendEvent('error', DomProgressEvent('test error')); await futureCodec; fail('Expected to throw'); } on ImageCodecException catch (exception) { @@ -317,7 +317,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) { try { final Future futureCodec = skiaInstantiateWebImageCodec( 'http://image-server.com/picture.jpg', null); - mock.sendEvent('load', DomProgressEvent()); + mock.sendEvent('load', DomProgressEvent('test progress event')); await futureCodec; fail('Expected to throw'); } on ImageCodecException catch (exception) {