Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: ppapi/c/private/ppb_nacl_private.h

Issue 19863003: PNaCl on-demand installs: Make a separate async IPC to check if PNaCl is installed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: take out progress IPC for now Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 */ 4 */
5 5
6 /* From private/ppb_nacl_private.idl modified Tue Jul 23 13:16:52 2013. */ 6 /* From private/ppb_nacl_private.idl modified Mon Jul 29 16:44:58 2013. */
7 7
8 #ifndef PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_ 8 #ifndef PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_
9 #define PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_ 9 #define PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_
10 10
11 #include "ppapi/c/pp_bool.h" 11 #include "ppapi/c/pp_bool.h"
12 #include "ppapi/c/pp_completion_callback.h" 12 #include "ppapi/c/pp_completion_callback.h"
13 #include "ppapi/c/pp_instance.h" 13 #include "ppapi/c/pp_instance.h"
14 #include "ppapi/c/pp_macros.h" 14 #include "ppapi/c/pp_macros.h"
15 #include "ppapi/c/pp_stdint.h" 15 #include "ppapi/c/pp_stdint.h"
16 #include "ppapi/c/pp_var.h" 16 #include "ppapi/c/pp_var.h"
(...skipping 26 matching lines...) Expand all
43 /** 43 /**
44 * @} 44 * @}
45 */ 45 */
46 46
47 /** 47 /**
48 * @addtogroup Interfaces 48 * @addtogroup Interfaces
49 * @{ 49 * @{
50 */ 50 */
51 /* PPB_NaCl_Private */ 51 /* PPB_NaCl_Private */
52 struct PPB_NaCl_Private_1_0 { 52 struct PPB_NaCl_Private_1_0 {
53 /* Launches NaCl's sel_ldr process. Returns PP_NACL_OK on success and 53 /* Launches NaCl's sel_ldr process. Returns PP_EXTERNAL_PLUGIN_OK on success
54 * writes a NaClHandle to imc_handle. Returns PP_NACL_FAILED on failure. 54 * and writes a NaClHandle to imc_handle. Returns PP_EXTERNAL_PLUGIN_FAILED on
55 * The |enable_ppapi_dev| parameter controls whether GetInterface 55 * failure. The |enable_ppapi_dev| parameter controls whether GetInterface
56 * returns 'Dev' interfaces to the NaCl plugin. The |uses_ppapi| flag 56 * returns 'Dev' interfaces to the NaCl plugin. The |uses_ppapi| flag
57 * indicates that the nexe run by sel_ldr will use the PPAPI APIs. 57 * indicates that the nexe run by sel_ldr will use the PPAPI APIs.
58 * This implies that LaunchSelLdr is run from the main thread. If a nexe 58 * This implies that LaunchSelLdr is run from the main thread. If a nexe
59 * does not need PPAPI, then it can run off the main thread. 59 * does not need PPAPI, then it can run off the main thread.
60 * The |uses_irt| flag indicates whether the IRT should be loaded in this 60 * The |uses_irt| flag indicates whether the IRT should be loaded in this
61 * NaCl process. This is true for ABI stable nexes. 61 * NaCl process. This is true for ABI stable nexes.
62 * The |enable_dyncode_syscalls| flag indicates whether or not the nexe 62 * The |enable_dyncode_syscalls| flag indicates whether or not the nexe
63 * will be able to use dynamic code system calls (e.g., mmap with PROT_EXEC). 63 * will be able to use dynamic code system calls (e.g., mmap with PROT_EXEC).
64 * The |enable_exception_handling| flag indicates whether or not the nexe 64 * The |enable_exception_handling| flag indicates whether or not the nexe
65 * will be able to use hardware exception handling. 65 * will be able to use hardware exception handling.
66 */ 66 */
67 PP_ExternalPluginResult (*LaunchSelLdr)(PP_Instance instance, 67 PP_ExternalPluginResult (*LaunchSelLdr)(PP_Instance instance,
68 const char* alleged_url, 68 const char* alleged_url,
69 PP_Bool uses_irt, 69 PP_Bool uses_irt,
70 PP_Bool uses_ppapi, 70 PP_Bool uses_ppapi,
71 PP_Bool enable_ppapi_dev, 71 PP_Bool enable_ppapi_dev,
72 PP_Bool enable_dyncode_syscalls, 72 PP_Bool enable_dyncode_syscalls,
73 PP_Bool enable_exception_handling, 73 PP_Bool enable_exception_handling,
74 void* imc_handle, 74 void* imc_handle,
75 struct PP_Var* error_message); 75 struct PP_Var* error_message);
76 /* This function starts the IPC proxy so the nexe can communicate with the 76 /* This function starts the IPC proxy so the nexe can communicate with the
77 * browser. Returns PP_NACL_OK on success, otherwise a result code indicating 77 * browser. Returns PP_EXTERNAL_PLUGIN_OK on success, otherwise a result code
78 * the failure. PP_NACL_FAILED is returned if LaunchSelLdr wasn't called with 78 * indicating the failure. PP_EXTERNAL_PLUGIN_FAILED is returned if
79 * the instance. PP_NACL_ERROR_MODULE is returned if the module can't be 79 * LaunchSelLdr wasn't called with the instance.
80 * initialized. PP_NACL_ERROR_INSTANCE is returned if the instance can't be 80 * PP_EXTERNAL_PLUGIN_ERROR_MODULE is returned if the module can't be
81 * initialized. PP_NACL_USE_SRPC is returned if the plugin should use SRPC. 81 * initialized. PP_EXTERNAL_PLUGIN_ERROR_INSTANCE is returned if the instance
82 * can't be initialized.
82 */ 83 */
83 PP_ExternalPluginResult (*StartPpapiProxy)(PP_Instance instance); 84 PP_ExternalPluginResult (*StartPpapiProxy)(PP_Instance instance);
84 /* On POSIX systems, this function returns the file descriptor of 85 /* On POSIX systems, this function returns the file descriptor of
85 * /dev/urandom. On non-POSIX systems, this function returns 0. 86 * /dev/urandom. On non-POSIX systems, this function returns 0.
86 */ 87 */
87 int32_t (*UrandomFD)(void); 88 int32_t (*UrandomFD)(void);
88 /* Whether the Pepper 3D interfaces should be disabled in the NaCl PPAPI 89 /* Whether the Pepper 3D interfaces should be disabled in the NaCl PPAPI
89 * proxy. This is so paranoid admins can effectively prevent untrusted shader 90 * proxy. This is so paranoid admins can effectively prevent untrusted shader
90 * code to be processed by the graphics stack. 91 * code to be processed by the graphics stack.
91 */ 92 */
92 PP_Bool (*Are3DInterfacesDisabled)(void); 93 PP_Bool (*Are3DInterfacesDisabled)(void);
93 /* This is Windows-specific. This is a replacement for DuplicateHandle() for 94 /* This is Windows-specific. This is a replacement for DuplicateHandle() for
94 * use inside the Windows sandbox. Note that we provide this via dependency 95 * use inside the Windows sandbox. Note that we provide this via dependency
95 * injection only to avoid the linkage problems that occur because the NaCl 96 * injection only to avoid the linkage problems that occur because the NaCl
96 * plugin is built as a separate DLL/DSO 97 * plugin is built as a separate DLL/DSO
97 * (see http://code.google.com/p/chromium/issues/detail?id=114439#c8). 98 * (see http://code.google.com/p/chromium/issues/detail?id=114439#c8).
98 */ 99 */
99 int32_t (*BrokerDuplicateHandle)(PP_FileHandle source_handle, 100 int32_t (*BrokerDuplicateHandle)(PP_FileHandle source_handle,
100 uint32_t process_id, 101 uint32_t process_id,
101 PP_FileHandle* target_handle, 102 PP_FileHandle* target_handle,
102 uint32_t desired_access, 103 uint32_t desired_access,
103 uint32_t options); 104 uint32_t options);
105 /* Check if PNaCl is installed and attempt to install if necessary.
106 * Callback is called when the check is done and PNaCl is already installed,
107 * or after an on-demand install is attempted. Called back with PP_OK if
108 * PNaCl is available. Called back with an error otherwise.
109 */
110 int32_t (*EnsurePnaclInstalled)(PP_Instance instance,
111 struct PP_CompletionCallback callback);
104 /* Returns a read-only file descriptor of a file rooted in the Pnacl 112 /* Returns a read-only file descriptor of a file rooted in the Pnacl
105 * component directory, or an invalid handle on failure. 113 * component directory, or an invalid handle on failure.
106 * Do we want this to take a completion callback and be async, or
107 * could we make this happen on another thread?
108 */ 114 */
109 PP_FileHandle (*GetReadonlyPnaclFd)(const char* filename); 115 PP_FileHandle (*GetReadonlyPnaclFd)(const char* filename);
110 /* This creates a temporary file that will be deleted by the time 116 /* This creates a temporary file that will be deleted by the time
111 * the last handle is closed (or earlier on POSIX systems), and 117 * the last handle is closed (or earlier on POSIX systems), and
112 * returns a posix handle to that temporary file. 118 * returns a posix handle to that temporary file.
113 */ 119 */
114 PP_FileHandle (*CreateTemporaryFile)(PP_Instance instance); 120 PP_FileHandle (*CreateTemporaryFile)(PP_Instance instance);
115 /* Create a temporary file, which will be deleted by the time the last 121 /* Create a temporary file, which will be deleted by the time the last
116 * handle is closed (or earlier on POSIX systems), to use for the nexe 122 * handle is closed (or earlier on POSIX systems), to use for the nexe
117 * with the cache information given by |pexe_url|, |abi_version|, |opt_level|, 123 * with the cache information given by |pexe_url|, |abi_version|, |opt_level|,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 uint64_t* file_token_hi); 167 uint64_t* file_token_hi);
162 }; 168 };
163 169
164 typedef struct PPB_NaCl_Private_1_0 PPB_NaCl_Private; 170 typedef struct PPB_NaCl_Private_1_0 PPB_NaCl_Private;
165 /** 171 /**
166 * @} 172 * @}
167 */ 173 */
168 174
169 #endif /* PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_ */ 175 #endif /* PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_ */
170 176
OLDNEW
« no previous file with comments | « ppapi/api/private/ppb_nacl_private.idl ('k') | ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698