Chromium Code Reviews| Index: components/nacl/loader/nacl_listener.cc |
| diff --git a/components/nacl/loader/nacl_listener.cc b/components/nacl/loader/nacl_listener.cc |
| index b5ee5f74fa0039b76c9bd1d75a347bd203df3bec..3cdbebc431e4e9bef39917c524e7a243b7d2e57b 100644 |
| --- a/components/nacl/loader/nacl_listener.cc |
| +++ b/components/nacl/loader/nacl_listener.cc |
| @@ -266,17 +266,14 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) { |
| NaClChromeMainSetUrandomFd(urandom_fd); |
| #endif |
| - NaClChromeMainInit(); |
| - struct NaClChromeMainArgs *args = NaClChromeMainArgsCreate(); |
| - if (args == NULL) { |
| - LOG(ERROR) << "NaClChromeMainArgsCreate() failed"; |
| - return; |
| - } |
| - |
| - struct NaClApp *nap = NaClAppCreate(); |
| - if (nap == NULL) { |
| - LOG(ERROR) << "NaClAppCreate() failed"; |
| - return; |
| + struct NaClApp* nap = NULL; |
| + if (!params.uses_nonsfi_mode) { |
|
Mark Seaborn
2014/04/01 14:35:36
This conflicts with your other change, https://cod
hamaji
2014/04/03 07:05:54
Done.
|
| + NaClChromeMainInit(); |
| + nap = NaClAppCreate(); |
| + if (nap == NULL) { |
| + LOG(ERROR) << "NaClAppCreate() failed"; |
| + return; |
| + } |
| } |
| IPC::ChannelHandle browser_handle; |
| @@ -349,6 +346,26 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) { |
| std::vector<nacl::FileDescriptor> handles = params.handles; |
| +#if defined(OS_LINUX) |
| + if (params.uses_nonsfi_mode) { |
| + if (params.uses_irt) { |
| + LOG(ERROR) << "IRT must not be used for non-SFI NaCl."; |
| + return; |
| + } |
| + CHECK(handles.size() == 1); |
| + int imc_bootstrap_handle = nacl::ToNativeHandle(handles[0]); |
| + nacl::nonsfi::MainStart(imc_bootstrap_handle); |
| + return; |
| + } |
| +#endif |
| + |
| + struct NaClChromeMainArgs* args = NULL; |
| + args = NaClChromeMainArgsCreate(); |
|
Mark Seaborn
2014/04/01 14:35:36
Combine with previous line?
hamaji
2014/04/03 07:05:54
Done.
|
| + if (args == NULL) { |
| + LOG(ERROR) << "NaClChromeMainArgsCreate() failed"; |
| + return; |
| + } |
| + |
| #if defined(OS_LINUX) || defined(OS_MACOSX) |
| args->number_of_cores = number_of_cores_; |
| args->create_memory_object_func = CreateMemoryObject; |
| @@ -420,12 +437,6 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) { |
| args->prereserved_sandbox_size = prereserved_sandbox_size_; |
| #endif |
| -#if defined(OS_LINUX) |
| - if (params.uses_nonsfi_mode) { |
| - nacl::nonsfi::MainStart(args->imc_bootstrap_handle); |
| - return; |
| - } |
| -#endif |
| NaClChromeMainStartApp(nap, args); |
| NOTREACHED(); |
| } |