mirror of https://github.com/flutter/samples.git
deploy: a858f4701e
parent
b46421bf65
commit
b5ec0c2980
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
"DQIHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmDAENAQcFYXNzZXQHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmBzlwYWNrYWdlcy93ZWJfc3RhcnR1cF9hbmFseXplci9saWIvd2ViX3N0YXJ0dXBfYW5hbHl6ZXIuanMMAQ0BBwVhc3NldAc5cGFja2FnZXMvd2ViX3N0YXJ0dXBfYW5hbHl6ZXIvbGliL3dlYl9zdGFydHVwX2FuYWx5emVyLmpz"
|
"DQEHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmDAENAQcFYXNzZXQHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRm"
|
@ -1 +1 @@
|
|||||||
{"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/web_startup_analyzer/lib/web_startup_analyzer.js":["packages/web_startup_analyzer/lib/web_startup_analyzer.js"]}
|
{"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
|
@ -1,47 +0,0 @@
|
|||||||
// Copyright 2021 The Flutter team. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
// Helper class to capture Flutter web app startup timing information
|
|
||||||
class FlutterWebStartupAnalyzer {
|
|
||||||
timings;
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
this.timings = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
markStart(name) {
|
|
||||||
this.timings[name] = null;
|
|
||||||
performance.mark('flt-' + name + '-started');
|
|
||||||
}
|
|
||||||
markFinished(name) {
|
|
||||||
performance.mark('flt-' + name + '-finished');
|
|
||||||
}
|
|
||||||
capture(name) {
|
|
||||||
var timingName = 'flt-' + name;
|
|
||||||
var started = 'flt-' + name + 'started';
|
|
||||||
try {
|
|
||||||
var measurement = performance.measure('flt-' + name, 'flt-' + name + '-started', 'flt-' + name + '-finished');
|
|
||||||
} catch(e) {
|
|
||||||
// ignore errors if the mark doesn't exist
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.timings[name] = measurement.duration;
|
|
||||||
}
|
|
||||||
captureAll() {
|
|
||||||
for (var [key, value] of Object.entries(this.timings)) {
|
|
||||||
this.capture(key);
|
|
||||||
}
|
|
||||||
// Capture
|
|
||||||
this.timings['load'] = performance.timing.loadEventEnd - performance.timing.domContentLoadedEventEnd;
|
|
||||||
this.timings['domContentLoaded'] = performance.timing.domContentLoadedEventEnd - performance.timing.navigationStart;
|
|
||||||
}
|
|
||||||
|
|
||||||
capturePaint() {
|
|
||||||
const entries = performance.getEntriesByType("paint");
|
|
||||||
// Collect first-paint and first-contentful-paint entries
|
|
||||||
entries.forEach((entry) => {
|
|
||||||
this.timings[entry.name] = entry.startTime;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue