diff options
Diffstat (limited to 'PLAN.md')
| -rw-r--r-- | PLAN.md | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -476,6 +476,34 @@ Quick start (previously this was implied but never actually spelled out for a phone/tablet setup, which is a real, common daily workflow this tool hadn't explicitly walked through before). +Considered building an actual in-house browser (a GUI) and decided +against it: a bundled GUI browser is a different, much larger project +(a Chromium/WebView embed and all the maintenance that implies), works +against this tool's own positioning as a terminal-native daily driver, +and duplicates what a real browser already does far better. The useful +part of "in-house browser" isn't rendering - it's zero-friction setup: +a browser already pointed at the proxy with the CA one click away, +without touching the user's real browser profile. `cmd/mitmux/browser.go` +delivers exactly that instead: `-launch-browser=chrome|firefox|auto` +finds an installed browser (PATH first, then common per-OS install +locations for the cases PATH won't have - an unregistered macOS .app +bundle or a Windows Program Files install), spins up a brand new +throwaway profile (`os.MkdirTemp`, never reused, never cleaned up +explicitly - that's what "throwaway" means: a fresh identity every +launch, not something this code should delete out from under a still- +open browser), configures it to proxy through the daemon, and opens +straight to `http://mitmux.cert/`. Chrome takes `--proxy-server` as a +flag; Firefox has none, so its profile gets a generated `user.js` +setting `network.proxy.*` prefs instead - the only non-interactive way +to configure it. Verified against this machine's real, installed Chrome +and Firefox: binary discovery resolves both correctly, `auto` prefers +chrome-family when both are present, and the generated Firefox prefs +file is well-formed (integer port pref unquoted, matching what Firefox +expects). Actually spawning a visible browser window wasn't done as +part of automated verification - that's a live GUI popping up on +whoever's running it, not something to trigger without them asking for +it in the moment; the `-launch-browser` flag is there to try by hand. + ## Mouse support Explicitly requested - this is a real terminal app meant to work in any |