robot b19035ad29
CI / test (pull_request) Successful in 22s
fix: capture HLS segment playback state — prevent fragmented / lost overlay states
Bug fixes:
- FRAG_LOADING: stop updating lastActivity and re-rendering during active
  playback. It fires continuously as hls.js proactively fetches future
  segments, causing overlay flickering between buffering/playing.
- BUFFER_RESET: stop clearing segmentsLoaded. The event fires during
  quality switches when hls.js flushes and rebuilds the MediaSource buffer,
  but segments were already played. Clearing the counter made the overlay
  show '0 seg' mid-playback.
- FRAG_BUFFERED: add bufferedAhead update immediately after a fragment is
  buffered, instead of waiting for the next 1s monitor tick.
- LEVEL_SWITCHED: only set phase='switching' when buffer is low (< 2s).
  With meaningful buffer the switch is instant (already-buffered segments),
  so skip the intermediate state to avoid panels getting stuck.
- Buffer monitor: add change-detection so renderPanelState only fires when
  phase, segments, or quality actually changed — not every second.
- wireVideoEvents: add 'ended' event handler for completeness.
2026-08-13 06:29:22 +00:00
2026-06-08 20:13:51 +00:00
2026-05-31 11:29:51 -07:00
2026-05-30 18:51:10 +00:00

Goon Plugin

A Chrome extension (Manifest V3) that finds videos on the current page and displays them in a 2x2 grid.

Features

  • Click the extension icon → "Find Videos" to scan the current tab for all <video> elements
  • Videos are listed in the popup for reference (clickable links, "Copy All URLs" button)
  • Click "Open Viewer" to open a new window with videos in a 2x2 grid (autoplay muted)
  • Click "Clear" to reset the stored video list

Getting started

# 1. Install deps
npm i

# 2. Run in watch mode
npm run dev

# 3. Build for distribution
npm run build

Loading in Chrome

  1. Open chrome://extensions/
  2. Enable Developer mode (top-right)
  3. Click Load unpacked → select the project root folder (where manifest.json is located)

Project structure

manifest.json       — Extension manifest (MV3)
package.json        — Dev tooling (Vite + Vitest + TS)
vite.config.ts      — Build config
src/
  background/       — Service worker (MV3 background)
  content/          — Content script
  viewer/           — Popup UI + video viewer
    index.html      — Popup (Find Videos, Open Viewer buttons)
    index.js        — Popup logic (scans current tab for videos)
    index.css       — Popup styles
    viewer.html     — Viewer page (2x2 video grid in new window)
    viewer.js       — Viewer logic (renders video panels)
    viewer.css      — Viewer grid styles
  icons/            — Extension icons (place .png files here)
  • Chrome Extension Developer (extension-list-viewer)
  • ESLint
  • Prettier

VS Code workspace

Open goon_plugin.code-workspace to get the project with recommended extensions pre-installed.

S
Description
No description provided
Readme
1.4 MiB
0 Stars 2 Watchers 0 Forks
v0.2.0
Latest
2026-10-07 17:07:24 -07:00
Languages
JavaScript 96.9%
TypeScript 1.2%
CSS 1.1%
HTML 0.7%
Dockerfile 0.1%