Refactor the bootstrap sandbox process launching integration.

There are three changes:
  - A LaunchOptions::PreExecDelegate is now used to perform the bootstrap port
    replacement in the new child. This removes sandbox-specific knowledge from
    //base.
  - The replacement bootstrap port is no longer registered with launchd.
    Instead, a new sandbox manager port is registered. Clients communicate with
    this server to get the replacement bootstrap port.
  - Using the above port, clients now perform a post-fork-pre-exec handshake
    to check in with the sandbox server. This removes the complicated
    PrepareToFork/FinishedFork interface.

BUG=367863,388214
R=mark@chromium.org

Review URL: https://codereview.chromium.org/1346923006

Cr-Commit-Position: refs/heads/master@{#349571}


CrOS-Libchrome-Original-Commit: 408d2ee53267204220f2062a97bd7fe7b9a69354
2 files changed
tree: e9dc9d624db68fc2ae0498c0e9c1a6eda6d973e0
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/