- Add Hls.cast(video) detection (Strategy B1) — uses the official hls.js
API to retrieve bound instances from <video> elements
- Add _goon_hls_manifest annotation check (Strategy B2) — reads interceptor-set
manifest URLs directly on video elements
- Refactor scrapeFn to a 5-priority HLS detection chain:
1. Direct .m3u8 in video.src
2. Interceptor-set _goon_hls_manifest
3. Hls.cast(video) official API
4. Direct HTTP source (non-blob)
5. Deep probe fallback (page globals/scripts)
- Replace fragile Object.defineProperty Hls detection with polling interval
in interceptors.js — avoids conflicts with page JS
- Add buffered range tracking and duration to content.js video scan data
- Add 8 new tests for HLS detection priority chain (55 total)