index.html RawHistoryFolder
1<!doctype html>
2<html lang="en">
3<head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <meta name="color-scheme" content="dark light">
7 <title>systemviews</title>
8 <link rel="stylesheet" href="./systemviews.css">
9 <script src="./wasm_exec.js"></script>
10 <script>
11 function renderWasmError(prefixText, err) {
12 const render = () => {
13 const app = document.getElementById('app');
14 if (!app) return;
15 app.innerHTML = '';
16 const message = document.createElement('div');
17 message.className = 'sv-error';
18 const prefix = document.createElement('span');
19 prefix.textContent = prefixText;
20 const details = document.createElement('span');
21 details.textContent = err && err.message ? err.message : String(err || 'unsupported browser');
22 message.append(prefix, details);
23 app.append(message);
24 };
25 if (document.readyState === 'loading' && !document.getElementById('app')) {
26 document.addEventListener('DOMContentLoaded', render, { once: true });
27 } else {
28 render();
29 }
30 console.error(prefixText, err);
31 }
32
33 function instantiateWasm(go, wasmURL) {
34 const instantiateFromBytes = () => fetch(wasmURL)
35 .then((response) => {
36 if (!response.ok) {
37 throw new Error(`HTTP ${response.status} loading ${wasmURL}`);
38 }
39 return response.arrayBuffer();
40 })
41 .then((bytes) => WebAssembly.instantiate(bytes, go.importObject));
42
43 if (!WebAssembly.instantiateStreaming) {
44 return instantiateFromBytes();
45 }
46 return WebAssembly.instantiateStreaming(fetch(wasmURL), go.importObject)
47 .catch((err) => {
48 console.error(`Streaming WebAssembly load failed for ${wasmURL}; falling back to ArrayBuffer instantiation`, err);
49 return instantiateFromBytes();
50 });
51 }
52
53 if (typeof WebAssembly !== 'object') {
54 renderWasmError('WebAssembly is not supported in this browser: ');
55 } else if (typeof Go !== 'function') {
56 renderWasmError('Go WebAssembly runtime failed to load: ');
57 } else {
58 const go = new Go();
59 instantiateWasm(go, './systemviews.wasm')
60 .then((result) => go.run(result.instance))
61 .catch((err) => renderWasmError('Failed to load systemviews WebAssembly: ', err));
62 }
63 </script>
64</head>
65<body>
66 <main id="app">Loading systemviews…</main>
67 <noscript>
68 <p>JavaScript is required to run Dumber system views. Enable JavaScript for <code>dumb://history</code>, <code>dumb://favorites</code>, and <code>dumb://config</code>.</p>
69 </noscript>
70</body>
71</html>