Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 7959ffd

Browse files
authored
Fix DomProgressEvent constructor (#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/9cb49937575fa9b6774e9dc471ce638e151ccf47/lib/web_ui/test/canvaskit/image_golden_test.dart
1 parent 94cdce8 commit 7959ffd

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

lib/web_ui/lib/src/engine/dom.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,11 @@ DomEvent createDomEvent(String type, String name) {
193193
return event;
194194
}
195195

196-
@JS()
196+
@JS('ProgressEvent')
197197
@staticInterop
198-
class DomProgressEvent extends DomEvent {}
198+
class DomProgressEvent extends DomEvent {
199+
external factory DomProgressEvent(String type);
200+
}
199201

200202
extension DomProgressEventExtension on DomProgressEvent {
201203
external double? get loaded;

lib/web_ui/test/canvaskit/image_golden_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) {
229229
final Future<ui.Codec> futureCodec =
230230
skiaInstantiateWebImageCodec('http://image-server.com/picture.jpg',
231231
null);
232-
mock.sendEvent('load', DomProgressEvent());
232+
mock.sendEvent('load', DomProgressEvent('test progress event'));
233233
final ui.Codec codec = await futureCodec;
234234
expect(codec.frameCount, 1);
235235
final ui.Image image = (await codec.getNextFrame()).image;
@@ -277,7 +277,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) {
277277
try {
278278
final Future<ui.Codec> futureCodec = skiaInstantiateWebImageCodec(
279279
'url-does-not-matter', null);
280-
mock.sendEvent('error', DomProgressEvent());
280+
mock.sendEvent('error', DomProgressEvent('test error'));
281281
await futureCodec;
282282
fail('Expected to throw');
283283
} on ImageCodecException catch (exception) {
@@ -317,7 +317,7 @@ void _testForImageCodecs({required bool useBrowserImageDecoder}) {
317317
try {
318318
final Future<ui.Codec> futureCodec = skiaInstantiateWebImageCodec(
319319
'http://image-server.com/picture.jpg', null);
320-
mock.sendEvent('load', DomProgressEvent());
320+
mock.sendEvent('load', DomProgressEvent('test progress event'));
321321
await futureCodec;
322322
fail('Expected to throw');
323323
} on ImageCodecException catch (exception) {

0 commit comments

Comments
 (0)