Tags: afreakk/ChromeAudioVisualizerExtension
Tags
v12.2.0: Live Tab↔Mic capture switching (session-only)
Adds a "Capture source" dropdown in the settings UI that swaps between tab
capture and microphone/system audio in place — no window restart needed.
The choice is session-only: the animation window always opens on Tab and
clears any stale persisted value, so a prior Mic choice (or a "Never allow"
permission deny) no longer soft-locks users.
- Background: restart-capture with nonce-correlated ack, in-flight guard,
mic-prime orchestration via animation window, window-close cleanup.
- Offscreen: getUserMedia({audio:true}) path for mic; skip
analyser→destination wiring for mic to avoid feedback.
- Animation window: runMicrophonePrime only on background request (no
load-time auto-prompt); session-capture-source message mirrors to
chrome.storage.local without persisting.
- Settings UI: disable select during restart, origin- and nonce-checked
ack listener for both sandbox and external-window UI.
- Adds `storage` manifest permission (SW reads captureSource from
chrome.storage.local).
- Playwright coverage for dropdown → ack round-trip, concurrent-restart
rejection, and mic-denied failure path.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>