Problem
CVE-2026-0628 demonstrated that malicious extensions could hijack authenticated sessions. In response, Chrome tightened CSP restrictions on extensions operating in authenticated contexts. This blocks our content script injection on sites like Prolific.
Evidence
Solution (Implemented)
Created native-host/ directory with:
opensin_host.py — Python stdio-based native messaging host
install_host.sh — Registers the host manifest with Chrome on macOS
The host communicates via stdin/stdout (32-bit length-prefixed JSON), bypassing all browser sandbox and CSP restrictions.
Bonus: connectNative() keeps the MV3 service worker alive indefinitely (bypasses the 30-second termination rule).
Files Changed
native-host/opensin_host.py (NEW)
native-host/install_host.sh (NEW)
Acceptance Criteria
Problem
CVE-2026-0628 demonstrated that malicious extensions could hijack authenticated sessions. In response, Chrome tightened CSP restrictions on extensions operating in authenticated contexts. This blocks our content script injection on sites like Prolific.
Evidence
chrome.runtime.connectNative()keeps SW alive indefinitelySolution (Implemented)
Created
native-host/directory with:opensin_host.py— Python stdio-based native messaging hostinstall_host.sh— Registers the host manifest with Chrome on macOSThe host communicates via stdin/stdout (32-bit length-prefixed JSON), bypassing all browser sandbox and CSP restrictions.
Bonus:
connectNative()keeps the MV3 service worker alive indefinitely (bypasses the 30-second termination rule).Files Changed
native-host/opensin_host.py(NEW)native-host/install_host.sh(NEW)Acceptance Criteria
install_host.sh