1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef SANDBOX_MAC_PRE_EXEC_DELEGATE_H_
6 #define SANDBOX_MAC_PRE_EXEC_DELEGATE_H_
8 #include "base/process/launch.h"
12 // This PreExecDelegate will communicate with the BootstrapSandbox running
13 // the Mach server registered under |sandbox_server_bootstrap_name|. It will
14 // check in with th BootstrapSandbox using the |sandbox_token| and will
15 // replace the task's bootstrap port with one provided by the sandbox.
16 class PreExecDelegate
: public base::LaunchOptions::PreExecDelegate
{
18 PreExecDelegate(const std::string
& sandbox_server_bootstrap_name
,
19 uint64_t sandbox_token
);
20 ~PreExecDelegate() override
;
22 void RunAsyncSafe() override
;
24 uint64_t sandbox_token() const { return sandbox_token_
; }
27 const std::string sandbox_server_bootstrap_name_
;
28 const char* const sandbox_server_bootstrap_name_ptr_
;
29 const uint64_t sandbox_token_
;
30 const bool is_yosemite_or_later_
;
32 DISALLOW_COPY_AND_ASSIGN(PreExecDelegate
);
35 } // namespace sandbox
37 #endif // SANDBOX_MAC_PRE_EXEC_DELEGATE_H_