summaryrefslogtreecommitdiffstats
path: root/ppapi
diff options
context:
space:
mode:
authorabarth@chromium.org <abarth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-17 19:57:49 +0000
committerabarth@chromium.org <abarth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-17 19:57:49 +0000
commit498e05a48dfade51ef44a1b5ed648bd2dfc3c6f0 (patch)
treeb4f0772170e3fec3b4ae536c78d7315a18c06b58 /ppapi
parent4c2f8195b9a5dc59d86434ab498ad609aa4034e4 (diff)
downloadchromium_src-498e05a48dfade51ef44a1b5ed648bd2dfc3c6f0.zip
chromium_src-498e05a48dfade51ef44a1b5ed648bd2dfc3c6f0.tar.gz
chromium_src-498e05a48dfade51ef44a1b5ed648bd2dfc3c6f0.tar.bz2
Add stub PPAPI for launching NaCl's sel_ldr process.
In ArcticSea, we're going to load the NaCl plugin in the render process. The NaCl plugin needs to create a sel_ldr process to host the NEXE, but when the plugin lives inside the render process, the plugin is sandboxed, so it can't create a process. This API instructs the browser to launch a sel_ldr process and wire up a bunch of IMC channels between the plugin and the new process. In reality, the sel_ldr process is just chrome.exe run with a command line flag that causes it to call NaClMain instead of BrowserMain or RendererMain. Previously, NaCl accomplished this task by smuggling a function pointer (cast as an int) from render_process_impl to the NPAPI NaCl plugin. Rather than use the same approach again, we're creating a legit way for the PPAPI plugin to ask the browser to spawn the sel_ldr process. In BalticSea, we'll likely run the NaCl plugin out-of-process (e.g., in a PPAPI process). In that case, the plugin can just host the NEXE internally, and we'll be able to remove this interface. Review URL: http://codereview.chromium.org/5897004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69568 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r--ppapi/c/private/ppb_nacl_util_private.h17
-rw-r--r--ppapi/ppapi.gyp3
2 files changed, 20 insertions, 0 deletions
diff --git a/ppapi/c/private/ppb_nacl_util_private.h b/ppapi/c/private/ppb_nacl_util_private.h
new file mode 100644
index 0000000..3a8354e
--- /dev/null
+++ b/ppapi/c/private/ppb_nacl_util_private.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_C_PRIVATE_PPB_NACL_UTIL_PRIVATE_H_
+#define PPAPI_C_PRIVATE_PPB_NACL_UTIL_PRIVATE_H_
+
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_NACLUTIL_PRIVATE_INTERFACE "PPB_NaClUtil(Private);0.1"
+
+struct PPB_NaClUtil_Private {
+ int32_t (*LaunchSelLdr)(PP_Resource file_io);
+};
+
+#endif // PPAPI_C_PRIVATE_PPB_NACL_UTIL_PRIVATE_H_
diff --git a/ppapi/ppapi.gyp b/ppapi/ppapi.gyp
index c41b4d9..7981a5b 100644
--- a/ppapi/ppapi.gyp
+++ b/ppapi/ppapi.gyp
@@ -100,6 +100,9 @@
'c/dev/ppp_widget_dev.h',
'c/dev/ppp_zoom_dev.h',
+ # Private interfaces.
+ 'c/private/ppb_nacl_util_private.h',
+
# Deprecated interfaces.
'c/dev/deprecated_bool.h',
'c/dev/ppb_var_deprecated.h',