From dd09f665782db5f9e0211c1ad4ab1a90898dd967 Mon Sep 17 00:00:00 2001 From: Jonathan Sykes Date: Fri, 9 Oct 2026 14:40:46 +0800 Subject: [PATCH 1/2] Separate runtime manifest inputs from directly served files --- frontend/shell-consistency.test.js | 10 +++++++++ server/asset-manifest.js | 34 +++++++++++++++++++++++------- server/asset-manifest.test.js | 31 ++++++++++++++++++++++++++- server/server.js | 6 +++--- server/static-delivery.test.js | 21 ++++++++++++++++-- 5 files changed, 88 insertions(+), 14 deletions(-) diff --git a/frontend/shell-consistency.test.js b/frontend/shell-consistency.test.js index bbdfbff..c57eb27 100644 --- a/frontend/shell-consistency.test.js +++ b/frontend/shell-consistency.test.js @@ -88,3 +88,13 @@ test('layout-independent visibility and transport defaults stay in eager CSS',() for(const selector of ['.stg-overlay','.deck-chips','.np-btn.done .i-save','.sleep-status .sl-ic','.ab-group','.mc-tune'])assert.ok(shared.includes(selector)); assert.ok(html.includes('href="layout-base.css"')); }); + + +test('runtime exclusion rules never remove shell or declared dynamic assets', async () => { + const { isRuntimeAsset } = await import('../server/asset-manifest.js'); + const definition = JSON.parse(readFileSync(join(__dirname, 'assets.json'), 'utf8')); + for (const asset of new Set([...shell.filter(p => p !== '/'), ...Object.values(definition.groups).flatMap(g => g.files)])) { + assert.ok(isRuntimeAsset(asset, definition), `${asset} remains a runtime asset`); + } + for (const asset of ['/app.test.js', '/nested/probe.test.mjs', '/README.md', '/fonts/font-OFL.txt', '/admin.html', '/perf/fixture.js']) assert.equal(isRuntimeAsset(asset, definition), false, asset); +}); diff --git a/server/asset-manifest.js b/server/asset-manifest.js index 82127d2..4f91f08 100644 --- a/server/asset-manifest.js +++ b/server/asset-manifest.js @@ -35,6 +35,14 @@ export function stampIndex(source, files, { hashing = true, buildTag = '__BUILD_ })).replace('__BUILD_TAG__', buildTag); } +// Runtime set: all public files except developer material and the online-only admin. +// Exact root-relative includes in assets.json override these rules for real runtime data. +export function isRuntimeAsset(path, definition = {}) { + if (definition.include?.includes(path)) return true; + return path !== '/admin.html' && !/(?:^|\/)perf(?:\/|$)/i.test(path) && + !/\.(?:test\.(?:js|mjs)|md|txt|c|entry\.js)$/i.test(path); +} + export function createAssetManifest(publicDir = './public', { hashing = true, buildTag: override, assetSync = true } = {}) { // Single-tag URLs cannot be verified against per-file URL hashes. assetSync = hashing && assetSync; @@ -47,29 +55,38 @@ export function createAssetManifest(publicDir = './public', { hashing = true, bu else { const content = readFileSync(path); bytes.set(url, content); - legacy.update(`./public${url}`); legacy.update(content); + } } } // Missing public is the historical fixed fallback used by local tests. - if (!existsSync(publicDir)) return { manifest: { buildTag: override || 'dev-build', files: {}, groups: {}, contracts: {} }, index: null, sw: null, swSource: null, bytes }; + if (!existsSync(publicDir)) return { manifest: { buildTag: override || 'dev-build', files: {}, groups: {}, contracts: {} }, index: null, sw: null, swSource: null, bytes, deliveryFiles: {} }; walk(publicDir); const definition = bytes.has('/assets.json') ? JSON.parse(bytes.get('/assets.json').toString()) : { groups: { core: { contract: 1, eager: true, files: [...bytes.keys()].sort() } }, }; + if (definition.include !== undefined && (!Array.isArray(definition.include) || definition.include.some(path => typeof path !== 'string' || !path.startsWith('/') || path.includes('..') || !bytes.has(path)))) throw new Error('Invalid runtime asset include'); + const runtimePaths = [...bytes.keys()].filter(path => isRuntimeAsset(path, definition)).sort(); + for (const path of runtimePaths) { legacy.update(`./public${path}`); legacy.update(bytes.get(path)); } const groups = {}, contracts = {}, membership = new Map(); for (const name of Object.keys(definition.groups).sort()) { const group = definition.groups[name]; if (!Number.isInteger(group.contract) || group.contract < 1 || typeof group.eager !== 'boolean' || !Array.isArray(group.files)) throw new Error(`Invalid asset group ${name}`); - groups[name] = group; contracts[name] = group.contract; - for (const url of group.files) { + groups[name] = bytes.has('/assets.json') ? group : { ...group, files: group.files.filter(path => isRuntimeAsset(path, definition)) }; contracts[name] = group.contract; + for (const url of groups[name].files) { + if (!isRuntimeAsset(url, definition)) throw new Error(`Asset group ${name}: excluded ${url}; declare a runtime include if required`); if (!bytes.has(url)) throw new Error(`Asset group ${name}: missing ${url}`); if (membership.has(url)) throw new Error(`Duplicate asset membership: ${url}`); membership.set(url, name); } } const files = {}; - for (const url of [...bytes.keys()].sort()) files[url] = { h: assetHash(bytes.get(url)), s: bytes.get(url).length, g: membership.get(url) || 'core' }; + const deliveryFiles = {}; + for (const url of [...bytes.keys()].sort()) { + const file = { h: assetHash(bytes.get(url)), s: bytes.get(url).length, g: membership.get(url) || 'core' }; + deliveryFiles[url] = file; + if (isRuntimeAsset(url, definition)) files[url] = file; + } const source = bytes.get('/index.html')?.toString() ?? null; const swSource = bytes.get('/sw.js')?.toString() ?? null; // Derived build metadata cannot be an input to its own hash. Canonicalize @@ -87,15 +104,16 @@ export function createAssetManifest(publicDir = './public', { hashing = true, bu if (sw !== null) files['/sw.js'] = { ...files['/sw.js'], h: assetHash(sw), s: Buffer.byteLength(sw) }; if (index !== null) bytes.set('/index.html', Buffer.from(index)); if (sw !== null) bytes.set('/sw.js', Buffer.from(sw)); - return { manifest: { buildTag, files, groups, contracts }, index, sw, swSource, bytes }; + Object.assign(deliveryFiles, files); + return { manifest: { buildTag, files, groups, contracts }, index, sw, swSource, bytes, deliveryFiles }; } -export function assetCacheControl(path, version, manifest, hashing = true) { +export function assetCacheControl(path, version, manifest, hashing = true, deliveryFiles = manifest.files) { const shortCache = /(^|\/)(fonts|icons)\//.test(path) ? 'public, max-age=2592000' : 'no-cache'; // The legacy index route always revalidates; legacy binary delivery ignored v. if (!hashing && path === '/index.html') return 'no-cache'; if (!hashing && !/\.(?:js|css|html|json|webmanifest|svg|txt)$/i.test(path)) return shortCache; - const current = hashing ? manifest.files[path]?.h : manifest.buildTag; + const current = hashing ? deliveryFiles[path]?.h : manifest.buildTag; if (version !== undefined) { if (version === current) return 'public, max-age=31536000, immutable'; return hashing ? 'no-store' : 'no-cache'; diff --git a/server/asset-manifest.test.js b/server/asset-manifest.test.js index ca3a58e..49467aa 100644 --- a/server/asset-manifest.test.js +++ b/server/asset-manifest.test.js @@ -1,5 +1,5 @@ import { test, expect } from 'bun:test'; -import { mkdtempSync, writeFileSync, rmSync } from 'node:fs'; +import { mkdtempSync, writeFileSync, rmSync, mkdirSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; import { createHash } from 'node:crypto'; @@ -88,3 +88,32 @@ test('index embeds build-local group hashes without recursively embedding index/ const legacy=JSON.parse(off.index.match(/id="ytp-assets">([^<]+)<\/script>/)[1]); expect(legacy.files['/app.js'].h).toBe(off.manifest.buildTag); })); + + +test('non-runtime files stay deliverable but never affect manifest or build identity in either mode', () => fixture(dir => { + for (const hashing of [true, false]) { + const first = createAssetManifest(dir, { hashing }); + mkdirSync(join(dir, 'perf'), { recursive: true }); + for (const name of ['app.test.js', 'app.test.mjs', 'README.md', 'license.txt', 'admin.html', 'perf/fixture.js']) { + writeFileSync(join(dir, name), 'non-runtime'); + const next = createAssetManifest(dir, { hashing }); + expect(next.manifest.buildTag).toBe(first.manifest.buildTag); + expect(next.manifest.files['/' + name]).toBeUndefined(); + expect(next.deliveryFiles['/' + name].h).toBe(hash('non-runtime')); + expect(next.bytes.get('/' + name).toString()).toBe('non-runtime'); + writeFileSync(join(dir, name), 'edited non-runtime'); + expect(createAssetManifest(dir, { hashing }).manifest.buildTag).toBe(first.manifest.buildTag); + } + writeFileSync(join(dir, 'app.js'), 'changed runtime ' + hashing); + expect(createAssetManifest(dir, { hashing }).manifest.buildTag).not.toBe(first.manifest.buildTag); + } +})); + +test('explicit runtime includes override exclusions and excluded group members fail visibly', () => fixture(dir => { + writeFileSync(join(dir, 'runtime.txt'), 'required at runtime'); + const groups = { core: { contract: 1, eager: true, files: ['/index.html', '/app.js', '/runtime.txt'] } }; + writeFileSync(join(dir, 'assets.json'), JSON.stringify({ groups })); + expect(() => createAssetManifest(dir)).toThrow('excluded'); + writeFileSync(join(dir, 'assets.json'), JSON.stringify({ groups, include: ['/runtime.txt'] })); + expect(createAssetManifest(dir).manifest.files['/runtime.txt'].h).toBe(hash('required at runtime')); +})); diff --git a/server/server.js b/server/server.js index b7a7f3f..771d7dc 100644 --- a/server/server.js +++ b/server/server.js @@ -2498,12 +2498,12 @@ app.get('/index.html', indexHtml); // current body with no-store, never immutable caching under a mismatched URL. app.get('/*', async (c, next) => { const p = decodeURIComponent(new URL(c.req.url).pathname); - if (p.includes('..') || p.startsWith('/api/') || !assets.manifest.files[p]) return next(); + if (p.includes('..') || p.startsWith('/api/') || !assets.deliveryFiles[p]) return next(); const file = Bun.file('./public' + p); const raw = assets.bytes.get(p); const ext = p.slice(p.lastIndexOf('.') + 1).toLowerCase(); - const hash = assets.manifest.files[p].h; - const cacheControl = assetCacheControl(p, c.req.query('v'), assets.manifest, ASSET_HASHING); + const hash = assets.deliveryFiles[p].h; + const cacheControl = assetCacheControl(p, c.req.query('v'), assets.manifest, ASSET_HASHING, assets.deliveryFiles); if (COMPRESSIBLE.test(p)) return sendCompressed(c, compressedEntry(p, raw, MIME[ext] || file.type), cacheControl, hash); return new Response(raw, { headers: { 'Content-Type': file.type, 'Cache-Control': cacheControl, 'X-Asset-Hash': hash } }); }); diff --git a/server/static-delivery.test.js b/server/static-delivery.test.js index ed0661e..686148b 100644 --- a/server/static-delivery.test.js +++ b/server/static-delivery.test.js @@ -20,6 +20,7 @@ writeFileSync(join(publicDir, 'root.css'), 'body{color:red}'); writeFileSync(join(publicDir, 'sw.js'), "const BUILD_TAG = typeof __BUILD_TAG__ !== 'undefined' ? __BUILD_TAG__ : 'v-test';\n"); writeFileSync(join(publicDir, 'fonts', 'font.woff2'), 'font'); writeFileSync(join(publicDir, 'icons', 'icon.png'), 'icon'); +for (const name of ['probe.test.js', 'README.md', 'admin.html', 'fonts/font-OFL.txt']) writeFileSync(join(publicDir, name), 'direct-only file'); async function freePort() { return await new Promise((resolvePort, reject) => { @@ -65,19 +66,35 @@ beforeAll(async () => { server = await startServer(); }); afterAll(async () => { await stopServer(server); rmSync(root, { recursive: true, force: true }); }); describe('static delivery characterization', () => { - test('build tag is stable for the same tree and changes when any served file changes', async () => { + test('build tag is stable for the same tree and changes only when runtime files change', async () => { const first = await (await fetch(`${server.base}/api/version`)).json(); await stopServer(server); server = await startServer(); const same = await (await fetch(`${server.base}/api/version`)).json(); expect(same.buildTag).toBe(first.buildTag); - writeFileSync(join(publicDir, 'unlisted.txt'), 'included in recursive build tag'); + writeFileSync(join(publicDir, 'unlisted.js'), 'runtime build input'); await stopServer(server); server = await startServer(); const changed = await (await fetch(`${server.base}/api/version`)).json(); expect(changed.buildTag).not.toBe(first.buildTag); }); + test('excluded files retain direct bodies, hashes, compression and cache headers', async () => { + const { createHash } = await import('node:crypto'); + const expected = createHash('sha256').update('direct-only file').digest('hex').slice(0, 10); + const manifest = await (await fetch(`${server.base}/api/manifest`)).json(); + for (const path of ['/probe.test.js', '/README.md', '/admin.html', '/fonts/font-OFL.txt']) { + expect(manifest.files[path]).toBeUndefined(); + for (const query of ['', `?v=${expected}`, '?v=stale']) { + const response = await fetch(`${server.base}${path}${query}`); + expect(response.status).toBe(200); + expect(response.headers.get('x-asset-hash')).toBe(expected); + expect(await response.text()).toBe('direct-only file'); + expect(response.headers.get('cache-control')).toBe(query === '?v=stale' ? 'no-store' : query ? 'public, max-age=31536000, immutable' : path.startsWith('/fonts/') ? 'public, max-age=2592000' : 'no-cache'); + } + } + }); + test('unreadable public tree uses the fixed dev-build fallback', async () => { const moved = join(root, 'public.saved'); Bun.spawnSync(['mv', publicDir, moved]); From 8a4144eb007cbd570a97ae31f7f7a655efd8406a Mon Sep 17 00:00:00 2001 From: Jonathan Sykes Date: Fri, 9 Oct 2026 14:56:31 +0800 Subject: [PATCH 2/2] Document runtime exclusions and verify offline transfer savings --- perf/README.md | 16 + perf/results/hygiene-after.json | 2893 ++++++++ perf/results/hygiene-assets.json | 260 + .../hygiene-before-rollback-offline.json | 5013 ++++++++++++++ perf/results/hygiene-before.json | 3383 ++++++++++ perf/results/hygiene-migration.json | 41 + perf/results/hygiene-offline.json | 5836 +++++++++++++++++ perf/results/hygiene-rollback-offline.json | 4817 ++++++++++++++ plans/manifest-hygiene-report.md | 150 + server/asset-manifest.js | 3 +- server/asset-manifest.test.js | 2 +- 11 files changed, 22411 insertions(+), 3 deletions(-) create mode 100644 perf/results/hygiene-after.json create mode 100644 perf/results/hygiene-assets.json create mode 100644 perf/results/hygiene-before-rollback-offline.json create mode 100644 perf/results/hygiene-before.json create mode 100644 perf/results/hygiene-migration.json create mode 100644 perf/results/hygiene-offline.json create mode 100644 perf/results/hygiene-rollback-offline.json create mode 100644 plans/manifest-hygiene-report.md diff --git a/perf/README.md b/perf/README.md index 0b64796..95609b8 100644 --- a/perf/README.md +++ b/perf/README.md @@ -335,3 +335,19 @@ No product behavior changes are involved in these measurement corrections. Keep browser/build/test processes idle during full timing measurements. WebKit's zero long-task field means unavailable, not zero work. Autoplay-blocked/media-ready null results do not establish playback performance or iPhone audio continuity. + +## Runtime manifest hygiene + +`server/asset-manifest.js` excludes unit tests (`*.test.js`, `*.test.mjs`), +Markdown, text licences/data (`*.txt`), C build sources, `*.entry.js` build +entries, `/admin.html`, and files below any `perf/` directory from the runtime +manifest and both build-tag modes. They remain directly servable with the usual +hash and cache headers. If a matching file is genuinely needed at runtime, add +its exact root-relative path to the optional `include` array in +`frontend/assets.json`; group declarations referencing excluded files fail at boot +unless explicitly included. + +The offline completeness harness compares cache contents with the runtime +manifest dynamically; it must not hard-code the old 151-file inventory. See +`plans/manifest-hygiene-report.md` and `perf/results/hygiene-*.json` for the +before/after measurements and compatibility checks. diff --git a/perf/results/hygiene-after.json b/perf/results/hygiene-after.json new file mode 100644 index 0000000..819631d --- /dev/null +++ b/perf/results/hygiene-after.json @@ -0,0 +1,2893 @@ +{ + "date": "2026-10-09T06:47:17.212Z", + "frontendCommit": null, + "frontendBuildTag": "604f8f8d8a68", + "commit": "dd09f665782db5f9e0211c1ad4ab1a90898dd967", + "runsConfigured": 3, + "browsers": { + "chromium": { + "lte": { + "cold": { + "requestCount": { + "median": 116, + "min": 116, + "max": 116, + "values": [ + 116, + 116, + 116 + ] + }, + "wireBytes": { + "median": 660390, + "min": 660390, + "max": 660390, + "values": [ + 660390, + 660390, + 660390 + ] + }, + "fcp": { + "median": 1368, + "min": 1340, + "max": 1396, + "values": [ + 1396, + 1340, + 1368 + ] + }, + "lcp": { + "median": 1368, + "min": 1340, + "max": 1396, + "values": [ + 1396, + 1340, + 1368 + ] + }, + "domContentLoaded": { + "median": 7068, + "min": 7059, + "max": 7716, + "values": [ + 7716, + 7059, + 7068 + ] + }, + "bootDone": { + "median": 7090, + "min": 7076, + "max": 7740, + "values": [ + 7740, + 7076, + 7090 + ] + }, + "longTaskTotal": { + "median": 297, + "min": 292, + "max": 427, + "values": [ + 427, + 292, + 297 + ] + }, + "longTasks": [ + [ + { + "start": 1228, + "duration": 143 + }, + { + "start": 7440, + "duration": 284 + } + ], + [ + { + "start": 1224, + "duration": 100 + }, + { + "start": 6873, + "duration": 192 + } + ], + [ + { + "start": 1230, + "duration": 123 + }, + { + "start": 6901, + "duration": 174 + } + ] + ], + "swInstallDuration": { + "median": 37170, + "min": 37154, + "max": 37883, + "values": [ + 37883, + 37154, + 37170 + ] + }, + "swInstallBytes": { + "median": 660390, + "min": 660390, + "max": 660390, + "values": [ + 660390, + 660390, + 660390 + ] + }, + "storageEstimate": { + "usage": 2844587, + "quota": 5371553707 + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 22936, + "js": 306594, + "css": 65916, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 3987, + "other": 631 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/?v=benchmedia01", + "status": 200, + "bytes": 11468 + }, + { + "url": "http://127.0.0.1:6251/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "http://127.0.0.1:6251/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "http://127.0.0.1:6251/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2525 + }, + { + "url": "http://127.0.0.1:6251/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 3529 + }, + { + "url": "http://127.0.0.1:6251/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 391 + }, + { + "url": "http://127.0.0.1:6251/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 27364 + }, + { + "url": "http://127.0.0.1:6251/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 3736 + }, + { + "url": "http://127.0.0.1:6251/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5027 + }, + { + "url": "http://127.0.0.1:6251/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 278 + }, + { + "url": "http://127.0.0.1:6251/recommendations.css?v=055101368d", + "status": 200, + "bytes": 790 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 873 + }, + { + "url": "http://127.0.0.1:6251/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 859 + }, + { + "url": "http://127.0.0.1:6251/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 537 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1415 + }, + { + "url": "http://127.0.0.1:6251/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 404 + }, + { + "url": "http://127.0.0.1:6251/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 430 + }, + { + "url": "http://127.0.0.1:6251/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1034 + }, + { + "url": "http://127.0.0.1:6251/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 3920 + }, + { + "url": "http://127.0.0.1:6251/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 2632 + }, + { + "url": "http://127.0.0.1:6251/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 571 + }, + { + "url": "http://127.0.0.1:6251/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2036 + }, + { + "url": "http://127.0.0.1:6251/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1521 + }, + { + "url": "http://127.0.0.1:6251/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 2733 + }, + { + "url": "http://127.0.0.1:6251/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1130 + }, + { + "url": "http://127.0.0.1:6251/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 1818 + }, + { + "url": "http://127.0.0.1:6251/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1050 + }, + { + "url": "http://127.0.0.1:6251/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 725 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 2643 + }, + { + "url": "http://127.0.0.1:6251/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 4668 + }, + { + "url": "http://127.0.0.1:6251/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 545 + }, + { + "url": "http://127.0.0.1:6251/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 583 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2494 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 2690 + }, + { + "url": "http://127.0.0.1:6251/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 550 + }, + { + "url": "http://127.0.0.1:6251/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 727 + }, + { + "url": "http://127.0.0.1:6251/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 1764 + }, + { + "url": "http://127.0.0.1:6251/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3103 + }, + { + "url": "http://127.0.0.1:6251/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 652 + }, + { + "url": "http://127.0.0.1:6251/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 918 + }, + { + "url": "http://127.0.0.1:6251/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 380 + }, + { + "url": "http://127.0.0.1:6251/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 567 + }, + { + "url": "http://127.0.0.1:6251/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 722 + }, + { + "url": "http://127.0.0.1:6251/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2056 + }, + { + "url": "http://127.0.0.1:6251/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 3882 + }, + { + "url": "http://127.0.0.1:6251/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 16385 + }, + { + "url": "http://127.0.0.1:6251/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 3552 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=98b948ef62", + "status": 200, + "bytes": 95497 + }, + { + "url": "http://127.0.0.1:6251/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "http://127.0.0.1:6251/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2593 + }, + { + "url": "http://127.0.0.1:6251/assets.json?v=6f517e2aa4", + "status": 200, + "bytes": 1058 + }, + { + "url": "http://127.0.0.1:6251/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6251/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "http://127.0.0.1:6251/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "http://127.0.0.1:6251/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "http://127.0.0.1:6251/fonts/fonts.css", + "status": 200, + "bytes": 391 + }, + { + "url": "http://127.0.0.1:6251/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "http://127.0.0.1:6251/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "http://127.0.0.1:6251/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=9401f92823", + "status": 200, + "bytes": 11468 + }, + { + "url": "http://127.0.0.1:6251/manifest.webmanifest", + "status": 200, + "bytes": 631 + }, + { + "url": "http://127.0.0.1:6251/opfs-worker.js?v=17cfe8fb26", + "status": 200, + "bytes": 3487 + }, + { + "url": "http://127.0.0.1:6251/resume-core.js?v=df42e94600", + "status": 200, + "bytes": 762 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1294 + }, + { + "url": "http://127.0.0.1:6251/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 385 + }, + { + "url": "http://127.0.0.1:6251/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 1727 + }, + { + "url": "http://127.0.0.1:6251/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 291 + }, + { + "url": "http://127.0.0.1:6251/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 3697 + }, + { + "url": "http://127.0.0.1:6251/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1079 + }, + { + "url": "http://127.0.0.1:6251/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1050 + }, + { + "url": "http://127.0.0.1:6251/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1305 + }, + { + "url": "http://127.0.0.1:6251/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1249 + }, + { + "url": "http://127.0.0.1:6251/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 875 + }, + { + "url": "http://127.0.0.1:6251/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "http://127.0.0.1:6251/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 2763 + }, + { + "url": "http://127.0.0.1:6251/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4158 + }, + { + "url": "http://127.0.0.1:6251/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "http://127.0.0.1:6251/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 965 + }, + { + "url": "http://127.0.0.1:6251/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 927 + }, + { + "url": "http://127.0.0.1:6251/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 542 + }, + { + "url": "http://127.0.0.1:6251/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 375 + }, + { + "url": "http://127.0.0.1:6251/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2048 + }, + { + "url": "http://127.0.0.1:6251/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 3850 + }, + { + "url": "http://127.0.0.1:6251/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 1713 + }, + { + "url": "http://127.0.0.1:6251/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1184 + }, + { + "url": "http://127.0.0.1:6251/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 756 + }, + { + "url": "http://127.0.0.1:6251/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 989 + }, + { + "url": "http://127.0.0.1:6251/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1267 + }, + { + "url": "http://127.0.0.1:6251/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2431 + }, + { + "url": "http://127.0.0.1:6251/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 7926 + }, + { + "url": "http://127.0.0.1:6251/piano.js?v=e82bc30884", + "status": 200, + "bytes": 3453 + }, + { + "url": "http://127.0.0.1:6251/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3094 + }, + { + "url": "http://127.0.0.1:6251/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2462 + }, + { + "url": "http://127.0.0.1:6251/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "http://127.0.0.1:6251/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2336 + }, + { + "url": "http://127.0.0.1:6251/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2294 + }, + { + "url": "http://127.0.0.1:6251/sw.js?v=927a04be22", + "status": 200, + "bytes": 8062 + }, + { + "url": "http://127.0.0.1:6251/share-external.js?v=9de67de710", + "status": 200, + "bytes": 3653 + }, + { + "url": "http://127.0.0.1:6251/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1480 + }, + { + "url": "http://127.0.0.1:6251/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5068 + }, + { + "url": "http://127.0.0.1:6251/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 848 + }, + { + "url": "http://127.0.0.1:6251/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 6718 + }, + { + "url": "http://127.0.0.1:6251/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 4727 + }, + { + "url": "http://127.0.0.1:6251/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2168 + }, + { + "url": "http://127.0.0.1:6251/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 6513 + }, + { + "url": "http://127.0.0.1:6251/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1146 + }, + { + "url": "http://127.0.0.1:6251/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 38592 + }, + { + "url": "http://127.0.0.1:6251/api/p2p/config", + "status": 200, + "bytes": 40 + }, + { + "url": "http://127.0.0.1:6251/api/p2p/device", + "status": 200, + "bytes": 121 + }, + { + "url": "http://127.0.0.1:6251/api/p2p/holdings", + "status": 200, + "bytes": 54 + } + ], + "initialJsCss": { + "median": 211706, + "min": 211706, + "max": 211706, + "values": [ + 211706, + 211706, + 211706 + ] + }, + "initialAssetRequests": [ + { + "url": "http://127.0.0.1:6251/lazy.js?v=eff15c9dc8", + "bytes": 2525 + }, + { + "url": "http://127.0.0.1:6251/theme-classic.css?v=d420fcfb12", + "bytes": 3529 + }, + { + "url": "http://127.0.0.1:6251/fonts/fonts.css?v=dda3dfb804", + "bytes": 391 + }, + { + "url": "http://127.0.0.1:6251/styles.css?v=9f3a5dea41", + "bytes": 27364 + }, + { + "url": "http://127.0.0.1:6251/service-ui.css?v=b9bf96a3a8", + "bytes": 3736 + }, + { + "url": "http://127.0.0.1:6251/refresh.css?v=62498384f1", + "bytes": 5027 + }, + { + "url": "http://127.0.0.1:6251/layout-base.css?v=4f3307cd3b", + "bytes": 278 + }, + { + "url": "http://127.0.0.1:6251/recommendations.css?v=055101368d", + "bytes": 790 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.css?v=055507ab85", + "bytes": 873 + }, + { + "url": "http://127.0.0.1:6251/offline-pages.css?v=2889456261", + "bytes": 859 + }, + { + "url": "http://127.0.0.1:6251/saved-page.css?v=3ff576a784", + "bytes": 537 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.css?v=91f2d84453", + "bytes": 1415 + }, + { + "url": "http://127.0.0.1:6251/related-videos.css?v=5a616b1be8", + "bytes": 404 + }, + { + "url": "http://127.0.0.1:6251/download-actions.css?v=12d3bcfe3e", + "bytes": 430 + }, + { + "url": "http://127.0.0.1:6251/fingerprint.js?v=a635143269", + "bytes": 1034 + }, + { + "url": "http://127.0.0.1:6251/opfs.js?v=df7a8d0391", + "bytes": 3920 + }, + { + "url": "http://127.0.0.1:6251/lyrics-core.js?v=4dcdac2edd", + "bytes": 2632 + }, + { + "url": "http://127.0.0.1:6251/lyrics-display.js?v=48e8550175", + "bytes": 571 + }, + { + "url": "http://127.0.0.1:6251/flag-ui.js?v=eeae1c1d1a", + "bytes": 2036 + }, + { + "url": "http://127.0.0.1:6251/sha256-wasm.js?v=393c50ba56", + "bytes": 1521 + }, + { + "url": "http://127.0.0.1:6251/sha256.js?v=cd9b980e6f", + "bytes": 2733 + }, + { + "url": "http://127.0.0.1:6251/loudness-wasm.js?v=c6102d7844", + "bytes": 1130 + }, + { + "url": "http://127.0.0.1:6251/loudness.js?v=01b3da88dd", + "bytes": 1818 + }, + { + "url": "http://127.0.0.1:6251/device-db.js?v=880c5cd70e", + "bytes": 1050 + }, + { + "url": "http://127.0.0.1:6251/async-guard.js?v=e4afa1f2be", + "bytes": 725 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "bytes": 2643 + }, + { + "url": "http://127.0.0.1:6251/sw-update.js?v=b8326bcdd1", + "bytes": 4668 + }, + { + "url": "http://127.0.0.1:6251/related-videos.js?v=3eec0ebd4c", + "bytes": 545 + }, + { + "url": "http://127.0.0.1:6251/audio-continuity.js?v=63b5464dd5", + "bytes": 583 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.js?v=c8e44eb66b", + "bytes": 2494 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.js?v=1101425859", + "bytes": 2690 + }, + { + "url": "http://127.0.0.1:6251/download-actions.js?v=388c7edecb", + "bytes": 550 + }, + { + "url": "http://127.0.0.1:6251/download-errors.js?v=bb6a4c887a", + "bytes": 727 + }, + { + "url": "http://127.0.0.1:6251/downloads.js?v=f2d3e7d212", + "bytes": 1764 + }, + { + "url": "http://127.0.0.1:6251/downloads-page.js?v=c1a3a218c0", + "bytes": 3103 + }, + { + "url": "http://127.0.0.1:6251/saved-page.js?v=f1518c50fb", + "bytes": 652 + }, + { + "url": "http://127.0.0.1:6251/server-backfill.js?v=294b103023", + "bytes": 918 + }, + { + "url": "http://127.0.0.1:6251/visible-timer.js?v=5322e86ef4", + "bytes": 380 + }, + { + "url": "http://127.0.0.1:6251/prewarm-next.js?v=ed16a51424", + "bytes": 567 + }, + { + "url": "http://127.0.0.1:6251/eq-parameters.js?v=dc2c6a8e8d", + "bytes": 722 + }, + { + "url": "http://127.0.0.1:6251/feature-bootstrap.js?v=33779ecef7", + "bytes": 2056 + }, + { + "url": "http://127.0.0.1:6251/shell-core.js?v=a04305c2ad", + "bytes": 3882 + }, + { + "url": "http://127.0.0.1:6251/views-core.js?v=f7b147ad7f", + "bytes": 16385 + }, + { + "url": "http://127.0.0.1:6251/section-rail.js?v=07417c1bcc", + "bytes": 3552 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=98b948ef62", + "bytes": 95497 + } + ] + }, + "warm": { + "requestCount": { + "median": 4, + "min": 3, + "max": 5, + "values": [ + 3, + 4, + 5 + ] + }, + "wireBytes": { + "median": 8159, + "min": 97, + "max": 8159, + "values": [ + 97, + 8159, + 8159 + ] + }, + "fcp": { + "median": 132, + "min": 116, + "max": 148, + "values": [ + 116, + 148, + 132 + ] + }, + "lcp": { + "median": 164, + "min": 148, + "max": 176, + "values": [ + 148, + 176, + 164 + ] + }, + "domContentLoaded": { + "median": 422, + "min": 400, + "max": 438, + "values": [ + 400, + 438, + 422 + ] + }, + "bootDone": { + "median": 445, + "min": 426, + "max": 451, + "values": [ + 426, + 451, + 445 + ] + }, + "longTaskTotal": { + "median": 62, + "min": 54, + "max": 66, + "values": [ + 66, + 54, + 62 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 60, + "min": 56, + "max": 76, + "values": [ + 60, + 56, + 76 + ] + }, + "lcp": { + "median": 60, + "min": 56, + "max": 76, + "values": [ + 60, + 56, + 76 + ] + }, + "domContentLoaded": { + "median": 205, + "min": 196, + "max": 215, + "values": [ + 215, + 205, + 196 + ] + }, + "bootDone": { + "median": 209, + "min": 200, + "max": 218, + "values": [ + 218, + 209, + 200 + ] + }, + "reloadDuration": { + "median": 224, + "min": 215, + "max": 241, + "values": [ + 241, + 224, + 215 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 8, + "min": 5, + "max": 8, + "values": [ + 8, + 5, + 8 + ] + }, + "wireBytes": { + "median": 125729, + "min": 117630, + "max": 125729, + "values": [ + 125729, + 117630, + 125729 + ] + }, + "duration": { + "median": 753, + "min": 750, + "max": 758, + "values": [ + 758, + 750, + 753 + ] + }, + "wireBytesByType": { + "html": 11465, + "js": 111600, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 2664, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8037 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2602 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=9b345b536c", + "status": 200, + "bytes": 95526 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=a0aac08abc", + "status": 200, + "bytes": 11465 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8037 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + } + ] + }, + "updateCss": { + "readyDuration": { + "median": 222, + "min": 222, + "max": 225, + "values": [ + 222, + 222, + 225 + ] + }, + "readyWireBytes": { + "median": 30273, + "min": 30273, + "max": 30273, + "values": [ + 30273, + 30273, + 30273 + ] + }, + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 43434, + "min": 43434, + "max": 43434, + "values": [ + 43434, + 43434, + 43434 + ] + }, + "duration": { + "median": 1372, + "min": 1370, + "max": 1375, + "values": [ + 1375, + 1370, + 1372 + ] + }, + "wireBytesByType": { + "html": 11487, + "js": 24183, + "css": 5100, + "fonts": 0, + "images": 0, + "media": 0, + "api": 2664, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8061 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2602 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=8f9c0028d1", + "status": 200, + "bytes": 11487 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8061 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/sw.js?v=44508819ae", + "status": 200, + "bytes": 8061 + }, + { + "url": "http://127.0.0.1:6251/theme-glass.css?v=253e56cfb3", + "status": 200, + "bytes": 5100 + } + ] + }, + "updateFeature": { + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 41436, + "min": 41436, + "max": 41436, + "values": [ + 41436, + 41436, + 41436 + ] + }, + "duration": { + "median": 1376, + "min": 1371, + "max": 1380, + "values": [ + 1371, + 1380, + 1376 + ] + }, + "wireBytesByType": { + "html": 11459, + "js": 27295, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 2682, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2620 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=f244df6fe9", + "status": 200, + "bytes": 11459 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6251/presenter.js?v=45776e7cc4", + "status": 200, + "bytes": 3118 + }, + { + "url": "http://127.0.0.1:6251/sw.js?v=57d6830392", + "status": 200, + "bytes": 8059 + } + ] + } + } + }, + "webkit": { + "lte": { + "cold": { + "requestCount": { + "median": 160, + "min": 160, + "max": 160, + "values": [ + 160, + 160, + 160 + ] + }, + "wireBytes": { + "median": 1111241, + "min": 1111241, + "max": 1111241, + "values": [ + 1111241, + 1111241, + 1111241 + ] + }, + "fcp": { + "median": 1736, + "min": 1731, + "max": 2365, + "values": [ + 2365, + 1736, + 1731 + ] + }, + "lcp": { + "median": 1812, + "min": 1807, + "max": 2436, + "values": [ + 2436, + 1807, + 1812 + ] + }, + "domContentLoaded": { + "median": 2305, + "min": 2302, + "max": 2938, + "values": [ + 2938, + 2305, + 2302 + ] + }, + "bootDone": { + "median": 2310, + "min": 2309, + "max": 2942, + "values": [ + 2942, + 2309, + 2310 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "longTasks": [ + [], + [], + [] + ], + "swInstallDuration": { + "median": 32353, + "min": 32352, + "max": 32989, + "values": [ + 32989, + 32353, + 32352 + ] + }, + "swInstallBytes": { + "median": 1111241, + "min": 1111241, + "max": 1111241, + "values": [ + 1111241, + 1111241, + 1111241 + ] + }, + "storageEstimate": { + "usage": null, + "quota": null + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 28064, + "js": 571689, + "css": 133672, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 4332, + "other": 1566 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/?v=benchmedia01", + "status": 200, + "bytes": 14032 + }, + { + "url": "http://127.0.0.1:6251/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "http://127.0.0.1:6251/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "http://127.0.0.1:6251/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "http://127.0.0.1:6251/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 457 + }, + { + "url": "http://127.0.0.1:6251/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "http://127.0.0.1:6251/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "http://127.0.0.1:6251/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "http://127.0.0.1:6251/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "http://127.0.0.1:6251/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "http://127.0.0.1:6251/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "http://127.0.0.1:6251/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "http://127.0.0.1:6251/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "http://127.0.0.1:6251/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "http://127.0.0.1:6251/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "http://127.0.0.1:6251/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "http://127.0.0.1:6251/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "http://127.0.0.1:6251/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "http://127.0.0.1:6251/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "http://127.0.0.1:6251/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "http://127.0.0.1:6251/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "http://127.0.0.1:6251/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "http://127.0.0.1:6251/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "http://127.0.0.1:6251/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "http://127.0.0.1:6251/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "http://127.0.0.1:6251/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "http://127.0.0.1:6251/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "http://127.0.0.1:6251/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "http://127.0.0.1:6251/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "http://127.0.0.1:6251/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "http://127.0.0.1:6251/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "http://127.0.0.1:6251/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "http://127.0.0.1:6251/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "http://127.0.0.1:6251/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "http://127.0.0.1:6251/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "http://127.0.0.1:6251/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6251/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "http://127.0.0.1:6251/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "http://127.0.0.1:6251/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "http://127.0.0.1:6251/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "http://127.0.0.1:6251/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "http://127.0.0.1:6251/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "http://127.0.0.1:6251/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9299 + }, + { + "url": "http://127.0.0.1:6251/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2991 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/assets.json?v=6f517e2aa4", + "status": 200, + "bytes": 1220 + }, + { + "url": "http://127.0.0.1:6251/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "http://127.0.0.1:6251/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "http://127.0.0.1:6251/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "http://127.0.0.1:6251/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "http://127.0.0.1:6251/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "http://127.0.0.1:6251/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "http://127.0.0.1:6251/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "http://127.0.0.1:6251/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "http://127.0.0.1:6251/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6251/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "http://127.0.0.1:6251/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "http://127.0.0.1:6251/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "http://127.0.0.1:6251/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "http://127.0.0.1:6251/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "http://127.0.0.1:6251/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "http://127.0.0.1:6251/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "http://127.0.0.1:6251/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "http://127.0.0.1:6251/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "http://127.0.0.1:6251/fonts/fonts.css", + "status": 200, + "bytes": 457 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "http://127.0.0.1:6251/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "http://127.0.0.1:6251/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=f244df6fe9", + "status": 200, + "bytes": 14032 + }, + { + "url": "http://127.0.0.1:6251/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "http://127.0.0.1:6251/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "http://127.0.0.1:6251/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "http://127.0.0.1:6251/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "http://127.0.0.1:6251/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "http://127.0.0.1:6251/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "http://127.0.0.1:6251/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "http://127.0.0.1:6251/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "http://127.0.0.1:6251/opfs-worker.js?v=17cfe8fb26", + "status": 200, + "bytes": 4042 + }, + { + "url": "http://127.0.0.1:6251/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "http://127.0.0.1:6251/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "http://127.0.0.1:6251/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "http://127.0.0.1:6251/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "http://127.0.0.1:6251/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "http://127.0.0.1:6251/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "http://127.0.0.1:6251/resume-core.js?v=df42e94600", + "status": 200, + "bytes": 915 + }, + { + "url": "http://127.0.0.1:6251/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "http://127.0.0.1:6251/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "http://127.0.0.1:6251/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "http://127.0.0.1:6251/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "http://127.0.0.1:6251/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "http://127.0.0.1:6251/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "http://127.0.0.1:6251/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "http://127.0.0.1:6251/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "http://127.0.0.1:6251/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "http://127.0.0.1:6251/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "http://127.0.0.1:6251/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "http://127.0.0.1:6251/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "http://127.0.0.1:6251/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9299 + }, + { + "url": "http://127.0.0.1:6251/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1523 + }, + { + "url": "http://127.0.0.1:6251/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 504 + }, + { + "url": "http://127.0.0.1:6251/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 2080 + }, + { + "url": "http://127.0.0.1:6251/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 370 + }, + { + "url": "http://127.0.0.1:6251/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 4252 + }, + { + "url": "http://127.0.0.1:6251/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1245 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1216 + }, + { + "url": "http://127.0.0.1:6251/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1457 + }, + { + "url": "http://127.0.0.1:6251/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 1071 + }, + { + "url": "http://127.0.0.1:6251/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1536 + }, + { + "url": "http://127.0.0.1:6251/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4763 + }, + { + "url": "http://127.0.0.1:6251/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "http://127.0.0.1:6251/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "http://127.0.0.1:6251/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 3227 + }, + { + "url": "http://127.0.0.1:6251/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 1173 + }, + { + "url": "http://127.0.0.1:6251/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 624 + }, + { + "url": "http://127.0.0.1:6251/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 502 + }, + { + "url": "http://127.0.0.1:6251/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 1153 + }, + { + "url": "http://127.0.0.1:6251/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2474 + }, + { + "url": "http://127.0.0.1:6251/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 2014 + }, + { + "url": "http://127.0.0.1:6251/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 4444 + }, + { + "url": "http://127.0.0.1:6251/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 1137 + }, + { + "url": "http://127.0.0.1:6251/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1475 + }, + { + "url": "http://127.0.0.1:6251/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2773 + }, + { + "url": "http://127.0.0.1:6251/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1444 + }, + { + "url": "http://127.0.0.1:6251/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 867 + }, + { + "url": "http://127.0.0.1:6251/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "http://127.0.0.1:6251/piano.js?v=e82bc30884", + "status": 200, + "bytes": 4003 + }, + { + "url": "http://127.0.0.1:6251/presenter.js?v=45776e7cc4", + "status": 200, + "bytes": 3587 + }, + { + "url": "http://127.0.0.1:6251/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 9042 + }, + { + "url": "http://127.0.0.1:6251/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2879 + }, + { + "url": "http://127.0.0.1:6251/share-external.js?v=9de67de710", + "status": 200, + "bytes": 4222 + }, + { + "url": "http://127.0.0.1:6251/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2619 + }, + { + "url": "http://127.0.0.1:6251/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2664 + }, + { + "url": "http://127.0.0.1:6251/sw.js?v=57d6830392", + "status": 200, + "bytes": 9299 + }, + { + "url": "http://127.0.0.1:6251/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 7731 + }, + { + "url": "http://127.0.0.1:6251/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 5579 + }, + { + "url": "http://127.0.0.1:6251/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1782 + }, + { + "url": "http://127.0.0.1:6251/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 1045 + }, + { + "url": "http://127.0.0.1:6251/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5903 + }, + { + "url": "http://127.0.0.1:6251/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 44829 + }, + { + "url": "http://127.0.0.1:6251/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2506 + }, + { + "url": "http://127.0.0.1:6251/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1397 + }, + { + "url": "http://127.0.0.1:6251/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 7473 + } + ], + "initialJsCss": { + "median": 256643, + "min": 256643, + "max": 256643, + "values": [ + 256643, + 256643, + 256643 + ] + }, + "initialAssetRequests": [ + { + "url": "http://127.0.0.1:6251/fonts/fonts.css?v=dda3dfb804", + "bytes": 457 + }, + { + "url": "http://127.0.0.1:6251/lazy.js?v=eff15c9dc8", + "bytes": 2984 + }, + { + "url": "http://127.0.0.1:6251/layout-base.css?v=4f3307cd3b", + "bytes": 336 + }, + { + "url": "http://127.0.0.1:6251/service-ui.css?v=b9bf96a3a8", + "bytes": 4417 + }, + { + "url": "http://127.0.0.1:6251/refresh.css?v=62498384f1", + "bytes": 5828 + }, + { + "url": "http://127.0.0.1:6251/recommendations.css?v=055101368d", + "bytes": 983 + }, + { + "url": "http://127.0.0.1:6251/styles.css?v=9f3a5dea41", + "bytes": 33412 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.css?v=055507ab85", + "bytes": 1076 + }, + { + "url": "http://127.0.0.1:6251/offline-pages.css?v=2889456261", + "bytes": 1069 + }, + { + "url": "http://127.0.0.1:6251/saved-page.css?v=3ff576a784", + "bytes": 673 + }, + { + "url": "http://127.0.0.1:6251/related-videos.css?v=5a616b1be8", + "bytes": 517 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.css?v=91f2d84453", + "bytes": 1721 + }, + { + "url": "http://127.0.0.1:6251/download-actions.css?v=12d3bcfe3e", + "bytes": 560 + }, + { + "url": "http://127.0.0.1:6251/fingerprint.js?v=a635143269", + "bytes": 1269 + }, + { + "url": "http://127.0.0.1:6251/opfs.js?v=df7a8d0391", + "bytes": 4571 + }, + { + "url": "http://127.0.0.1:6251/lyrics-core.js?v=4dcdac2edd", + "bytes": 3038 + }, + { + "url": "http://127.0.0.1:6251/lyrics-display.js?v=48e8550175", + "bytes": 750 + }, + { + "url": "http://127.0.0.1:6251/flag-ui.js?v=eeae1c1d1a", + "bytes": 2469 + }, + { + "url": "http://127.0.0.1:6251/sha256-wasm.js?v=393c50ba56", + "bytes": 1748 + }, + { + "url": "http://127.0.0.1:6251/sha256.js?v=cd9b980e6f", + "bytes": 3209 + }, + { + "url": "http://127.0.0.1:6251/loudness-wasm.js?v=c6102d7844", + "bytes": 1279 + }, + { + "url": "http://127.0.0.1:6251/loudness.js?v=01b3da88dd", + "bytes": 2068 + }, + { + "url": "http://127.0.0.1:6251/device-db.js?v=880c5cd70e", + "bytes": 1230 + }, + { + "url": "http://127.0.0.1:6251/async-guard.js?v=e4afa1f2be", + "bytes": 887 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/sw-update.js?v=b8326bcdd1", + "bytes": 5470 + }, + { + "url": "http://127.0.0.1:6251/related-videos.js?v=3eec0ebd4c", + "bytes": 642 + }, + { + "url": "http://127.0.0.1:6251/audio-continuity.js?v=63b5464dd5", + "bytes": 677 + }, + { + "url": "http://127.0.0.1:6251/fullscreen-orientation.js?v=c8e44eb66b", + "bytes": 2916 + }, + { + "url": "http://127.0.0.1:6251/download-actions.js?v=388c7edecb", + "bytes": 669 + }, + { + "url": "http://127.0.0.1:6251/settings-sections.js?v=1101425859", + "bytes": 3174 + }, + { + "url": "http://127.0.0.1:6251/download-errors.js?v=bb6a4c887a", + "bytes": 959 + }, + { + "url": "http://127.0.0.1:6251/downloads.js?v=f2d3e7d212", + "bytes": 2088 + }, + { + "url": "http://127.0.0.1:6251/downloads-page.js?v=c1a3a218c0", + "bytes": 3642 + }, + { + "url": "http://127.0.0.1:6251/saved-page.js?v=f1518c50fb", + "bytes": 820 + }, + { + "url": "http://127.0.0.1:6251/server-backfill.js?v=294b103023", + "bytes": 1105 + }, + { + "url": "http://127.0.0.1:6251/visible-timer.js?v=5322e86ef4", + "bytes": 474 + }, + { + "url": "http://127.0.0.1:6251/prewarm-next.js?v=ed16a51424", + "bytes": 665 + }, + { + "url": "http://127.0.0.1:6251/eq-parameters.js?v=dc2c6a8e8d", + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6251/feature-bootstrap.js?v=33779ecef7", + "bytes": 2430 + }, + { + "url": "http://127.0.0.1:6251/shell-core.js?v=a04305c2ad", + "bytes": 4548 + }, + { + "url": "http://127.0.0.1:6251/section-rail.js?v=07417c1bcc", + "bytes": 4206 + }, + { + "url": "http://127.0.0.1:6251/views-core.js?v=f7b147ad7f", + "bytes": 19084 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=98b948ef62", + "bytes": 118584 + }, + { + "url": "http://127.0.0.1:6251/theme-classic.css?v=d420fcfb12", + "bytes": 4079 + } + ] + }, + "warm": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 59, + "min": 55, + "max": 60, + "values": [ + 60, + 55, + 59 + ] + }, + "lcp": { + "median": 87, + "min": 82, + "max": 87, + "values": [ + 87, + 82, + 87 + ] + }, + "domContentLoaded": { + "median": 86, + "min": 80, + "max": 86, + "values": [ + 86, + 80, + 86 + ] + }, + "bootDone": { + "median": 89, + "min": 83, + "max": 89, + "values": [ + 89, + 83, + 89 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 58, + "min": 57, + "max": 63, + "values": [ + 58, + 63, + 57 + ] + }, + "lcp": { + "median": 86, + "min": 84, + "max": 91, + "values": [ + 86, + 91, + 84 + ] + }, + "domContentLoaded": { + "median": 84, + "min": 83, + "max": 90, + "values": [ + 84, + 90, + 83 + ] + }, + "bootDone": { + "median": 88, + "min": 85, + "max": 93, + "values": [ + 88, + 93, + 85 + ] + }, + "reloadDuration": { + "median": 103, + "min": 102, + "max": 109, + "values": [ + 103, + 109, + 102 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 5, + "min": 5, + "max": 5, + "values": [ + 5, + 5, + 5 + ] + }, + "wireBytes": { + "median": 147955, + "min": 147955, + "max": 147955, + "values": [ + 147955, + 147955, + 147955 + ] + }, + "duration": { + "median": 2013, + "min": 1947, + "max": 2014, + "values": [ + 1947, + 2013, + 2014 + ] + }, + "wireBytesByType": { + "html": 14032, + "js": 130934, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 2989, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9300 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2989 + }, + { + "url": "http://127.0.0.1:6251/app.js?v=9b345b536c", + "status": 200, + "bytes": 118606 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=a0aac08abc", + "status": 200, + "bytes": 14032 + } + ] + }, + "updateCss": { + "readyDuration": { + "median": 941, + "min": 940, + "max": 957, + "values": [ + 941, + 940, + 957 + ] + }, + "readyWireBytes": { + "median": 29347, + "min": 29347, + "max": 29347, + "values": [ + 29347, + 29347, + 29347 + ] + }, + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 56976, + "min": 56976, + "max": 56976, + "values": [ + 56976, + 56976, + 56976 + ] + }, + "duration": { + "median": 1466, + "min": 1459, + "max": 1483, + "values": [ + 1466, + 1459, + 1483 + ] + }, + "wireBytesByType": { + "html": 14031, + "js": 33956, + "css": 5939, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3050, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9300 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2988 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=8f9c0028d1", + "status": 200, + "bytes": 14031 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9300 + }, + { + "url": "http://127.0.0.1:6251/sw.js?v=44508819ae", + "status": 200, + "bytes": 9300 + }, + { + "url": "http://127.0.0.1:6251/theme-glass.css?v=253e56cfb3", + "status": 200, + "bytes": 5939 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + } + ] + }, + "updateFeature": { + "requestCount": { + "median": 9, + "min": 8, + "max": 9, + "values": [ + 9, + 9, + 8 + ] + }, + "wireBytes": { + "median": 54625, + "min": 42298, + "max": 54625, + "values": [ + 54625, + 54625, + 42298 + ] + }, + "duration": { + "median": 1557, + "min": 1377, + "max": 1564, + "values": [ + 1557, + 1564, + 1377 + ] + }, + "wireBytesByType": { + "html": 14032, + "js": 37540, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3053, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9299 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6251/api/manifest", + "status": 200, + "bytes": 2991 + }, + { + "url": "http://127.0.0.1:6251/index.html?v=f244df6fe9", + "status": 200, + "bytes": 14032 + }, + { + "url": "http://127.0.0.1:6251/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6251/sw.js", + "status": 200, + "bytes": 9299 + }, + { + "url": "http://127.0.0.1:6251/presenter.js?v=45776e7cc4", + "status": 200, + "bytes": 3587 + }, + { + "url": "http://127.0.0.1:6251/sw.js?v=57d6830392", + "status": 200, + "bytes": 9299 + }, + { + "url": "http://127.0.0.1:6251/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/perf/results/hygiene-assets.json b/perf/results/hygiene-assets.json new file mode 100644 index 0000000..9d80a2c --- /dev/null +++ b/perf/results/hygiene-assets.json @@ -0,0 +1,260 @@ +{ + "before": { + "count": 151, + "rawBytes": 2044337, + "manifestBytes": 15601 + }, + "after": { + "count": 102, + "rawBytes": 1807059, + "manifestBytes": 12551 + }, + "excluded": [ + { + "path": "/admin.html", + "rawBytes": 102005, + "brBytes": 24050 + }, + { + "path": "/app-seams.test.js", + "rawBytes": 9786, + "brBytes": 2457 + }, + { + "path": "/asset-sync-core.test.js", + "rawBytes": 9430, + "brBytes": 2525 + }, + { + "path": "/asset-worker.test.js", + "rawBytes": 8219, + "brBytes": 1984 + }, + { + "path": "/async-guard.test.js", + "rawBytes": 2543, + "brBytes": 765 + }, + { + "path": "/audio-continuity.test.js", + "rawBytes": 2899, + "brBytes": 813 + }, + { + "path": "/bento-hub.test.js", + "rawBytes": 868, + "brBytes": 283 + }, + { + "path": "/car-mode.test.js", + "rawBytes": 2556, + "brBytes": 973 + }, + { + "path": "/direct-protocol.test.js", + "rawBytes": 1279, + "brBytes": 521 + }, + { + "path": "/direct-stream.test.js", + "rawBytes": 891, + "brBytes": 390 + }, + { + "path": "/download-errors.test.js", + "rawBytes": 1783, + "brBytes": 566 + }, + { + "path": "/downloads-page.test.js", + "rawBytes": 2453, + "brBytes": 699 + }, + { + "path": "/downloads.test.js", + "rawBytes": 1608, + "brBytes": 639 + }, + { + "path": "/eq-core.test.js", + "rawBytes": 1055, + "brBytes": 428 + }, + { + "path": "/export.test.js", + "rawBytes": 521, + "brBytes": 259 + }, + { + "path": "/f7-layout.test.js", + "rawBytes": 1400, + "brBytes": 380 + }, + { + "path": "/fonts/PlusJakartaSans-OFL.txt", + "rawBytes": 4402, + "brBytes": 1428 + }, + { + "path": "/fullscreen-orientation.test.js", + "rawBytes": 1278, + "brBytes": 404 + }, + { + "path": "/glass-controls.test.js", + "rawBytes": 1177, + "brBytes": 412 + }, + { + "path": "/glass-panel-layout.test.js", + "rawBytes": 782, + "brBytes": 259 + }, + { + "path": "/lazy.test.js", + "rawBytes": 7117, + "brBytes": 2030 + }, + { + "path": "/loudness.test.js", + "rawBytes": 1626, + "brBytes": 706 + }, + { + "path": "/lower-third.test.js", + "rawBytes": 845, + "brBytes": 338 + }, + { + "path": "/lyrics-core.test.js", + "rawBytes": 4996, + "brBytes": 1430 + }, + { + "path": "/lyrics-display.test.js", + "rawBytes": 494, + "brBytes": 244 + }, + { + "path": "/lyrics-window.test.js", + "rawBytes": 617, + "brBytes": 264 + }, + { + "path": "/midi.test.js", + "rawBytes": 987, + "brBytes": 348 + }, + { + "path": "/p2p-core.test.js", + "rawBytes": 2116, + "brBytes": 675 + }, + { + "path": "/party-dj.test.js", + "rawBytes": 550, + "brBytes": 234 + }, + { + "path": "/piano-core.test.js", + "rawBytes": 2102, + "brBytes": 731 + }, + { + "path": "/prewarm-next.test.js", + "rawBytes": 1268, + "brBytes": 434 + }, + { + "path": "/related-videos.test.js", + "rawBytes": 1514, + "brBytes": 556 + }, + { + "path": "/resume-core.test.js", + "rawBytes": 1531, + "brBytes": 484 + }, + { + "path": "/saved-page.test.js", + "rawBytes": 553, + "brBytes": 224 + }, + { + "path": "/server-backfill.test.js", + "rawBytes": 2118, + "brBytes": 683 + }, + { + "path": "/setlist-import.test.js", + "rawBytes": 1134, + "brBytes": 508 + }, + { + "path": "/settings-sections.test.js", + "rawBytes": 1209, + "brBytes": 405 + }, + { + "path": "/sha256.test.js", + "rawBytes": 3251, + "brBytes": 1153 + }, + { + "path": "/shell-consistency.test.js", + "rawBytes": 5265, + "brBytes": 1507 + }, + { + "path": "/stats-core.test.js", + "rawBytes": 3165, + "brBytes": 929 + }, + { + "path": "/sw-update.test.js", + "rawBytes": 17825, + "brBytes": 4099 + }, + { + "path": "/sw.test.js", + "rawBytes": 6219, + "brBytes": 1849 + }, + { + "path": "/vendor/framework7-swipe.entry.js", + "rawBytes": 1040, + "brBytes": 290 + }, + { + "path": "/video-edit.test.js", + "rawBytes": 3396, + "brBytes": 855 + }, + { + "path": "/visible-timer.test.js", + "rawBytes": 2827, + "brBytes": 687 + }, + { + "path": "/vocal-reducer.test.js", + "rawBytes": 648, + "brBytes": 235 + }, + { + "path": "/wasm/loudness.c", + "rawBytes": 2132, + "brBytes": 861 + }, + { + "path": "/wasm/sha256.c", + "rawBytes": 2428, + "brBytes": 1064 + }, + { + "path": "/worker-imports.test.js", + "rawBytes": 1370, + "brBytes": 636 + } + ], + "excludedBrBytes": 64694 +} diff --git a/perf/results/hygiene-before-rollback-offline.json b/perf/results/hygiene-before-rollback-offline.json new file mode 100644 index 0000000..52c279e --- /dev/null +++ b/perf/results/hygiene-before-rollback-offline.json @@ -0,0 +1,5013 @@ +{ + "results": [ + { + "engine": "chromium", + "legacy": true, + "failures": [ + { + "kind": "incomplete", + "paths": [ + "/admin.html", + "/app-seams.test.js", + "/asset-sync-core.test.js", + "/asset-worker.test.js", + "/async-guard.test.js", + "/audio-continuity.test.js", + "/bento-hub.test.js", + "/car-mode.test.js", + "/direct-protocol.test.js", + "/direct-stream.test.js", + "/download-errors.test.js", + "/downloads-page.test.js", + "/downloads.test.js", + "/eq-core.test.js", + "/export.test.js", + "/f7-layout.test.js", + "/fonts/PlusJakartaSans-OFL.txt", + "/fullscreen-orientation.test.js", + "/glass-controls.test.js", + "/glass-panel-layout.test.js", + "/lazy.test.js", + "/loudness.test.js", + "/lower-third.test.js", + "/lyrics-core.test.js", + "/lyrics-display.test.js", + "/lyrics-window.test.js", + "/midi.test.js", + "/p2p-core.test.js", + "/party-dj.test.js", + "/piano-core.test.js", + "/piano-engine.mjs", + "/prewarm-next.test.js", + "/related-videos.test.js", + "/resume-core.test.js", + "/saved-page.test.js", + "/server-backfill.test.js", + "/setlist-import.test.js", + "/settings-sections.test.js", + "/sha256.test.js", + "/shell-consistency.test.js", + "/stats-core.test.js", + "/sw-update.test.js", + "/sw.js", + "/sw.test.js", + "/vendor/framework7-swipe.entry.js", + "/video-edit.test.js", + "/visible-timer.test.js", + "/vocal-reducer.test.js", + "/wasm/loudness.c", + "/wasm/sha256.c", + "/worker-imports.test.js" + ] + }, + { + "kind": "http", + "url": "http://127.0.0.1:42363/piano-engine.mjs", + "status": 503 + }, + { + "layout": "classic", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:42363/piano-engine.mjs", + "status": 503 + }, + { + "layout": "f7-swipe", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:42363/piano-engine.mjs", + "status": 503 + }, + { + "layout": "glass-stage", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:42363/piano-engine.mjs", + "status": 503 + }, + { + "layout": "bento-hub", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ], + "events": [ + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/recommendations?fp=c83c12c79b483c87", + "error": "net::ERR_ABORTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/user/sync", + "error": "net::ERR_ABORTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/recommendations?fp=c83c12c79b483c87", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42363/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + } + ], + "layouts": [ + { + "layout": "classic", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "f7-swipe", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "glass-stage", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "bento-hub", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + } + ], + "conditions": [], + "build": "1175f1a1d2c1", + "installMs": 17937, + "inventory": { + "total": 151, + "missing": [ + "/admin.html", + "/app-seams.test.js", + "/asset-sync-core.test.js", + "/asset-worker.test.js", + "/async-guard.test.js", + "/audio-continuity.test.js", + "/bento-hub.test.js", + "/car-mode.test.js", + "/direct-protocol.test.js", + "/direct-stream.test.js", + "/download-errors.test.js", + "/downloads-page.test.js", + "/downloads.test.js", + "/eq-core.test.js", + "/export.test.js", + "/f7-layout.test.js", + "/fonts/PlusJakartaSans-OFL.txt", + "/fullscreen-orientation.test.js", + "/glass-controls.test.js", + "/glass-panel-layout.test.js", + "/lazy.test.js", + "/loudness.test.js", + "/lower-third.test.js", + "/lyrics-core.test.js", + "/lyrics-display.test.js", + "/lyrics-window.test.js", + "/midi.test.js", + "/p2p-core.test.js", + "/party-dj.test.js", + "/piano-core.test.js", + "/piano-engine.mjs", + "/prewarm-next.test.js", + "/related-videos.test.js", + "/resume-core.test.js", + "/saved-page.test.js", + "/server-backfill.test.js", + "/setlist-import.test.js", + "/settings-sections.test.js", + "/sha256.test.js", + "/shell-consistency.test.js", + "/stats-core.test.js", + "/sw-update.test.js", + "/sw.js", + "/sw.test.js", + "/vendor/framework7-swipe.entry.js", + "/video-edit.test.js", + "/visible-timer.test.js", + "/vocal-reducer.test.js", + "/wasm/loudness.c", + "/wasm/sha256.c", + "/worker-imports.test.js" + ] + }, + "installWire": { + "requestCount": 159, + "requests": [ + { + "url": "/api/manifest", + "status": 200, + "bytes": 3743 + }, + { + "url": "/", + "status": 200, + "bytes": 10660 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/lazy.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2525 + }, + { + "url": "/theme-classic.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 3529 + }, + { + "url": "/fonts/fonts.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 391 + }, + { + "url": "/styles.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 27364 + }, + { + "url": "/service-ui.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 3736 + }, + { + "url": "/refresh.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 5027 + }, + { + "url": "/layout-base.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 278 + }, + { + "url": "/settings-sections.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 873 + }, + { + "url": "/offline-pages.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 859 + }, + { + "url": "/recommendations.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 790 + }, + { + "url": "/saved-page.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 537 + }, + { + "url": "/download-actions.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 430 + }, + { + "url": "/fingerprint.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1034 + }, + { + "url": "/fullscreen-orientation.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1415 + }, + { + "url": "/related-videos.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 404 + }, + { + "url": "/opfs.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3920 + }, + { + "url": "/lyrics-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2632 + }, + { + "url": "/lyrics-display.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 571 + }, + { + "url": "/flag-ui.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2036 + }, + { + "url": "/sha256-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1521 + }, + { + "url": "/sha256.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2733 + }, + { + "url": "/loudness-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1130 + }, + { + "url": "/loudness.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1818 + }, + { + "url": "/device-db.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1050 + }, + { + "url": "/async-guard.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 725 + }, + { + "url": "/asset-sync-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2643 + }, + { + "url": "/sw-update.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4668 + }, + { + "url": "/related-videos.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 545 + }, + { + "url": "/audio-continuity.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 583 + }, + { + "url": "/fullscreen-orientation.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2494 + }, + { + "url": "/settings-sections.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2690 + }, + { + "url": "/download-actions.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 550 + }, + { + "url": "/download-errors.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 727 + }, + { + "url": "/downloads.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1764 + }, + { + "url": "/downloads-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3103 + }, + { + "url": "/saved-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 652 + }, + { + "url": "/server-backfill.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 918 + }, + { + "url": "/visible-timer.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 380 + }, + { + "url": "/prewarm-next.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 567 + }, + { + "url": "/eq-parameters.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 722 + }, + { + "url": "/feature-bootstrap.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2056 + }, + { + "url": "/shell-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3882 + }, + { + "url": "/views-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 16385 + }, + { + "url": "/section-rail.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3552 + }, + { + "url": "/app.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 95497 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/", + "status": 200, + "bytes": 10660 + }, + { + "url": "/index.html", + "status": 200, + "bytes": 10660 + }, + { + "url": "/styles.css", + "status": 200, + "bytes": 27364 + }, + { + "url": "/service-ui.css", + "status": 200, + "bytes": 3736 + }, + { + "url": "/refresh.css", + "status": 200, + "bytes": 5027 + }, + { + "url": "/layout-base.css", + "status": 200, + "bytes": 278 + }, + { + "url": "/theme-glass.css", + "status": 200, + "bytes": 5068 + }, + { + "url": "/theme-bento-hub.css", + "status": 200, + "bytes": 6718 + }, + { + "url": "/theme-f7.css", + "status": 200, + "bytes": 4727 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2", + "status": 200, + "bytes": 21728 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2", + "status": 200, + "bytes": 27348 + }, + { + "url": "/theme-glass-panel.css", + "status": 200, + "bytes": 848 + }, + { + "url": "/glass-panel-layout.js", + "status": 200, + "bytes": 965 + }, + { + "url": "/theme-classic.css", + "status": 200, + "bytes": 3529 + }, + { + "url": "/recommendations.css", + "status": 200, + "bytes": 790 + }, + { + "url": "/flag-ui.js", + "status": 200, + "bytes": 2036 + }, + { + "url": "/export.js", + "status": 200, + "bytes": 1305 + }, + { + "url": "/async-guard.js", + "status": 200, + "bytes": 725 + }, + { + "url": "/visible-timer.js", + "status": 200, + "bytes": 380 + }, + { + "url": "/asset-sync-core.js", + "status": 200, + "bytes": 2643 + }, + { + "url": "/lazy.js", + "status": 200, + "bytes": 2525 + }, + { + "url": "/feature-bootstrap.js", + "status": 200, + "bytes": 2056 + }, + { + "url": "/eq-parameters.js", + "status": 200, + "bytes": 722 + }, + { + "url": "/assets.json", + "status": 200, + "bytes": 1058 + }, + { + "url": "/sw-update.js", + "status": 200, + "bytes": 4668 + }, + { + "url": "/fingerprint.js", + "status": 200, + "bytes": 1034 + }, + { + "url": "/opfs.js", + "status": 200, + "bytes": 3920 + }, + { + "url": "/opfs-worker.js", + "status": 200, + "bytes": 3487 + }, + { + "url": "/video-edit.js", + "status": 200, + "bytes": 2168 + }, + { + "url": "/lyrics-core.js", + "status": 200, + "bytes": 2632 + }, + { + "url": "/lyrics-display.js", + "status": 200, + "bytes": 571 + }, + { + "url": "/stats-core.js", + "status": 200, + "bytes": 2336 + }, + { + "url": "/sha256.js", + "status": 200, + "bytes": 2733 + }, + { + "url": "/resume-core.js", + "status": 200, + "bytes": 762 + }, + { + "url": "/loudness-wasm.js", + "status": 200, + "bytes": 1130 + }, + { + "url": "/loudness.js", + "status": 200, + "bytes": 1818 + }, + { + "url": "/sha256-wasm.js", + "status": 200, + "bytes": 1521 + }, + { + "url": "/device-db.js", + "status": 200, + "bytes": 1050 + }, + { + "url": "/hash-worker.js", + "status": 200, + "bytes": 542 + }, + { + "url": "/p2p-client.js", + "status": 200, + "bytes": 3850 + }, + { + "url": "/p2p-core.js", + "status": 200, + "bytes": 989 + }, + { + "url": "/direct-media.css", + "status": 200, + "bytes": 291 + }, + { + "url": "/direct-protocol.js", + "status": 200, + "bytes": 1079 + }, + { + "url": "/direct-media.js", + "status": 200, + "bytes": 3697 + }, + { + "url": "/direct-stream.js", + "status": 200, + "bytes": 1249 + }, + { + "url": "/direct-recv-worker.js", + "status": 200, + "bytes": 1050 + }, + { + "url": "/p2p-recv-worker.js", + "status": 200, + "bytes": 1267 + }, + { + "url": "/p2p-transfer.js", + "status": 200, + "bytes": 2431 + }, + { + "url": "/related-videos.js", + "status": 200, + "bytes": 545 + }, + { + "url": "/settings-sections.js", + "status": 200, + "bytes": 2690 + }, + { + "url": "/related-videos.css", + "status": 200, + "bytes": 404 + }, + { + "url": "/audio-continuity.js", + "status": 200, + "bytes": 583 + }, + { + "url": "/fullscreen-orientation.js", + "status": 200, + "bytes": 2494 + }, + { + "url": "/fullscreen-orientation.css", + "status": 200, + "bytes": 1415 + }, + { + "url": "/download-actions.js", + "status": 200, + "bytes": 550 + }, + { + "url": "/download-actions.css", + "status": 200, + "bytes": 430 + }, + { + "url": "/download-errors.js", + "status": 200, + "bytes": 727 + }, + { + "url": "/downloads.js", + "status": 200, + "bytes": 1764 + }, + { + "url": "/downloads-page.js", + "status": 200, + "bytes": 3103 + }, + { + "url": "/offline-pages.css", + "status": 200, + "bytes": 859 + }, + { + "url": "/saved-page.js", + "status": 200, + "bytes": 652 + }, + { + "url": "/server-backfill.js", + "status": 200, + "bytes": 918 + }, + { + "url": "/glass-controls.js", + "status": 200, + "bytes": 2763 + }, + { + "url": "/bento-hub.js", + "status": 200, + "bytes": 1294 + }, + { + "url": "/f7-layout.js", + "status": 200, + "bytes": 4158 + }, + { + "url": "/vendor/framework7-swipe.min.js", + "status": 200, + "bytes": 38592 + }, + { + "url": "/theme-glass-controls.css", + "status": 200, + "bytes": 1480 + }, + { + "url": "/party-dj.js", + "status": 200, + "bytes": 1184 + }, + { + "url": "/saved-page.css", + "status": 200, + "bytes": 537 + }, + { + "url": "/lyrics-window.js", + "status": 200, + "bytes": 2048 + }, + { + "url": "/midi.js", + "status": 200, + "bytes": 1713 + }, + { + "url": "/lower-third.js", + "status": 200, + "bytes": 927 + }, + { + "url": "/vocal-reducer.js", + "status": 200, + "bytes": 1146 + }, + { + "url": "/eq-core.js", + "status": 200, + "bytes": 875 + }, + { + "url": "/piano-core.js", + "status": 200, + "bytes": 756 + }, + { + "url": "/piano.js", + "status": 200, + "bytes": 3453 + }, + { + "url": "/setlist-import.js", + "status": 200, + "bytes": 2462 + }, + { + "url": "/car-mode.js", + "status": 200, + "bytes": 1727 + }, + { + "url": "/car-mode.css", + "status": 200, + "bytes": 385 + }, + { + "url": "/prewarm-next.js", + "status": 200, + "bytes": 567 + }, + { + "url": "/lower-third.css", + "status": 200, + "bytes": 375 + }, + { + "url": "/settings-sections.css", + "status": 200, + "bytes": 873 + }, + { + "url": "/shell-core.js", + "status": 200, + "bytes": 3882 + }, + { + "url": "/views-core.js", + "status": 200, + "bytes": 16385 + }, + { + "url": "/section-rail.js", + "status": 200, + "bytes": 3552 + }, + { + "url": "/presenter.js", + "status": 200, + "bytes": 3094 + }, + { + "url": "/remote-client.js", + "status": 200, + "bytes": 7926 + }, + { + "url": "/watch-party-client.js", + "status": 200, + "bytes": 6513 + }, + { + "url": "/stats-view.js", + "status": 200, + "bytes": 2294 + }, + { + "url": "/share-external.js", + "status": 200, + "bytes": 3653 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 631 + }, + { + "url": "/app.js", + "status": 200, + "bytes": 95497 + }, + { + "url": "/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "/fonts/fonts.css", + "status": 200, + "bytes": 391 + }, + { + "url": "/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "/api/p2p/config", + "status": 200, + "bytes": 40 + }, + { + "url": "/api/p2p/device", + "status": 200, + "bytes": 121 + }, + { + "url": "/api/p2p/holdings", + "status": 200, + "bytes": 54 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + } + ], + "totalWireBytes": 982843, + "bytesByType": { + "html": 31980, + "js": 462019, + "css": 111158, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 5137, + "other": 631 + } + }, + "saveData": false, + "offlineTransport": "context.setOffline + proxy", + "expectedTransportErrors": [], + "staticFailures": [], + "scriptErrors": [] + }, + { + "engine": "webkit", + "legacy": true, + "failures": [ + { + "kind": "incomplete", + "paths": [ + "/admin.html", + "/app-seams.test.js", + "/asset-sync-core.test.js", + "/asset-worker.test.js", + "/async-guard.test.js", + "/audio-continuity.test.js", + "/bento-hub.test.js", + "/car-mode.test.js", + "/direct-protocol.test.js", + "/direct-stream.test.js", + "/download-errors.test.js", + "/downloads-page.test.js", + "/downloads.test.js", + "/eq-core.test.js", + "/export.test.js", + "/f7-layout.test.js", + "/fonts/PlusJakartaSans-OFL.txt", + "/fullscreen-orientation.test.js", + "/glass-controls.test.js", + "/glass-panel-layout.test.js", + "/lazy.test.js", + "/loudness.test.js", + "/lower-third.test.js", + "/lyrics-core.test.js", + "/lyrics-display.test.js", + "/lyrics-window.test.js", + "/midi.test.js", + "/p2p-core.test.js", + "/party-dj.test.js", + "/piano-core.test.js", + "/piano-engine.mjs", + "/prewarm-next.test.js", + "/related-videos.test.js", + "/resume-core.test.js", + "/saved-page.test.js", + "/server-backfill.test.js", + "/setlist-import.test.js", + "/settings-sections.test.js", + "/sha256.test.js", + "/shell-consistency.test.js", + "/stats-core.test.js", + "/sw-update.test.js", + "/sw.js", + "/sw.test.js", + "/vendor/framework7-swipe.entry.js", + "/video-edit.test.js", + "/visible-timer.test.js", + "/vocal-reducer.test.js", + "/wasm/loudness.c", + "/wasm/sha256.c", + "/worker-imports.test.js" + ] + }, + { + "kind": "http", + "url": "http://127.0.0.1:43521/piano-engine.mjs", + "status": 503 + }, + { + "layout": "classic", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:43521/piano-engine.mjs", + "status": 503 + }, + { + "layout": "f7-swipe", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:43521/piano-engine.mjs", + "status": 503 + }, + { + "layout": "glass-stage", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:43521/piano-engine.mjs", + "status": 503 + }, + { + "layout": "bento-hub", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ], + "events": [ + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:43521/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + } + ], + "layouts": [ + { + "layout": "classic", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "f7-swipe", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "glass-stage", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "bento-hub", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + } + ], + "conditions": [], + "build": "1175f1a1d2c1", + "installMs": 17360, + "inventory": { + "total": 151, + "missing": [ + "/admin.html", + "/app-seams.test.js", + "/asset-sync-core.test.js", + "/asset-worker.test.js", + "/async-guard.test.js", + "/audio-continuity.test.js", + "/bento-hub.test.js", + "/car-mode.test.js", + "/direct-protocol.test.js", + "/direct-stream.test.js", + "/download-errors.test.js", + "/downloads-page.test.js", + "/downloads.test.js", + "/eq-core.test.js", + "/export.test.js", + "/f7-layout.test.js", + "/fonts/PlusJakartaSans-OFL.txt", + "/fullscreen-orientation.test.js", + "/glass-controls.test.js", + "/glass-panel-layout.test.js", + "/lazy.test.js", + "/loudness.test.js", + "/lower-third.test.js", + "/lyrics-core.test.js", + "/lyrics-display.test.js", + "/lyrics-window.test.js", + "/midi.test.js", + "/p2p-core.test.js", + "/party-dj.test.js", + "/piano-core.test.js", + "/piano-engine.mjs", + "/prewarm-next.test.js", + "/related-videos.test.js", + "/resume-core.test.js", + "/saved-page.test.js", + "/server-backfill.test.js", + "/setlist-import.test.js", + "/settings-sections.test.js", + "/sha256.test.js", + "/shell-consistency.test.js", + "/stats-core.test.js", + "/sw-update.test.js", + "/sw.js", + "/sw.test.js", + "/vendor/framework7-swipe.entry.js", + "/video-edit.test.js", + "/visible-timer.test.js", + "/vocal-reducer.test.js", + "/wasm/loudness.c", + "/wasm/sha256.c", + "/worker-imports.test.js" + ] + }, + "installWire": { + "requestCount": 157, + "requests": [ + { + "url": "/api/manifest", + "status": 200, + "bytes": 3743 + }, + { + "url": "/", + "status": 200, + "bytes": 12832 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/service-ui.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 4417 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/refresh.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 5828 + }, + { + "url": "/lazy.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2984 + }, + { + "url": "/fonts/fonts.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 457 + }, + { + "url": "/styles.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 33412 + }, + { + "url": "/recommendations.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 983 + }, + { + "url": "/layout-base.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 336 + }, + { + "url": "/settings-sections.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1076 + }, + { + "url": "/offline-pages.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1069 + }, + { + "url": "/saved-page.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 673 + }, + { + "url": "/related-videos.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 517 + }, + { + "url": "/download-actions.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 560 + }, + { + "url": "/fingerprint.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1269 + }, + { + "url": "/opfs.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4571 + }, + { + "url": "/fullscreen-orientation.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1721 + }, + { + "url": "/lyrics-display.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 750 + }, + { + "url": "/flag-ui.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2469 + }, + { + "url": "/sha256-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1748 + }, + { + "url": "/sha256.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3209 + }, + { + "url": "/lyrics-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3038 + }, + { + "url": "/loudness.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2068 + }, + { + "url": "/device-db.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1230 + }, + { + "url": "/async-guard.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 887 + }, + { + "url": "/asset-sync-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3028 + }, + { + "url": "/loudness-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1279 + }, + { + "url": "/related-videos.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 642 + }, + { + "url": "/audio-continuity.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 677 + }, + { + "url": "/fullscreen-orientation.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2916 + }, + { + "url": "/settings-sections.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3174 + }, + { + "url": "/sw-update.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 5470 + }, + { + "url": "/download-errors.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 959 + }, + { + "url": "/downloads.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2088 + }, + { + "url": "/downloads-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3642 + }, + { + "url": "/saved-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 820 + }, + { + "url": "/download-actions.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 669 + }, + { + "url": "/visible-timer.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 474 + }, + { + "url": "/prewarm-next.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 665 + }, + { + "url": "/eq-parameters.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2430 + }, + { + "url": "/server-backfill.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1105 + }, + { + "url": "/views-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 19084 + }, + { + "url": "/section-rail.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4206 + }, + { + "url": "/app.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 118584 + }, + { + "url": "/theme-classic.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 4079 + }, + { + "url": "/shell-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4548 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/", + "status": 200, + "bytes": 12832 + }, + { + "url": "/index.html", + "status": 200, + "bytes": 12832 + }, + { + "url": "/styles.css", + "status": 200, + "bytes": 33412 + }, + { + "url": "/service-ui.css", + "status": 200, + "bytes": 4417 + }, + { + "url": "/refresh.css", + "status": 200, + "bytes": 5828 + }, + { + "url": "/layout-base.css", + "status": 200, + "bytes": 336 + }, + { + "url": "/theme-glass.css", + "status": 200, + "bytes": 5903 + }, + { + "url": "/theme-bento-hub.css", + "status": 200, + "bytes": 7731 + }, + { + "url": "/theme-f7.css", + "status": 200, + "bytes": 5579 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2", + "status": 200, + "bytes": 27348 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2", + "status": 200, + "bytes": 21728 + }, + { + "url": "/theme-glass-panel.css", + "status": 200, + "bytes": 1045 + }, + { + "url": "/theme-classic.css", + "status": 200, + "bytes": 4079 + }, + { + "url": "/export.js", + "status": 200, + "bytes": 1536 + }, + { + "url": "/flag-ui.js", + "status": 200, + "bytes": 2469 + }, + { + "url": "/recommendations.css", + "status": 200, + "bytes": 983 + }, + { + "url": "/async-guard.js", + "status": 200, + "bytes": 887 + }, + { + "url": "/glass-panel-layout.js", + "status": 200, + "bytes": 1173 + }, + { + "url": "/visible-timer.js", + "status": 200, + "bytes": 474 + }, + { + "url": "/eq-parameters.js", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js", + "status": 200, + "bytes": 2430 + }, + { + "url": "/lazy.js", + "status": 200, + "bytes": 2984 + }, + { + "url": "/asset-sync-core.js", + "status": 200, + "bytes": 3028 + }, + { + "url": "/assets.json", + "status": 200, + "bytes": 1220 + }, + { + "url": "/sw-update.js", + "status": 200, + "bytes": 5470 + }, + { + "url": "/fingerprint.js", + "status": 200, + "bytes": 1269 + }, + { + "url": "/opfs.js", + "status": 200, + "bytes": 4571 + }, + { + "url": "/opfs-worker.js", + "status": 200, + "bytes": 4042 + }, + { + "url": "/video-edit.js", + "status": 200, + "bytes": 2506 + }, + { + "url": "/sha256.js", + "status": 200, + "bytes": 3209 + }, + { + "url": "/stats-core.js", + "status": 200, + "bytes": 2619 + }, + { + "url": "/lyrics-display.js", + "status": 200, + "bytes": 750 + }, + { + "url": "/lyrics-core.js", + "status": 200, + "bytes": 3038 + }, + { + "url": "/resume-core.js", + "status": 200, + "bytes": 915 + }, + { + "url": "/loudness-wasm.js", + "status": 200, + "bytes": 1279 + }, + { + "url": "/hash-worker.js", + "status": 200, + "bytes": 624 + }, + { + "url": "/device-db.js", + "status": 200, + "bytes": 1230 + }, + { + "url": "/sha256-wasm.js", + "status": 200, + "bytes": 1748 + }, + { + "url": "/p2p-client.js", + "status": 200, + "bytes": 4444 + }, + { + "url": "/loudness.js", + "status": 200, + "bytes": 2068 + }, + { + "url": "/p2p-core.js", + "status": 200, + "bytes": 1137 + }, + { + "url": "/direct-media.js", + "status": 200, + "bytes": 4252 + }, + { + "url": "/direct-protocol.js", + "status": 200, + "bytes": 1245 + }, + { + "url": "/direct-media.css", + "status": 200, + "bytes": 370 + }, + { + "url": "/p2p-transfer.js", + "status": 200, + "bytes": 2773 + }, + { + "url": "/p2p-recv-worker.js", + "status": 200, + "bytes": 1475 + }, + { + "url": "/settings-sections.js", + "status": 200, + "bytes": 3174 + }, + { + "url": "/related-videos.js", + "status": 200, + "bytes": 642 + }, + { + "url": "/direct-stream.js", + "status": 200, + "bytes": 1457 + }, + { + "url": "/direct-recv-worker.js", + "status": 200, + "bytes": 1216 + }, + { + "url": "/related-videos.css", + "status": 200, + "bytes": 517 + }, + { + "url": "/fullscreen-orientation.css", + "status": 200, + "bytes": 1721 + }, + { + "url": "/fullscreen-orientation.js", + "status": 200, + "bytes": 2916 + }, + { + "url": "/audio-continuity.js", + "status": 200, + "bytes": 677 + }, + { + "url": "/download-actions.js", + "status": 200, + "bytes": 669 + }, + { + "url": "/offline-pages.css", + "status": 200, + "bytes": 1069 + }, + { + "url": "/downloads-page.js", + "status": 200, + "bytes": 3642 + }, + { + "url": "/downloads.js", + "status": 200, + "bytes": 2088 + }, + { + "url": "/download-errors.js", + "status": 200, + "bytes": 959 + }, + { + "url": "/download-actions.css", + "status": 200, + "bytes": 560 + }, + { + "url": "/saved-page.js", + "status": 200, + "bytes": 820 + }, + { + "url": "/server-backfill.js", + "status": 200, + "bytes": 1105 + }, + { + "url": "/glass-controls.js", + "status": 200, + "bytes": 3227 + }, + { + "url": "/bento-hub.js", + "status": 200, + "bytes": 1523 + }, + { + "url": "/f7-layout.js", + "status": 200, + "bytes": 4763 + }, + { + "url": "/vendor/framework7-swipe.min.js", + "status": 200, + "bytes": 44829 + }, + { + "url": "/theme-glass-controls.css", + "status": 200, + "bytes": 1782 + }, + { + "url": "/saved-page.css", + "status": 200, + "bytes": 673 + }, + { + "url": "/lyrics-window.js", + "status": 200, + "bytes": 2474 + }, + { + "url": "/midi.js", + "status": 200, + "bytes": 2014 + }, + { + "url": "/lower-third.js", + "status": 200, + "bytes": 1153 + }, + { + "url": "/party-dj.js", + "status": 200, + "bytes": 1444 + }, + { + "url": "/piano-core.js", + "status": 200, + "bytes": 867 + }, + { + "url": "/piano.js", + "status": 200, + "bytes": 4003 + }, + { + "url": "/setlist-import.js", + "status": 200, + "bytes": 2879 + }, + { + "url": "/car-mode.js", + "status": 200, + "bytes": 2080 + }, + { + "url": "/vocal-reducer.js", + "status": 200, + "bytes": 1397 + }, + { + "url": "/eq-core.js", + "status": 200, + "bytes": 1071 + }, + { + "url": "/prewarm-next.js", + "status": 200, + "bytes": 665 + }, + { + "url": "/car-mode.css", + "status": 200, + "bytes": 504 + }, + { + "url": "/lower-third.css", + "status": 200, + "bytes": 502 + }, + { + "url": "/settings-sections.css", + "status": 200, + "bytes": 1076 + }, + { + "url": "/shell-core.js", + "status": 200, + "bytes": 4548 + }, + { + "url": "/views-core.js", + "status": 200, + "bytes": 19084 + }, + { + "url": "/presenter.js", + "status": 200, + "bytes": 3558 + }, + { + "url": "/share-external.js", + "status": 200, + "bytes": 4222 + }, + { + "url": "/watch-party-client.js", + "status": 200, + "bytes": 7473 + }, + { + "url": "/remote-client.js", + "status": 200, + "bytes": 9042 + }, + { + "url": "/section-rail.js", + "status": 200, + "bytes": 4206 + }, + { + "url": "/stats-view.js", + "status": 200, + "bytes": 2664 + }, + { + "url": "/app.js", + "status": 200, + "bytes": 118584 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "/fonts/fonts.css", + "status": 200, + "bytes": 457 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + } + ], + "totalWireBytes": 1104465, + "bytesByType": { + "html": 38496, + "js": 553729, + "css": 133672, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 5084, + "other": 1566 + } + }, + "saveData": false, + "offlineTransport": "proxy (Linux WebKit setOffline breaks cached navigation)", + "unsupportedFeatures": [ + "video editor: OPFS unavailable in Linux WebKit" + ], + "expectedTransportErrors": [ + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:43521/api/media/benchmedia01/status.", + "stack": "" + } + ], + "staticFailures": [], + "scriptErrors": [] + } + ] +} diff --git a/perf/results/hygiene-before.json b/perf/results/hygiene-before.json new file mode 100644 index 0000000..c3858e5 --- /dev/null +++ b/perf/results/hygiene-before.json @@ -0,0 +1,3383 @@ +{ + "date": "2026-10-09T06:38:44.240Z", + "frontendCommit": null, + "frontendBuildTag": "00d7fed5abcb", + "commit": "0b8e39846990eb178a28746d3d111bb0790d8275", + "runsConfigured": 3, + "browsers": { + "chromium": { + "lte": { + "cold": { + "requestCount": { + "median": 165, + "min": 165, + "max": 165, + "values": [ + 165, + 165, + 165 + ] + }, + "wireBytes": { + "median": 728266, + "min": 728266, + "max": 728266, + "values": [ + 728266, + 728266, + 728266 + ] + }, + "fcp": { + "median": 1356, + "min": 1344, + "max": 1376, + "values": [ + 1356, + 1344, + 1376 + ] + }, + "lcp": { + "median": 1356, + "min": 1344, + "max": 1376, + "values": [ + 1356, + 1344, + 1376 + ] + }, + "domContentLoaded": { + "median": 7086, + "min": 6992, + "max": 7362, + "values": [ + 7362, + 6992, + 7086 + ] + }, + "bootDone": { + "median": 7101, + "min": 7013, + "max": 7393, + "values": [ + 7393, + 7013, + 7101 + ] + }, + "longTaskTotal": { + "median": 280, + "min": 279, + "max": 292, + "values": [ + 280, + 279, + 292 + ] + }, + "longTasks": [ + [ + { + "start": 1223, + "duration": 120 + }, + { + "start": 7216, + "duration": 160 + } + ], + [ + { + "start": 1220, + "duration": 110 + }, + { + "start": 6830, + "duration": 169 + } + ], + [ + { + "start": 1238, + "duration": 119 + }, + { + "start": 6918, + "duration": 173 + } + ] + ], + "swInstallDuration": { + "median": 37210, + "min": 37123, + "max": 37477, + "values": [ + 37477, + 37123, + 37210 + ] + }, + "swInstallBytes": { + "median": 728266, + "min": 728266, + "max": 728266, + "values": [ + 728266, + 728266, + 728266 + ] + }, + "storageEstimate": { + "usage": 3110673, + "quota": 5371819793 + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 46972, + "js": 343804, + "css": 65916, + "fonts": 254048, + "images": 6278, + "media": 0, + "api": 4629, + "other": 6619 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/?v=benchmedia01", + "status": 200, + "bytes": 11461 + }, + { + "url": "http://127.0.0.1:6090/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "http://127.0.0.1:6090/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "http://127.0.0.1:6090/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2525 + }, + { + "url": "http://127.0.0.1:6090/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 3529 + }, + { + "url": "http://127.0.0.1:6090/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 391 + }, + { + "url": "http://127.0.0.1:6090/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 27364 + }, + { + "url": "http://127.0.0.1:6090/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 3736 + }, + { + "url": "http://127.0.0.1:6090/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5027 + }, + { + "url": "http://127.0.0.1:6090/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 278 + }, + { + "url": "http://127.0.0.1:6090/recommendations.css?v=055101368d", + "status": 200, + "bytes": 790 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 873 + }, + { + "url": "http://127.0.0.1:6090/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 859 + }, + { + "url": "http://127.0.0.1:6090/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 537 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1415 + }, + { + "url": "http://127.0.0.1:6090/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 404 + }, + { + "url": "http://127.0.0.1:6090/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 430 + }, + { + "url": "http://127.0.0.1:6090/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1034 + }, + { + "url": "http://127.0.0.1:6090/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 3920 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 2632 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 571 + }, + { + "url": "http://127.0.0.1:6090/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2036 + }, + { + "url": "http://127.0.0.1:6090/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1521 + }, + { + "url": "http://127.0.0.1:6090/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 2733 + }, + { + "url": "http://127.0.0.1:6090/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1130 + }, + { + "url": "http://127.0.0.1:6090/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 1818 + }, + { + "url": "http://127.0.0.1:6090/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1050 + }, + { + "url": "http://127.0.0.1:6090/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 725 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 2643 + }, + { + "url": "http://127.0.0.1:6090/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 4668 + }, + { + "url": "http://127.0.0.1:6090/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 545 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 583 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2494 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 2690 + }, + { + "url": "http://127.0.0.1:6090/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 550 + }, + { + "url": "http://127.0.0.1:6090/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 727 + }, + { + "url": "http://127.0.0.1:6090/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 1764 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3103 + }, + { + "url": "http://127.0.0.1:6090/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 652 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 918 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 380 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 567 + }, + { + "url": "http://127.0.0.1:6090/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 722 + }, + { + "url": "http://127.0.0.1:6090/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2056 + }, + { + "url": "http://127.0.0.1:6090/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 3882 + }, + { + "url": "http://127.0.0.1:6090/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 16385 + }, + { + "url": "http://127.0.0.1:6090/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 3552 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=98b948ef62", + "status": 200, + "bytes": 95497 + }, + { + "url": "http://127.0.0.1:6090/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8035 + }, + { + "url": "http://127.0.0.1:6090/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3235 + }, + { + "url": "http://127.0.0.1:6090/assets.json?v=6f517e2aa4", + "status": 200, + "bytes": 1058 + }, + { + "url": "http://127.0.0.1:6090/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "http://127.0.0.1:6090/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "http://127.0.0.1:6090/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "http://127.0.0.1:6090/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "http://127.0.0.1:6090/fonts/fonts.css", + "status": 200, + "bytes": 391 + }, + { + "url": "http://127.0.0.1:6090/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6090/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "http://127.0.0.1:6090/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=e2e242a389", + "status": 200, + "bytes": 11461 + }, + { + "url": "http://127.0.0.1:6090/manifest.webmanifest", + "status": 200, + "bytes": 631 + }, + { + "url": "http://127.0.0.1:6090/opfs-worker.js?v=17cfe8fb26", + "status": 200, + "bytes": 3487 + }, + { + "url": "http://127.0.0.1:6090/resume-core.js?v=df42e94600", + "status": 200, + "bytes": 762 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8035 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/admin.html?v=d2a869476e", + "status": 200, + "bytes": 24050 + }, + { + "url": "http://127.0.0.1:6090/app-seams.test.js?v=1f6a1d9251", + "status": 200, + "bytes": 2457 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.test.js?v=aad69b848e", + "status": 200, + "bytes": 2525 + }, + { + "url": "http://127.0.0.1:6090/asset-worker.test.js?v=51321d8576", + "status": 200, + "bytes": 1984 + }, + { + "url": "http://127.0.0.1:6090/async-guard.test.js?v=8e3a2ee695", + "status": 200, + "bytes": 765 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.test.js?v=b5afd8856c", + "status": 200, + "bytes": 813 + }, + { + "url": "http://127.0.0.1:6090/bento-hub.test.js?v=2359cf1252", + "status": 200, + "bytes": 283 + }, + { + "url": "http://127.0.0.1:6090/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 385 + }, + { + "url": "http://127.0.0.1:6090/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1294 + }, + { + "url": "http://127.0.0.1:6090/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 1727 + }, + { + "url": "http://127.0.0.1:6090/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 291 + }, + { + "url": "http://127.0.0.1:6090/car-mode.test.js?v=07ba524387", + "status": 200, + "bytes": 973 + }, + { + "url": "http://127.0.0.1:6090/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 3697 + }, + { + "url": "http://127.0.0.1:6090/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1079 + }, + { + "url": "http://127.0.0.1:6090/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1050 + }, + { + "url": "http://127.0.0.1:6090/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1249 + }, + { + "url": "http://127.0.0.1:6090/direct-protocol.test.js?v=7ffc592a0a", + "status": 200, + "bytes": 521 + }, + { + "url": "http://127.0.0.1:6090/direct-stream.test.js?v=46c28cc1e0", + "status": 200, + "bytes": 390 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.test.js?v=379bb790f7", + "status": 200, + "bytes": 699 + }, + { + "url": "http://127.0.0.1:6090/downloads.test.js?v=51bcfd997c", + "status": 200, + "bytes": 639 + }, + { + "url": "http://127.0.0.1:6090/download-errors.test.js?v=4d0775cbd6", + "status": 200, + "bytes": 566 + }, + { + "url": "http://127.0.0.1:6090/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 875 + }, + { + "url": "http://127.0.0.1:6090/eq-core.test.js?v=2c94b919e9", + "status": 200, + "bytes": 428 + }, + { + "url": "http://127.0.0.1:6090/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1305 + }, + { + "url": "http://127.0.0.1:6090/fonts/PlusJakartaSans-OFL.txt?v=995c7199ca", + "status": 200, + "bytes": 1428 + }, + { + "url": "http://127.0.0.1:6090/f7-layout.test.js?v=5fe734d52b", + "status": 200, + "bytes": 380 + }, + { + "url": "http://127.0.0.1:6090/export.test.js?v=311523d13e", + "status": 200, + "bytes": 259 + }, + { + "url": "http://127.0.0.1:6090/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4158 + }, + { + "url": "http://127.0.0.1:6090/glass-controls.test.js?v=b9d7e06cd8", + "status": 200, + "bytes": 412 + }, + { + "url": "http://127.0.0.1:6090/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 2763 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.test.js?v=295cbd116a", + "status": 200, + "bytes": 404 + }, + { + "url": "http://127.0.0.1:6090/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "http://127.0.0.1:6090/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "http://127.0.0.1:6090/glass-panel-layout.test.js?v=c6ca5c5a7e", + "status": 200, + "bytes": 259 + }, + { + "url": "http://127.0.0.1:6090/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 965 + }, + { + "url": "http://127.0.0.1:6090/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 542 + }, + { + "url": "http://127.0.0.1:6090/lazy.test.js?v=d4a116a229", + "status": 200, + "bytes": 2030 + }, + { + "url": "http://127.0.0.1:6090/loudness.test.js?v=8895fe5342", + "status": 200, + "bytes": 706 + }, + { + "url": "http://127.0.0.1:6090/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 375 + }, + { + "url": "http://127.0.0.1:6090/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 927 + }, + { + "url": "http://127.0.0.1:6090/lower-third.test.js?v=6788c54df5", + "status": 200, + "bytes": 338 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.test.js?v=8e7033c238", + "status": 200, + "bytes": 1430 + }, + { + "url": "http://127.0.0.1:6090/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2048 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.test.js?v=c87e7cf00a", + "status": 200, + "bytes": 244 + }, + { + "url": "http://127.0.0.1:6090/lyrics-window.test.js?v=49c364b7b4", + "status": 200, + "bytes": 264 + }, + { + "url": "http://127.0.0.1:6090/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 1713 + }, + { + "url": "http://127.0.0.1:6090/midi.test.js?v=779289b098", + "status": 200, + "bytes": 348 + }, + { + "url": "http://127.0.0.1:6090/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 3850 + }, + { + "url": "http://127.0.0.1:6090/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 989 + }, + { + "url": "http://127.0.0.1:6090/p2p-core.test.js?v=89a939952b", + "status": 200, + "bytes": 675 + }, + { + "url": "http://127.0.0.1:6090/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1267 + }, + { + "url": "http://127.0.0.1:6090/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2431 + }, + { + "url": "http://127.0.0.1:6090/party-dj.test.js?v=d6e806fa67", + "status": 200, + "bytes": 234 + }, + { + "url": "http://127.0.0.1:6090/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 756 + }, + { + "url": "http://127.0.0.1:6090/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1184 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.test.js?v=29fad6c54a", + "status": 200, + "bytes": 434 + }, + { + "url": "http://127.0.0.1:6090/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3094 + }, + { + "url": "http://127.0.0.1:6090/piano.js?v=e82bc30884", + "status": 200, + "bytes": 3453 + }, + { + "url": "http://127.0.0.1:6090/piano-core.test.js?v=e5706cbc45", + "status": 200, + "bytes": 731 + }, + { + "url": "http://127.0.0.1:6090/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "http://127.0.0.1:6090/related-videos.test.js?v=d96716be35", + "status": 200, + "bytes": 556 + }, + { + "url": "http://127.0.0.1:6090/resume-core.test.js?v=0df4d1442c", + "status": 200, + "bytes": 484 + }, + { + "url": "http://127.0.0.1:6090/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 7926 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.test.js?v=577c726950", + "status": 200, + "bytes": 683 + }, + { + "url": "http://127.0.0.1:6090/saved-page.test.js?v=a8acfe8cb2", + "status": 200, + "bytes": 224 + }, + { + "url": "http://127.0.0.1:6090/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2462 + }, + { + "url": "http://127.0.0.1:6090/setlist-import.test.js?v=9fa2a3f846", + "status": 200, + "bytes": 508 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.test.js?v=35a9e5df93", + "status": 200, + "bytes": 405 + }, + { + "url": "http://127.0.0.1:6090/sha256.test.js?v=128ac9e31a", + "status": 200, + "bytes": 1153 + }, + { + "url": "http://127.0.0.1:6090/share-external.js?v=9de67de710", + "status": 200, + "bytes": 3653 + }, + { + "url": "http://127.0.0.1:6090/shell-consistency.test.js?v=fc359ae818", + "status": 200, + "bytes": 1507 + }, + { + "url": "http://127.0.0.1:6090/sw-update.test.js?v=14adfe5d73", + "status": 200, + "bytes": 4099 + }, + { + "url": "http://127.0.0.1:6090/sw.js?v=bbc2b6e33e", + "status": 200, + "bytes": 8035 + }, + { + "url": "http://127.0.0.1:6090/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2336 + }, + { + "url": "http://127.0.0.1:6090/stats-core.test.js?v=60b50375f9", + "status": 200, + "bytes": 929 + }, + { + "url": "http://127.0.0.1:6090/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2294 + }, + { + "url": "http://127.0.0.1:6090/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 848 + }, + { + "url": "http://127.0.0.1:6090/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 6718 + }, + { + "url": "http://127.0.0.1:6090/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 4727 + }, + { + "url": "http://127.0.0.1:6090/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1480 + }, + { + "url": "http://127.0.0.1:6090/sw.test.js?v=100d7a34f6", + "status": 200, + "bytes": 1849 + }, + { + "url": "http://127.0.0.1:6090/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5068 + }, + { + "url": "http://127.0.0.1:6090/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 38592 + }, + { + "url": "http://127.0.0.1:6090/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2168 + }, + { + "url": "http://127.0.0.1:6090/video-edit.test.js?v=f8e2098ea9", + "status": 200, + "bytes": 855 + }, + { + "url": "http://127.0.0.1:6090/vendor/framework7-swipe.entry.js?v=dc1157bee0", + "status": 200, + "bytes": 290 + }, + { + "url": "http://127.0.0.1:6090/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1146 + }, + { + "url": "http://127.0.0.1:6090/vocal-reducer.test.js?v=f38c12b55d", + "status": 200, + "bytes": 235 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.test.js?v=e002b03693", + "status": 200, + "bytes": 687 + }, + { + "url": "http://127.0.0.1:6090/wasm/loudness.c?v=92b84304ef", + "status": 200, + "bytes": 2132 + }, + { + "url": "http://127.0.0.1:6090/wasm/sha256.c?v=09ea02c799", + "status": 200, + "bytes": 2428 + }, + { + "url": "http://127.0.0.1:6090/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 6513 + }, + { + "url": "http://127.0.0.1:6090/worker-imports.test.js?v=66d04ef169", + "status": 200, + "bytes": 636 + }, + { + "url": "http://127.0.0.1:6090/api/p2p/config", + "status": 200, + "bytes": 40 + }, + { + "url": "http://127.0.0.1:6090/api/p2p/device", + "status": 200, + "bytes": 121 + }, + { + "url": "http://127.0.0.1:6090/api/p2p/holdings", + "status": 200, + "bytes": 54 + } + ], + "initialJsCss": { + "median": 211706, + "min": 211706, + "max": 211706, + "values": [ + 211706, + 211706, + 211706 + ] + }, + "initialAssetRequests": [ + { + "url": "http://127.0.0.1:6090/lazy.js?v=eff15c9dc8", + "bytes": 2525 + }, + { + "url": "http://127.0.0.1:6090/theme-classic.css?v=d420fcfb12", + "bytes": 3529 + }, + { + "url": "http://127.0.0.1:6090/fonts/fonts.css?v=dda3dfb804", + "bytes": 391 + }, + { + "url": "http://127.0.0.1:6090/service-ui.css?v=b9bf96a3a8", + "bytes": 3736 + }, + { + "url": "http://127.0.0.1:6090/styles.css?v=9f3a5dea41", + "bytes": 27364 + }, + { + "url": "http://127.0.0.1:6090/refresh.css?v=62498384f1", + "bytes": 5027 + }, + { + "url": "http://127.0.0.1:6090/layout-base.css?v=4f3307cd3b", + "bytes": 278 + }, + { + "url": "http://127.0.0.1:6090/recommendations.css?v=055101368d", + "bytes": 790 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.css?v=055507ab85", + "bytes": 873 + }, + { + "url": "http://127.0.0.1:6090/offline-pages.css?v=2889456261", + "bytes": 859 + }, + { + "url": "http://127.0.0.1:6090/saved-page.css?v=3ff576a784", + "bytes": 537 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.css?v=91f2d84453", + "bytes": 1415 + }, + { + "url": "http://127.0.0.1:6090/related-videos.css?v=5a616b1be8", + "bytes": 404 + }, + { + "url": "http://127.0.0.1:6090/download-actions.css?v=12d3bcfe3e", + "bytes": 430 + }, + { + "url": "http://127.0.0.1:6090/fingerprint.js?v=a635143269", + "bytes": 1034 + }, + { + "url": "http://127.0.0.1:6090/opfs.js?v=df7a8d0391", + "bytes": 3920 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.js?v=4dcdac2edd", + "bytes": 2632 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.js?v=48e8550175", + "bytes": 571 + }, + { + "url": "http://127.0.0.1:6090/flag-ui.js?v=eeae1c1d1a", + "bytes": 2036 + }, + { + "url": "http://127.0.0.1:6090/sha256-wasm.js?v=393c50ba56", + "bytes": 1521 + }, + { + "url": "http://127.0.0.1:6090/sha256.js?v=cd9b980e6f", + "bytes": 2733 + }, + { + "url": "http://127.0.0.1:6090/loudness-wasm.js?v=c6102d7844", + "bytes": 1130 + }, + { + "url": "http://127.0.0.1:6090/loudness.js?v=01b3da88dd", + "bytes": 1818 + }, + { + "url": "http://127.0.0.1:6090/device-db.js?v=880c5cd70e", + "bytes": 1050 + }, + { + "url": "http://127.0.0.1:6090/async-guard.js?v=e4afa1f2be", + "bytes": 725 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "bytes": 2643 + }, + { + "url": "http://127.0.0.1:6090/sw-update.js?v=b8326bcdd1", + "bytes": 4668 + }, + { + "url": "http://127.0.0.1:6090/related-videos.js?v=3eec0ebd4c", + "bytes": 545 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.js?v=63b5464dd5", + "bytes": 583 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.js?v=c8e44eb66b", + "bytes": 2494 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.js?v=1101425859", + "bytes": 2690 + }, + { + "url": "http://127.0.0.1:6090/download-actions.js?v=388c7edecb", + "bytes": 550 + }, + { + "url": "http://127.0.0.1:6090/download-errors.js?v=bb6a4c887a", + "bytes": 727 + }, + { + "url": "http://127.0.0.1:6090/downloads.js?v=f2d3e7d212", + "bytes": 1764 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.js?v=c1a3a218c0", + "bytes": 3103 + }, + { + "url": "http://127.0.0.1:6090/saved-page.js?v=f1518c50fb", + "bytes": 652 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.js?v=294b103023", + "bytes": 918 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.js?v=5322e86ef4", + "bytes": 380 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.js?v=ed16a51424", + "bytes": 567 + }, + { + "url": "http://127.0.0.1:6090/eq-parameters.js?v=dc2c6a8e8d", + "bytes": 722 + }, + { + "url": "http://127.0.0.1:6090/feature-bootstrap.js?v=33779ecef7", + "bytes": 2056 + }, + { + "url": "http://127.0.0.1:6090/shell-core.js?v=a04305c2ad", + "bytes": 3882 + }, + { + "url": "http://127.0.0.1:6090/views-core.js?v=f7b147ad7f", + "bytes": 16385 + }, + { + "url": "http://127.0.0.1:6090/section-rail.js?v=07417c1bcc", + "bytes": 3552 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=98b948ef62", + "bytes": 95497 + } + ] + }, + "warm": { + "requestCount": { + "median": 4, + "min": 4, + "max": 5, + "values": [ + 5, + 4, + 4 + ] + }, + "wireBytes": { + "median": 8132, + "min": 8132, + "max": 8132, + "values": [ + 8132, + 8132, + 8132 + ] + }, + "fcp": { + "median": 232, + "min": 152, + "max": 232, + "values": [ + 232, + 232, + 152 + ] + }, + "lcp": { + "median": 232, + "min": 152, + "max": 232, + "values": [ + 232, + 232, + 152 + ] + }, + "domContentLoaded": { + "median": 617, + "min": 493, + "max": 697, + "values": [ + 697, + 617, + 493 + ] + }, + "bootDone": { + "median": 647, + "min": 510, + "max": 726, + "values": [ + 726, + 647, + 510 + ] + }, + "longTaskTotal": { + "median": 155, + "min": 99, + "max": 188, + "values": [ + 188, + 155, + 99 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 60, + "min": 56, + "max": 64, + "values": [ + 60, + 56, + 64 + ] + }, + "lcp": { + "median": 60, + "min": 56, + "max": 64, + "values": [ + 60, + 56, + 64 + ] + }, + "domContentLoaded": { + "median": 280, + "min": 253, + "max": 282, + "values": [ + 280, + 253, + 282 + ] + }, + "bootDone": { + "median": 285, + "min": 256, + "max": 287, + "values": [ + 285, + 256, + 287 + ] + }, + "reloadDuration": { + "median": 304, + "min": 273, + "max": 310, + "values": [ + 304, + 273, + 310 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 8, + "min": 8, + "max": 8, + "values": [ + 8, + 8, + 8 + ] + }, + "wireBytes": { + "median": 126358, + "min": 126358, + "max": 126358, + "values": [ + 126358, + 126358, + 126358 + ] + }, + "duration": { + "median": 1008, + "min": 999, + "max": 1064, + "values": [ + 1008, + 999, + 1064 + ] + }, + "wireBytesByType": { + "html": 11458, + "js": 111598, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3302, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8036 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3240 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=9b345b536c", + "status": 200, + "bytes": 95526 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=52e896dbf0", + "status": 200, + "bytes": 11458 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8036 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + } + ] + }, + "updateCss": { + "readyDuration": { + "median": 319, + "min": 230, + "max": 330, + "values": [ + 230, + 319, + 330 + ] + }, + "readyWireBytes": { + "median": 30872, + "min": 30872, + "max": 30872, + "values": [ + 30872, + 30872, + 30872 + ] + }, + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 44027, + "min": 44027, + "max": 44027, + "values": [ + 44027, + 44027, + 44027 + ] + }, + "duration": { + "median": 1600, + "min": 1500, + "max": 1633, + "values": [ + 1500, + 1600, + 1633 + ] + }, + "wireBytesByType": { + "html": 11464, + "js": 24165, + "css": 5100, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3298, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8055 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3236 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=3c6bfc9ffa", + "status": 200, + "bytes": 11464 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8055 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/sw.js?v=503ff64b3e", + "status": 200, + "bytes": 8055 + }, + { + "url": "http://127.0.0.1:6090/theme-glass.css?v=253e56cfb3", + "status": 200, + "bytes": 5100 + } + ] + }, + "updateFeature": { + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 42065, + "min": 42065, + "max": 42065, + "values": [ + 42065, + 42065, + 42065 + ] + }, + "duration": { + "median": 1392, + "min": 1386, + "max": 1397, + "values": [ + 1392, + 1386, + 1397 + ] + }, + "wireBytesByType": { + "html": 11445, + "js": 27304, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3316, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3254 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=9d31e4bbed", + "status": 200, + "bytes": 11445 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "http://127.0.0.1:6090/presenter.js?v=45776e7cc4", + "status": 200, + "bytes": 3118 + }, + { + "url": "http://127.0.0.1:6090/sw.js?v=cc6a338bef", + "status": 200, + "bytes": 8062 + } + ] + } + } + }, + "webkit": { + "lte": { + "cold": { + "requestCount": { + "median": 209, + "min": 209, + "max": 209, + "values": [ + 209, + 209, + 209 + ] + }, + "wireBytes": { + "median": 1189813, + "min": 1189813, + "max": 1189813, + "values": [ + 1189813, + 1189813, + 1189813 + ] + }, + "fcp": { + "median": 1733, + "min": 1724, + "max": 2378, + "values": [ + 2378, + 1733, + 1724 + ] + }, + "lcp": { + "median": 1802, + "min": 1793, + "max": 2456, + "values": [ + 2456, + 1802, + 1793 + ] + }, + "domContentLoaded": { + "median": 2318, + "min": 2296, + "max": 2962, + "values": [ + 2962, + 2318, + 2296 + ] + }, + "bootDone": { + "median": 2321, + "min": 2300, + "max": 2966, + "values": [ + 2966, + 2321, + 2300 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "longTasks": [ + [], + [], + [] + ], + "swInstallDuration": { + "median": 32361, + "min": 32343, + "max": 33009, + "values": [ + 33009, + 32361, + 32343 + ] + }, + "swInstallBytes": { + "median": 1189813, + "min": 1189813, + "max": 1189813, + "values": [ + 1189813, + 1189813, + 1189813 + ] + }, + "storageEstimate": { + "usage": null, + "quota": null + }, + "mediaReady": { + "median": null, + "min": null, + "max": null, + "values": [ + null, + null, + null + ] + }, + "autoplayBlocked": true, + "wireBytesByType": { + "html": 55696, + "js": 615351, + "css": 133672, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 5082, + "other": 8094 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/?v=benchmedia01", + "status": 200, + "bytes": 14033 + }, + { + "url": "http://127.0.0.1:6090/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "http://127.0.0.1:6090/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "http://127.0.0.1:6090/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "http://127.0.0.1:6090/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 457 + }, + { + "url": "http://127.0.0.1:6090/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "http://127.0.0.1:6090/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "http://127.0.0.1:6090/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "http://127.0.0.1:6090/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "http://127.0.0.1:6090/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "http://127.0.0.1:6090/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "http://127.0.0.1:6090/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "http://127.0.0.1:6090/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "http://127.0.0.1:6090/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "http://127.0.0.1:6090/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "http://127.0.0.1:6090/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "http://127.0.0.1:6090/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "http://127.0.0.1:6090/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "http://127.0.0.1:6090/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "http://127.0.0.1:6090/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "http://127.0.0.1:6090/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "http://127.0.0.1:6090/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "http://127.0.0.1:6090/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "http://127.0.0.1:6090/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "http://127.0.0.1:6090/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "http://127.0.0.1:6090/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "http://127.0.0.1:6090/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "http://127.0.0.1:6090/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "http://127.0.0.1:6090/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6090/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "http://127.0.0.1:6090/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "http://127.0.0.1:6090/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "http://127.0.0.1:6090/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "http://127.0.0.1:6090/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "http://127.0.0.1:6090/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "http://127.0.0.1:6090/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3741 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/assets.json?v=6f517e2aa4", + "status": 200, + "bytes": 1220 + }, + { + "url": "http://127.0.0.1:6090/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "http://127.0.0.1:6090/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "http://127.0.0.1:6090/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "http://127.0.0.1:6090/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "http://127.0.0.1:6090/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "http://127.0.0.1:6090/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "http://127.0.0.1:6090/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6090/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "http://127.0.0.1:6090/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "http://127.0.0.1:6090/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "http://127.0.0.1:6090/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "http://127.0.0.1:6090/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "http://127.0.0.1:6090/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "http://127.0.0.1:6090/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "http://127.0.0.1:6090/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "http://127.0.0.1:6090/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "http://127.0.0.1:6090/fonts/fonts.css", + "status": 200, + "bytes": 457 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "http://127.0.0.1:6090/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "http://127.0.0.1:6090/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=9d31e4bbed", + "status": 200, + "bytes": 14033 + }, + { + "url": "http://127.0.0.1:6090/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "http://127.0.0.1:6090/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "http://127.0.0.1:6090/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "http://127.0.0.1:6090/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "http://127.0.0.1:6090/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "http://127.0.0.1:6090/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "http://127.0.0.1:6090/opfs-worker.js?v=17cfe8fb26", + "status": 200, + "bytes": 4042 + }, + { + "url": "http://127.0.0.1:6090/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "http://127.0.0.1:6090/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "http://127.0.0.1:6090/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "http://127.0.0.1:6090/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "http://127.0.0.1:6090/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "http://127.0.0.1:6090/resume-core.js?v=df42e94600", + "status": 200, + "bytes": 915 + }, + { + "url": "http://127.0.0.1:6090/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "http://127.0.0.1:6090/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "http://127.0.0.1:6090/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "http://127.0.0.1:6090/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "http://127.0.0.1:6090/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "http://127.0.0.1:6090/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "http://127.0.0.1:6090/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "http://127.0.0.1:6090/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "http://127.0.0.1:6090/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "http://127.0.0.1:6090/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "http://127.0.0.1:6090/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/admin.html?v=d2a869476e", + "status": 200, + "bytes": 27630 + }, + { + "url": "http://127.0.0.1:6090/app-seams.test.js?v=1f6a1d9251", + "status": 200, + "bytes": 3005 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.test.js?v=aad69b848e", + "status": 200, + "bytes": 2886 + }, + { + "url": "http://127.0.0.1:6090/asset-worker.test.js?v=51321d8576", + "status": 200, + "bytes": 2293 + }, + { + "url": "http://127.0.0.1:6090/async-guard.test.js?v=8e3a2ee695", + "status": 200, + "bytes": 892 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.test.js?v=b5afd8856c", + "status": 200, + "bytes": 962 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1523 + }, + { + "url": "http://127.0.0.1:6090/bento-hub.test.js?v=2359cf1252", + "status": 200, + "bytes": 368 + }, + { + "url": "http://127.0.0.1:6090/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 504 + }, + { + "url": "http://127.0.0.1:6090/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 2080 + }, + { + "url": "http://127.0.0.1:6090/car-mode.test.js?v=07ba524387", + "status": 200, + "bytes": 1143 + }, + { + "url": "http://127.0.0.1:6090/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 370 + }, + { + "url": "http://127.0.0.1:6090/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 4252 + }, + { + "url": "http://127.0.0.1:6090/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1245 + }, + { + "url": "http://127.0.0.1:6090/direct-protocol.test.js?v=7ffc592a0a", + "status": 200, + "bytes": 583 + }, + { + "url": "http://127.0.0.1:6090/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1216 + }, + { + "url": "http://127.0.0.1:6090/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1457 + }, + { + "url": "http://127.0.0.1:6090/direct-stream.test.js?v=46c28cc1e0", + "status": 200, + "bytes": 442 + }, + { + "url": "http://127.0.0.1:6090/download-errors.test.js?v=4d0775cbd6", + "status": 200, + "bytes": 740 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.test.js?v=379bb790f7", + "status": 200, + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6090/downloads.test.js?v=51bcfd997c", + "status": 200, + "bytes": 726 + }, + { + "url": "http://127.0.0.1:6090/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 1071 + }, + { + "url": "http://127.0.0.1:6090/eq-core.test.js?v=2c94b919e9", + "status": 200, + "bytes": 496 + }, + { + "url": "http://127.0.0.1:6090/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1536 + }, + { + "url": "http://127.0.0.1:6090/export.test.js?v=311523d13e", + "status": 200, + "bytes": 292 + }, + { + "url": "http://127.0.0.1:6090/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4763 + }, + { + "url": "http://127.0.0.1:6090/f7-layout.test.js?v=5fe734d52b", + "status": 200, + "bytes": 459 + }, + { + "url": "http://127.0.0.1:6090/fonts/PlusJakartaSans-OFL.txt?v=995c7199ca", + "status": 200, + "bytes": 1968 + }, + { + "url": "http://127.0.0.1:6090/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "http://127.0.0.1:6090/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.test.js?v=295cbd116a", + "status": 200, + "bytes": 471 + }, + { + "url": "http://127.0.0.1:6090/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 3227 + }, + { + "url": "http://127.0.0.1:6090/glass-controls.test.js?v=b9d7e06cd8", + "status": 200, + "bytes": 507 + }, + { + "url": "http://127.0.0.1:6090/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 1173 + }, + { + "url": "http://127.0.0.1:6090/glass-panel-layout.test.js?v=c6ca5c5a7e", + "status": 200, + "bytes": 329 + }, + { + "url": "http://127.0.0.1:6090/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 624 + }, + { + "url": "http://127.0.0.1:6090/lazy.test.js?v=d4a116a229", + "status": 200, + "bytes": 2414 + }, + { + "url": "http://127.0.0.1:6090/loudness.test.js?v=8895fe5342", + "status": 200, + "bytes": 759 + }, + { + "url": "http://127.0.0.1:6090/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 502 + }, + { + "url": "http://127.0.0.1:6090/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 1153 + }, + { + "url": "http://127.0.0.1:6090/lower-third.test.js?v=6788c54df5", + "status": 200, + "bytes": 415 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.test.js?v=8e7033c238", + "status": 200, + "bytes": 1617 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.test.js?v=c87e7cf00a", + "status": 200, + "bytes": 280 + }, + { + "url": "http://127.0.0.1:6090/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2474 + }, + { + "url": "http://127.0.0.1:6090/lyrics-window.test.js?v=49c364b7b4", + "status": 200, + "bytes": 328 + }, + { + "url": "http://127.0.0.1:6090/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 2014 + }, + { + "url": "http://127.0.0.1:6090/midi.test.js?v=779289b098", + "status": 200, + "bytes": 399 + }, + { + "url": "http://127.0.0.1:6090/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 4444 + }, + { + "url": "http://127.0.0.1:6090/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 1137 + }, + { + "url": "http://127.0.0.1:6090/p2p-core.test.js?v=89a939952b", + "status": 200, + "bytes": 771 + }, + { + "url": "http://127.0.0.1:6090/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1475 + }, + { + "url": "http://127.0.0.1:6090/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2773 + }, + { + "url": "http://127.0.0.1:6090/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1444 + }, + { + "url": "http://127.0.0.1:6090/party-dj.test.js?v=d6e806fa67", + "status": 200, + "bytes": 280 + }, + { + "url": "http://127.0.0.1:6090/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 867 + }, + { + "url": "http://127.0.0.1:6090/piano-core.test.js?v=e5706cbc45", + "status": 200, + "bytes": 837 + }, + { + "url": "http://127.0.0.1:6090/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "http://127.0.0.1:6090/piano.js?v=e82bc30884", + "status": 200, + "bytes": 4003 + }, + { + "url": "http://127.0.0.1:6090/presenter.js?v=45776e7cc4", + "status": 200, + "bytes": 3587 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.test.js?v=29fad6c54a", + "status": 200, + "bytes": 485 + }, + { + "url": "http://127.0.0.1:6090/related-videos.test.js?v=d96716be35", + "status": 200, + "bytes": 652 + }, + { + "url": "http://127.0.0.1:6090/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 9042 + }, + { + "url": "http://127.0.0.1:6090/resume-core.test.js?v=0df4d1442c", + "status": 200, + "bytes": 528 + }, + { + "url": "http://127.0.0.1:6090/saved-page.test.js?v=a8acfe8cb2", + "status": 200, + "bytes": 272 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.test.js?v=577c726950", + "status": 200, + "bytes": 828 + }, + { + "url": "http://127.0.0.1:6090/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2879 + }, + { + "url": "http://127.0.0.1:6090/setlist-import.test.js?v=9fa2a3f846", + "status": 200, + "bytes": 569 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.test.js?v=35a9e5df93", + "status": 200, + "bytes": 516 + }, + { + "url": "http://127.0.0.1:6090/sha256.test.js?v=128ac9e31a", + "status": 200, + "bytes": 1291 + }, + { + "url": "http://127.0.0.1:6090/share-external.js?v=9de67de710", + "status": 200, + "bytes": 4222 + }, + { + "url": "http://127.0.0.1:6090/shell-consistency.test.js?v=fc359ae818", + "status": 200, + "bytes": 1818 + }, + { + "url": "http://127.0.0.1:6090/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2619 + }, + { + "url": "http://127.0.0.1:6090/stats-core.test.js?v=60b50375f9", + "status": 200, + "bytes": 1053 + }, + { + "url": "http://127.0.0.1:6090/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2664 + }, + { + "url": "http://127.0.0.1:6090/sw-update.test.js?v=14adfe5d73", + "status": 200, + "bytes": 4746 + }, + { + "url": "http://127.0.0.1:6090/sw.js?v=cc6a338bef", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/sw.test.js?v=100d7a34f6", + "status": 200, + "bytes": 2231 + }, + { + "url": "http://127.0.0.1:6090/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 7731 + }, + { + "url": "http://127.0.0.1:6090/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 5579 + }, + { + "url": "http://127.0.0.1:6090/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1782 + }, + { + "url": "http://127.0.0.1:6090/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 1045 + }, + { + "url": "http://127.0.0.1:6090/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5903 + }, + { + "url": "http://127.0.0.1:6090/vendor/framework7-swipe.entry.js?v=dc1157bee0", + "status": 200, + "bytes": 330 + }, + { + "url": "http://127.0.0.1:6090/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 44829 + }, + { + "url": "http://127.0.0.1:6090/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2506 + }, + { + "url": "http://127.0.0.1:6090/video-edit.test.js?v=f8e2098ea9", + "status": 200, + "bytes": 967 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.test.js?v=e002b03693", + "status": 200, + "bytes": 818 + }, + { + "url": "http://127.0.0.1:6090/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1397 + }, + { + "url": "http://127.0.0.1:6090/vocal-reducer.test.js?v=f38c12b55d", + "status": 200, + "bytes": 298 + }, + { + "url": "http://127.0.0.1:6090/wasm/loudness.c?v=92b84304ef", + "status": 200, + "bytes": 2132 + }, + { + "url": "http://127.0.0.1:6090/wasm/sha256.c?v=09ea02c799", + "status": 200, + "bytes": 2428 + }, + { + "url": "http://127.0.0.1:6090/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 7473 + }, + { + "url": "http://127.0.0.1:6090/worker-imports.test.js?v=66d04ef169", + "status": 200, + "bytes": 728 + } + ], + "initialJsCss": { + "median": 256643, + "min": 256643, + "max": 256643, + "values": [ + 256643, + 256643, + 256643 + ] + }, + "initialAssetRequests": [ + { + "url": "http://127.0.0.1:6090/fonts/fonts.css?v=dda3dfb804", + "bytes": 457 + }, + { + "url": "http://127.0.0.1:6090/lazy.js?v=eff15c9dc8", + "bytes": 2984 + }, + { + "url": "http://127.0.0.1:6090/layout-base.css?v=4f3307cd3b", + "bytes": 336 + }, + { + "url": "http://127.0.0.1:6090/service-ui.css?v=b9bf96a3a8", + "bytes": 4417 + }, + { + "url": "http://127.0.0.1:6090/refresh.css?v=62498384f1", + "bytes": 5828 + }, + { + "url": "http://127.0.0.1:6090/recommendations.css?v=055101368d", + "bytes": 983 + }, + { + "url": "http://127.0.0.1:6090/styles.css?v=9f3a5dea41", + "bytes": 33412 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.css?v=055507ab85", + "bytes": 1076 + }, + { + "url": "http://127.0.0.1:6090/offline-pages.css?v=2889456261", + "bytes": 1069 + }, + { + "url": "http://127.0.0.1:6090/saved-page.css?v=3ff576a784", + "bytes": 673 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.css?v=91f2d84453", + "bytes": 1721 + }, + { + "url": "http://127.0.0.1:6090/related-videos.css?v=5a616b1be8", + "bytes": 517 + }, + { + "url": "http://127.0.0.1:6090/download-actions.css?v=12d3bcfe3e", + "bytes": 560 + }, + { + "url": "http://127.0.0.1:6090/fingerprint.js?v=a635143269", + "bytes": 1269 + }, + { + "url": "http://127.0.0.1:6090/opfs.js?v=df7a8d0391", + "bytes": 4571 + }, + { + "url": "http://127.0.0.1:6090/lyrics-core.js?v=4dcdac2edd", + "bytes": 3038 + }, + { + "url": "http://127.0.0.1:6090/lyrics-display.js?v=48e8550175", + "bytes": 750 + }, + { + "url": "http://127.0.0.1:6090/flag-ui.js?v=eeae1c1d1a", + "bytes": 2469 + }, + { + "url": "http://127.0.0.1:6090/sha256-wasm.js?v=393c50ba56", + "bytes": 1748 + }, + { + "url": "http://127.0.0.1:6090/sha256.js?v=cd9b980e6f", + "bytes": 3209 + }, + { + "url": "http://127.0.0.1:6090/loudness-wasm.js?v=c6102d7844", + "bytes": 1279 + }, + { + "url": "http://127.0.0.1:6090/loudness.js?v=01b3da88dd", + "bytes": 2068 + }, + { + "url": "http://127.0.0.1:6090/device-db.js?v=880c5cd70e", + "bytes": 1230 + }, + { + "url": "http://127.0.0.1:6090/async-guard.js?v=e4afa1f2be", + "bytes": 887 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/related-videos.js?v=3eec0ebd4c", + "bytes": 642 + }, + { + "url": "http://127.0.0.1:6090/audio-continuity.js?v=63b5464dd5", + "bytes": 677 + }, + { + "url": "http://127.0.0.1:6090/sw-update.js?v=b8326bcdd1", + "bytes": 5470 + }, + { + "url": "http://127.0.0.1:6090/fullscreen-orientation.js?v=c8e44eb66b", + "bytes": 2916 + }, + { + "url": "http://127.0.0.1:6090/download-actions.js?v=388c7edecb", + "bytes": 669 + }, + { + "url": "http://127.0.0.1:6090/settings-sections.js?v=1101425859", + "bytes": 3174 + }, + { + "url": "http://127.0.0.1:6090/download-errors.js?v=bb6a4c887a", + "bytes": 959 + }, + { + "url": "http://127.0.0.1:6090/downloads.js?v=f2d3e7d212", + "bytes": 2088 + }, + { + "url": "http://127.0.0.1:6090/downloads-page.js?v=c1a3a218c0", + "bytes": 3642 + }, + { + "url": "http://127.0.0.1:6090/saved-page.js?v=f1518c50fb", + "bytes": 820 + }, + { + "url": "http://127.0.0.1:6090/visible-timer.js?v=5322e86ef4", + "bytes": 474 + }, + { + "url": "http://127.0.0.1:6090/server-backfill.js?v=294b103023", + "bytes": 1105 + }, + { + "url": "http://127.0.0.1:6090/prewarm-next.js?v=ed16a51424", + "bytes": 665 + }, + { + "url": "http://127.0.0.1:6090/eq-parameters.js?v=dc2c6a8e8d", + "bytes": 832 + }, + { + "url": "http://127.0.0.1:6090/feature-bootstrap.js?v=33779ecef7", + "bytes": 2430 + }, + { + "url": "http://127.0.0.1:6090/shell-core.js?v=a04305c2ad", + "bytes": 4548 + }, + { + "url": "http://127.0.0.1:6090/section-rail.js?v=07417c1bcc", + "bytes": 4206 + }, + { + "url": "http://127.0.0.1:6090/views-core.js?v=f7b147ad7f", + "bytes": 19084 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=98b948ef62", + "bytes": 118584 + }, + { + "url": "http://127.0.0.1:6090/theme-classic.css?v=d420fcfb12", + "bytes": 4079 + } + ] + }, + "warm": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 58, + "min": 58, + "max": 69, + "values": [ + 58, + 58, + 69 + ] + }, + "lcp": { + "median": 91, + "min": 91, + "max": 104, + "values": [ + 91, + 91, + 104 + ] + }, + "domContentLoaded": { + "median": 90, + "min": 89, + "max": 102, + "values": [ + 89, + 90, + 102 + ] + }, + "bootDone": { + "median": 92, + "min": 92, + "max": 106, + "values": [ + 92, + 92, + 106 + ] + }, + "longTaskTotal": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + } + }, + "offline": { + "requestCount": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "wireBytes": { + "median": 0, + "min": 0, + "max": 0, + "values": [ + 0, + 0, + 0 + ] + }, + "fcp": { + "median": 62, + "min": 56, + "max": 67, + "values": [ + 67, + 62, + 56 + ] + }, + "lcp": { + "median": 95, + "min": 89, + "max": 99, + "values": [ + 99, + 95, + 89 + ] + }, + "domContentLoaded": { + "median": 94, + "min": 88, + "max": 98, + "values": [ + 98, + 94, + 88 + ] + }, + "bootDone": { + "median": 100, + "min": 94, + "max": 100, + "values": [ + 100, + 100, + 94 + ] + }, + "reloadDuration": { + "median": 113, + "min": 112, + "max": 119, + "values": [ + 119, + 113, + 112 + ] + } + }, + "updateJs": { + "requestCount": { + "median": 5, + "min": 5, + "max": 5, + "values": [ + 5, + 5, + 5 + ] + }, + "wireBytes": { + "median": 148709, + "min": 148709, + "max": 148709, + "values": [ + 148709, + 148709, + 148709 + ] + }, + "duration": { + "median": 2013, + "min": 1944, + "max": 2024, + "values": [ + 2024, + 1944, + 2013 + ] + }, + "wireBytesByType": { + "html": 14032, + "js": 130936, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3741, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9302 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3741 + }, + { + "url": "http://127.0.0.1:6090/app.js?v=9b345b536c", + "status": 200, + "bytes": 118606 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=52e896dbf0", + "status": 200, + "bytes": 14032 + } + ] + }, + "updateCss": { + "readyDuration": { + "median": 955, + "min": 948, + "max": 956, + "values": [ + 955, + 948, + 956 + ] + }, + "readyWireBytes": { + "median": 30101, + "min": 30101, + "max": 30101, + "values": [ + 30101, + 30101, + 30101 + ] + }, + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 57732, + "min": 57732, + "max": 57732, + "values": [ + 57732, + 57732, + 57732 + ] + }, + "duration": { + "median": 1479, + "min": 1474, + "max": 1485, + "values": [ + 1479, + 1474, + 1485 + ] + }, + "wireBytesByType": { + "html": 14030, + "js": 33959, + "css": 5939, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3804, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3742 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=3c6bfc9ffa", + "status": 200, + "bytes": 14030 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/sw.js?v=503ff64b3e", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/theme-glass.css?v=253e56cfb3", + "status": 200, + "bytes": 5939 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + } + ] + }, + "updateFeature": { + "requestCount": { + "median": 9, + "min": 9, + "max": 9, + "values": [ + 9, + 9, + 9 + ] + }, + "wireBytes": { + "median": 55382, + "min": 55382, + "max": 55382, + "values": [ + 55382, + 55382, + 55382 + ] + }, + "duration": { + "median": 1494, + "min": 1491, + "max": 1495, + "values": [ + 1494, + 1495, + 1491 + ] + }, + "wireBytesByType": { + "html": 14033, + "js": 37546, + "css": 0, + "fonts": 0, + "images": 0, + "media": 0, + "api": 3803, + "other": 0 + }, + "requests": [ + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "http://127.0.0.1:6090/api/manifest", + "status": 200, + "bytes": 3741 + }, + { + "url": "http://127.0.0.1:6090/index.html?v=9d31e4bbed", + "status": 200, + "bytes": 14033 + }, + { + "url": "http://127.0.0.1:6090/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "http://127.0.0.1:6090/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/presenter.js?v=45776e7cc4", + "status": 200, + "bytes": 3587 + }, + { + "url": "http://127.0.0.1:6090/sw.js?v=cc6a338bef", + "status": 200, + "bytes": 9301 + }, + { + "url": "http://127.0.0.1:6090/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/perf/results/hygiene-migration.json b/perf/results/hygiene-migration.json new file mode 100644 index 0000000..9c953fd --- /dev/null +++ b/perf/results/hygiene-migration.json @@ -0,0 +1,41 @@ +{ + "commit": "b77938a", + "results": [ + { + "browser": "chromium", + "oldTag": "1175f1a1d2c1", + "newTag": "604f8f8d8a68", + "banners": 1, + "updateReloads": 1, + "cachedFiles": 124, + "durationMs": 26801, + "wireBytes": 638444, + "offline": true, + "legacyURLs": 21, + "profile": "lossy", + "userInitiatedOnly": true, + "playbackGuard": true, + "evictionRepair": true, + "incrementalRefresh": true, + "offlineTransportErrors": 0 + }, + { + "browser": "webkit", + "oldTag": "1175f1a1d2c1", + "newTag": "604f8f8d8a68", + "banners": 1, + "updateReloads": 1, + "cachedFiles": 124, + "durationMs": 24322, + "wireBytes": 743954, + "offline": true, + "legacyURLs": 21, + "profile": "lossy", + "userInitiatedOnly": true, + "playbackGuard": true, + "evictionRepair": true, + "incrementalRefresh": true, + "offlineTransportErrors": 4 + } + ] +} diff --git a/perf/results/hygiene-offline.json b/perf/results/hygiene-offline.json new file mode 100644 index 0000000..ed382e6 --- /dev/null +++ b/perf/results/hygiene-offline.json @@ -0,0 +1,5836 @@ +{ + "results": [ + { + "engine": "chromium", + "legacy": false, + "failures": [], + "events": [ + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/recommendations?fp=c83c12c79b483c87", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/user/sync", + "error": "net::ERR_ABORTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/recommendations?fp=c83c12c79b483c87", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39301/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + } + ], + "layouts": [ + { + "layout": "classic", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + }, + { + "layout": "f7-swipe", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + }, + { + "layout": "glass-stage", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + }, + { + "layout": "bento-hub", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + } + ], + "conditions": [ + { + "name": "interrupted job, page closed, browser restarted with same profile, Save-Data, two tabs", + "interruptedMissing": 44, + "storageMode": "persistent disk profile", + "complete": true + }, + { + "name": "online event, Save-Data off", + "complete": true + }, + { + "name": "worker completes with every application page closed; passive same-origin inspector only", + "complete": true + } + ], + "build": "604f8f8d8a68", + "installMs": 3039, + "inventory": { + "total": 102, + "missing": [] + }, + "installWire": { + "requestCount": 160, + "requests": [ + { + "url": "/api/manifest", + "status": 200, + "bytes": 2990 + }, + { + "url": "/", + "status": 200, + "bytes": 11468 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2525 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 3529 + }, + { + "url": "/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 391 + }, + { + "url": "/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 27364 + }, + { + "url": "/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 3736 + }, + { + "url": "/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5027 + }, + { + "url": "/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 278 + }, + { + "url": "/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 873 + }, + { + "url": "/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 859 + }, + { + "url": "/recommendations.css?v=055101368d", + "status": 200, + "bytes": 790 + }, + { + "url": "/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 537 + }, + { + "url": "/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1034 + }, + { + "url": "/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 430 + }, + { + "url": "/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1415 + }, + { + "url": "/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 404 + }, + { + "url": "/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 3920 + }, + { + "url": "/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 2632 + }, + { + "url": "/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 571 + }, + { + "url": "/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2036 + }, + { + "url": "/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1521 + }, + { + "url": "/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 2733 + }, + { + "url": "/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1130 + }, + { + "url": "/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 1818 + }, + { + "url": "/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1050 + }, + { + "url": "/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 725 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 2643 + }, + { + "url": "/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 4668 + }, + { + "url": "/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 545 + }, + { + "url": "/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 583 + }, + { + "url": "/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2494 + }, + { + "url": "/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 2690 + }, + { + "url": "/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 550 + }, + { + "url": "/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 727 + }, + { + "url": "/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 1764 + }, + { + "url": "/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3103 + }, + { + "url": "/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 652 + }, + { + "url": "/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 918 + }, + { + "url": "/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 380 + }, + { + "url": "/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 567 + }, + { + "url": "/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 722 + }, + { + "url": "/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2056 + }, + { + "url": "/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 3882 + }, + { + "url": "/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 16385 + }, + { + "url": "/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 3552 + }, + { + "url": "/app.js?v=98b948ef62", + "status": 200, + "bytes": 95497 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 2643 + }, + { + "url": "/api/manifest", + "status": 200, + "bytes": 2593 + }, + { + "url": "/app.js?v=98b948ef62", + "status": 200, + "bytes": 95497 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 2643 + }, + { + "url": "/assets.json?v=6f517e2aa4", + "status": 200, + "bytes": 1058 + }, + { + "url": "/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 725 + }, + { + "url": "/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 583 + }, + { + "url": "/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1050 + }, + { + "url": "/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 430 + }, + { + "url": "/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 550 + }, + { + "url": "/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 727 + }, + { + "url": "/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3103 + }, + { + "url": "/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 1764 + }, + { + "url": "/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 722 + }, + { + "url": "/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2056 + }, + { + "url": "/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1034 + }, + { + "url": "/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2036 + }, + { + "url": "/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/fonts/fonts.css", + "status": 200, + "bytes": 391 + }, + { + "url": "/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1415 + }, + { + "url": "/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2494 + }, + { + "url": "/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "/index.html?v=9401f92823", + "status": 200, + "bytes": 11468 + }, + { + "url": "/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 278 + }, + { + "url": "/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2525 + }, + { + "url": "/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1130 + }, + { + "url": "/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 1818 + }, + { + "url": "/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 2632 + }, + { + "url": "/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 571 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 631 + }, + { + "url": "/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 859 + }, + { + "url": "/opfs-worker.js?v=17cfe8fb26", + "status": 200, + "bytes": 3487 + }, + { + "url": "/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 3920 + }, + { + "url": "/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 567 + }, + { + "url": "/recommendations.css?v=055101368d", + "status": 200, + "bytes": 790 + }, + { + "url": "/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5027 + }, + { + "url": "/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 404 + }, + { + "url": "/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 545 + }, + { + "url": "/resume-core.js?v=df42e94600", + "status": 200, + "bytes": 762 + }, + { + "url": "/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 537 + }, + { + "url": "/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 652 + }, + { + "url": "/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 3552 + }, + { + "url": "/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 918 + }, + { + "url": "/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 3736 + }, + { + "url": "/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 873 + }, + { + "url": "/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 2690 + }, + { + "url": "/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1521 + }, + { + "url": "/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 2733 + }, + { + "url": "/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 3882 + }, + { + "url": "/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 27364 + }, + { + "url": "/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 4668 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 3529 + }, + { + "url": "/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 16385 + }, + { + "url": "/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 380 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1294 + }, + { + "url": "/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 385 + }, + { + "url": "/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 1727 + }, + { + "url": "/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 291 + }, + { + "url": "/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 3697 + }, + { + "url": "/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1079 + }, + { + "url": "/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 875 + }, + { + "url": "/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1249 + }, + { + "url": "/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1050 + }, + { + "url": "/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1305 + }, + { + "url": "/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4158 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 2763 + }, + { + "url": "/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 965 + }, + { + "url": "/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 542 + }, + { + "url": "/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 927 + }, + { + "url": "/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 375 + }, + { + "url": "/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2048 + }, + { + "url": "/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 3850 + }, + { + "url": "/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 1713 + }, + { + "url": "/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 989 + }, + { + "url": "/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1267 + }, + { + "url": "/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2431 + }, + { + "url": "/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1184 + }, + { + "url": "/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 756 + }, + { + "url": "/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3094 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "/piano.js?v=e82bc30884", + "status": 200, + "bytes": 3453 + }, + { + "url": "/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2462 + }, + { + "url": "/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2294 + }, + { + "url": "/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2336 + }, + { + "url": "/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 7926 + }, + { + "url": "/share-external.js?v=9de67de710", + "status": 200, + "bytes": 3653 + }, + { + "url": "/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 6718 + }, + { + "url": "/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1480 + }, + { + "url": "/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 4727 + }, + { + "url": "/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 848 + }, + { + "url": "/sw.js?v=927a04be22", + "status": 200, + "bytes": 8062 + }, + { + "url": "/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 38592 + }, + { + "url": "/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2168 + }, + { + "url": "/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5068 + }, + { + "url": "/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1146 + }, + { + "url": "/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 6513 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "/", + "status": 200, + "bytes": 11468 + }, + { + "url": "/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 6718 + }, + { + "url": "/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1480 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1294 + }, + { + "url": "/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 385 + }, + { + "url": "/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 1727 + }, + { + "url": "/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 291 + }, + { + "url": "/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 3697 + }, + { + "url": "/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1079 + }, + { + "url": "/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1050 + }, + { + "url": "/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1249 + }, + { + "url": "/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 875 + }, + { + "url": "/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1305 + }, + { + "url": "/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4158 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 2763 + }, + { + "url": "/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 965 + }, + { + "url": "/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 542 + }, + { + "url": "/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 375 + }, + { + "url": "/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 927 + }, + { + "url": "/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2048 + }, + { + "url": "/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 1713 + }, + { + "url": "/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 3850 + }, + { + "url": "/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 989 + }, + { + "url": "/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1267 + }, + { + "url": "/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2431 + }, + { + "url": "/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1184 + }, + { + "url": "/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 756 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "/piano.js?v=e82bc30884", + "status": 200, + "bytes": 3453 + }, + { + "url": "/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3094 + }, + { + "url": "/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 7926 + }, + { + "url": "/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2462 + }, + { + "url": "/share-external.js?v=9de67de710", + "status": 200, + "bytes": 3653 + }, + { + "url": "/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2336 + }, + { + "url": "/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2294 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 3529 + }, + { + "url": "/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 4727 + }, + { + "url": "/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 848 + }, + { + "url": "/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5068 + }, + { + "url": "/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 38592 + }, + { + "url": "/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2168 + }, + { + "url": "/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1146 + }, + { + "url": "/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 6513 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/profile/load?name=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/playlist/inbox?name=offline-test", + "status": 200, + "bytes": 22 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 404, + "bytes": 40 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/profile/load?name=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/playlist/inbox?name=offline-test", + "status": 200, + "bytes": 22 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 404, + "bytes": 40 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8062 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 304, + "bytes": 0 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 2763 + }, + { + "url": "/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 965 + }, + { + "url": "/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 542 + }, + { + "url": "/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 375 + }, + { + "url": "/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 927 + }, + { + "url": "/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2048 + }, + { + "url": "/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 1713 + }, + { + "url": "/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 3850 + }, + { + "url": "/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 989 + }, + { + "url": "/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1267 + }, + { + "url": "/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2431 + }, + { + "url": "/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1184 + }, + { + "url": "/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 756 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "/piano.js?v=e82bc30884", + "status": 200, + "bytes": 3453 + }, + { + "url": "/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3094 + }, + { + "url": "/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 7926 + }, + { + "url": "/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2462 + }, + { + "url": "/share-external.js?v=9de67de710", + "status": 200, + "bytes": 3653 + }, + { + "url": "/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2336 + }, + { + "url": "/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2294 + }, + { + "url": "/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 6718 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 3529 + }, + { + "url": "/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 4727 + }, + { + "url": "/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1480 + }, + { + "url": "/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 848 + }, + { + "url": "/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5068 + }, + { + "url": "/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 38592 + }, + { + "url": "/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2168 + }, + { + "url": "/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1146 + }, + { + "url": "/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 6513 + }, + { + "url": "/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1294 + }, + { + "url": "/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 385 + }, + { + "url": "/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 1727 + }, + { + "url": "/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 291 + }, + { + "url": "/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 3697 + }, + { + "url": "/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1079 + }, + { + "url": "/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1050 + }, + { + "url": "/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1249 + }, + { + "url": "/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 875 + }, + { + "url": "/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1305 + }, + { + "url": "/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4158 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + } + ], + "totalWireBytes": 988715, + "bytesByType": { + "html": 22936, + "js": 475310, + "css": 111158, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 6762, + "other": 631 + } + }, + "saveData": false, + "offlineTransport": "context.setOffline + proxy", + "expectedTransportErrors": [], + "staticFailures": [], + "scriptErrors": [] + }, + { + "engine": "webkit", + "legacy": false, + "failures": [], + "events": [ + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:42665/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + } + ], + "layouts": [ + { + "layout": "classic", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + }, + { + "layout": "f7-swipe", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + }, + { + "layout": "glass-stage", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + }, + { + "layout": "bento-hub", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service", + "runtime URLs" + ], + "errors": [] + } + ], + "conditions": [ + { + "name": "page closed, worker re-registration, Save-Data, two tabs", + "interruptedMissing": 44, + "storageMode": "same-context worker re-registration; Linux WebKit persistent CacheStorage is broken", + "complete": true + }, + { + "name": "online event, Save-Data off", + "complete": true + } + ], + "build": "604f8f8d8a68", + "installMs": 2322, + "inventory": { + "total": 102, + "missing": [] + }, + "installWire": { + "requestCount": 161, + "requests": [ + { + "url": "/api/manifest", + "status": 200, + "bytes": 2990 + }, + { + "url": "/", + "status": 200, + "bytes": 14031 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 457 + }, + { + "url": "/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/api/manifest", + "status": 200, + "bytes": 2990 + }, + { + "url": "/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/assets.json?v=6f517e2aa4", + "status": 200, + "bytes": 1220 + }, + { + "url": "/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/fonts/fonts.css", + "status": 200, + "bytes": 457 + }, + { + "url": "/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "/index.html?v=9401f92823", + "status": 200, + "bytes": 14031 + }, + { + "url": "/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "/opfs-worker.js?v=17cfe8fb26", + "status": 200, + "bytes": 4042 + }, + { + "url": "/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "/resume-core.js?v=df42e94600", + "status": 200, + "bytes": 915 + }, + { + "url": "/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1523 + }, + { + "url": "/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 504 + }, + { + "url": "/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 2080 + }, + { + "url": "/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 370 + }, + { + "url": "/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 4252 + }, + { + "url": "/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1245 + }, + { + "url": "/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1216 + }, + { + "url": "/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1536 + }, + { + "url": "/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 1071 + }, + { + "url": "/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4763 + }, + { + "url": "/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1457 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 3227 + }, + { + "url": "/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 1173 + }, + { + "url": "/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 624 + }, + { + "url": "/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 502 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 1153 + }, + { + "url": "/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 2014 + }, + { + "url": "/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2474 + }, + { + "url": "/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2773 + }, + { + "url": "/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1444 + }, + { + "url": "/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 4444 + }, + { + "url": "/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 1137 + }, + { + "url": "/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1475 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "/piano.js?v=e82bc30884", + "status": 200, + "bytes": 4003 + }, + { + "url": "/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3558 + }, + { + "url": "/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 867 + }, + { + "url": "/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 9042 + }, + { + "url": "/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2619 + }, + { + "url": "/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2664 + }, + { + "url": "/sw.js?v=927a04be22", + "status": 200, + "bytes": 9301 + }, + { + "url": "/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2879 + }, + { + "url": "/share-external.js?v=9de67de710", + "status": 200, + "bytes": 4222 + }, + { + "url": "/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 7731 + }, + { + "url": "/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 5579 + }, + { + "url": "/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 1045 + }, + { + "url": "/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1782 + }, + { + "url": "/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5903 + }, + { + "url": "/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2506 + }, + { + "url": "/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1397 + }, + { + "url": "/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 7473 + }, + { + "url": "/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 44829 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/", + "status": 200, + "bytes": 14031 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/refresh.css?v=62498384f1", + "status": 200, + "bytes": 5828 + }, + { + "url": "/layout-base.css?v=4f3307cd3b", + "status": 200, + "bytes": 336 + }, + { + "url": "/lazy.js?v=eff15c9dc8", + "status": 200, + "bytes": 2984 + }, + { + "url": "/styles.css?v=9f3a5dea41", + "status": 200, + "bytes": 33412 + }, + { + "url": "/recommendations.css?v=055101368d", + "status": 200, + "bytes": 983 + }, + { + "url": "/fonts/fonts.css?v=dda3dfb804", + "status": 200, + "bytes": 457 + }, + { + "url": "/service-ui.css?v=b9bf96a3a8", + "status": 200, + "bytes": 4417 + }, + { + "url": "/offline-pages.css?v=2889456261", + "status": 200, + "bytes": 1069 + }, + { + "url": "/settings-sections.css?v=055507ab85", + "status": 200, + "bytes": 1076 + }, + { + "url": "/fullscreen-orientation.css?v=91f2d84453", + "status": 200, + "bytes": 1721 + }, + { + "url": "/saved-page.css?v=3ff576a784", + "status": 200, + "bytes": 673 + }, + { + "url": "/related-videos.css?v=5a616b1be8", + "status": 200, + "bytes": 517 + }, + { + "url": "/download-actions.css?v=12d3bcfe3e", + "status": 200, + "bytes": 560 + }, + { + "url": "/fingerprint.js?v=a635143269", + "status": 200, + "bytes": 1269 + }, + { + "url": "/lyrics-display.js?v=48e8550175", + "status": 200, + "bytes": 750 + }, + { + "url": "/lyrics-core.js?v=4dcdac2edd", + "status": 200, + "bytes": 3038 + }, + { + "url": "/opfs.js?v=df7a8d0391", + "status": 200, + "bytes": 4571 + }, + { + "url": "/sha256.js?v=cd9b980e6f", + "status": 200, + "bytes": 3209 + }, + { + "url": "/sha256-wasm.js?v=393c50ba56", + "status": 200, + "bytes": 1748 + }, + { + "url": "/flag-ui.js?v=eeae1c1d1a", + "status": 200, + "bytes": 2469 + }, + { + "url": "/loudness-wasm.js?v=c6102d7844", + "status": 200, + "bytes": 1279 + }, + { + "url": "/loudness.js?v=01b3da88dd", + "status": 200, + "bytes": 2068 + }, + { + "url": "/device-db.js?v=880c5cd70e", + "status": 200, + "bytes": 1230 + }, + { + "url": "/async-guard.js?v=e4afa1f2be", + "status": 200, + "bytes": 887 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/sw-update.js?v=b8326bcdd1", + "status": 200, + "bytes": 5470 + }, + { + "url": "/related-videos.js?v=3eec0ebd4c", + "status": 200, + "bytes": 642 + }, + { + "url": "/audio-continuity.js?v=63b5464dd5", + "status": 200, + "bytes": 677 + }, + { + "url": "/fullscreen-orientation.js?v=c8e44eb66b", + "status": 200, + "bytes": 2916 + }, + { + "url": "/settings-sections.js?v=1101425859", + "status": 200, + "bytes": 3174 + }, + { + "url": "/download-errors.js?v=bb6a4c887a", + "status": 200, + "bytes": 959 + }, + { + "url": "/download-actions.js?v=388c7edecb", + "status": 200, + "bytes": 669 + }, + { + "url": "/downloads.js?v=f2d3e7d212", + "status": 200, + "bytes": 2088 + }, + { + "url": "/saved-page.js?v=f1518c50fb", + "status": 200, + "bytes": 820 + }, + { + "url": "/downloads-page.js?v=c1a3a218c0", + "status": 200, + "bytes": 3642 + }, + { + "url": "/server-backfill.js?v=294b103023", + "status": 200, + "bytes": 1105 + }, + { + "url": "/visible-timer.js?v=5322e86ef4", + "status": 200, + "bytes": 474 + }, + { + "url": "/prewarm-next.js?v=ed16a51424", + "status": 200, + "bytes": 665 + }, + { + "url": "/eq-parameters.js?v=dc2c6a8e8d", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js?v=33779ecef7", + "status": 200, + "bytes": 2430 + }, + { + "url": "/shell-core.js?v=a04305c2ad", + "status": 200, + "bytes": 4548 + }, + { + "url": "/views-core.js?v=f7b147ad7f", + "status": 200, + "bytes": 19084 + }, + { + "url": "/section-rail.js?v=07417c1bcc", + "status": 200, + "bytes": 4206 + }, + { + "url": "/app.js?v=98b948ef62", + "status": 200, + "bytes": 118584 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 7731 + }, + { + "url": "/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1782 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2", + "status": 200, + "bytes": 27348 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/profile/load?name=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 404, + "bytes": 40 + }, + { + "url": "/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 3227 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/playlist/inbox?name=offline-test", + "status": 200, + "bytes": 22 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1523 + }, + { + "url": "/api/manifest", + "status": 200, + "bytes": 2990 + }, + { + "url": "/bento-hub.js?v=c867882d7e", + "status": 200, + "bytes": 1523 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2?v=38e3b8fd80", + "status": 200, + "bytes": 21728 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2?v=153fc85b70", + "status": 200, + "bytes": 27348 + }, + { + "url": "/glass-controls.js?v=a60ed1fe84", + "status": 200, + "bytes": 3227 + }, + { + "url": "/theme-bento-hub.css?v=f529dc4bb7", + "status": 200, + "bytes": 7731 + }, + { + "url": "/theme-glass-controls.css?v=3354ad9631", + "status": 200, + "bytes": 1782 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/car-mode.css?v=7d421630b3", + "status": 200, + "bytes": 504 + }, + { + "url": "/car-mode.js?v=ebd6588f35", + "status": 200, + "bytes": 2080 + }, + { + "url": "/direct-media.css?v=19b8428bfd", + "status": 200, + "bytes": 370 + }, + { + "url": "/direct-media.js?v=035420e8fb", + "status": 200, + "bytes": 4252 + }, + { + "url": "/direct-protocol.js?v=87a73be90f", + "status": 200, + "bytes": 1245 + }, + { + "url": "/direct-recv-worker.js?v=caa45eb981", + "status": 200, + "bytes": 1216 + }, + { + "url": "/direct-stream.js?v=d7f9871605", + "status": 200, + "bytes": 1457 + }, + { + "url": "/eq-core.js?v=cb6d079933", + "status": 200, + "bytes": 1071 + }, + { + "url": "/export.js?v=5b7cdcd7a3", + "status": 200, + "bytes": 1536 + }, + { + "url": "/f7-layout.js?v=fe7e94a4a9", + "status": 200, + "bytes": 4763 + }, + { + "url": "/glass-panel-layout.js?v=d5417786d0", + "status": 200, + "bytes": 1173 + }, + { + "url": "/hash-worker.js?v=5cccc78057", + "status": 200, + "bytes": 624 + }, + { + "url": "/lower-third.css?v=031f8e0ead", + "status": 200, + "bytes": 502 + }, + { + "url": "/lower-third.js?v=7705dcbfb4", + "status": 200, + "bytes": 1153 + }, + { + "url": "/lyrics-window.js?v=8f333e2442", + "status": 200, + "bytes": 2474 + }, + { + "url": "/midi.js?v=dbecfa74e1", + "status": 200, + "bytes": 2014 + }, + { + "url": "/p2p-client.js?v=74fbd79661", + "status": 200, + "bytes": 4444 + }, + { + "url": "/p2p-core.js?v=168a879219", + "status": 200, + "bytes": 1137 + }, + { + "url": "/p2p-recv-worker.js?v=9d435c6cbb", + "status": 200, + "bytes": 1475 + }, + { + "url": "/p2p-transfer.js?v=e508302618", + "status": 200, + "bytes": 2773 + }, + { + "url": "/party-dj.js?v=1677c38a88", + "status": 200, + "bytes": 1444 + }, + { + "url": "/piano-core.js?v=77c8269761", + "status": 200, + "bytes": 867 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + }, + { + "url": "/piano.js?v=e82bc30884", + "status": 200, + "bytes": 4003 + }, + { + "url": "/presenter.js?v=e5b34ff758", + "status": 200, + "bytes": 3558 + }, + { + "url": "/remote-client.js?v=a2b5acb20f", + "status": 200, + "bytes": 9042 + }, + { + "url": "/setlist-import.js?v=13bc5cc4a4", + "status": 200, + "bytes": 2879 + }, + { + "url": "/share-external.js?v=9de67de710", + "status": 200, + "bytes": 4222 + }, + { + "url": "/stats-core.js?v=3de0591d83", + "status": 200, + "bytes": 2619 + }, + { + "url": "/stats-view.js?v=beb2343b30", + "status": 200, + "bytes": 2664 + }, + { + "url": "/theme-classic.css?v=d420fcfb12", + "status": 200, + "bytes": 4079 + }, + { + "url": "/theme-f7.css?v=02ba226f82", + "status": 200, + "bytes": 5579 + }, + { + "url": "/theme-glass-panel.css?v=25aadb0bb7", + "status": 200, + "bytes": 1045 + }, + { + "url": "/theme-glass.css?v=09feb15c53", + "status": 200, + "bytes": 5903 + }, + { + "url": "/vendor/framework7-swipe.min.js?v=22b954749c", + "status": 200, + "bytes": 44829 + }, + { + "url": "/video-edit.js?v=90c5dd1eb6", + "status": 200, + "bytes": 2506 + }, + { + "url": "/vocal-reducer.js?v=ddb2fc1bbe", + "status": 200, + "bytes": 1397 + }, + { + "url": "/watch-party-client.js?v=0210655848", + "status": 200, + "bytes": 7473 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/profile/load?name=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 404, + "bytes": 40 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/playlist/inbox?name=offline-test", + "status": 200, + "bytes": 22 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "status": 404, + "bytes": 40 + }, + { + "url": "/asset-sync-core.js?v=8e6f81fb98", + "status": 200, + "bytes": 3028 + }, + { + "url": "/piano-engine.mjs?v=2d2f29b38e", + "status": 200, + "bytes": 2580 + } + ], + "totalWireBytes": 1114205, + "bytesByType": { + "html": 28062, + "js": 571666, + "css": 133672, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 7321, + "other": 1566 + } + }, + "saveData": false, + "offlineTransport": "proxy (Linux WebKit setOffline breaks cached navigation)", + "unsupportedFeatures": [ + "video editor: OPFS unavailable in Linux WebKit" + ], + "expectedTransportErrors": [ + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:42665/api/media/benchmedia01/status.", + "stack": "" + } + ], + "staticFailures": [], + "scriptErrors": [] + } + ] +} diff --git a/perf/results/hygiene-rollback-offline.json b/perf/results/hygiene-rollback-offline.json new file mode 100644 index 0000000..5579721 --- /dev/null +++ b/perf/results/hygiene-rollback-offline.json @@ -0,0 +1,4817 @@ +{ + "results": [ + { + "engine": "chromium", + "legacy": true, + "failures": [ + { + "kind": "incomplete", + "paths": [ + "/piano-engine.mjs", + "/sw.js" + ] + }, + { + "kind": "http", + "url": "http://127.0.0.1:37035/piano-engine.mjs", + "status": 503 + }, + { + "layout": "classic", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:37035/piano-engine.mjs", + "status": 503 + }, + { + "layout": "f7-swipe", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:37035/piano-engine.mjs", + "status": 503 + }, + { + "layout": "glass-stage", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:37035/piano-engine.mjs", + "status": 503 + }, + { + "layout": "bento-hub", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ], + "events": [ + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/recommendations?fp=c83c12c79b483c87", + "error": "net::ERR_ABORTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/user/sync", + "error": "net::ERR_ABORTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/recommendations?fp=c83c12c79b483c87", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/recommendations?fp=c83c12c79b483c87&profile=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/profile/load?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/playlist/inbox?name=offline-test", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/user/sync", + "error": "net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_INTERNET_DISCONNECTED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/version", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/chapters?v=abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/notes/abcdefghijk", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:37035/api/media/benchmedia01/status", + "error": "net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: net::ERR_FAILED" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + } + ], + "layouts": [ + { + "layout": "classic", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "f7-swipe", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "glass-stage", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "bento-hub", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + } + ], + "conditions": [], + "build": "1175f1a1d2c1", + "installMs": 17736, + "inventory": { + "total": 102, + "missing": [ + "/piano-engine.mjs", + "/sw.js" + ] + }, + "installWire": { + "requestCount": 159, + "requests": [ + { + "url": "/api/manifest", + "status": 200, + "bytes": 2990 + }, + { + "url": "/", + "status": 200, + "bytes": 10660 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/lazy.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2525 + }, + { + "url": "/theme-classic.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 3529 + }, + { + "url": "/fonts/fonts.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 391 + }, + { + "url": "/styles.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 27364 + }, + { + "url": "/service-ui.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 3736 + }, + { + "url": "/refresh.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 5027 + }, + { + "url": "/layout-base.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 278 + }, + { + "url": "/recommendations.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 790 + }, + { + "url": "/offline-pages.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 859 + }, + { + "url": "/settings-sections.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 873 + }, + { + "url": "/saved-page.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 537 + }, + { + "url": "/related-videos.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 404 + }, + { + "url": "/fingerprint.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1034 + }, + { + "url": "/fullscreen-orientation.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1415 + }, + { + "url": "/download-actions.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 430 + }, + { + "url": "/opfs.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3920 + }, + { + "url": "/lyrics-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2632 + }, + { + "url": "/lyrics-display.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 571 + }, + { + "url": "/flag-ui.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2036 + }, + { + "url": "/sha256-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1521 + }, + { + "url": "/sha256.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2733 + }, + { + "url": "/loudness-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1130 + }, + { + "url": "/loudness.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1818 + }, + { + "url": "/device-db.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1050 + }, + { + "url": "/async-guard.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 725 + }, + { + "url": "/asset-sync-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2643 + }, + { + "url": "/sw-update.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4668 + }, + { + "url": "/related-videos.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 545 + }, + { + "url": "/audio-continuity.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 583 + }, + { + "url": "/fullscreen-orientation.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2494 + }, + { + "url": "/settings-sections.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2690 + }, + { + "url": "/download-actions.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 550 + }, + { + "url": "/download-errors.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 727 + }, + { + "url": "/downloads.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1764 + }, + { + "url": "/downloads-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3103 + }, + { + "url": "/saved-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 652 + }, + { + "url": "/server-backfill.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 918 + }, + { + "url": "/visible-timer.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 380 + }, + { + "url": "/prewarm-next.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 567 + }, + { + "url": "/eq-parameters.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 722 + }, + { + "url": "/feature-bootstrap.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2056 + }, + { + "url": "/shell-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3882 + }, + { + "url": "/views-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 16385 + }, + { + "url": "/section-rail.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3552 + }, + { + "url": "/app.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 95497 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/", + "status": 200, + "bytes": 10660 + }, + { + "url": "/index.html", + "status": 200, + "bytes": 10660 + }, + { + "url": "/styles.css", + "status": 200, + "bytes": 27364 + }, + { + "url": "/service-ui.css", + "status": 200, + "bytes": 3736 + }, + { + "url": "/refresh.css", + "status": 200, + "bytes": 5027 + }, + { + "url": "/layout-base.css", + "status": 200, + "bytes": 278 + }, + { + "url": "/theme-glass.css", + "status": 200, + "bytes": 5068 + }, + { + "url": "/theme-bento-hub.css", + "status": 200, + "bytes": 6718 + }, + { + "url": "/theme-f7.css", + "status": 200, + "bytes": 4727 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2", + "status": 200, + "bytes": 21728 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2", + "status": 200, + "bytes": 27348 + }, + { + "url": "/theme-glass-panel.css", + "status": 200, + "bytes": 848 + }, + { + "url": "/glass-panel-layout.js", + "status": 200, + "bytes": 965 + }, + { + "url": "/theme-classic.css", + "status": 200, + "bytes": 3529 + }, + { + "url": "/recommendations.css", + "status": 200, + "bytes": 790 + }, + { + "url": "/flag-ui.js", + "status": 200, + "bytes": 2036 + }, + { + "url": "/export.js", + "status": 200, + "bytes": 1305 + }, + { + "url": "/async-guard.js", + "status": 200, + "bytes": 725 + }, + { + "url": "/visible-timer.js", + "status": 200, + "bytes": 380 + }, + { + "url": "/asset-sync-core.js", + "status": 200, + "bytes": 2643 + }, + { + "url": "/lazy.js", + "status": 200, + "bytes": 2525 + }, + { + "url": "/feature-bootstrap.js", + "status": 200, + "bytes": 2056 + }, + { + "url": "/eq-parameters.js", + "status": 200, + "bytes": 722 + }, + { + "url": "/assets.json", + "status": 200, + "bytes": 1058 + }, + { + "url": "/sw-update.js", + "status": 200, + "bytes": 4668 + }, + { + "url": "/fingerprint.js", + "status": 200, + "bytes": 1034 + }, + { + "url": "/opfs.js", + "status": 200, + "bytes": 3920 + }, + { + "url": "/opfs-worker.js", + "status": 200, + "bytes": 3487 + }, + { + "url": "/video-edit.js", + "status": 200, + "bytes": 2168 + }, + { + "url": "/lyrics-core.js", + "status": 200, + "bytes": 2632 + }, + { + "url": "/lyrics-display.js", + "status": 200, + "bytes": 571 + }, + { + "url": "/stats-core.js", + "status": 200, + "bytes": 2336 + }, + { + "url": "/sha256.js", + "status": 200, + "bytes": 2733 + }, + { + "url": "/resume-core.js", + "status": 200, + "bytes": 762 + }, + { + "url": "/loudness-wasm.js", + "status": 200, + "bytes": 1130 + }, + { + "url": "/loudness.js", + "status": 200, + "bytes": 1818 + }, + { + "url": "/sha256-wasm.js", + "status": 200, + "bytes": 1521 + }, + { + "url": "/device-db.js", + "status": 200, + "bytes": 1050 + }, + { + "url": "/hash-worker.js", + "status": 200, + "bytes": 542 + }, + { + "url": "/p2p-client.js", + "status": 200, + "bytes": 3850 + }, + { + "url": "/p2p-core.js", + "status": 200, + "bytes": 989 + }, + { + "url": "/direct-media.css", + "status": 200, + "bytes": 291 + }, + { + "url": "/direct-protocol.js", + "status": 200, + "bytes": 1079 + }, + { + "url": "/direct-media.js", + "status": 200, + "bytes": 3697 + }, + { + "url": "/direct-stream.js", + "status": 200, + "bytes": 1249 + }, + { + "url": "/direct-recv-worker.js", + "status": 200, + "bytes": 1050 + }, + { + "url": "/p2p-transfer.js", + "status": 200, + "bytes": 2431 + }, + { + "url": "/p2p-recv-worker.js", + "status": 200, + "bytes": 1267 + }, + { + "url": "/settings-sections.js", + "status": 200, + "bytes": 2690 + }, + { + "url": "/related-videos.js", + "status": 200, + "bytes": 545 + }, + { + "url": "/related-videos.css", + "status": 200, + "bytes": 404 + }, + { + "url": "/audio-continuity.js", + "status": 200, + "bytes": 583 + }, + { + "url": "/fullscreen-orientation.js", + "status": 200, + "bytes": 2494 + }, + { + "url": "/fullscreen-orientation.css", + "status": 200, + "bytes": 1415 + }, + { + "url": "/download-actions.js", + "status": 200, + "bytes": 550 + }, + { + "url": "/download-actions.css", + "status": 200, + "bytes": 430 + }, + { + "url": "/download-errors.js", + "status": 200, + "bytes": 727 + }, + { + "url": "/downloads.js", + "status": 200, + "bytes": 1764 + }, + { + "url": "/downloads-page.js", + "status": 200, + "bytes": 3103 + }, + { + "url": "/offline-pages.css", + "status": 200, + "bytes": 859 + }, + { + "url": "/saved-page.js", + "status": 200, + "bytes": 652 + }, + { + "url": "/server-backfill.js", + "status": 200, + "bytes": 918 + }, + { + "url": "/glass-controls.js", + "status": 200, + "bytes": 2763 + }, + { + "url": "/bento-hub.js", + "status": 200, + "bytes": 1294 + }, + { + "url": "/f7-layout.js", + "status": 200, + "bytes": 4158 + }, + { + "url": "/vendor/framework7-swipe.min.js", + "status": 200, + "bytes": 38592 + }, + { + "url": "/theme-glass-controls.css", + "status": 200, + "bytes": 1480 + }, + { + "url": "/party-dj.js", + "status": 200, + "bytes": 1184 + }, + { + "url": "/saved-page.css", + "status": 200, + "bytes": 537 + }, + { + "url": "/lyrics-window.js", + "status": 200, + "bytes": 2048 + }, + { + "url": "/midi.js", + "status": 200, + "bytes": 1713 + }, + { + "url": "/lower-third.js", + "status": 200, + "bytes": 927 + }, + { + "url": "/vocal-reducer.js", + "status": 200, + "bytes": 1146 + }, + { + "url": "/eq-core.js", + "status": 200, + "bytes": 875 + }, + { + "url": "/piano-core.js", + "status": 200, + "bytes": 756 + }, + { + "url": "/piano.js", + "status": 200, + "bytes": 3453 + }, + { + "url": "/setlist-import.js", + "status": 200, + "bytes": 2462 + }, + { + "url": "/car-mode.js", + "status": 200, + "bytes": 1727 + }, + { + "url": "/car-mode.css", + "status": 200, + "bytes": 385 + }, + { + "url": "/prewarm-next.js", + "status": 200, + "bytes": 567 + }, + { + "url": "/lower-third.css", + "status": 200, + "bytes": 375 + }, + { + "url": "/settings-sections.css", + "status": 200, + "bytes": 873 + }, + { + "url": "/shell-core.js", + "status": 200, + "bytes": 3882 + }, + { + "url": "/views-core.js", + "status": 200, + "bytes": 16385 + }, + { + "url": "/section-rail.js", + "status": 200, + "bytes": 3552 + }, + { + "url": "/presenter.js", + "status": 200, + "bytes": 3094 + }, + { + "url": "/remote-client.js", + "status": 200, + "bytes": 7926 + }, + { + "url": "/watch-party-client.js", + "status": 200, + "bytes": 6513 + }, + { + "url": "/stats-view.js", + "status": 200, + "bytes": 2294 + }, + { + "url": "/share-external.js", + "status": 200, + "bytes": 3653 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 631 + }, + { + "url": "/app.js", + "status": 200, + "bytes": 95497 + }, + { + "url": "/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "/fonts/fonts.css", + "status": 200, + "bytes": 391 + }, + { + "url": "/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "/api/p2p/config", + "status": 200, + "bytes": 40 + }, + { + "url": "/api/p2p/device", + "status": 200, + "bytes": 121 + }, + { + "url": "/api/p2p/holdings", + "status": 200, + "bytes": 54 + }, + { + "url": "/api/recommendations?fp=c83c12c79b483c87", + "status": 200, + "bytes": 24 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 8059 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + } + ], + "totalWireBytes": 982090, + "bytesByType": { + "html": 31980, + "js": 462019, + "css": 111158, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 4384, + "other": 631 + } + }, + "saveData": false, + "offlineTransport": "context.setOffline + proxy", + "expectedTransportErrors": [], + "staticFailures": [], + "scriptErrors": [] + }, + { + "engine": "webkit", + "legacy": true, + "failures": [ + { + "kind": "incomplete", + "paths": [ + "/piano-engine.mjs", + "/sw.js" + ] + }, + { + "kind": "http", + "url": "http://127.0.0.1:39661/piano-engine.mjs", + "status": 503 + }, + { + "layout": "classic", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:39661/piano-engine.mjs", + "status": 503 + }, + { + "layout": "f7-swipe", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:39661/piano-engine.mjs", + "status": 503 + }, + { + "layout": "glass-stage", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + }, + { + "kind": "http", + "url": "http://127.0.0.1:39661/piano-engine.mjs", + "status": 503 + }, + { + "layout": "bento-hub", + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ], + "events": [ + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/user/sync", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/profile/load?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/sw.js", + "error": "Connection terminated unexpectedly" + }, + { + "kind": "console", + "message": "Failed to load resource: Connection terminated unexpectedly" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/playlist/inbox?name=offline-test", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/version", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/chapters?v=abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/notes/abcdefghijk", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "requestfailed", + "url": "http://127.0.0.1:39661/api/media/benchmedia01/status", + "error": "FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: FetchEvent.respondWith received an error: TypeError: Load failed" + }, + { + "kind": "console", + "message": "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + } + ], + "layouts": [ + { + "layout": "classic", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "f7-swipe", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "glass-stage", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + }, + { + "layout": "bento-hub", + "opened": [ + "reload", + "search", + "queue", + "history", + "saved", + "downloads", + "settings", + "nowPlaying", + "sidebar", + "all lazy groups", + "piano", + "midi", + "floating-lyrics", + "vocal-reducer", + "equalizer", + "setlist-import", + "broadcast", + "party-dj", + "direct-transfer", + "presenter", + "video editor", + "lyrics editor", + "car", + "remote", + "party", + "share/external", + "stats", + "service" + ], + "errors": [ + { + "name": "runtime URLs", + "error": "/piano-engine.mjs: 503" + } + ] + } + ], + "conditions": [], + "build": "1175f1a1d2c1", + "installMs": 17169, + "inventory": { + "total": 102, + "missing": [ + "/piano-engine.mjs", + "/sw.js" + ] + }, + "installWire": { + "requestCount": 157, + "requests": [ + { + "url": "/api/manifest", + "status": 200, + "bytes": 2990 + }, + { + "url": "/", + "status": 200, + "bytes": 12832 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/service-ui.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 4417 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/refresh.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 5828 + }, + { + "url": "/lazy.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2984 + }, + { + "url": "/fonts/fonts.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 457 + }, + { + "url": "/styles.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 33412 + }, + { + "url": "/recommendations.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 983 + }, + { + "url": "/layout-base.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 336 + }, + { + "url": "/settings-sections.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1076 + }, + { + "url": "/offline-pages.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1069 + }, + { + "url": "/saved-page.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 673 + }, + { + "url": "/related-videos.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 517 + }, + { + "url": "/download-actions.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 560 + }, + { + "url": "/fingerprint.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1269 + }, + { + "url": "/opfs.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4571 + }, + { + "url": "/fullscreen-orientation.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 1721 + }, + { + "url": "/lyrics-display.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 750 + }, + { + "url": "/flag-ui.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2469 + }, + { + "url": "/sha256-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1748 + }, + { + "url": "/sha256.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3209 + }, + { + "url": "/lyrics-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3038 + }, + { + "url": "/loudness.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2068 + }, + { + "url": "/device-db.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1230 + }, + { + "url": "/async-guard.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 887 + }, + { + "url": "/asset-sync-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3028 + }, + { + "url": "/sw-update.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 5470 + }, + { + "url": "/loudness-wasm.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1279 + }, + { + "url": "/related-videos.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 642 + }, + { + "url": "/audio-continuity.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 677 + }, + { + "url": "/fullscreen-orientation.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2916 + }, + { + "url": "/settings-sections.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3174 + }, + { + "url": "/download-actions.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 669 + }, + { + "url": "/downloads.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2088 + }, + { + "url": "/downloads-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 3642 + }, + { + "url": "/saved-page.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 820 + }, + { + "url": "/server-backfill.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 1105 + }, + { + "url": "/visible-timer.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 474 + }, + { + "url": "/download-errors.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 959 + }, + { + "url": "/prewarm-next.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 665 + }, + { + "url": "/eq-parameters.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 2430 + }, + { + "url": "/shell-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4548 + }, + { + "url": "/views-core.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 19084 + }, + { + "url": "/app.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 118584 + }, + { + "url": "/theme-classic.css?v=1175f1a1d2c1", + "status": 200, + "bytes": 4079 + }, + { + "url": "/section-rail.js?v=1175f1a1d2c1", + "status": 200, + "bytes": 4206 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/", + "status": 200, + "bytes": 12832 + }, + { + "url": "/index.html", + "status": 200, + "bytes": 12832 + }, + { + "url": "/styles.css", + "status": 200, + "bytes": 33412 + }, + { + "url": "/service-ui.css", + "status": 200, + "bytes": 4417 + }, + { + "url": "/refresh.css", + "status": 200, + "bytes": 5828 + }, + { + "url": "/layout-base.css", + "status": 200, + "bytes": 336 + }, + { + "url": "/theme-glass.css", + "status": 200, + "bytes": 5903 + }, + { + "url": "/theme-bento-hub.css", + "status": 200, + "bytes": 7731 + }, + { + "url": "/theme-f7.css", + "status": 200, + "bytes": 5579 + }, + { + "url": "/fonts/PlusJakartaSans-latin.woff2", + "status": 200, + "bytes": 27348 + }, + { + "url": "/fonts/PlusJakartaSans-latin-ext.woff2", + "status": 200, + "bytes": 21728 + }, + { + "url": "/glass-panel-layout.js", + "status": 200, + "bytes": 1173 + }, + { + "url": "/theme-classic.css", + "status": 200, + "bytes": 4079 + }, + { + "url": "/theme-glass-panel.css", + "status": 200, + "bytes": 1045 + }, + { + "url": "/visible-timer.js", + "status": 200, + "bytes": 474 + }, + { + "url": "/async-guard.js", + "status": 200, + "bytes": 887 + }, + { + "url": "/asset-sync-core.js", + "status": 200, + "bytes": 3028 + }, + { + "url": "/recommendations.css", + "status": 200, + "bytes": 983 + }, + { + "url": "/flag-ui.js", + "status": 200, + "bytes": 2469 + }, + { + "url": "/export.js", + "status": 200, + "bytes": 1536 + }, + { + "url": "/sw-update.js", + "status": 200, + "bytes": 5470 + }, + { + "url": "/assets.json", + "status": 200, + "bytes": 1220 + }, + { + "url": "/eq-parameters.js", + "status": 200, + "bytes": 832 + }, + { + "url": "/feature-bootstrap.js", + "status": 200, + "bytes": 2430 + }, + { + "url": "/lazy.js", + "status": 200, + "bytes": 2984 + }, + { + "url": "/fingerprint.js", + "status": 200, + "bytes": 1269 + }, + { + "url": "/opfs.js", + "status": 200, + "bytes": 4571 + }, + { + "url": "/opfs-worker.js", + "status": 200, + "bytes": 4042 + }, + { + "url": "/video-edit.js", + "status": 200, + "bytes": 2506 + }, + { + "url": "/lyrics-core.js", + "status": 200, + "bytes": 3038 + }, + { + "url": "/lyrics-display.js", + "status": 200, + "bytes": 750 + }, + { + "url": "/stats-core.js", + "status": 200, + "bytes": 2619 + }, + { + "url": "/sha256.js", + "status": 200, + "bytes": 3209 + }, + { + "url": "/sha256-wasm.js", + "status": 200, + "bytes": 1748 + }, + { + "url": "/loudness.js", + "status": 200, + "bytes": 2068 + }, + { + "url": "/loudness-wasm.js", + "status": 200, + "bytes": 1279 + }, + { + "url": "/resume-core.js", + "status": 200, + "bytes": 915 + }, + { + "url": "/p2p-client.js", + "status": 200, + "bytes": 4444 + }, + { + "url": "/hash-worker.js", + "status": 200, + "bytes": 624 + }, + { + "url": "/device-db.js", + "status": 200, + "bytes": 1230 + }, + { + "url": "/p2p-core.js", + "status": 200, + "bytes": 1137 + }, + { + "url": "/direct-media.css", + "status": 200, + "bytes": 370 + }, + { + "url": "/direct-media.js", + "status": 200, + "bytes": 4252 + }, + { + "url": "/direct-recv-worker.js", + "status": 200, + "bytes": 1216 + }, + { + "url": "/direct-stream.js", + "status": 200, + "bytes": 1457 + }, + { + "url": "/p2p-transfer.js", + "status": 200, + "bytes": 2773 + }, + { + "url": "/p2p-recv-worker.js", + "status": 200, + "bytes": 1475 + }, + { + "url": "/direct-protocol.js", + "status": 200, + "bytes": 1245 + }, + { + "url": "/settings-sections.js", + "status": 200, + "bytes": 3174 + }, + { + "url": "/related-videos.js", + "status": 200, + "bytes": 642 + }, + { + "url": "/related-videos.css", + "status": 200, + "bytes": 517 + }, + { + "url": "/audio-continuity.js", + "status": 200, + "bytes": 677 + }, + { + "url": "/fullscreen-orientation.js", + "status": 200, + "bytes": 2916 + }, + { + "url": "/downloads.js", + "status": 200, + "bytes": 2088 + }, + { + "url": "/download-errors.js", + "status": 200, + "bytes": 959 + }, + { + "url": "/download-actions.css", + "status": 200, + "bytes": 560 + }, + { + "url": "/download-actions.js", + "status": 200, + "bytes": 669 + }, + { + "url": "/fullscreen-orientation.css", + "status": 200, + "bytes": 1721 + }, + { + "url": "/downloads-page.js", + "status": 200, + "bytes": 3642 + }, + { + "url": "/offline-pages.css", + "status": 200, + "bytes": 1069 + }, + { + "url": "/saved-page.js", + "status": 200, + "bytes": 820 + }, + { + "url": "/server-backfill.js", + "status": 200, + "bytes": 1105 + }, + { + "url": "/glass-controls.js", + "status": 200, + "bytes": 3227 + }, + { + "url": "/bento-hub.js", + "status": 200, + "bytes": 1523 + }, + { + "url": "/f7-layout.js", + "status": 200, + "bytes": 4763 + }, + { + "url": "/vendor/framework7-swipe.min.js", + "status": 200, + "bytes": 44829 + }, + { + "url": "/theme-glass-controls.css", + "status": 200, + "bytes": 1782 + }, + { + "url": "/saved-page.css", + "status": 200, + "bytes": 673 + }, + { + "url": "/lyrics-window.js", + "status": 200, + "bytes": 2474 + }, + { + "url": "/midi.js", + "status": 200, + "bytes": 2014 + }, + { + "url": "/lower-third.js", + "status": 200, + "bytes": 1153 + }, + { + "url": "/eq-core.js", + "status": 200, + "bytes": 1071 + }, + { + "url": "/vocal-reducer.js", + "status": 200, + "bytes": 1397 + }, + { + "url": "/party-dj.js", + "status": 200, + "bytes": 1444 + }, + { + "url": "/piano-core.js", + "status": 200, + "bytes": 867 + }, + { + "url": "/piano.js", + "status": 200, + "bytes": 4003 + }, + { + "url": "/setlist-import.js", + "status": 200, + "bytes": 2879 + }, + { + "url": "/car-mode.js", + "status": 200, + "bytes": 2080 + }, + { + "url": "/prewarm-next.js", + "status": 200, + "bytes": 665 + }, + { + "url": "/lower-third.css", + "status": 200, + "bytes": 502 + }, + { + "url": "/settings-sections.css", + "status": 200, + "bytes": 1076 + }, + { + "url": "/shell-core.js", + "status": 200, + "bytes": 4548 + }, + { + "url": "/section-rail.js", + "status": 200, + "bytes": 4206 + }, + { + "url": "/views-core.js", + "status": 200, + "bytes": 19084 + }, + { + "url": "/car-mode.css", + "status": 200, + "bytes": 504 + }, + { + "url": "/presenter.js", + "status": 200, + "bytes": 3558 + }, + { + "url": "/remote-client.js", + "status": 200, + "bytes": 9042 + }, + { + "url": "/watch-party-client.js", + "status": 200, + "bytes": 7473 + }, + { + "url": "/share-external.js", + "status": 200, + "bytes": 4222 + }, + { + "url": "/stats-view.js", + "status": 200, + "bytes": 2664 + }, + { + "url": "/app.js", + "status": 200, + "bytes": 118584 + }, + { + "url": "/icons/icon-192.png", + "status": 200, + "bytes": 1669 + }, + { + "url": "/icons/icon-512.png", + "status": 200, + "bytes": 4609 + }, + { + "url": "/fonts/fonts.css", + "status": 200, + "bytes": 457 + }, + { + "url": "/fonts/BricolageGrotesque-latin-ext.woff2", + "status": 200, + "bytes": 30736 + }, + { + "url": "/manifest.webmanifest", + "status": 200, + "bytes": 783 + }, + { + "url": "/fonts/BricolageGrotesque-latin.woff2", + "status": 200, + "bytes": 76888 + }, + { + "url": "/fonts/HankenGrotesk-latin-ext.woff2", + "status": 200, + "bytes": 19588 + }, + { + "url": "/fonts/HankenGrotesk-latin.woff2", + "status": 200, + "bytes": 34704 + }, + { + "url": "/fonts/JetBrainsMono-latin-ext.woff2", + "status": 200, + "bytes": 11624 + }, + { + "url": "/fonts/JetBrainsMono-latin.woff2", + "status": 200, + "bytes": 31432 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/user/sync", + "status": 200, + "bytes": 11 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + }, + { + "url": "/api/version", + "status": 200, + "bytes": 62 + }, + { + "url": "/sw.js", + "status": 200, + "bytes": 9301 + }, + { + "url": "/api/recommendations?fp=163577c02a53bc40", + "status": 200, + "bytes": 24 + } + ], + "totalWireBytes": 1103712, + "bytesByType": { + "html": 38496, + "js": 553729, + "css": 133672, + "fonts": 365640, + "images": 6278, + "media": 0, + "api": 4331, + "other": 1566 + } + }, + "saveData": false, + "offlineTransport": "proxy (Linux WebKit setOffline breaks cached navigation)", + "unsupportedFeatures": [ + "video editor: OPFS unavailable in Linux WebKit" + ], + "expectedTransportErrors": [ + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/recommendations?fp=163577c02a53bc40&profile=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/profile/load?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/playlist/inbox?name=offline-test.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/version.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/chapters?v=abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/notes/abcdefghijk.", + "stack": "" + }, + { + "kind": "pageerror", + "message": "TypeError: Load failed", + "stack": "" + }, + { + "kind": "pageerror", + "message": "/127.0.0.1:39661/api/media/benchmedia01/status.", + "stack": "" + } + ], + "staticFailures": [], + "scriptErrors": [] + } + ] +} diff --git a/plans/manifest-hygiene-report.md b/plans/manifest-hygiene-report.md new file mode 100644 index 0000000..6078d27 --- /dev/null +++ b/plans/manifest-hygiene-report.md @@ -0,0 +1,150 @@ +# Runtime manifest hygiene + +Based on main/offline-fix tip `0b8e398`; offline-fix was already merged when this +worktree was created. Implementation: `dd09f66`. No frontend runtime, loading, +service-worker, playback or layout code changed. + +## Policy and delivery + +`server/asset-manifest.js` now selects runtime inputs separately from delivery +metadata. It excludes `*.test.js`, `*.test.mjs`, `*.md`, `*.txt`, `*.c`, +`*.entry.js`, `/admin.html`, and all files beneath a `perf/` directory. The +optional `assets.json` `include` array accepts exact root-relative existing file +paths to override this policy. An explicitly declared group cannot silently lose +an excluded dependency: boot rejects it unless the path is included. + +The 49 excluded files here are 44 unit tests, admin HTML, the Plus Jakarta Sans +font licence, two WASM C build sources, and the Framework7 source build entry. +WASM binaries, fonts, icons, workers and the Framework7 runtime bundle remain. + +Excluded files remain directly servable, with the existing content hash, ETag, +compression and cache rules: plain requests revalidate (font-folder requests +keep their 30-day cache rule), matching `?v` is immutable, and stale `?v` is +no-store in per-file mode. Delivery hashes are computed separately; they never +enter `manifest.files` or build identity. `ASSET_HASHING=0` retains single-tag +stamping and its legacy header matrix, but its tag also uses only runtime +inputs. `ASSET_SYNC=0` still selects the legacy worker. + +Fresh installs cache only runtime assets. On an incremental upgrade, excluded +entries from the previous manifest may survive for one build under existing +N-1 retention, then are pruned as N-2. No new excluded entries are downloaded. +This preserves retention for already-open pages instead of changing worker +pruning or contracts/pinning. + +## Inventory + +Measured from the untouched before snapshot and the fixed frontend using the +respective real server manifest modules. Counts include stamped index and SW. + +| Metric | Before | After | Reduction | +| --- | ---: | ---: | ---: | +| Manifest files | 151 | 102 | 49 (32.5%) | +| Summed manifest file sizes | 2,044,337 B | 1,807,059 B | 237,278 B | +| JSON manifest body | 15,601 B | 12,551 B | 3,050 B | + +Excluded source bodies total 237,278 B, or 64,694 B using per-file Brotli +compression. Actual install/update measurements below include protocol and +manifest/index effects; compression estimates are not substituted for those runs. +Full inventory: `perf/results/hygiene-assets.json`. + +## Verification + +Commands: + +```sh +node --test frontend/*.test.js +cd server && bun install && bun run test +node perf/offline-complete.mjs --browser all --conditions --out perf/results/hygiene-offline.json +node perf/migration.mjs --browser all --profile lossy --out perf/results/hygiene-migration.json +node perf/offline-complete.mjs --browser all --legacy --out perf/results/hygiene-rollback-offline.json +``` + +The server test command used a worktree-local Python venv on PATH with yt-dlp +installed so both environment-sensitive worker tests ran successfully. +Frontend: 209 passed, zero failures. Server: 186 passed, zero failures. +Manifest/static/shell tests cover excluded-file identity invariance in both hash +modes, app.js identity changes, explicit inclusion, group validation, direct +bodies/hash/header behavior, SPA delivery and rollback flags. + +Offline completeness: Chromium and WebKit each report manifest count 102, +missing `[]`, failures `[]`, across all four layouts and lazy features. Page +closure/interrupted completion, worker restart/re-registration, Save-Data, two +tabs and online-event resumption pass. Linux WebKit uses same-context worker +re-registration because persistent CacheStorage restart is broken there; its +offline proxy blocks transport because native setOffline breaks cached navigation. +Native OPFS-dependent video-edit behavior cannot be exercised in Linux WebKit. + +Lossy legacy migration passes on both engines: one banner, one explicit-user +reload, offline launch, playback guard, legacy URLs, eviction repair and +incremental refresh. WebKit records four tolerated offline API transport errors, +with the offline assertions passing. Migration caches include retained N-1 +entries, so their raw key count is deliberately greater than manifest count. + +## Rollback limitation found during extra verification + +An additional `--legacy` offline-completeness run disables both hashing and sync. +It fails on both the untouched base and fixed build: the legacy SHELL omits +`piano-engine.mjs`, so its direct offline request returns 503 across layouts. +The legacy shell also intentionally does not cache its own `sw.js`; the harness +therefore marks that inventory entry missing too, without a corresponding offline +UI failure. Before: 151 manifest entries / 51 missing; after: 102 / 2 missing. +The other 49 before-only misses are precisely the excluded non-runtime files. +Normal sync-mode completeness is 102/102 with no failures. Header/injection +rollback tests pass; this change neither fixes nor worsens the existing legacy +piano coverage gap. Results: `hygiene-before-rollback-offline.json` and +`hygiene-rollback-offline.json`. + +## Reduced performance measurements + +Three runs per scenario/engine, LTE. Before used an isolated untouched snapshot +of `0b8e398` inside this worktree; after used the fixed server. No external +worktree was modified. Cold wire totals include page requests and install/completion +fetches; these are not claimed to be worker-only bytes. Chromium uses CDP LTE +throttling; WebKit uses the LTE proxy. + +```sh +node perf/.tmp/before/perf/baseline.mjs --runs 3 --browser all --profile lte --scenario all --out perf/results/hygiene-before.json +node perf/baseline.mjs --runs 3 --browser all --profile lte --scenario all --out perf/results/hygiene-after.json +``` + +All values below are actual medians; bytes are wire bytes. + +| Engine | Scenario | Before B | After B | Before ms | After ms | +| --- | --- | ---: | ---: | ---: | ---: | +| chromium | Cold visit + install | 728,266 | 660,390 | 7101 | 7090 | +| chromium | Warm reload | 8,132 | 8,159 | 647 | 445 | +| chromium | Offline reload | 0 | 0 | 285 | 209 | +| chromium | Core app.js edit | 126,358 | 125,729 | 1008 | 753 | +| chromium | theme-glass.css edit | 44,027 | 43,434 | 1600 | 1372 | +| chromium | Presenter edit + idle fill | 42,065 | 41,436 | 1392 | 1376 | +| webkit | Cold visit + install | 1,189,813 | 1,111,241 | 2321 | 2310 | +| webkit | Warm reload | 0 | 0 | 92 | 89 | +| webkit | Offline reload | 0 | 0 | 100 | 88 | +| webkit | Core app.js edit | 148,709 | 147,955 | 2013 | 2013 | +| webkit | theme-glass.css edit | 57,732 | 56,976 | 1479 | 1466 | +| webkit | Presenter edit + idle fill | 55,382 | 54,625 | 1494 | 1557 | + +Cold requests fall 165 → 116 (Chromium) and 209 → 160 (WebKit), exactly 49 +fewer each. Cold wire savings are 67,876 B (9.3%) and 78,572 B (6.6%). +Ordinary runtime updates already shared unchanged files before this fix, so +their savings are mainly smaller manifest metadata: approximately 0.6–0.8 KB. +Test-only edits now leave the tag unchanged and trigger no build update. +Milliseconds for cold/warm/offline are boot-done; update milliseconds are completion +duration. These three-run timing differences are descriptive, not a performance +claim. Warm Chromium API traffic varies independently of the asset set. + +Real output excerpts (after): + +```text +run 3/3... done (660390 bytes, 116 reqs, boot=7090ms) +run 3/3... done (1111241 bytes, 160 reqs, boot=2310ms) +run 3/3... done (147955 bytes, 5 reqs, dur=2014ms) +run 3/3... done (56976 bytes, 9 reqs, dur=1483ms) +``` + +## Real iPhone checks + +Confirm installed-PWA offline launch and feature/layout first use after update; +completion after suspension, storage pressure/OPFS sharing, and old excluded +cache entries disappearing after the subsequent build. Linux automation cannot +prove iOS worker lifetime, quota eviction or native OPFS behavior. diff --git a/server/asset-manifest.js b/server/asset-manifest.js index 4f91f08..eb2c45c 100644 --- a/server/asset-manifest.js +++ b/server/asset-manifest.js @@ -55,7 +55,6 @@ export function createAssetManifest(publicDir = './public', { hashing = true, bu else { const content = readFileSync(path); bytes.set(url, content); - } } } @@ -91,7 +90,7 @@ export function createAssetManifest(publicDir = './public', { hashing = true, bu const swSource = bytes.get('/sw.js')?.toString() ?? null; // Derived build metadata cannot be an input to its own hash. Canonicalize // the index meta and SW injected tag, then publish hashes of the final bytes. - // All original bytes (including index/SW source) remain inputs via source hashes. + // All runtime source bytes (including index/SW source) remain inputs via source hashes. let canonicalIndex = source === null ? null : stampIndex(embedAssets(source, files, groups, '__BUILD_TAG__', hashing), files, { hashing }); const canonical = { assetSync, files: { ...files }, groups, contracts }; if (canonicalIndex !== null && hashing) canonical.files['/index.html'] = { ...files['/index.html'], h: assetHash(canonicalIndex), s: Buffer.byteLength(canonicalIndex), source: files['/index.html'].h }; diff --git a/server/asset-manifest.test.js b/server/asset-manifest.test.js index 49467aa..583c39b 100644 --- a/server/asset-manifest.test.js +++ b/server/asset-manifest.test.js @@ -94,7 +94,7 @@ test('non-runtime files stay deliverable but never affect manifest or build iden for (const hashing of [true, false]) { const first = createAssetManifest(dir, { hashing }); mkdirSync(join(dir, 'perf'), { recursive: true }); - for (const name of ['app.test.js', 'app.test.mjs', 'README.md', 'license.txt', 'admin.html', 'perf/fixture.js']) { + for (const name of ['app.test.js', 'app.test.mjs', 'README.md', 'license.txt', 'admin.html', 'perf/fixture.js', 'sha256.c', 'framework.entry.js']) { writeFileSync(join(dir, name), 'non-runtime'); const next = createAssetManifest(dir, { hashing }); expect(next.manifest.buildTag).toBe(first.manifest.buildTag);