Currently NaCl‘s Chromium integration does not work when combined with Chromium’s [Linux sandbox] (http://code.google.com/p/chromium/wiki/LinuxSandboxing) (specifically, the SUID sandbox). Using NaCl under Chromium requires the options --internal-nacl --no-sandbox
(e.g. see [this announcement] (http://googlechromereleases.blogspot.com/2010/02/dev-channel-update_12.html)).
The following things need to be done to make this work:
--no-sandbox
. This means making the renderer process work./dev/urandom
, killing the renderer process. The fix is to open /dev/urandom
before switching on sandboxing. - DONE/dev/shm/XXX
to use shared memory, which fails. The fix is to create shared memory segments using an RPC to an unsandboxed process. - DONERunning NaCl under the seccomp sandbox raises the following issues:
The Linux SUID sandbox marks sandboxed processes as undumpable, which stops them from being ptrace()‘d. This appears to prevent the Breakpad crash reporting system from working, since Breakpad currently uses ptrace() to read processes’ state.