6. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: identifying a plurality of client devices, each client device of the plurality of client devices having a respective web browser installed, the web browser comprising a plurality of components including a web page renderer component for rendering web pages, a first translator component for translating programs in a portable format to a machine-specific instruction set, and a sandbox component for executing programs translated to the machine-specific instruction set on the client device using software-based fault isolation; identifying one or more second client devices, from among the plurality of client devices, that have a given hardware configuration; and transmitting a second translator component and a second sandbox component to each of the second client devices wherein each of the second client devices is configured to: (i) receive the second translator component and the second sandbox component, and (ii) configure the respective web browser of the second client device to use the second translator component instead of using the first translator component to translate programs in the portable format to a machine-specific instruction set of the second client device and to use the second sandbox component instead of using the first sandbox component to execute programs translated to the machine-specific instruction set of the second client device.
6. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: identifying a plurality of client devices, each client device of the plurality of client devices having a respective web browser installed, the web browser comprising a plurality of components including a web page renderer component for rendering web pages, a first translator component for translating programs in a portable format to a machine-specific instruction set, and a sandbox component for executing programs translated to the machine-specific instruction set on the client device using software-based fault isolation; identifying one or more second client devices, from among the plurality of client devices, that have a given hardware configuration; and transmitting a second translator component and a second sandbox component to each of the second client devices wherein each of the second client devices is configured to: (i) receive the second translator component and the second sandbox component, and (ii) configure the respective web browser of the second client device to use the second translator component instead of using the first translator component to translate programs in the portable format to a machine-specific instruction set of the second client device and to use the second sandbox component instead of using the first sandbox component to execute programs translated to the machine-specific instruction set of the second client device. 9. The system of claim 6 wherein the second sandbox component comprises a validator component configured to verify that programs translated to the machine-specific instruction set of the second client device do not include unsafe instructions, do not load or store data outside of the second sandbox component, and have control flow integrity.