Decisions
Why Link Browser drives a browser of its own, in a sandbox, and leaves the network rule to the sandbox's proxy.
Why does it use the sandbox's proxy rather than a proxy of its own?
Link Web already refuses a page on this computer or its networks unless a
host is named, and the sandbox's proxy keeps the same rule for everything
it carries. Starting the browser in a sandbox with open internet therefore
gives one rule in one place, so a link, a redirect or a script is held to
it as a fetch is. A second proxy inside the tool would have had to repeat
the rule and stay in step with it. A named private host is the sandbox's
--lan-host, and a port of this computer its --port.
Why do DevTools speak over a pipe?
lnk sandbox run closes every descriptor but the ones it is given, so the
browser is started with --remote-debugging-pipe and its DevTools on
descriptors 3 and 4, mapped to the sandbox's standard input and output.
That leaves no port and no WebSocket for another program to reach.
Why does the browser run in a sandbox when Chromium has one?
Chromium keeps its own sandbox on, but refuses it when run as root, and a browser's own sandbox is not Link's to promise. Link's sandbox is the wall either way: the browser reads its program and writes only its profile.
Why does each agent have a profile of its own?
A sign-in should last from one session to the next, and a browser that shared the owner's profile would hand the agent every sign-in the owner has. The profile is in the agent's folder, which no harness reaches, and the tool refuses the owner's own browser profile.