Skip to content
Snippets Groups Projects
Commit e0414ed4 authored by abarth@chromium.org's avatar abarth@chromium.org
Browse files

Add LaunchSelLdr and UrandomFD to PPAPI

LaunchSelLdr just calls through to the webkit_glue backend, which calls through a bunch more layers of abstraction for us.

UrandomFD returns the file descriptor of /dev/urandom (on Posix), which NaCl uses for some purpose by can't get directly because of the sandbox.
Review URL: http://codereview.chromium.org/6023003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69578 0039d316-1c4b-4281-b951-d872f2087c98
parent 3b83eb83
No related merge requests found
......@@ -11,7 +11,19 @@
#define PPB_NACLUTIL_PRIVATE_INTERFACE "PPB_NaClUtil(Private);0.1"
struct PPB_NaClUtil_Private {
int32_t (*LaunchSelLdr)(PP_Resource file_io);
// This function launches NaCl's sel_ldr process. On success, the function
// returns true, otherwise it returns false. When it returns true, it will
// write |socket_count| nacl::Handles to imc_handles and will write the
// nacl::Handle of the created process to |nacl_process_handle|. Finally,
// the function will write the process ID of the created process to
// |nacl_process_id|.
bool (*LaunchSelLdr)(const char* alleged_url, int socket_count,
void* imc_handles, void* nacl_process_handle,
int* nacl_process_id);
// On POSIX systems, this function returns the file descriptor of
// /dev/urandom. On non-POSIX systems, this function returns 0.
int (*UrandomFD)(void);
};
#endif // PPAPI_C_PRIVATE_PPB_NACL_UTIL_PRIVATE_H_
......@@ -4,21 +4,35 @@
#include "webkit/plugins/ppapi/ppb_nacl_util_private_impl.h"
#include "base/rand_util_c.h"
#include "ppapi/c/private/ppb_nacl_util_private.h"
#include "webkit/glue/webkit_glue.h"
namespace webkit {
namespace ppapi {
namespace {
int32_t LaunchSelLdr(PP_Resource file_io) {
bool LaunchSelLdr(const char* alleged_url, int socket_count,
void* imc_handles, void* nacl_process_handle,
int* nacl_process_id) {
return webkit_glue::LaunchSelLdr(alleged_url, socket_count, imc_handles,
nacl_process_handle, nacl_process_id);
}
int UrandomFD(void) {
#if defined(OS_POSIX)
return GetUrandomFD();
#else
return 0;
#endif
}
} // namespace
const PPB_NaClUtil_Private ppb_nacl_util = {
&LaunchSelLdr,
&UrandomFD,
};
// static
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment