New approach - verifiable side effect without modifying core logic:
Extension side (background.ts):
- Creates invisible tab with title "RENTGEN_INITIALIZED_<timestamp>"
- Tab is auto-closed after 1 second (cleanup)
- This is observable via Firefox Remote Debugging Protocol
Test side (test_verify.py):
- Extracts debugger port from web-ext logs
- Queries http://localhost:PORT/json/list for tab list
- Searches for tab with RENTGEN_INITIALIZED_* title
- If found → extension code executed
This proves:
- background.ts executed
- browser.tabs.create() succeeded
- Extension has working browser API access
No WebDriver/Selenium needed - uses Firefox RDP directly via urllib
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>