Skip to content

Commit 3001d6a

Browse files
authored
Revert "Migrate benchmarks to package:web" (#127207)
Reverts flutter/flutter#126848 Triggered some kind of measuring discrepancy / performance regression.
1 parent 972b447 commit 3001d6a

File tree

6 files changed

+89
-125
lines changed

6 files changed

+89
-125
lines changed

dev/benchmarks/macrobenchmarks/lib/src/web/bench_image_decoding.dart

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:js_interop';
5+
import 'dart:html' as html;
66
import 'dart:typed_data';
77
import 'dart:ui' as ui;
88

9-
import 'package:web/web.dart' as web;
10-
119
import 'recorder.dart';
1210

1311
// Measures the performance of image decoding.
@@ -45,11 +43,8 @@ class BenchImageDecoding extends RawRecorder {
4543
return;
4644
}
4745
for (final String imageUrl in _imageUrls) {
48-
final Future<JSAny?> fetchFuture = web.window.fetch(imageUrl.toJS).toDart;
49-
final web.Body image = (await fetchFuture)! as web.Body;
50-
final Future<JSAny?> imageFuture = image.arrayBuffer().toDart;
51-
final JSArrayBuffer imageBuffer = (await imageFuture)! as JSArrayBuffer;
52-
_imageData.add(imageBuffer.toDart.asUint8List());
46+
final html.Body image = await html.window.fetch(imageUrl) as html.Body;
47+
_imageData.add((await image.arrayBuffer() as ByteBuffer).asUint8List());
5348
}
5449
}
5550

dev/benchmarks/macrobenchmarks/lib/src/web/bench_platform_view_infinite_scroll.dart

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,30 @@
33
// found in the LICENSE file.
44

55
import 'dart:async';
6-
import 'dart:js_interop';
6+
import 'dart:html' as html;
77

88
import 'package:flutter/material.dart';
9-
import 'package:web/web.dart' as web;
109

1110
// TODO(mdebbar): flutter/flutter#55000 Remove this conditional import once
1211
// web-only dart:ui_web APIs are exposed from a dedicated place.
1312
import 'platform_views/non_web.dart'
14-
if (dart.library.js_interop) 'platform_views/web.dart';
13+
if (dart.library.html) 'platform_views/web.dart';
1514
import 'recorder.dart';
1615

1716
const String benchmarkViewType = 'benchmark_element';
1817

1918
void _registerFactory() {
2019
platformViewRegistry.registerViewFactory(benchmarkViewType, (int viewId) {
21-
final web.HTMLElement htmlElement = web.document.createElement('div'.toJS)
22-
as web.HTMLDivElement;
23-
htmlElement.id = '${benchmarkViewType}_$viewId'.toJS;
24-
htmlElement.innerText = 'Google'.toJS;
20+
final html.Element htmlElement = html.DivElement();
21+
htmlElement.id = '${benchmarkViewType}_$viewId';
22+
htmlElement.innerText = 'Google';
2523
htmlElement.style
26-
..setProperty('width'.toJS, '100%'.toJS)
27-
..setProperty('height'.toJS, '100%'.toJS)
28-
..setProperty('color'.toJS, 'black'.toJS)
29-
..setProperty('backgroundColor'.toJS, 'rgba(0, 255, 0, .5)'.toJS)
30-
..setProperty('textAlign'.toJS, 'center'.toJS)
31-
..setProperty('border'.toJS, '1px solid black'.toJS);
24+
..width = '100%'
25+
..height = '100%'
26+
..color = 'black'
27+
..backgroundColor = 'rgba(0, 255, 0, .5)'
28+
..textAlign = 'center'
29+
..border = '1px solid black';
3230
return htmlElement;
3331
});
3432
}

dev/benchmarks/macrobenchmarks/lib/src/web/recorder.dart

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33
// found in the LICENSE file.
44

55
import 'dart:async';
6-
import 'dart:js_interop';
7-
// The analyzer currently thinks `js_interop_unsafe` is unused, but it is used
8-
// for `JSObject.[]=`.
9-
// ignore: unused_import
10-
import 'dart:js_interop_unsafe';
6+
import 'dart:html' as html;
7+
import 'dart:js_util' as js_util;
118
import 'dart:math' as math;
129
import 'dart:ui';
1310

@@ -18,7 +15,6 @@ import 'package:flutter/scheduler.dart';
1815
import 'package:flutter/services.dart';
1916
import 'package:flutter/widgets.dart';
2017
import 'package:meta/meta.dart';
21-
import 'package:web/web.dart' as web;
2218

2319
/// The default number of samples from warm-up iterations.
2420
///
@@ -1257,7 +1253,7 @@ void startMeasureFrame(Profile profile) {
12571253

12581254
if (!profile.isWarmingUp) {
12591255
// Tell the browser to mark the beginning of the frame.
1260-
web.window.performance.mark('measured_frame_start#$_currentFrameNumber'.toJS);
1256+
html.window.performance.mark('measured_frame_start#$_currentFrameNumber');
12611257

12621258
_isMeasuringFrame = true;
12631259
}
@@ -1280,11 +1276,11 @@ void endMeasureFrame() {
12801276

12811277
if (_isMeasuringFrame) {
12821278
// Tell the browser to mark the end of the frame, and measure the duration.
1283-
web.window.performance.mark('measured_frame_end#$_currentFrameNumber'.toJS);
1284-
web.window.performance.measure(
1285-
'measured_frame'.toJS,
1286-
'measured_frame_start#$_currentFrameNumber'.toJS,
1287-
'measured_frame_end#$_currentFrameNumber'.toJS,
1279+
html.window.performance.mark('measured_frame_end#$_currentFrameNumber');
1280+
html.window.performance.measure(
1281+
'measured_frame',
1282+
'measured_frame_start#$_currentFrameNumber',
1283+
'measured_frame_end#$_currentFrameNumber',
12881284
);
12891285

12901286
// Increment the current frame number.
@@ -1314,10 +1310,7 @@ void registerEngineBenchmarkValueListener(String name, EngineBenchmarkValueListe
13141310

13151311
if (_engineBenchmarkListeners.isEmpty) {
13161312
// The first listener is being registered. Register the global listener.
1317-
web.window['_flutter_internal_on_benchmark'.toJS] =
1318-
// Upcast to [Object] to export.
1319-
// ignore: unnecessary_cast
1320-
(_dispatchEngineBenchmarkValue as Object).toJS;
1313+
js_util.setProperty(html.window, '_flutter_internal_on_benchmark', _dispatchEngineBenchmarkValue);
13211314
}
13221315

13231316
_engineBenchmarkListeners[name] = listener;
@@ -1328,7 +1321,7 @@ void stopListeningToEngineBenchmarkValues(String name) {
13281321
_engineBenchmarkListeners.remove(name);
13291322
if (_engineBenchmarkListeners.isEmpty) {
13301323
// The last listener unregistered. Remove the global listener.
1331-
web.window['_flutter_internal_on_benchmark'.toJS] = null;
1324+
js_util.setProperty(html.window, '_flutter_internal_on_benchmark', null);
13321325
}
13331326
}
13341327

0 commit comments

Comments
 (0)