diff options
| author | Adam Soltys <[email protected]> | 2026-10-07 16:33:09 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-07 16:33:09 -0700 |
| commit | 6dfb59316865093eda01307ee3c95f87511cdf56 (patch) | |
| tree | bfe60d7eebe74eb00324b92af690942fa061038a /tools/feed-media-cache-test.js | |
| parent | 738bace91bcd17c0ab8ba920fe2f0765f6504fc8 (diff) | |
| download | coinosv3-6dfb59316865093eda01307ee3c95f87511cdf56.tar.gz coinosv3-6dfb59316865093eda01307ee3c95f87511cdf56.zip | |
Feed videos before they play: the picture fills the box with only the play button and size (no seek bar or sound button until playing); hovering the cover no longer paints it over with the app's button grey; upright phone clips (stored sideways with a quarter-turn matrix) paint upright, v1 size caches dropped; a clip the probe found HEVC switches to the copy before fetching the original
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'tools/feed-media-cache-test.js')
| -rw-r--r-- | tools/feed-media-cache-test.js | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/feed-media-cache-test.js b/tools/feed-media-cache-test.js index 02850ef..eee88c5 100644 --- a/tools/feed-media-cache-test.js +++ b/tools/feed-media-cache-test.js @@ -149,8 +149,8 @@ try { && steps.every((u, i) => !i || u < steps[i - 1]), JSON.stringify(steps)); check('tile frames are kept as pictures (all but the no-CORS host\'s)', await waitFor(async () => (await (await caches.open('coinos-video-thumbs-v1')).keys()).length === 5, 12000), String(await page.evaluate(async () => (await (await caches.open('coinos-video-thumbs-v1')).keys()).map((r) => decodeURIComponent(r.url).split('/').pop()).join(',')))); - await waitFor(() => /h4\.mp4[^\]]*probed|probed[^\]]*h4/.test((window.coinosCache || localStorage).getItem('coinos-video-info') || '') && /n5\.mp4[^\]]*failedAt/.test((window.coinosCache || localStorage).getItem('coinos-video-info') || ''), 8000); // the write-behind - const info = await page.evaluate(() => Object.fromEntries(JSON.parse((window.coinosCache || localStorage).getItem('coinos-video-info') || '[]').map(([u, d]) => [u.split('/').pop(), d]))); + await waitFor(() => /h4\.mp4[^\]]*probed|probed[^\]]*h4/.test((window.coinosCache || localStorage).getItem('coinos-video-info-v2') || '') && /n5\.mp4[^\]]*failedAt/.test((window.coinosCache || localStorage).getItem('coinos-video-info-v2') || ''), 8000); // the write-behind + const info = await page.evaluate(() => Object.fromEntries(JSON.parse((window.coinosCache || localStorage).getItem('coinos-video-info-v2') || '[]').map(([u, d]) => [u.split('/').pop(), d]))); check('a host hiding Content-Range gives its size to a HEAD', info['h4.mp4']?.probed && info['h4.mp4'].size > 1000 && info['h4.mp4'].size !== 12000, JSON.stringify(info['h4.mp4'])); check('a clip the browser cached from a plain load is still measured, and its frame kept', info['r6.mp4']?.probed === true && await page.evaluate(async () => (await (await caches.open('coinos-video-thumbs-v1')).keys()).some((r) => /r6\.mp4/.test(decodeURIComponent(r.url)))), JSON.stringify(info['r6.mp4'])); |
