From c6f4632c2b8b482d17283da1b7d80896aa7dcde2 Mon Sep 17 00:00:00 2001 From: Srujan Gaddam Date: Tue, 22 Nov 2022 11:23:43 -0800 Subject: [PATCH] Fix DomProgressEvent constructor 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/9cb49937575fa9b6774e9dc471ce638e151ccf47/lib/web_ui/test/canvaskit/image_golden_test.dart --- 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/lib/web_ui/lib/src/engine/dom.dart b/lib/web_ui/lib/src/engine/dom.dart index 0975d736212e4..e9c6fb074b88c 100644 --- a/lib/web_ui/lib/src/engine/dom.dart +++ b/lib/web_ui/lib/src/engine/dom.dart @@ -198,9 +198,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 { int? get loaded => diff --git a/lib/web_ui/test/canvaskit/image_golden_test.dart b/lib/web_ui/test/canvaskit/image_golden_test.dart index fd32c13be19e6..090eb68208fb4 100644 --- a/lib/web_ui/test/canvaskit/image_golden_test.dart +++ b/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) {