- isPortOpen(): check TCP su 127.0.0.1:9222 (Firefox Remote Agent non espone /json/version)
- ensureBridge: ciclo 0 senza forceRestart → se porta aperta avvia solo il bridge, altrimenti startFirefox; cicli successivi riavviano Firefox (sessione orfana)
- risolve il caso 'Firefox già attivo' (istanza --no-remote non agganciabile)
- ensureVenv(): crea ~/.local/share/pi-firefox-bidi/venv al primo avvio, bootstrap pip (ensurepip o pip di sistema --target nel site-packages del venv), installa websockets
- startBridgeProcess() usa il python del venv (fast path se già pronto); fallback a python3 + PYTHONPATH se la creazione fallisce
- niente dipendenze dal Python di sistema: l'estensione è autocontenuta e portabile