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.