blob: 1d22daece3abc669c67cc223353605ad2293a00a [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2018 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Note: This tag is replaced when served through DDS! -->
<base href="/">
<title></title>
<link href="favicon.png" rel="icon" sizes="64x64">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script>
// The value of DEVTOOLS_GOOGLE_TAG_ID here must match the value of the '?id='
// query parameter below in the 'https://www.googletagmanager.com' script.
// This is the value of the "Dart DevTools - GA4" Google Tag, which is linked
// to the DevTools GA4 analytics property.
const DEVTOOLS_GOOGLE_TAG_ID = 'G-69MPZE94D5'; //
function getDevToolsPropertyID() {
return DEVTOOLS_GOOGLE_TAG_ID;
}
</script>
<!-- The below URI ?id= must match the DEVTOOLS_GOOGLE_TAG_ID above. -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-69MPZE94D5"></script>
<script src="devtools_analytics.js"></script>
<!-- End of DevTools Google Analytics -->
<!-- DO NOT REMOVE: -->
<!-- OBSERVER SCRIPT PLACEHOLDER -->
<script>
function supportsES6Classes() {
"use strict";
try { eval("class Foo {}"); }
catch (e) { return false; }
return true;
}
if (!supportsES6Classes()) {
window.location.href = '/unsupported-browser.html';
}
</script>
<script>
// The value below is injected by flutter build, do not touch.
var serviceWorkerVersion = null;
</script>
<!-- This script adds the flutter initialization JS code -->
<script src="flutter.js" defer></script>
<!-- TODO(elliette): Remove once https://github.com/flutter/flutter/issues/122541 is fixed. -->
<link rel="stylesheet" href="styles.css">
</head>
<body>
<script>
// Unregister the old custom DevTools service worker (if it exists). It was
// removed in: https://github.com/flutter/devtools/pull/5331
function unregisterDevToolsServiceWorker() {
if ('serviceWorker' in navigator) {
const DEVTOOLS_SW = 'service_worker.js';
const FLUTTER_SW = 'flutter_service_worker.js';
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for (let registration of registrations) {
const activeWorker = registration.active;
if (activeWorker != null) {
const url = activeWorker.scriptURL;
if (url.includes(DEVTOOLS_SW) && !url.includes(FLUTTER_SW)) {
registration.unregister();
}
}
}
});
}
}
// Bootstrap app for 3P environments:
function bootstrapAppFor3P() {
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
onEntrypointLoaded: function(engineInitializer) {
engineInitializer.initializeEngine({
renderer: 'canvaskit',
canvasKitBaseUrl: 'canvaskit/'
})
.then(function(appRunner) {
appRunner.runApp();
});
}
});
});
}
// Bootstrap app for 1P environments:
function bootstrapAppFor1P() {
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
entrypointUrl: 'main.dart.js',
onEntrypointLoaded: function(engineInitializer) {
engineInitializer.initializeEngine({
renderer: 'canvaskit',
})
.then(function(appRunner) {
appRunner.runApp();
});
}
});
});
}
unregisterDevToolsServiceWorker();
bootstrapAppFor3P();
</script>
</body>
</html>