1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv=
"Content-Type" content=
"text/html;charset=UTF-8">
3 <title>Native Client: NPAPI Extensions
</title>
4 <link href=
"./tabs.css" rel=
"stylesheet" type=
"text/css">
5 <link href=
"./stylesheet-dox.css" rel=
"stylesheet" type=
"text/css">
8 <a href=
"../../../README.html">Back to README
</a>
10 <!-- Generated by Doxygen 1.5.7.1 -->
11 <div class=
"navigation" id=
"top">
14 <li><a href=
"index.html"><span>Main
Page
</span></a></li>
15 <li><a href=
"modules.html"><span>Modules
</span></a></li>
16 <li><a href=
"annotated.html"><span>Data
Structures
</span></a></li>
17 <li><a href=
"files.html"><span>Files
</span></a></li>
21 <div class=
"contents">
22 <h1>NPAPI Extensions
<br>
24 [
<a class=
"el" href=
"group___libraries.html">Libraries
</a>]
</small>
25 </h1>NPAPI extensions for Native Client applications.
26 <a href=
"#_details">More...
</a>
30 <li>#define
<a class=
"el" href=
"group___n_p_a_p_i.html#g5dee191d2b26cf475548a1b457c5abb9">NPVARIANT_IS_HANDLE
</a>(_v)
((int) (_v).type == (int) NPVariantType_Handle)
31 <li>#define
<a class=
"el" href=
"group___n_p_a_p_i.html#g459664576fcda88255509f58063d58d3">NPVARIANT_TO_HANDLE
</a>(_v)
((_v).value.intValue)
32 <li>#define
<a class=
"el" href=
"group___n_p_a_p_i.html#g4e0431a369926d94b6d2111de30e930c">HANDLE_TO_NPVARIANT
</a>(_val, _v)
36 <li>enum {
<b>NPVariantType_Handle
</b> =
127
41 <li>int
<a class=
"el" href=
"group___n_p_a_p_i.html#g2b50007e7c4ff16360fa0294d1c6e67e">NaClNP_Init
</a> (int *argc, char *argv[])
42 <li>int
<a class=
"el" href=
"group___n_p_a_p_i.html#gce42ffe1c1097900d0e06a4ff65bd329">NaClNP_MainLoop
</a> (unsigned flags)
43 <li>NPObject *
<a class=
"el" href=
"group___n_p_a_p_i.html#g3e9da12acf670310f474861e000e88f5">NaClNPN_CreateArray
</a> (NPP npp)
44 <li>NPError
<a class=
"el" href=
"group___n_p_a_p_i.html#ge62ca6fdaea647612ddbaf635b621a8b">NaClNPN_OpenURL
</a> (NPP npp, const char *url, void *notify_data, void(*notify)(const char *url, void *notify_data, int handle))
45 <li>NPObject *
<a class=
"el" href=
"group___n_p_a_p_i.html#gd6b92f15011abb6dde0ae16e86f46ed7">NPP_GetScriptableInstance
</a> (NPP instance)
47 <hr><a name=
"_details"></a><h2>Detailed Description
</h2>
48 NPAPI extensions for Native Client applications.
50 Native Client supports a
<a href=
"../../../documentation/npapi.html">subset of NPAPI
</a>, plus these extensions. To learn about NPAPI, see
<a href=
"http://developer.mozilla.org/en/Plugins">http://developer.mozilla.org/en/Plugins
</a> and
<a href=
"http://developer.mozilla.org/en/Gecko_Plugin_API_Reference.">http://developer.mozilla.org/en/Gecko_Plugin_API_Reference.
</a><p>
51 To use this API, include
<code><<a class=
"el" href=
"nacl__npapi_8h.html" title=
"Defines the NPAPI extensions for Native Client applications.">nacl/nacl_npapi.h
</a>></code> and link with the
<code>google_nacl_npruntime
</code> library.
<p>
52 <b>Note:
</b> NPAPI support is experimental. If you encounter security issues, bugs, or missing features, please
<a href=
"http://code.google.com/p/nativeclient/issues">file an issue
</a>.
<hr><h2>Define Documentation
</h2>
53 <a class=
"anchor" name=
"g4e0431a369926d94b6d2111de30e930c"></a><!-- doxytag: member="nacl_npapi.h::HANDLE_TO_NPVARIANT" ref="g4e0431a369926d94b6d2111de30e930c" args="(_val, _v)" -->
55 <div class=
"memproto">
56 <table class=
"memname">
58 <td class=
"memname">#define HANDLE_TO_NPVARIANT
</td>
60 <td class=
"paramtype">_val,
<tr>
61 <td class=
"paramkey"></td>
63 <td class=
"paramtype">_v
</td>
64 <td class=
"paramname"> </td>
65 <td> )
</td>
73 <b>Value:
</b><div class=
"fragment"><pre class=
"fragment">NP_BEGIN_MACRO \
74 (_v).type = (NPVariantType) NPVariantType_Handle; \
75 (_v).value.intValue = _val; \
77 </pre></div>[Native Client] Sets a NaCl resource descriptor to an NPVariant.
79 <dl compact
><dt><b>Parameters:
</b></dt><dd>
80 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
81 <tr><td valign=
"top"></td><td valign=
"top"><em>_val
</em> </td><td>The NaCl resource descriptor to set.
</td></tr>
82 <tr><td valign=
"top"></td><td valign=
"top"><em>_v
</em> </td><td>The NPVariant value.
</td></tr>
88 <a class=
"anchor" name=
"g5dee191d2b26cf475548a1b457c5abb9"></a><!-- doxytag: member="nacl_npapi.h::NPVARIANT_IS_HANDLE" ref="g5dee191d2b26cf475548a1b457c5abb9" args="(_v)" -->
90 <div class=
"memproto">
91 <table class=
"memname">
93 <td class=
"memname">#define NPVARIANT_IS_HANDLE
</td>
95 <td class=
"paramtype">_v
</td>
96 <td class=
"paramname"> </td>
97 <td> )
</td>
98 <td> ((int) (_v).type == (int) NPVariantType_Handle)
</td>
105 [Native Client] Checks whether the NPVariant holds a NaCl resource descriptor.
107 <dl compact
><dt><b>Parameters:
</b></dt><dd>
108 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
109 <tr><td valign=
"top"></td><td valign=
"top"><em>_v
</em> </td><td>The NPVariant value.
</td></tr>
112 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>Non-zero value if the NPVariant holds a NaCl resource descriptor; otherwise,
0.
</dd></dl>
116 <a class=
"anchor" name=
"g459664576fcda88255509f58063d58d3"></a><!-- doxytag: member="nacl_npapi.h::NPVARIANT_TO_HANDLE" ref="g459664576fcda88255509f58063d58d3" args="(_v)" -->
117 <div class=
"memitem">
118 <div class=
"memproto">
119 <table class=
"memname">
121 <td class=
"memname">#define NPVARIANT_TO_HANDLE
</td>
123 <td class=
"paramtype">_v
</td>
124 <td class=
"paramname"> </td>
125 <td> )
</td>
126 <td> ((_v).value.intValue)
</td>
133 [Native Client] Gets a NaCl resource descriptor from an NPVariant.
135 <dl compact
><dt><b>Parameters:
</b></dt><dd>
136 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
137 <tr><td valign=
"top"></td><td valign=
"top"><em>_v
</em> </td><td>The NPVariant value.
</td></tr>
140 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>The NaCl resource descriptor.
</dd></dl>
144 <hr><h2>Function Documentation
</h2>
145 <a class=
"anchor" name=
"g2b50007e7c4ff16360fa0294d1c6e67e"></a><!-- doxytag: member="nacl_npapi.h::NaClNP_Init" ref="g2b50007e7c4ff16360fa0294d1c6e67e" args="(int *argc, char *argv[])" -->
146 <div class=
"memitem">
147 <div class=
"memproto">
148 <table class=
"memname">
150 <td class=
"memname">int NaClNP_Init
</td>
152 <td class=
"paramtype">int *
</td>
153 <td class=
"paramname"> <em>argc
</em>,
</td>
156 <td class=
"paramkey"></td>
158 <td class=
"paramtype">char *
</td>
159 <td class=
"paramname"> <em>argv
</em>[]
</td><td> </td>
164 <td></td><td></td><td></td>
171 [Native Client] Initializes the NPAPI bridge RPC runtime.
173 <dl compact
><dt><b>Parameters:
</b></dt><dd>
174 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
175 <tr><td valign=
"top"></td><td valign=
"top"><em>argc
</em> </td><td>Pointer to the program's unmodified argc variable from main().
</td></tr>
176 <tr><td valign=
"top"></td><td valign=
"top"><em>argv
</em> </td><td>The program's unmodified argv variable from main().
</td></tr>
179 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>0 upon success; otherwise, -
1.
</dd></dl>
183 <a class=
"anchor" name=
"gce42ffe1c1097900d0e06a4ff65bd329"></a><!-- doxytag: member="nacl_npapi.h::NaClNP_MainLoop" ref="gce42ffe1c1097900d0e06a4ff65bd329" args="(unsigned flags)" -->
184 <div class=
"memitem">
185 <div class=
"memproto">
186 <table class=
"memname">
188 <td class=
"memname">int NaClNP_MainLoop
</td>
190 <td class=
"paramtype">unsigned
</td>
191 <td class=
"paramname"> <em>flags
</em> </td>
192 <td> )
</td>
200 [Native Client] Enters the NPAPI bridge RPC processing loop.
202 <a class=
"el" href=
"group___n_p_a_p_i.html#gce42ffe1c1097900d0e06a4ff65bd329" title=
"[Native Client] Enters the NPAPI bridge RPC processing loop.">NaClNP_MainLoop()
</a> should be called once after
<a class=
"el" href=
"group___n_p_a_p_i.html#g2b50007e7c4ff16360fa0294d1c6e67e" title=
"[Native Client] Initializes the NPAPI bridge RPC runtime.">NaClNP_Init()
</a> is called successfully.
<dl compact
><dt><b>Parameters:
</b></dt><dd>
203 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
204 <tr><td valign=
"top"></td><td valign=
"top"><em>flags
</em> </td><td>Reserved. Use
0.
</td></tr>
207 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>0 upon success; otherwise, -
1.
</dd></dl>
211 <a class=
"anchor" name=
"g3e9da12acf670310f474861e000e88f5"></a><!-- doxytag: member="nacl_npapi.h::NaClNPN_CreateArray" ref="g3e9da12acf670310f474861e000e88f5" args="(NPP npp)" -->
212 <div class=
"memitem">
213 <div class=
"memproto">
214 <table class=
"memname">
216 <td class=
"memname">NPObject* NaClNPN_CreateArray
</td>
218 <td class=
"paramtype">NPP
</td>
219 <td class=
"paramname"> <em>npp
</em> </td>
220 <td> )
</td>
228 [Native Client] Creates a JavaScript array object.
230 <dl compact
><dt><b>Parameters:
</b></dt><dd>
231 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
232 <tr><td valign=
"top"></td><td valign=
"top"><em>npp
</em> </td><td>Pointer to the plug-in instance.
</td></tr>
235 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>Pointer to the new JavaScript array object, or NULL on failure.
</dd></dl>
239 <a class=
"anchor" name=
"ge62ca6fdaea647612ddbaf635b621a8b"></a><!-- doxytag: member="nacl_npapi.h::NaClNPN_OpenURL" ref="ge62ca6fdaea647612ddbaf635b621a8b" args="(NPP npp, const char *url, void *notify_data, void(*notify)(const char *url, void *notify_data, int handle))" -->
240 <div class=
"memitem">
241 <div class=
"memproto">
242 <table class=
"memname">
244 <td class=
"memname">NPError NaClNPN_OpenURL
</td>
246 <td class=
"paramtype">NPP
</td>
247 <td class=
"paramname"> <em>npp
</em>,
</td>
250 <td class=
"paramkey"></td>
252 <td class=
"paramtype">const char *
</td>
253 <td class=
"paramname"> <em>url
</em>,
</td>
256 <td class=
"paramkey"></td>
258 <td class=
"paramtype">void *
</td>
259 <td class=
"paramname"> <em>notify_data
</em>,
</td>
262 <td class=
"paramkey"></td>
264 <td class=
"paramtype">void(*)(const char *url, void *notify_data, int handle)
</td>
265 <td class=
"paramname"> <em>notify
</em></td><td> </td>
270 <td></td><td></td><td></td>
277 [Native Client] Gets a file descriptor for the specified URL.
279 On success, the notify function will be called back. If the file specified by the URL has been successfully opened, the handle argument for the notify function will be set to a valid file descriptor; otherwise, it will be set to -
1. This function enforces cross-domain access restrictions.
<p>
280 Note:
<a class=
"el" href=
"group___n_p_a_p_i.html#ge62ca6fdaea647612ddbaf635b621a8b" title=
"[Native Client] Gets a file descriptor for the specified URL.">NaClNPN_OpenURL()
</a> returns an error when another
<a class=
"el" href=
"group___n_p_a_p_i.html#ge62ca6fdaea647612ddbaf635b621a8b" title=
"[Native Client] Gets a file descriptor for the specified URL.">NaClNPN_OpenURL()
</a> operation is in progress in background.
<dl compact
><dt><b>Parameters:
</b></dt><dd>
281 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
282 <tr><td valign=
"top"></td><td valign=
"top"><em>npp
</em> </td><td>Pointer to the plug-in instance.
</td></tr>
283 <tr><td valign=
"top"></td><td valign=
"top"><em>url
</em> </td><td>Pointer to the URL of the request.
</td></tr>
284 <tr><td valign=
"top"></td><td valign=
"top"><em>notify_data
</em> </td><td>Plug-in private value for associating the request with the subsequent notify call.
</td></tr>
285 <tr><td valign=
"top"></td><td valign=
"top"><em>notify
</em> </td><td>Pointer to a callback function to be called upon successful call to the function.
</td></tr>
288 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>NPERR_NO_ERROR if successful; otherwise, an error code.
</dd></dl>
292 <a class=
"anchor" name=
"gd6b92f15011abb6dde0ae16e86f46ed7"></a><!-- doxytag: member="nacl_npapi.h::NPP_GetScriptableInstance" ref="gd6b92f15011abb6dde0ae16e86f46ed7" args="(NPP instance)" -->
293 <div class=
"memitem">
294 <div class=
"memproto">
295 <table class=
"memname">
297 <td class=
"memname">NPObject* NPP_GetScriptableInstance
</td>
299 <td class=
"paramtype">NPP
</td>
300 <td class=
"paramname"> <em>instance
</em> </td>
301 <td> )
</td>
309 [Native Client] Returns a scriptable object pointer that corresponds to NPPVpluginScriptableNPObject queried by NPP_GetValue().
311 <dl compact
><dt><b>Parameters:
</b></dt><dd>
312 <table border=
"0" cellspacing=
"2" cellpadding=
"0">
313 <tr><td valign=
"top"></td><td valign=
"top"><em>instance
</em> </td><td>Pointer to the plug-in instance.
</td></tr>
316 <dl class=
"return" compact
><dt><b>Returns:
</b></dt><dd>A scriptable object pointer if the module is scriptable, or NULL if not.
</dd></dl>
323 <a href=
"http://code.google.com/policies.html#restrictions">noted
</a>,
324 the content of this page is licensed under a
325 <a href=
"http://www.google.com/url?sa=D&q=http%3A%2F%2Fcreativecommons.org/licenses/by/2.5/">Creative Commons
326 Attribution
2.5 license
</a>.
330 Generated
30 Mar
2009 by
<a href=
"http://www.doxygen.org/index.html">doxygen
</a> 1.5.7.1